CartKeeper - хранение и управление корзинами покупателей

Раздел в магазине: https://liveopencart.ru/opencart-moduli ... uli/zakaz/
Аватара пользователя
AlexDW
Разработчик дополнений
Сообщения: 192
Зарегистрирован: 13.03.2022
Откуда: Екатеринбург
Мои дополнения: alexdw
Поблагодарил: 39 раз
Спасибо: 69 раз

CartKeeper - хранение и управление корзинами покупателей

Непрочитанное сообщение AlexDW »

Стандартный механизм движка Opencart хранит товары незалогиненных пользователей (гостей) только в течении 1 часа с момента добавления в корзину и автоматически удаляет их потом.

Cart Keeper избавляет от проблем исчезновения товаров / очистки корзин незарегистрированных покупателей и позволяет хранить гостевые корзины наравне с корзинами зарегистрированных покупателей, с возможностью просмотра и управления имеющимися корзинами.

Также модуль добавляет функционал Поделиться корзиной (Расшаренные корзины), дающий возможность делиться содержимым корзины с кем угодно, просто отправив ссылку на нее.

Изображение

Модуль состоит из трех частей, основная часть (настройки) меняет механизм хранения и работы с корзинами покупателей, дополнительные - добавляют в администраторской части списки текущих корзин покупателей и корзин, которыми поделились, с возможностью поиска/фильтрации и их групповой обработки.

Корзина:
сохранение корзин гостей / незалогиненных пользователей
показывает товары в корзине вне зависимости от того, залогинен пользователь или нет
если добавить товары в корзину под логином и разлогиниться - содержимое корзины по-прежнему будет показано
не зависит от сессий и их сроков хранения
для идентификации пользователя используются cookie

Список корзин:
просмотр списка текущих корзин покупателей (в том числе незарегистрированных) и их товаров
фильтрация и поиск корзин с возможностью сортировки
- по имени/фамилии клиента или их части
- по идентификатору корзины
- по статусам пользователей (гость/зарегистрированный)
- по количесству товаров в корзине (при вводе показывает корзины с равным или большим количеством товаров)
- по дате добавления корзины, в том числе за определенный период (начало-конец)
- по дополнительной информации о клиентах (ip, user_agent)

групповая обработка корзин - возможность удалить выбранные корзины или обновить их сроки хранения
быстрая ссылка для перехода к просмотру / редактированию данных зарегистрированного покупателя

Расшаренные корзины:
возможность поделиться содержимым корзины по ссылке
- при переходе по такой ссылке в корзину будет добавлен тот же набор товаров, какой был на момент ее создания

отдельный список для просмотра и управления расшаренными корзинами
содержимое расшаренных корзин хранится в БД независимо от текущих корзин пользователей

совместим с ocStore / OCSHOP - Opencart.pro / Opencart версий 210x - 303x

Страница модуля
Аватара пользователя
AlexDW
Разработчик дополнений
Сообщения: 192
Зарегистрирован: 13.03.2022
Откуда: Екатеринбург
Мои дополнения: alexdw
Поблагодарил: 39 раз
Спасибо: 69 раз

Непрочитанное сообщение AlexDW »

Про особенности работы корзины в Opencart

логика работы корзины в движке Opencart далека от совершенства и имеет серьезный недостаток:
при загрузке любой страницы сайта происходит многократное обращение к корзине и запросы данных о товарах в ней

беда в том, что эти данные не кэшируются и запрашиваются каждый раз заново, даже если содержимое корзины не менялось

и при добавлении товаров в корзину число запросов на ее обработку (а соответственно и нагрузка на сервер) возрастает в арифметической прогрессии (а если у товаров еще и опции - почти в геометрической)
то есть, чем больше в корзине товарных позиций (т.е. строк с разными товарами) - тем сильней будет "тупить" сайт

когда в корзине несколько позиций - это не так заметно
но если у вас оптовое направление и/или покупатели часто кладут в корзину больше десятка разных товаров - это становится проблемой

