Нужно либо помнить позицию текущего пользователя в карусели товаров, чтобы правильно выбирать, какой будет предыдущим/следующим/текущим для добавления (как уже написано выше), либо в качестве callback_data кнопок использовать данные конкретных товаров.
Например, как-то так (items - словарь товаров с артикулами в качестве ключей):
#
numbers = items.keys()
index_current = numbers.index(number_current)
if index_current > 0:
number_prev = numbers[index_current-1]
else:
number_prev = numbers[-1]
if index_current < len(numbers)-1:
number_next = numbers[index_current+1]
else:
number_next = numbers[0]
next =InlineKeyboardButton(text= 'Следующий',callback_data= f'item:{number_next}')
previous =InlineKeyboardButton(text= 'Предыдущий',callback_data= f'item:{number_prev}')
add = InlineKeyboardButton(text= 'Добавить в корзину',callback_data= f'add:{number_current}')
...
if call.data.startswith('item:'):
number_current = call.data[5:]
show_this_item_to_user
if call.data.startswith('add:'):
number_current = call.data[4:]
add_this_item_to_basket