Товары Magento 1.5.0.1 исчезают из корзины, когда пользователь входит в систему при оформлении заказа

#magento

#magento

Вопрос:

Вот краткое пошаговое описание того, что происходит.

  1. Пользователь добавляет товар в свою корзину / корзину и переходит к оформлению заказа. Они могут зарегистрироваться, оформить заказ в качестве гостя или войти в систему с существующей учетной записью.
  2. Клиент входит в систему с существующей учетной записью.
  3. Они попадают на страницу, информирующую их о том, что их корзина теперь пуста. Тем не менее, в правом верхнем углу ссылка на мою корзину все еще читается (1 товар) рядом с ней. Нажатие на эту ссылку просто загружает ту же страницу «Корзина пуста«.

Некоторые другие тесты, которые я провел, показали следующее: пользователь входит в систему, добавляет 3 товара в свою корзину, но выходит из системы перед тем, как перейти к оформлению заказа. Он возвращается на сайт позже и начинает новый заказ всего на 1 товар, выбирая логин при оформлении заказа. При этом в его корзине отображаются 3 товара из его предыдущего сеанса (его новый товар отсутствует), но рядом с ним отображается ссылка «Моя корзина» (4 товара).

Кто-нибудь знает, что может привести к исчезновению товаров из корзины во время перехода от не входа в систему к входу в систему?

Ответ №1:

Я уже сталкивался с этой проблемой раньше на серверах, на которых uhosin.session.encryptrunning патч suhosin. Я предполагаю, что вы используете безопасную корзину (если не должны), что, скорее всего, происходит здесь, так это то, что ваш сеанс теряется каждый раз, когда вы переключаетесь между http и https.

При переключении между HTTP и HTTPS ваш HTTP-сеанс не передается сеансу HTTPS. Это можно решить, поместив следующее в ваш файл .htaccess или php.ini:

 php_value suhosin.session.encrypt Off
  

Дайте мне знать, если это работает, или если у вас все еще та же проблема, не забудьте перезапустить свой сервер после внесения изменений.

Комментарии:

1. Привет, спасибо — я думаю, что то, что вы говорите о переключении между http и https, звучит правильно. Однако я добавил строку в свой htaccess, перезапустил службу, и у меня все еще возникает та же проблема. Я убедился, что базовый URL-адрес для http и https установлен в System> Config. Интересно, есть ли что-нибудь еще, что я мог бы проверить.

2. Да, убедитесь, что изменение действительно вступило в силу, в зависимости от настроек вашего сервера, изменения .htaccesss может быть недостаточно. Также попробуйте отключить suhosin.session.cryptdocroot = Выкл. Для проверки, включены или выключены настройки, создайте info.php скрипт в вашем корневом каталоге

3. Оказывается, для этого сайта нет https. Я раньше не обращал на это внимания, так как это почти готовый сайт, который я унаследовал от другого разработчика. Оправданием, по-видимому, является то, что процесс оплаты actaul будет проходить удаленно на защищенной странице paypal. Как ни странно, для всех базовых URL-адресов установлен http (не https) — я все еще сталкиваюсь с этой проблемой.

Ответ №2:

Я решил это.
Оказывается, был установлен модуль ZetaPrints OrderApproval, который переопределял часть страницы оформления заказа.
По-видимому, это было что-то, что было добавлено, решило, что оно больше не нужно, а затем забыто.
Я отключил его, очистил кеш и вернул свою старую страницу оформления заказа.
Все снова работает.

Ответ №3:

Для меня это был вопрос управления сеансом Cooke и установки значения моего домена Cookie как такового:

.mydomain.com

Да, с точкой впереди.