CartKeeper - хранение и управление корзинами покупателей
- AlexDW
- Разработчик дополнений
- Сообщения: 194
- Зарегистрирован: 13.03.2022
- Откуда: Екатеринбург
- Мои дополнения: alexdw
- Поблагодарил: 44 раз
- Спасибо: 72 раз
CartKeeper - хранение и управление корзинами покупателей
Стандартный механизм движка Opencart хранит товары незалогиненных пользователей (гостей) только в течении 1 часа с момента добавления в корзину и автоматически удаляет их потом.
Cart Keeper избавляет от проблем исчезновения товаров / очистки корзин незарегистрированных покупателей и позволяет хранить гостевые корзины наравне с корзинами зарегистрированных покупателей, с возможностью просмотра и управления имеющимися корзинами.
Также модуль добавляет функционал Поделиться корзиной (Расшаренные корзины), дающий возможность делиться содержимым корзины с кем угодно, просто отправив ссылку на нее.
Модуль состоит из трех частей, основная часть (настройки) меняет механизм хранения и работы с корзинами покупателей, дополнительные - добавляют в администраторской части списки текущих корзин покупателей и корзин, которыми поделились, с возможностью поиска/фильтрации и их групповой обработки.
Корзина:
сохранение корзин гостей / незалогиненных пользователей
показывает товары в корзине вне зависимости от того, залогинен пользователь или нет
если добавить товары в корзину под логином и разлогиниться - содержимое корзины по-прежнему будет показано
не зависит от сессий и их сроков хранения
для идентификации пользователя используются cookie
Список корзин:
просмотр списка текущих корзин покупателей (в том числе незарегистрированных) и их товаров
фильтрация и поиск корзин с возможностью сортировки
- по имени/фамилии клиента или их части
- по идентификатору корзины
- по статусам пользователей (гость/зарегистрированный)
- по количесству товаров в корзине (при вводе показывает корзины с равным или большим количеством товаров)
- по дате добавления корзины, в том числе за определенный период (начало-конец)
- по дополнительной информации о клиентах (ip, user_agent)
групповая обработка корзин - возможность удалить выбранные корзины или обновить их сроки хранения
быстрая ссылка для перехода к просмотру / редактированию данных зарегистрированного покупателя
Расшаренные корзины:
возможность поделиться содержимым корзины по ссылке
- при переходе по такой ссылке в корзину будет добавлен тот же набор товаров, какой был на момент ее создания
отдельный список для просмотра и управления расшаренными корзинами
содержимое расшаренных корзин хранится в БД независимо от текущих корзин пользователей
совместим с ocStore / OCSHOP - Opencart.pro / Opencart версий 210x - 303x
Страница модуля
Cart Keeper избавляет от проблем исчезновения товаров / очистки корзин незарегистрированных покупателей и позволяет хранить гостевые корзины наравне с корзинами зарегистрированных покупателей, с возможностью просмотра и управления имеющимися корзинами.
Также модуль добавляет функционал Поделиться корзиной (Расшаренные корзины), дающий возможность делиться содержимым корзины с кем угодно, просто отправив ссылку на нее.
Модуль состоит из трех частей, основная часть (настройки) меняет механизм хранения и работы с корзинами покупателей, дополнительные - добавляют в администраторской части списки текущих корзин покупателей и корзин, которыми поделились, с возможностью поиска/фильтрации и их групповой обработки.
Корзина:
сохранение корзин гостей / незалогиненных пользователей
показывает товары в корзине вне зависимости от того, залогинен пользователь или нет
если добавить товары в корзину под логином и разлогиниться - содержимое корзины по-прежнему будет показано
не зависит от сессий и их сроков хранения
для идентификации пользователя используются cookie
Список корзин:
просмотр списка текущих корзин покупателей (в том числе незарегистрированных) и их товаров
фильтрация и поиск корзин с возможностью сортировки
- по имени/фамилии клиента или их части
- по идентификатору корзины
- по статусам пользователей (гость/зарегистрированный)
- по количесству товаров в корзине (при вводе показывает корзины с равным или большим количеством товаров)
- по дате добавления корзины, в том числе за определенный период (начало-конец)
- по дополнительной информации о клиентах (ip, user_agent)
групповая обработка корзин - возможность удалить выбранные корзины или обновить их сроки хранения
быстрая ссылка для перехода к просмотру / редактированию данных зарегистрированного покупателя
Расшаренные корзины:
возможность поделиться содержимым корзины по ссылке
- при переходе по такой ссылке в корзину будет добавлен тот же набор товаров, какой был на момент ее создания
отдельный список для просмотра и управления расшаренными корзинами
содержимое расшаренных корзин хранится в БД независимо от текущих корзин пользователей
совместим с ocStore / OCSHOP - Opencart.pro / Opencart версий 210x - 303x
Страница модуля
- AlexDW
- Разработчик дополнений
- Сообщения: 194
- Зарегистрирован: 13.03.2022
- Откуда: Екатеринбург
- Мои дополнения: alexdw
- Поблагодарил: 44 раз
- Спасибо: 72 раз
Про особенности работы корзины в 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 опций)
итог - количество запросов при использовании кеширования стало даже ниже, чем с пустой корзиной без него
выводы очевидны
логика работы корзины в движке 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
- Разработчик дополнений
- Сообщения: 194
- Зарегистрирован: 13.03.2022
- Откуда: Екатеринбург
- Мои дополнения: alexdw
- Поблагодарил: 44 раз
- Спасибо: 72 раз
к вопросу о периодической "произвольной" очистке корзин при использовании CartKeeper
не все пользователи понимают разницу между кнопками "обновить кеш модификаторов" и "очистить кеш модификаторов"
некоторые перед обновлением кеша модификаторов - сначала жмут на очистку кеша
в этом и причина "загадочной" очистки корзин
а разница в следующем:
1. при нажатии кнопки обновить кеш (иконка с круговыми стрелками)
кеш модификаторов пересоздается в безопасном режиме, т.е. грубо говоря задействованные модификаторы не прекращают свою работу
2. если же нажать очистить/сбросить кеш (иконка с ластиком)
все файлы из папки кеша модификаторов будут удалены
т.е. ни один из модификаторов не будет задействован, пока не нажать кнопку обновления кеша модификаторов
специфика движка по работе с корзинами такова, что это автоматически приведет к работе стандартного механизма и очистке гостевых корзин старше 1 часа
вне зависимости от того, насколько быстро потом нажать кнопку обновления кеша
не используйте кнопку сброса/очистки кеша модификаторов вообще
не все пользователи понимают разницу между кнопками "обновить кеш модификаторов" и "очистить кеш модификаторов"
некоторые перед обновлением кеша модификаторов - сначала жмут на очистку кеша
в этом и причина "загадочной" очистки корзин
а разница в следующем:
1. при нажатии кнопки обновить кеш (иконка с круговыми стрелками)
кеш модификаторов пересоздается в безопасном режиме, т.е. грубо говоря задействованные модификаторы не прекращают свою работу
2. если же нажать очистить/сбросить кеш (иконка с ластиком)
все файлы из папки кеша модификаторов будут удалены
т.е. ни один из модификаторов не будет задействован, пока не нажать кнопку обновления кеша модификаторов
специфика движка по работе с корзинами такова, что это автоматически приведет к работе стандартного механизма и очистке гостевых корзин старше 1 часа
вне зависимости от того, насколько быстро потом нажать кнопку обновления кеша
не используйте кнопку сброса/очистки кеша модификаторов вообще
Re: CartKeeper - хранение и управление корзинами покупателей
Добрый день!
Можно ли выводить содержимое предлагаемой корзины?
Ищем модуль для предоставления ком.предложений клиентам в виде подборки товаров.
Можно ли выводить содержимое предлагаемой корзины?
Ищем модуль для предоставления ком.предложений клиентам в виде подборки товаров.
- AlexDW
- Разработчик дополнений
- Сообщения: 194
- Зарегистрирован: 13.03.2022
- Откуда: Екатеринбург
- Мои дополнения: alexdw
- Поблагодарил: 44 раз
- Спасибо: 72 раз
Re: CartKeeper - хранение и управление корзинами покупателей
Здравствуйте
в теории, можете использовать функционал поделиться корзиной
тогда при переходе по ссылке сформированный пакет товаров будет добавлен в корзину автоматически
плюс такого подхода в том, что потенциальный клиент будет на вашем сайте "вживую"
пример
если же речь про создание файлов типа excel / pdf и тп - нет, у модуля все же другое назначение
посмотрите такой
https://liveopencart.ru/opencart-moduli ... -sayta-2-0
в теории, можете использовать функционал поделиться корзиной
тогда при переходе по ссылке сформированный пакет товаров будет добавлен в корзину автоматически
плюс такого подхода в том, что потенциальный клиент будет на вашем сайте "вживую"
пример
если же речь про создание файлов типа excel / pdf и тп - нет, у модуля все же другое назначение
посмотрите такой
https://liveopencart.ru/opencart-moduli ... -sayta-2-0
Re: CartKeeper - хранение и управление корзинами покупателей
Нет, речь идет о странице, где будет отображен список товаров, который составил менеджер. И чтобы этот список видел клиент без добавления к себе в корзину. Затем клиент уже может добавить себе, что захочет
- AlexDW
- Разработчик дополнений
- Сообщения: 194
- Зарегистрирован: 13.03.2022
- Откуда: Екатеринбург
- Мои дополнения: alexdw
- Поблагодарил: 44 раз
- Спасибо: 72 раз
Re: CartKeeper - хранение и управление корзинами покупателей
Модуль обновлен до версии 1.40
- добавлен QR код при создании ссылки на корзину (поделиться корзиной)
- добавлено клонирование корзин
содержимое клонируемой корзины добавляется к текущей корзине магазина
- добавлена возможность смены владельца корзины
если у выбранного пользователя уже есть корзина - они объединяются
комбинируя оба способа можно редактировать корзины покупателей без входа в их аккаунт
- возможность прямого добавления товаров по ссылке расшаренной корзины, минуя страницу подтверждения / выбора
- поддержка кук samesite для кросс-доменной передачи и корректной работы со сторонними сайтами в современных браузерах
- добавлены скрипты для запуска через cron
удаление старых корзин
оптимизация таблиц InnoDB корзины и модуля
- удаление лишних данных модуля в смежной таблице при создании заказа / очистке корзины
- исправлен баг с отображением товаров корзины в админке при использовании мультимагазина
- подсветка текущей корзины магазина в списке корзин
- настройка лимита количества корзин на странице для показа в списках
- улучшено кеширование корзин (аддон Cart Query Cache)
- улучшена совместимость с модулем JetCache (аддон Fix JetCache)
- улучшена совместимость с другими дополнениями
- поддержка PHP 7.4 и выше
- улучшенный механизм лицензирования
- прочие правки и улучшения
- добавлен QR код при создании ссылки на корзину (поделиться корзиной)
Спойлер
- добавлено клонирование корзин
содержимое клонируемой корзины добавляется к текущей корзине магазина
Спойлер
- добавлена возможность смены владельца корзины
если у выбранного пользователя уже есть корзина - они объединяются
Спойлер
комбинируя оба способа можно редактировать корзины покупателей без входа в их аккаунт
- возможность прямого добавления товаров по ссылке расшаренной корзины, минуя страницу подтверждения / выбора
- поддержка кук samesite для кросс-доменной передачи и корректной работы со сторонними сайтами в современных браузерах
- добавлены скрипты для запуска через cron
удаление старых корзин
оптимизация таблиц InnoDB корзины и модуля
- удаление лишних данных модуля в смежной таблице при создании заказа / очистке корзины
- исправлен баг с отображением товаров корзины в админке при использовании мультимагазина
- подсветка текущей корзины магазина в списке корзин
- настройка лимита количества корзин на странице для показа в списках
- улучшено кеширование корзин (аддон Cart Query Cache)
- улучшена совместимость с модулем JetCache (аддон Fix JetCache)
- улучшена совместимость с другими дополнениями
- поддержка PHP 7.4 и выше
- улучшенный механизм лицензирования
- прочие правки и улучшения
- AlexDW
- Разработчик дополнений
- Сообщения: 194
- Зарегистрирован: 13.03.2022
- Откуда: Екатеринбург
- Мои дополнения: alexdw
- Поблагодарил: 44 раз
- Спасибо: 72 раз
Re: CartKeeper - хранение и управление корзинами покупателей
Модуль обновлен до версии 1.41
Добавлен функционал брошенных корзин:
- возможность отправки писем зарегистрированным пользователям о брошенных корзинах
- рассылка писем вручную из админки или в автоматическом режиме через cron
- раздельные шаблоны писем для каждого языка, с поддержкой HTML и шорткодов
- настраиваемый блок товаров в письме
- возможность мультиязычной рассылки на нескольких языках (для движков 23x и выше)
- фильтры по рассылке и ее датам в списке корзин
- поддержка автозаполнения в поле поиска по имени покупателя в списках корзин модуля
поиск покупателя по части имени по-прежнему доступен
- исправлен баг с отображением товаров в списках корзин при использовании мультимагазина для движков 21х и 3х
Добавлен функционал брошенных корзин:
Спойлер
- возможность отправки писем зарегистрированным пользователям о брошенных корзинах
- рассылка писем вручную из админки или в автоматическом режиме через cron
- раздельные шаблоны писем для каждого языка, с поддержкой HTML и шорткодов
- настраиваемый блок товаров в письме
- возможность мультиязычной рассылки на нескольких языках (для движков 23x и выше)
- фильтры по рассылке и ее датам в списке корзин
- поддержка автозаполнения в поле поиска по имени покупателя в списках корзин модуля
поиск покупателя по части имени по-прежнему доступен
- исправлен баг с отображением товаров в списках корзин при использовании мультимагазина для движков 21х и 3х