MODX Revo | ShopKeeper3 > сохранение корзины в БД при закрытии вкладки, разлогировании
/* Превью
Ну пдц, начинаю понимать почему советуют использовать miniShop2, нет такого элементарного функционала, сначала подумал что ошибка какая то на сайте..
*/
В общем такие дела, заметил что если ты в магазине на ShopKeeper набиваешь товары в заказ, потом авторизуешься на сайте и закрываешь браузер, то когда заходишь потом, ты не залогинен еще и корзина пуста, еще к тому же если ты залогинился с другого браузера или устройства то состав корзины будет отличаться.. Думал баг, оказалось нужно допиливать функционал.
Ниже плагин, который позволяет хранить корзину клиента в базе данных и сохранять её при разлогировании. При авторизации он суммирует корзину которая была до авторизации с той что сохранена в аккаунте.
За основу взял пример для реализации на modx evo написанный человеком под ником Grinyaha на modx.im, немного допиленный под Revo пользователем dunai на modx.ru, но в итоге всё переменял :(
Правки в базе
Добавляем таблицу users_cart со столбцами id параметры INT NOT NULL AUTO_INCREMENT, user_id тип INT и cart_data тип LONGTEXT. Там будут храниться корзины пользователей.
Ну или просто юзаем SQL код
CREATE TABLE
`users_cart` (
`id` INT NOT NULL AUTO_INCREMENT,
`user_id` INT,
`cart_data` LONGTEXT,
PRIMARY KEY(`id`)
)
Код плагина
События для плагина
- OnSHKaddProduct
- OnSHKAfterRemoveProduct
- OnSHKcalcTotalPrice
- OnSHKsaveOrder
- OnSHKAfterClearCart
- OnWebLogin
Комментарии ()
Написать комментарий