специально для решения этой проблемы был создан отдельный аддон Cart Queries Cache (входит в архив модуля)

Особенности:
- актуальное решение для движков версий 210х-303х
- кэширует товары корзины, снижая количество запросов к ней и нагрузку на сайт
- требует наличия установленного модуля CartKeeper

Обратите внимание:
- аддон устанавливается отдельно как дополнение для CartKeeper, сам модуль переустанавливать не нужно
- если были проблемы совместимости с другими модулями и вносились изменения/патчи - аддон должен выполняться после всех патчей, в самом конце
- если у вас уже используется какое-то решение (в виде модуля или правок) для кеширования запросов корзины - аддон устанавливать не нужно


Результаты тестирования:
на примере чистого движка Opencart 3020, с отключенным seo-url, отключенным подсчетом товаров в меню категорий и дефолтном шаблоне

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

1. с пустой корзиной без товаров
Изображение
итого, 72 запроса

теперь добавим товары, в корзине 6 товарных позиций, у одной из них 8 опций
Спойлер
Изображение

2. стандартно, без кеширования запросов корзины (в корзине 6 товарных позиций, у одной из них 8 опций)
Изображение
итого, с 72 запросов их количество выросло до 307

3. с аддоном Cart Queries Cache т.е. с кешированием запросов корзины (в корзине 6 товарных позиций, у одной из них 8 опций)
Изображение
итог - количество запросов при использовании кеширования стало даже ниже, чем с пустой корзиной без него

выводы очевидны
Последний раз редактировалось AlexDW 07 май 2022, 14:39, всего редактировалось 1 раз.
Аватара пользователя
AlexDW
Разработчик дополнений
Сообщения: 192
Зарегистрирован: 13.03.2022
Откуда: Екатеринбург
Мои дополнения: alexdw
Поблагодарил: 39 раз
Спасибо: 69 раз

Непрочитанное сообщение AlexDW »

к вопросу о периодической "произвольной" очистке корзин при использовании CartKeeper

не все пользователи понимают разницу между кнопками "обновить кеш модификаторов" и "очистить кеш модификаторов"
некоторые перед обновлением кеша модификаторов - сначала жмут на очистку кеша

в этом и причина "загадочной" очистки корзин

а разница в следующем:
1. при нажатии кнопки обновить кеш (иконка с круговыми стрелками)
Изображение
кеш модификаторов пересоздается в безопасном режиме, т.е. грубо говоря задействованные модификаторы не прекращают свою работу

2. если же нажать очистить/сбросить кеш (иконка с ластиком)
Изображение
все файлы из папки кеша модификаторов будут удалены
т.е. ни один из модификаторов не будет задействован
, пока не нажать кнопку обновления кеша модификаторов

специфика движка по работе с корзинами такова, что это автоматически приведет к работе стандартного механизма и очистке гостевых корзин старше 1 часа
вне зависимости от того, насколько быстро потом нажать кнопку обновления кеша

не используйте кнопку сброса/очистки кеша модификаторов вообще
6yka
Сообщения: 2
Зарегистрирован: 20.09.2022

Re: CartKeeper - хранение и управление корзинами покупателей

Непрочитанное сообщение 6yka »

Добрый день!

Можно ли выводить содержимое предлагаемой корзины?
Ищем модуль для предоставления ком.предложений клиентам в виде подборки товаров. 
Аватара пользователя
AlexDW
Разработчик дополнений
Сообщения: 192
Зарегистрирован: 13.03.2022
Откуда: Екатеринбург
Мои дополнения: alexdw
Поблагодарил: 39 раз
Спасибо: 69 раз

Re: CartKeeper - хранение и управление корзинами покупателей

Непрочитанное сообщение AlexDW »

Здравствуйте

в теории, можете использовать функционал поделиться корзиной
тогда при переходе по ссылке сформированный пакет товаров будет добавлен в корзину автоматически
плюс такого подхода в том, что потенциальный клиент будет на вашем сайте "вживую"
пример

