+

MODX Revo | ShopKeeper3 > сохранение корзины в БД при закрытии вкладки, разлогировании

10.02.2019 17:09
11.02.2019 04:02
359

/* Превью

Ну пдц, начинаю понимать почему советуют использовать 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`)
    )

Код плагина

События для плагина