Обнаружил если не баг, то проблему, в том числе она присутствует и на вашем демо магазине.
У меня она проявляется при интеграции с внешней платежной системой, через редирект.
Если добавить товар в корзину и попытаться его оплатить, то происходит редирект на страницу платежной системы. После того как там товар оплачен или не оплачен, платежная система отправляет клиента обратно через POST запрос с результатами оплаты. И после этого в cs cart меняется session_id и соответственно корзина пуста, пользователь разлогинен и т.д.
Как удалось выяснить, происходит этого из-за того, что POST запрос от платежной системы не содержит HTTP_USER_AGENT пользователя в headers.
Где и как можно отключить эту проверку или внести домен в исключения в движке?
1 лайк
О проблеме разлогинивания после оплаты тут много писали. Видимо, вы докопались до истины. Нужно переносить тему в баг трекер
В общем рабочее решение нашел на англоязычном форуме Cscart
https://forum.cs-cart.com/t/user-logout-after-payment-is-successful/2906/14
В файле
\app\Tygh\Web\Session.php
строку public $cookie_samesite = ‘lax’; изменить на public $cookie_samesite = 'none ';
3 лайка
Странно, после изменения на none я вообще залогиниться не могу, меняю обратно на lax все норм
Сложно сказать. Может версия PHP важна. Эта опция появилась в 7.3. У меня сайт крутится на 8.0.15. Проверил на разных браузерах, везде логинится и работает как надо.
Понял, спасибо, буду искать проблему, пхп то 8.0