• Как правильно реализовать корзину пользователя?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Использовать сессию вместо IP: $_SESSION[] и саму корзину (набранные товары туда) сохранять в LocalStorage через JS на клиенте как список ID-шников.
    Чтобы при истечении времени сессии, товары из корзины не пропадали.

    Если клиент уже имеет учётку - мы сохраняем корзину в базу данных, чтобы сделать её доступной на любом другом устройстве сразу же после авторизации.

    При создании новой сессии мы корзину синхронизируем с сайтом, если корзина аккаунта пуста:
    1. Если в LocalStorage не пусто
    2. Или удалённая корзина пуста
    - используем локальную версию и позже отправляем на сервер.

    Если клиент залогинился - проверяем наличие серверной корзины.
    При несовпадении локального и удалённого набора товаров, предлагаем выбрать один из двух вариантов: локальную корзину или удалённую корзину аккаунта.

    При создании новой сессии, корзину синхронизируем с сайтом, основываясь на наличии и, если некоторые товарные позиции закончились на складе, - предлагаем наиболее подходящие альтернативные замены.

    Заботьтесь о клиентах, чтобы они заботились о вашей прибыли!
    Ответ написан
    Комментировать