логика работы корзины в движке 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 опций)
итог - количество запросов при использовании кэширования стало даже ниже, чем с пустой корзиной без него
выводы очевидны
Комментариев нет