Jump to content
kJlukOo

[Поддержка] CART CACHE - кэшируем корзину (cart.php => getProducts)

Recommended Posts

CART CACHE - кэшируем корзину (cart.php => getProducts)


CART CACHE - кэшируем корзину (cart.php => getProducts)


в опенкарте есть метод getProducts библиотеки cart.php

этот метод вовзращает содержимое корзины для текущего пользователя

на боевом магазине обычно этот метод вызывается 50+ раз

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

этот модуль кэширует возвращаемые данные до изменения корзины. те вместо 50+ раз метод отработает 1 раз,

закэширует данные и одаст следующим 49+ :D

кэш хранится в сессии на стороне сервера(очевидно)

данное кеширование используется в моем модуле

 


  • Добавил
  • Добавлено
    25.08.2018
  • Категория
  • Системные требования
  • Сайт разработчика
    https://awaro.ru
  • Старая цена
  • Метод активации
    Без активации
  • Ioncube Loader
    Нет
  • OpenCart
    3.0
    2.3
    2.2
    2.1
    2.0
  • ocStore
    3.0
    2.3
    2.2
    2.1
  • OpenCart.Pro, ocShop
    Opencart.pro 2.3
    Opencart.pro 2.1
    OcShop 2.0.3.х
  • Обращение к серверу разработчика

 

  • +1 2

Share this post


Link to post
Share on other sites

Спасибо за мод!

Для версии 2.1 путь будет: system/library/cart.php

Share this post


Link to post
Share on other sites
45 минут назад, vtkach сказал:

Спасибо за мод!

Для версии 2.1 путь будет: system/library/cart.php

пожалуйста. так это учетно

Share this post


Link to post
Share on other sites

@kJlukOo а для 1.5 это тоже актуально?

Share this post


Link to post
Share on other sites
8 минут назад, dexion сказал:

@kJlukOo а для 1.5 это тоже актуально?

это мелкая фича. можно и не заморачиваться

Share this post


Link to post
Share on other sites

Версия, которая cart_cache.ocmod.zip не устанавливается с сообщением: Directory containing files to be uploaded could not be found!

 

До этого, пока был просто .xml было нормально.

 

Если разархивировать и переименовать в xxx.ocmod.xml, то всё нормально.

Edited by Yakaya

Share this post


Link to post
Share on other sites

А какой смысл сохранять в сессии?

Share this post


Link to post
Share on other sites

в чем смыл вопроса? зачем хранить? или зачем хранить конкретно в сессии? для каждого юзера своя корзина и своя сессия очевидно же

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

Share this post


Link to post
Share on other sites
5 minutes ago, kJlukOo said:

в чем смыл вопроса? зачем хранить? или зачем хранить конкретно в сессии? для каждого юзера своя корзина и своя сессия очевидно же

 

Зачем именно в сессии? У Вас в самой первой версии массив товаров просто сохранялся в переменной. Некоторые модули кешированния используют переменные сессии для создания названия файлов кеша. И получается чтоб теперь они норм работали нужно добавить переменную сессии products_cache в исключение, правильно?

Share this post


Link to post
Share on other sites

в переменной он хранится в пределах запроса. в сессии и от запроса к запросу. о каких конкретно исключениях идеть речь? ну использубт модули. пусть используют 

Share this post


Link to post
Share on other sites
1 минуту назад, vtkach сказал:

 

Зачем именно в сессии? У Вас в самой первой версии массив товаров просто сохранялся в переменной. Некоторые модули кешированния используют переменные сессии для создания названия файлов кеша. И получается чтоб теперь они норм работали нужно добавить переменную сессии products_cache в исключение, правильно?

Если ты используешь более продвинутые модули кеширования то нафиг те этот бесплатный модуль?

Share this post


Link to post
Share on other sites
2 минуты назад, AWARO сказал:

Если ты используешь более продвинутые модули кеширования то нафиг те этот бесплатный модуль?

хз, я подобной фигни не видел еще. может где-то у марка есть подобное в кешере

Share this post


Link to post
Share on other sites

Это нужная вещь. осообенно если много используешь модулией из "учитывать в заказе", уменшает к-во запросов к БД.

