На форуме 9558 тем, 76453 сообщений, 44667 участников
тема · 583 просмотра · 7 ответов

Изменение содержания корзины авторизированными пользователями с разных браузеров-устройств (куки?)

Общие вопросы
читают: 0 участников и 1 гость
порядок
24 фев 2020 01:16#1
Версия 2.0.3.1

Что есть:
Незалогиненный пользователь на устройстве номер 1 добавляет товар в корзину. Потом авторизируется, товар в корзине сохраняется.
На на устройстве 2 незалогиненный пользователь также добавляет какой-то товар в корзину. Потом авторизируется, и - видит в корзине уже 2 товара.

Если на устройстве номер 1 обновить страницу - второй товар не появляется, а если выйти и снова авторизироваться, то также появляется 2 товара.

Все изменения (удаление и добавление товаров) пока пользователь авторизирован, сохраняются только на используемом устройстве, но не сохраняются на втором.

То есть сохраняется в общую историю только добавление товара перед авторизацией.
Как сделать так, чтоб и когда пользователь авторизирован изменения в корзине тоже сохранялись и отображались на всех устройствах?
24 фев 2020 01:22#2
В более свежих версиях также, или уже сохраняются изменения?
24 фев 2020 11:48#3
Видимо у второго уже что-то было в корзине

Кроме того
Эксперимент

неавтооизованный пользователь 1 добавил в корзину
Авторизовался как юзер 1
В корзине 1 товар

неавтооизованный пользователь 2 добавил в корзину
Авторизовался как юзер 1
В корзине 2 товара

Это нормальное поведение


неавтооизованный пользователь 1 добавил в корзину
Авторизовался как юзер 1
В корзине 1 товар

неавтооизованный пользователь 2 добавил в корзину
Авторизовался как юзер 2
В корзине 2 товара

Это НЕ нормальное поведение, за исключением, того что у юзера 2 что-то было в корзине
26 фев 2020 14:04#4
Chukcha написал(а): ↑Видимо у второго уже что-то было в корзине

Кроме того
Эксперимент

неавтооизованный пользователь 1 добавил в корзину
Авторизовался как юзер 1
В корзине 1 товар

неавтооизованный пользователь 2 добавил в корзину
Авторизовался как юзер 1
В корзине 2 товара

Это нормальное поведение


неавтооизованный пользователь 1 добавил в корзину
Авторизовался как юзер 1
В корзине 1 товар

неавтооизованный пользователь 2 добавил в корзину
Авторизовался как юзер 2
В корзине 2 товара

Это НЕ нормальное поведение, за исключением, того что у юзера 2 что-то было в корзине


Не уточнила, у меня один пользователь, то есть Нормальное поведение)
Но при этом когда пользователь уже авторизирован на двух устройствах одновременно, изменения корзины не объединяются.
26 фев 2020 14:16#6
Chukcha написал(а): ↑Когда авторизован, то там идет выборка по сессии

тестировала чужие магазина на Opencart - работают нормально:
когда пользователь удаляет товар из корзины на одном устройстве, удаляется и на другом, и сразу

то есть они либо доработали, либо другая улучшенная версия
26 фев 2020 15:52#7
valerrie написал(а): ↑Версия 2.0.3.1

Как всегда недосмтрел

в 2.0 осталась структура храненения в сессиях

вот базовый код

code
                $this->db->query("UPDATE " . DB_PREFIX . "customer SET cart = '" . $this->db->escape(isset($this->session->data['cart']) ? serialize($this->session->data['cart']) : '') . "', wishlist = '" . $this->db->escape(isset($this->session->data['wishlist']) ? serialize($this->session->data['wishlist']) : '') . "', ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "' WHERE customer_id = '" . (int)$this->customer_id . "'");

Т.е. одна корзина для пользователя

для 2.0
26 фев 2020 19:08#8
Chukcha написал(а): ↑Как всегда недосмтрел

в 2.0 осталась структура храненения в сессиях

вот базовый код

code
                $this->db->query("UPDATE " . DB_PREFIX . "customer SET cart = '" . $this->db->escape(isset($this->session->data['cart']) ? serialize($this->session->data['cart']) : '') . "', wishlist = '" . $this->db->escape(isset($this->session->data['wishlist']) ? serialize($this->session->data['wishlist']) : '') . "', ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "' WHERE customer_id = '" . (int)$this->customer_id . "'");

Т.е. одна корзина для пользователя

для 2.0

То есть переходить на новую версию.. Понятно. Спасибо!
сообщения 1–8 из 8
Чтобы ответить, войдите или зарегистрируйтесь.

Похожие темы