если же речь про создание файлов типа excel / pdf и тп - нет, у модуля все же другое назначение
посмотрите такой
https://liveopencart.ru/opencart-moduli ... -sayta-2-0
 
6yka
Сообщения: 2
Зарегистрирован: 20.09.2022

Re: CartKeeper - хранение и управление корзинами покупателей

Непрочитанное сообщение 6yka »

Нет, речь идет о странице, где будет отображен список товаров, который составил менеджер. И чтобы этот список видел клиент без добавления к себе в корзину. Затем клиент уже может добавить себе, что захочет 
Аватара пользователя
AlexDW
Разработчик дополнений
Сообщения: 192
Зарегистрирован: 13.03.2022
Откуда: Екатеринбург
Мои дополнения: alexdw
Поблагодарил: 39 раз
Спасибо: 69 раз

Re: CartKeeper - хранение и управление корзинами покупателей

Непрочитанное сообщение AlexDW »

таких не видел
Аватара пользователя
AlexDW
Разработчик дополнений
Сообщения: 192
Зарегистрирован: 13.03.2022
Откуда: Екатеринбург
Мои дополнения: alexdw
Поблагодарил: 39 раз
Спасибо: 69 раз

Re: CartKeeper - хранение и управление корзинами покупателей

Непрочитанное сообщение AlexDW »

Модуль обновлен до версии 1.40
- добавлен QR код при создании ссылки на корзину (поделиться корзиной)
Спойлер
Изображение

- добавлено клонирование корзин
    содержимое клонируемой корзины добавляется к текущей корзине магазина
Спойлер
Изображение

- добавлена возможность смены владельца корзины
    если у выбранного пользователя уже есть корзина - они объединяются
Спойлер
Изображение

комбинируя оба способа можно редактировать корзины покупателей без входа в их аккаунт

- возможность прямого добавления товаров по ссылке расшаренной корзины, минуя страницу подтверждения / выбора
- поддержка кук samesite для кросс-доменной передачи и корректной работы со сторонними сайтами в современных браузерах

- добавлены скрипты для запуска через cron
    удаление старых корзин
    оптимизация таблиц InnoDB корзины и модуля

- удаление лишних данных модуля в смежной таблице при создании заказа / очистке корзины
- исправлен баг с отображением товаров корзины в админке при использовании мультимагазина

- подсветка текущей корзины магазина в списке корзин
- настройка лимита количества корзин на странице для показа в списках
- улучшено кеширование корзин (аддон Cart Query Cache)
- улучшена совместимость с модулем JetCache (аддон Fix JetCache)
- улучшена совместимость с другими дополнениями

- поддержка PHP 7.4 и выше
- улучшенный механизм лицензирования
- прочие правки и улучшения
Аватара пользователя
AlexDW
Разработчик дополнений
Сообщения: 192
Зарегистрирован: 13.03.2022
Откуда: Екатеринбург
Мои дополнения: alexdw
Поблагодарил: 39 раз
Спасибо: 69 раз

Re: CartKeeper - хранение и управление корзинами покупателей

Непрочитанное сообщение AlexDW »

Модуль обновлен до версии 1.41
Добавлен функционал брошенных корзин:
Спойлер
Изображение

- возможность отправки писем зарегистрированным пользователям о брошенных корзинах
- рассылка писем вручную из админки или в автоматическом режиме через cron
- раздельные шаблоны писем для каждого языка, с поддержкой HTML и шорткодов
- настраиваемый блок товаров в письме
- возможность мультиязычной рассылки на нескольких языках (для движков 23x и выше)

- фильтры по рассылке и ее датам в списке корзин

- поддержка автозаполнения в поле поиска по имени покупателя в списках корзин модуля
    поиск покупателя по части имени по-прежнему доступен

- исправлен баг с отображением товаров в списках корзин при использовании мультимагазина для движков 21х и 3х
Ответить