Share this post


Link to post
Share on other sites
7 минут назад, vtkach сказал:

Это нужная вещь. осообенно если много используешь модулией из "учитывать в заказе", уменшает к-во запросов к БД.

именно.

у коллеги на боевом сайте getProducts вызывался около 65. я вот решил подобную модификацию сделать.

Share this post


Link to post
Share on other sites

в 1.5 был кэш на this->data это лучше чем сессия зря вы сюда сессию притянули

Share this post


Link to post
Share on other sites
7 минут назад, nikifalex сказал:

в 1.5 был кэш на this->data это лучше чем сессия зря вы сюда сессию притянули

а почему зря? а как там было ща гляну

Share this post


Link to post
Share on other sites

Он сделал хранение в переменной сессии для "уникализации" корзины покупателя, так как сессия для каждого своя.

И тогда в методе getProducts не выполняются запросы к БД вообще, если ходить по страницах, а массив товров берется из $this->session->data['products_cache'].

И эта переменная меняется только при выполнении методов add, update, clear, remove для корзины.

 

А если хранить массив товаров в какой-то переменной, то при каждом заходе на страницу метод getProducts выполнится полноценно один раз, а при всех остальных вызовах будет браться значение из переменной.

Edited by vtkach

Share this post


Link to post
Share on other sites

да, я такой

по моему это лучше чем в 1.5

там хранение в пределах запроса, а у меня дольше

@vtkach спасибо за обьяснения. а то я тут под солнышком лежу

Share this post


Link to post
Share on other sites

А если использовать стандартный кеш и добавлять id сессии для уникализации пользователя:

$cache = 'cart.products' . '.' .  '.' . $this->language->get('code') . '.' . $this->config->get('config_store_id') . '.' . $this->session->getId();
$cache_data = $this->cache->get($cache);
if (!empty($cache_data)) {
	$product_data = $cache_data;
} else {
.........

	$this->cache->set($cache) = $product_data;
}

