задача - хранить массив неких ид-шников в БД для каждого пользователя
подвох - после логина анонимус юзером нужно мержить 2 массива ид-шников ( допустим вчера как залогиненый он положил в корзину что-то ф сегодня зашел с другого девайса как анонимус и положил снова )
думаю сделать таблицу с полями
user_id, sess_id, basket
для анонимуса достаем по sess_id для залогиненого по user_id. После логина мержим запись на найденную по текущему user_id и по текущему sess_id
может уже есть подобный велосипед?
не получается найти
только именно простое рещение а не полноценный shopping-cart
Добрый вечер.
А как Вы определите, что залогиненый пользователь это вчерашний аноним? По каким критериям?
Была тут недавно тема о том, как идентифицировать пользователя, но это не такое простое решение. Вот, полюбопытствуйте, возможно натолкнёт на решение.
понял. действительно в БД хранить смысла нет
ну тогда можно просто в переменную сессии пихать и при логине копировать из переменной сессии в БД
зачем тут localstorage?
я ведь рендерю страницу на сервере мне надо во время рендера знать что в корзине
magary4, храните в localStorage данные для корзины. На сервере готовите html без данных и заполняйте корзину данными из localStorage. Кнопка купить отправляет на сервер данные.
BoShurik, Такое же может случится и при классическом подходе. Товар обычно не резервируется за человеком пока заказ не оформлен, а только находится в корзине.
Локальное хранение в localstorage не добавляет доп проблем.
Просто показывает предупреждение - Вася ты упустил свой шанс.
Александр Таратин, разница в том на каком этапе об этом сообщить. В случае с localstorage - на этапе когда человек пошел оформлять заказ, а в случае с backend-ом - на этапе когда он открыл корзину
BoShurik, В любом случае на сервере идет проверка на наличие, при чем тут localStorage или сессия или еще что-то? Открываем форму уходим на 10 лет, возвращаемся, нажимаем оплатить. Необходимость проверки на сервере наличия есть не зависимо от метода реализации корзины.
В том числе платежные api все после отправки им данных, тоже делают запрос актуальности. Тут никуда от этого не уйдешь.
BoShurik, >>>разница в том на каком этапе об этом сообщить
На этапе логина производится синхронизация с сервером. Я в ответе писал же
>>>После логина отправлять на сервер.
Тут же можно сделать проверку наличия товара.