Добавить в корзинуПозвонить
Найти в Дзене

Корзина-призрак: мистические исчезновения товаров в Аспро

— Я только что добавил товар в корзину! Честное слово!
— Вы уверены? Мы ничего не находим... Знакомая история? Клиент клянется, что положил товар, а корзина пуста. Или еще веселее: добавил, прошел полкорзины, отвлекся на минуту, вернулся — а корзина девственно чиста, будто там ничего и не было. Полтергейст? Происки конкурентов? Козни домового? Спокойно. Никакой мистики. Просто корзина в Битрикс — штука хитрая. И сейчас мы расскажем, почему товары-призраки исчезают и как их приземлить обратно. Корзина неавторизованного пользователя — это почти как список покупок на салфетке. Она живет ровно до тех пор, пока вы не выбросите салфетку (или пока ветром не сдует). Технически корзина привязана к трем вещам:
• ID сессии (который живет, пока открыт браузер)
• Кукам (маленькие файлики, которые браузер периодически чистит)
• f_user (служебная сущность в базе, привязанная к сессии) Как только что-то из этой цепочки рвется — корзина растворяется в воздухе. Прямо как носок в стиральной машине. В нас
Оглавление

— Я только что добавил товар в корзину! Честное слово!
— Вы уверены? Мы ничего не находим...

Знакомая история? Клиент клянется, что положил товар, а корзина пуста. Или еще веселее: добавил, прошел полкорзины, отвлекся на минуту, вернулся — а корзина девственно чиста, будто там ничего и не было.

Полтергейст? Происки конкурентов? Козни домового?

Спокойно. Никакой мистики. Просто корзина в Битрикс — штука хитрая. И сейчас мы расскажем, почему товары-призраки исчезают и как их приземлить обратно.

Анатомия корзины: как она устроена

Корзина неавторизованного пользователя — это почти как список покупок на салфетке. Она живет ровно до тех пор, пока вы не выбросите салфетку (или пока ветром не сдует).

Технически корзина привязана к трем вещам:
• ID сессии (который живет, пока открыт браузер)
• Кукам (маленькие файлики, которые браузер периодически чистит)
• f_user (служебная сущность в базе, привязанная к сессии)

Как только что-то из этой цепочки рвется — корзина растворяется в воздухе. Прямо как носок в стиральной машине.

7 причин, почему корзина становится призраком

1. Сессия умерла раньше времени

В настройках PHP живет параметр session.gc_maxlifetime. Если он маленький (например, 1440 секунд — это 24 минуты), то ровно через 24 минуты после захода на сайт корзина пользователя... исчезнет. Даже если он активно выбирает товары.

Лечение: Идти в php.ini или .htaccess и увеличивать время жизни сессии. 86400 секунд (сутки) — норм.

2. Куки сказали «прощай»

Современные браузеры любят «защищать» пользователей и чистить куки. Особенно если на сайте что-то не так с настройками SameSite, Secure или HttpOnly.

Лечение: Проверить, что куки настроены правильно и не слетают при переходе между страницами.

3. Композитный кеш съел корзину

Композит в Битрикс — штука полезная для скорости. Но иногда он кеширует страницы с корзиной так, что корзина на закешированной странице... старая. Или пустая. Или вообще не та.

Лечение: Настроить динамические зоны (Dynamic Zones) для корзины, чтобы она не кешировалась.

4. VPN включился — корзина отключилась

Пользователь зашел на сайт через московский IP, положил товары в корзину, потом включил VPN для проверки почты — и всё. IP сменился, сессия умерла, корзина испарилась.

Лечение: Никакое. Это особенности протокола HTTP. Можно только предупреждать пользователей, но кто ж их слушает.

5. Балансировщик отправил на другой сервер

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

Лечение: Хранить сессии в Redis или Memcached, доступном всем серверам.

6. Ручки шаблона криво написали

Иногда разработчики в шаблоне Аспро забывают передавать параметры сессии или ломают ID корзины в шаблоне компонента.

Лечение: Искать ошибки в кастомных файлах шаблона.

7. Модуль «Очистка корзины» перестарался

Если стоит модуль, который чистит старые корзины, и у него неправильные настройки — он может удалять корзины, которые еще нужны.

Лечение: Проверить настройки модулей, связанных с корзиной.

Как найти призрака: диагностика

Прежде чем вызывать экзорциста, сделайте три простых шага:

  1. Зайдите в админку → «Магазин» → «Корзины покупателей». Посмотрите, есть ли там корзина пользователя, который жалуется. Если есть — проблема на его стороне (VPN, куки). Если нет — проблема на вашей.
  2. Проверьте время жизни сессии через phpinfo().
  3. Отключите композит временно и попросите пользователя повторить. Если корзина перестала исчезать — проблема в композите.

Профилактика: правила гигиены корзины

Чтобы корзина не превращалась в призрака, соблюдайте простые правила:

Выставьте адекватное время жизни сессии (минимум 86400 секунд)

Настройте композит с динамическими зонами для корзины

Если сайт на нескольких серверах — храните сессии в Redis

При любых подозрениях на баг — смотрите в сторону недавних обновлений (они любят ломать корзину)

Не используйте корзину как место для хранения снаряжения — она для этого не предназначена

Когда вызывать профессионалов

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

Мы с призраками на короткой ноге. Проведем экзорцизм корзины, продиагностируем сессии, пропишем правильные настройки и вернем товары на место. Клиенты снова смогут покупать, а корзина перестанет пугать пользователей по ночам.

☎️ +7 (342) 200-85-19

Звоните, пока корзина не утащила последний заказ в потусторонний мир.

Нужна помощь с настройкой корзины? Если вы столкнулись с проблемой исчезающих товаров или хотите провести аудит текущих настроек, наши специалисты готовы помочь. Проведем диагностику, найдем причину и вернем корзину к жизни.

Свяжемся с вами в течение 24 часов для уточнения деталей.