Сбрасывание корзины все предметы / сеанс корзины очистки

magento.stackexchange https://magento.stackexchange.com/questions/385

  •  16-10-2019
  •  | 
  •  

Вопрос

Сайт, которым я управляю внезапно (потенциально 2 недели назад - от статистики GA, и сообщил только сейчас) начал сбрасывать элементы тележки, когда вы просматриваете корзину, или отправляетесь на оформление заказа.

Верхняя «мини-капля» показывает элементы в раскрывающемся списке, пока вы не зайдете в корзину/оформление заказа, а затем вы окажетесь в тележек, с «в вашей тележке нет предметов».

Кажется проблемой сессии. Это не происходит при регистрации.

Удалили все параметры проверки сеанса в «System-> Web-> Настройках проверки сеанса» и включил тот, который написал «Использовать SID на Frontend». Это действительно решило проблему, но, поскольку эти настройки не изменились за последние 3 месяца, я знаю, что существует некоторая основная проблема.

Затем это указывает на вопрос о боли в проблеме? Каким-то образом сайт теряет то, что он находится в магазине, и сбрасывает данные сеанса/корзины? Может быть, какой -то наблюдатель/событие/переписать каким -то модулем.

Я не могу повторить проблему на локальном DEV или на сервере UAT. DB на UAT - это 2 недели, датированные в прямом эфире, так что это может указывать на проблему/настройку DB?

Вещи, которые я пытаюсь: я занят тем, что вытаскиваю текущий живой DB в UAT, чтобы получить это в курсе, чтобы увидеть, смогу ли я повторить проблему там. будет обновлять, когда это будет сделано.

Как только я смогу повторить проблему в неживой области, я систематически отключаю модули, посмотрите, что что-то бормовает с идентификаторами магазина (начиная с Magemonkey и Sweetttooth, так как они были обновлены 2 недели назад)

Вопрос - что еще я могу попробовать? Любые указатели на то, где я могу ударить некоторые точки останова, и шагнуть код, чтобы увидеть, смогу ли я отследить эту проблему?

Нет никаких дополнительных систем кэша, таких как вариант или установленные Memcache. Сервер - это стандартная установка CPanel. Тестирование на UAT я отключил все кеш.

Дальнейшее обновление: может показаться, что когда я доставляю тему по умолчанию, я не могу воспроизвести. Я систематически перемещаю папки переопределения темы назад.

Я также использовал GIT в код возвращения, и проблема остается с каждым хэшем.

Обновление: было много времени с тех пор, как у меня было время потратить на это. Высокая рабочая нагрузка.

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

Поддержка Magento предположила, что проблема связана с модулем сладкого зуба, расширяющим классы сеансов, но я отключил этот модуль, и проблема осталась.

Будет обновить, когда я получу больше результатов.

Это было полезно?

Решение

В наших коробках CPanel отсутствуют активы, обслуживающие всю страницу Magento.

по умолчанию Cpanel ErrorDocument 404 /404.shtml но /404.shtml не существует в корне документа Magento, поэтому .htaccess снова выполняется и перенаправляет /404.shtml к index.php (с помощью mod_rewrite).

По умолчанию Magento .htaccess должен четко указать 404, 500 и другие обработчики ошибок явно.

Чтобы исправить этот Beahviour, мы добавили следующее в нашем .htaccess:

ErrorDocument 404 /errors/404.php

Наверное, мы также должны добавить 500 -е:

ErrorDocument 500 /errors/500.php

Другие советы

Вы используете лак на сервере?

Мы видели ряд реализаций, где люди разделяют файл cookie, прежде чем получить статический контент (Images/CSS/JS) - поэтому, если Image/JS/CSS не существует; Он загружает начальную загрузку Magento и 404 - это полностью раздевает печенье и сеанс сайта.

Одна проблема может заключаться в том, что Magento не сохраняет данные сеанса при переключении от Http к Https. Анкет Убедитесь, что необходимые настройки для SSL и т. Д. Настроены должным образом.

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

Чтобы решить эту проблему:

Измените настройки проверки сеанса в администраторе Magento, найденном под Система> Конфигурации> Интернет, чтобы «нет» во всем, кроме «Подтвердить http_user_agent. " После этого иди Система> Управление кэшем и обновить кэш конфигурации, чтобы применить изменения.

Мы наблюдали эту проблему, когда на странице отсутствует изображение, особенно если изображение отсутствует на всех страницах, например, в заголовке или нижнем колонтитуле. Похоже, что 404 страница, которую Magento или WebServer возвращает печенье, разрывает печенье Frontend Session, что приводит к потере сеанса. Это в нашем списке вещей, которые нужно исправить, но обходной путь состоит в том, чтобы убедиться, что нет отсутствующих изображений ...

Это может быть проблема с датой cookie/server. Первое, что можно проверить, это заголовки cookie. Осмотрите заголовки (используя что -то вроде Firebug, Charles или Fiddler).

Вы должны увидеть что -то вроде следующего:

Set-Cookie  frontend=9dhtlgf1qmo6loqksvvmqjd625; expires=Thu, 31-Jan-2013 05:01:13 GMT; path=/; domain=.foo.com; HttpOnly

Если значение для поля истекает в прошлом, то шансы на то, что время на вашем сервере неверно. Это может произойти, когда такие услуги, как NTPD, не могут начать. Если это так, проверьте время на сервере. Если время выключено, проверьте состояние NTPD (или какую -либо службу Daemon, чтобы сохранить время сервера).

PHP Сборка мусора Прекрасно очищает сеансы. Я сам видел это на Большой трафик сайтов.

Некоторые советы по устранению неполадок:

  • Сколько лет твоему старшему сеансу? Выяснить: ls -laht [mageroot]/var/session/ | tail - Если у вас нет сессий дольше, чем пару недель или около того, сборы мусора могут быть виноваты
  • Переместите сеансы в другой хранилище данных временно - например, MySQL или Memcached. Проблема решена?
  • Это происходит на сервере разработки? Если нет, а все равно, это может быть, что уровни трафика вызывают преждевременное истечение сессии или сбор мусора

Я исправил это одним из двух способов:

  1. В вашем .htaccess, добавьте php_value session.gc_maxlifetime 2592000
  2. В вашем php.ini Set session.gc_maxlifetime

Больше чтения: http://www.php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime

У нас была похожая проблема. В нашем случае это была конфигурация лака (например, Бен Лессинани - предполагала). Мы настроили наш лак для Cache 404s на 120 -е годы, чтобы наши серверы не были сильно забиты, когда на странице появляется ошибка 404.

Таким образом, проблема в 404S Magento отвечала с помощью Set-Cookie в заголовке для файлов cookie frontend и frontend_cid, которые сбрасывают сеанс клиента.

Наше решение для этого состоит в том, чтобы лишить любые сетки для 404 ответов,

unset beresp.http.set-cookie;

Глупые вещи, которые разбили для меня сеансы PHP в прошлом и, возможно, стоит проверить:

  • полный диск
  • Неточное время сервера
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top