логика работы корзины в движке Opencart далека от совершенства и имеет серьезный недостаток: при загрузке любой страницы сайта происходит обращение к корзине и запросы данных о товарах в ней беда в том, что эти данные не кешируются и запрашиваются каждый раз заново, даже если содержимое корзины не менялось
и при добавлении товаров в корзину число запросов на ее обработку (а соответственно и нагрузка на сервер) возрастает в арифметической прогрессии (а если у товаров еще и опции - почти в геометрической)
причем, чем больше в корзине товарных позиций (т.е. строк с разными товарами) - тем сильней будет "тупить" сайт
когда в корзине несколько позиций - это не так заметно
но если у вас оптовое направление и/или покупатели часто кладут в корзину больше десятка разных товаров - это становится проблемой
аддон Cart Queries Cache для модуля CartKeeper кеширует товары корзины, снижая количество запросов к ней и нагрузку на сайт
Особенности:
- актуальное решение для движков версий 210х-303х
- требует наличия установленного модуля CartKeeper
Обратите внимание:
- аддон устанавливается отдельно как дополнение для CartKeeper, сам модуль переустанавливать не нужно
- если были проблемы совместимости с другими модулями и вносились изменения/патчи - аддон должен выполняться после всех патчей, в самом конце
- если у вас уже используется какое-то решение (в виде модуля или правок) для кеширования запросов корзины - аддон устанавливать не нужно
Установка 2x:
1. Загрузить файл cartkeeper_cart_cache.ocmod.xml из папки 2х в Дополнения > Установка дополнений
2. Обновить кеш модификаторов в Дополнения > Модификаторы (Менеджер дополнений)
Установка 3x:
1. Загрузить архив cartkeeper_cart_cache-3x.ocmod.zip в Extensions > Installer
2. Обновить кеш модификаторов в Extensions > Modifications
(сам аддон находится в соответствующей папке в архиве модуля)
Результаты тестирования:
на примере чистого движка Opencart 3020, с отключенным seo-url, отключенным подсчетом товаров в меню категорий и дефолтном шаблоне
тест загрузки пустой информационной страницы без вывода дополнительных модулей в схемах
(взята за основу теста как наименее нагруженная)
1. с пустой корзиной без товаров
итого, 72 запроса
добавлены товары,
сейчас в корзине 6 товарных позиций, у одной из них 8 опций
2. стандартно, без кеширования запросов корзины (в корзине 6 товарных позиций, у одной из них 8 опций)
итого, с 72 запросов их количество выросло до 307
3. с кешированием запросов корзины (в корзине 6 товарных позиций, у одной из них 8 опций)
итог - количество запросов при использовании кеширования стало даже ниже, чем с пустой корзиной без него