Так по идее тоже должно работать.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By Sha
      1 999.00 руб · Срок продления: 100.00 руб за 1 месяц
      Скачать/Купить дополнение


      Route debug board - системный аудит сайта, помощник в оптимизации сайта!
      Инструмент поможет провести системный анализ opencart страниц и расширений сайта!
       
      Модуль имеет два основных направления:
       
      1) Для пользователей:
         - Анализ модулей, расширений, дополнений сайта основываясь на архитектуре OpenCart
         - Построение наглядного timeline графика, с сортировкой по желаемому параметру
         это даст возможность выявить "узкие места" и предпринять меры по оптимизации сайта более точечно и направлено.

       
       
      DEMO
      логин: demo, пароль: demo
       
       
      2) Для разработчиков:
        - возможности описанные выше, плюс
        - построение расширенной таблицы структурированной по маршрутам, очерёдности или скорости выполнения,
        - время отработки model/view/controller каждого route, любой страницы сайта, с возможностью сортировки для сравнения,
        - простой debuger данных $data передаваемых в view каждого route. (экспериментально)

       


       
       
       
      Обратите внимание! Модуль является инструментом помогающим в работе с cms opencart/ocstore,
      и не является автоматическим бустером, компрессором, кешером и т.д. 
       
      используемые технологии:
      bootstrap.js, vue.js, opencart events.  
      Внимание: тип лицензии - доменов неограниченно!
      Сроки техподдержки и бесплатных обновлений указаны в "условия продления" по окончании данного срока более ни каких ограничений не накладывается, модуль продолжает работать как и работал!
      Модуль имеет открытый исходный код, ни каких привязок к серверам, закодированных файлов ionCube и тому подобное в модуле нет!
      Добавил Sha Добавлено 25.04.2020 Категория Инструменты, утилиты Системные требования php 5.4 и выше Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 2.3 ocStore 2.3 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет Старая цена 1999  
    • By Sha
      Инструмент поможет провести системный анализ opencart страниц и расширений сайта!
       
      Модуль имеет два основных направления:
       
      1) Для пользователей:
         - Анализ модулей, расширений, дополнений сайта основываясь на архитектуре OpenCart
         - Построение наглядного timeline графика, с сортировкой по желаемому параметру
         это даст возможность выявить "узкие места" и предпринять меры по оптимизации сайта более точечно и направлено.

       
       
      DEMO
      логин: demo, пароль: demo
       
       
      2) Для разработчиков:
        - возможности описанные выше, плюс
        - построение расширенной таблицы структурированной по маршрутам, очерёдности или скорости выполнения,
        - время отработки model/view/controller каждого route, любой страницы сайта, с возможностью сортировки для сравнения,
        - простой debuger данных $data передаваемых в view каждого route. (экспериментально)

       


       
       
       
      Обратите внимание! Модуль является инструментом помогающим в работе с cms opencart/ocstore,
      и не является автоматическим бустером, компрессором, кешером и т.д. 
       
      используемые технологии:
      bootstrap.js, vue.js, opencart events.  
      Внимание: тип лицензии - доменов неограниченно!
      Сроки техподдержки и бесплатных обновлений указаны в "условия продления" по окончании данного срока более ни каких ограничений не накладывается, модуль продолжает работать как и работал!
      Модуль имеет открытый исходный код, ни каких привязок к серверам, закодированных файлов ionCube и тому подобное в модуле нет!
    • By matroskin92
      990.00 руб
      Скачать/Купить дополнение


      Экспорт корзины/заказов в Excel
      В административной панели сайта - экспорт выбранных заказов в один файл .XLSX
      Экспорт корзины клиента (в любом месте шаблона), а так же экспорт заказа из личного кабинета интернет-магазина
      Отправка корзины в формате .XLSX при создании заказа определенному Вами списку email-адресов
      Подойдет для генерирования коммерческого предложения.
       
      Модуль не зависит от используемого шаблона и работает со всеми популярными модулями оформления заказа. 
       
      ЧТО МОЖНО ВЫВЕСТИ ПО ТОВАРУ
      Название Описание Теги Изображения Модель (Код) Артикул Вес Количество Цена Стоимость Атрибуты (в рамках доработки еще все-что угодно, пишите)  
      ДОПОЛНИТЕЛЬНО
      Контактные данные магазина Итоговые данные (сумма, купон, доставка и т.д.) Строка с замечаниями (заметками)  
      КРОМЕ ЭТОГО МОЖНО
      Настроить отправку заказов в формате XLSX заданному списку email Раскрасить в дополнительный цвет ячейку с данными, если в ней содержится любое из ключевых слов  
      ЭКСПОРТ ЗАКАЗОВ
      Возможен одного заказа, так и нескольких (с объединением или нет) одинаковых товаров Как в административной панели, так и в корзине или на странице заказа в личном кабинете пользователя  
      ОФОРМЛЕНИЕ EXCEL-ЛИСТА ПОД СТИЛЬ МАГАЗИНА
      Гибкое оформление данных с выводом логотипа  
      ПРОСТАЯ УСТАНОВКА
      Установите библиотеку PHPExcel как обычный модуль Установите модуль для Вашей версии Opencart Активируйте в списке модулей и произведите необходимую настройку модуля. Добавьте вывод модуля в нужный в макет корзины, либо в макет отображения заказа в личном кабинете. Обновите кэш модификаторов По результатам работы модуля, пожалуйста, напишите отзыв.  
      ДЕМО
      OPENCART 3 / OCSTORE 3
      OPENCART 2.3 / OCSTORE 2.3
      Логин: demo
      Пароль: demo
       
      ДОРАБОТКИ ПОД ВАШИ ТРЕБОВАНИЯ
      За дополнительную плату модуль можно доработать до ваших требований выгрузки заказов (корзины).
       
      ПОДДЕРЖКА
      Техническая поддержка по электронной почте [email protected]
       
      ОСТАЛИСЬ ВОПРОСЫ?
      Напишите в личные сообщения.
      Добавил matroskin92 Добавлено 07.03.2019 Категория Обмен данными Системные требования PHPExcel Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3 ocStore 3.0
      2.3 OpenCart.Pro, ocShop Opencart.pro 2.3 Обращение к серверу разработчика Нет Старая цена 990  
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.