Как Shopkeeper сохраняет корзину?
На досуге решил заняться самообучением и покопаться в известных дополнений и посмотреть как они работают.
Настроил шопкипер, полез в исходники, и что то совсем не могу понять куда он сохраняет корзину пользователя (набранные товары до момента отправки заказа).
В кукисы и localstorage вроде не кладётся ID товара что в корзине, или я не нашёл.
На сервак идёт запрос к connector_fe.php с параметрами действия, ИД-товара, количества и какой то системный psn.
Дальше конструктор создаёт экземпляр шопкипера с параметром что был запрос и нужно его обработать.
Дальше вызов savePurchaseData
А вот дальше я теряюсь,
там заложены вызовы плагинов OnSHKaddProduct и OnSHKAfterAddProduct которые пользователь может определить (очень толково и гибко как по мне).
а куда реально сохраняется список товаров в корзине я понять не могу.
Инстинктивно чувствую что в переменную сессии, и там есть код
в общем если кто то просветит буду признателен.
Настроил шопкипер, полез в исходники, и что то совсем не могу понять куда он сохраняет корзину пользователя (набранные товары до момента отправки заказа).
В кукисы и localstorage вроде не кладётся ID товара что в корзине, или я не нашёл.
На сервак идёт запрос к connector_fe.php с параметрами действия, ИД-товара, количества и какой то системный psn.
Дальше конструктор создаёт экземпляр шопкипера с параметром что был запрос и нужно его обработать.
Дальше вызов savePurchaseData
А вот дальше я теряюсь,
там заложены вызовы плагинов OnSHKaddProduct и OnSHKAfterAddProduct которые пользователь может определить (очень толково и гибко как по мне).
а куда реально сохраняется список товаров в корзине я понять не могу.
Инстинктивно чувствую что в переменную сессии, и там есть код
intersect = $this->checkIntersect( $product );
f( $intersect === false ){
array_push( $this->data, $product );
}else{
$this->data[ $intersect ]['count'] += $product['count'];
}тоесть продукты пошли в переменную data, но как они потом в сессию перекочёвывают как то совсем не явно.в общем если кто то просветит буду признателен.
Техническая поддержка MODX
Сайт лежит, тормозит или остался без разработчика?
Переезд с MODX 2 на 3, PHP 7 на 8, скорость и безопасность. Поддержка со сроками и ответственностью, а не совет в чате.
Подробнее
Реклама
Комментарии: 8
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Амперсанд (&) обозначает связь переменных. И если мы меняем $this->data — значит мы меняем $_SESSION['shk_order']
P.S. то, что это называется Амперсанд, все время забываю :-) Суть знаю, а термин сам никак не запомнить. Старость не в радость.
просто очень не явная передача. поэтому и запутался.
Тут про это можно почитать:
php.net/manual/ru/language.references.return.php
P.S. Убила заметка от кого-то:
php.net/manual/ru/language.references.return.php#115745
Вообще мой совет лезть в Github и смотреть банальные исправления ошибок, т.к. там есть комментарии и т.п.