Jump to content
покупайте без комиссии
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

[Поддержка] 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
  • Категория
  • Системные требования
  • Метод активации
    Без активации
  • Ioncube Loader
    Нет
  • OpenCart
    3.0
    2.3
    2.2
    2.1
  • ocStore
    3.0
    2.3
    2.2
    2.1
  • OpenCart.Pro, ocShop
    Opencart.pro 2.3
    Opencart.pro 2.1
    OcShop 2.0.3.х
  • Обращение к серверу разработчика
    Нет
  • Старая цена
    0

 

  • +1 2
Link to post
Share on other sites

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

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

Link to post
Share on other sites

45 минут назад, vtkach сказал:

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

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

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

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

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

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

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
Link to post
Share on other sites

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

Link to post
Share on other sites

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

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

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

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

 

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

Link to post
Share on other sites

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

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

 

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

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

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

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

7 минут назад, vtkach сказал:

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

именно.

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

Link to post
Share on other sites

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

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

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

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

Link to post
Share on other sites

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

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

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

 

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

Edited by vtkach
Link to post
Share on other sites

да, я такой

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

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

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

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;
}

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

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Similar Content

    • By MaxD
      OpenCart Lightning - это мод, который реально ускоряет магазины и дает ощутимый результат. Страницы открываются почти мгновенно, высокие баллы PageSpeed и минимальный TTFB дают отличный плюс к SEO.
      Работает со всеми версиями OpenCart и ocStore.
       
      Внимание: для всех белорусских доменов .BY - свободная лицензия до 2022 года
       
      Вот ссылка на демо-магазин с 20000 товаров на хостинге за $5 - https://demo.devs.mx/lightning
      А вот демо с JOURNAL3 - https://demo.devs.mx/journal3/
       
      почти мгновенное открытие страниц оптимизировано для получения высоких показателей в новом Google PageSpeed Insights быстрая работа с большим количеством товаров и категорий повышение удобства навигации по магазину и рейтингов в поисковиках не надо настраивать и приглядывать, просто работает отпадает необходимость в дополнительных модах оптимизации или кеширования  
       
       
       
       
      Если вы залогинены в админку - страницы, на которые вы заходите - после этого перегенерируются. То есть, если вы хотите увидеть изменения - просто обновите страницу.
      В большинстве случаев нет необходимости очищать кеш вручную - все обновляется автоматически.
       
      После установки у вас будет 7 дней тестового периода, дальше надо будет купить лицензию.
       
      Внимание: OpenCart Lightning не работает на localhost, только на реальных интернет-серверах.
       
      Установка
      Загрузите lightning.ocmod.zip в инсталлятор, зайдите в Модификации и обновите их.
       
      Если сайт лег и админка не открывается - вот как быстро все вернуть назад.
       
      Обновление
      1. Выключите Lightning.
      2. Очистите кеш Lightning.
      3. Зайдите в Модификации и удалите модификацию Lightning.
      4. Если вы обновляетесь с Lightning 1.xx или 2.хх, удалите папку system/lightning
      4. Установите новую версию Ligthning.
      5. Обновите Модификации.
      6. Включите Lightning.
    • By MaxD
      Скачать/Купить дополнение


      OpenCart Lightning: кеширование, оптимизация, улучшение SEO и Google PageSpeed

       
       
      OpenCart Lightning - это мод, который реально ускоряет магазины и дает ощутимый результат. Страницы открываются почти мгновенно, высокие баллы PageSpeed и минимальный TTFB дают отличный плюс к SEO.
      Работает со всеми версиями OpenCart и ocStore.
       
      Внимание: для всех белорусских доменов .BY - свободная лицензия до 2022 года
       
      Вот ссылка на демо-магазин с 20000 товаров на хостинге за $5 - https://demo.devs.mx/lightning
      А вот демо с JOURNAL3 - https://demo.devs.mx/journal3/
       
      почти мгновенное открытие страниц оптимизировано для получения высоких показателей в новом Google PageSpeed Insights быстрая работа с большим количеством товаров и категорий повышение удобства навигации по магазину и рейтингов в поисковиках не надо настраивать и приглядывать, просто работает отпадает необходимость в дополнительных модах оптимизации или кеширования  
       
       
       
       
      Если вы залогинены в админку - страницы, на которые вы заходите - после этого перегенерируются. То есть, если вы хотите увидеть изменения - просто обновите страницу.
      В большинстве случаев нет необходимости очищать кеш вручную - все обновляется автоматически.
       
      После установки у вас будет 7 дней тестового периода, дальше надо будет купить лицензию.
       
      Внимание: OpenCart Lightning не работает на localhost, только на реальных интернет-серверах.
       
      Установка
      Загрузите lightning.ocmod.zip в инсталлятор, зайдите в Модификации и обновите их.
       
      Если сайт лег и админка не открывается - вот как быстро все вернуть назад.
       
      Обновление
      1. Выключите Lightning.
      2. Очистите кеш Lightning.
      3. Зайдите в Модификации и удалите модификацию Lightning.
      4. Если вы обновляетесь с Lightning 1.xx или 2.хх, удалите папку system/lightning
      4. Установите новую версию Ligthning.
      5. Обновите Модификации.
      6. Включите Lightning.
      Добавил MaxD Добавлено 04.12.2014 Категория Кэширование, сжатие, ускорение Системные требования Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.5.1
      1.5.5
      1.5.4.1
      1.5.3.1 ocStore 3.0
      2.3.0.2.4
      2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х Обращение к серверу разработчика Да  
    • By oc_
      Модуль выводит новые дополнительные поля в любые формы админ панели, которые вы укажете.
       
      Внимание! Модуль предназначен исключительно для разработчиков, так как для получения значений полей, вам потребуется собственный ocmod или правка контроллеров.
       


       
      Логин: demo
      Пароль: demo
       
      Принцип работы модуля
      Устанавливаете модуль Добавляете новое поле через форму Указываете где хотите выводить, например в форме товара Идете в форму товара, указываете значение поля Выводите информацию из этого поля через контроллер в каталоге или ocmod через несколько строчек




      Список полей которые можно добавить

      

      Что бы максимально огородить вас от того что бы лезть в файлы, есть
      Проверка обязательности PHP проверка regex, Указание любых типов данных в качестве значений, товары, категории, опции и т.д Создание блоков с другими полями, как у атрибутов товара, в качестве блока, может быть так же другой блок Маска поля regex, телефон, email и т.д Возможность указать поле для просмотра, абсолютно в любой форме в админ панели, в том числе и любой модуль Если же вам всё же потребуется, есть возможность указать свой контроллер, для проверки поля, указания своих значений и вывода

      Форма добавления/Редактирования поля


      Что ещё можно сделать?
      Указать Placeholder Указать ширину Указать поле help Указать сортировку Указать текст ошибки И дополнительно для каждого поля, есть разные опции
      
       
      В режиме разработчика
      Можно интегрировать поле, что бы его нельзя было удалить и редактировать, поле склеивается с CMS Просмотреть код для установки поля,  через свой компонент (установщик) Просмотреть пример кода, для вставки в контроллер, ocmod и twig, для отображения информации на сайте  Что требуется для отображения информации на сайте?
      В контроллере сделать запрос к значениям поля
       
      // Получаем значение поля categories из секции my_section $setting_value = $this->load->controller('custom/setting/getValue', array( 'section' => 'my_section', // Уникальный индикатор секции который указывается при создании в админ панели 'setting' => 'categories', // Уникальный индикатор поля который указывается при создании в админ панели 'page' => 'setting' // Код формы в админ-панели, например setting, product, module 'id' => '23' // id, например id товара, категории, модуля и т.д )); // Инициализируем полученные данные $data['setting_value'] = $setting_value;
       
      Код: в текущем шаблоне twig вывести и обработать информацию {{ setting_value }}

      Как видите, для того что бы внедрить поле в opencart, требуется всего пару строк, которые вы можете вставить с помощью ocmod
      При этом, если интегрировать поле, в режиме разработчика, его нельзя будет удалить, что определенно иногда имеет смысл

      Когда может потребоваться данный модуль?
      При внедрении на сайт дополнительной информации При необходимости указать дополнительные значение какому-либо объекту, товару, магазину, категории При разработке своей темы При разработке дополнения Если вы разрабатываете магазин на opencart, этот модуль вам заменит большинство платных модулей при минимальном знании php и twig Ускорить вашу работу в разы Расширить opencart
      Экспорт настроек
       
      Установка

      
       
       
       
    • By oc_
      390
      Скачать/Купить дополнение


      Собственные поля в админке (CustomSetting)
      Модуль выводит новые дополнительные поля в любые формы админ панели, которые вы укажете.
       
      Внимание! Модуль предназначен исключительно для разработчиков, так как для получения значений полей, вам потребуется собственный ocmod или правка контроллеров.
       


       
      Логин: demo
      Пароль: demo
       
      Принцип работы модуля
      Устанавливаете модуль Добавляете новое поле через форму Указываете где хотите выводить, например в форме товара Идете в форму товара, указываете значение поля Выводите информацию из этого поля через контроллер в каталоге или ocmod через несколько строчек




      Список полей которые можно добавить

      

      Что бы максимально огородить вас от того что бы лезть в файлы, есть
      Проверка обязательности PHP проверка regex, Указание любых типов данных в качестве значений, товары, категории, опции и т.д Создание блоков с другими полями, как у атрибутов товара, в качестве блока, может быть так же другой блок Маска поля regex, телефон, email и т.д Возможность указать поле для просмотра, абсолютно в любой форме в админ панели, в том числе и любой модуль Если же вам всё же потребуется, есть возможность указать свой контроллер, для проверки поля, указания своих значений и вывода

      Форма добавления/Редактирования поля


      Что ещё можно сделать?
      Указать Placeholder Указать ширину Указать поле help Указать сортировку Указать текст ошибки И дополнительно для каждого поля, есть разные опции
      
       
      В режиме разработчика
      Можно интегрировать поле, что бы его нельзя было удалить и редактировать, поле склеивается с CMS Просмотреть код для установки поля,  через свой компонент (установщик) Просмотреть пример кода, для вставки в контроллер, ocmod и twig, для отображения информации на сайте  Что требуется для отображения информации на сайте?
      В контроллере сделать запрос к значениям поля
       
      // Получаем значение поля categories из секции my_section $setting_value = $this->load->controller('custom/setting/getValue', array( 'section' => 'my_section', // Уникальный индикатор секции который указывается при создании в админ панели 'setting' => 'categories', // Уникальный индикатор поля который указывается при создании в админ панели 'page' => 'setting' // Код формы в админ-панели, например setting, product, module 'id' => '23' // id, например id товара, категории, модуля и т.д )); // Инициализируем полученные данные $data['setting_value'] = $setting_value;
       
      Код: в текущем шаблоне twig вывести и обработать информацию {{ setting_value }}

      Как видите, для того что бы внедрить поле в opencart, требуется всего пару строк, которые вы можете вставить с помощью ocmod
      При этом, если интегрировать поле, в режиме разработчика, его нельзя будет удалить, что определенно иногда имеет смысл

      Когда может потребоваться данный модуль?
      При внедрении на сайт дополнительной информации При необходимости указать дополнительные значение какому-либо объекту, товару, магазину, категории При разработке своей темы При разработке дополнения Если вы разрабатываете магазин на opencart, этот модуль вам заменит большинство платных модулей при минимальном знании php и twig Ускорить вашу работу в разы Расширить opencart
      Экспорт настроек
       
      Установка

      
       
       
       
      Добавил oc_ Добавлено 15.01.2021 Категория Прочее Системные требования Ioncube Loader Метод активации Автоматическая активация Ioncube Loader Требуется OpenCart 3.0
      2.3 ocStore 3.0
      2.3 OpenCart.Pro, ocShop Opencart.pro 2.3 Обращение к серверу разработчика Да  
    • By sv2109
      Больше 10 тысяч загрузок модулей от sv2109!
      Это PRO вторая версия модуля, который имеет уже больше 200 покупок!
       
      Что делает этот модуль?
      Дает возможность создавать и красиво показывать в карточке товара, каталоге и других страницах (а также с версии PRO на отдельной странице с акциями)  всевозможные акции. За основу в создании этого модуля был взят опыт больших интернет магазинов.
       
      Зачем?
      Акции - это очень мощный инструмент продаж с помощью которого при правильном подходе можно в разы увеличить прибыть магазина, так как акция дает сильный стимул купить именно этот товар и именно сейчас.
      Не поэтому ли практически все большие интернет магазины очень активно используют этот инструмент? Зайдите на любой такой магазин и увидите огромное количество акций, скидок, подарков, распродаж итд.
       
      Что может быть акцией?
      Товар-подарок. Пример: "Купи ноутбук и получи мышку в подарок", "купи смартфон и получи чехол в подарок", "купи фотоаппарат и получи карту памяти в подарок" итд. При добавлении товара в корзину автоматически в корзину добавляется товар-подарок с нулевой ценой. Неизвестный подарок, приз. Пример: "Купите этот товар и получите ценный подарок от нашего магазина". Сам подарок показывается на сайте в виде красивой коробки, что внутри - сюрприз. Суперцена. Показывает что у товара очень привлекательная цена. Скидка на другой товар. Пример: "Купи фотоаппарат и получи скидку 20% на покупку объектива". Розыгрыш призов. Пример: "Среди купивших офисный стул с 1 по 31 декабря будет разыгрываться ноутбук". Бесплатная доставка. Новинка. Показывает, что товар новый. Скидка на товар. "Только 2 ноутбука в 1 руки!" - реальная акция в Розетке Что угодно  
      Некоторые советы по акциям
      обязательно указывайте дату окончания акции! Она должна быть минимальной, а не через 2 месяца. Это дополнительно будет стимулировать покупателя совершить покупку именно сейчас, а не уйти с мыслью вернуться через 2 месяца, то есть никогда. указывайте, что количество подарков или акционных товаров ограничено. Это дополнительно будет стимулировать покупателя купить товар именно сейчас, потому что уже через час подарка может не быть. создавайте реально полезные для ваших покупателей акции, а не банальные 5% при 50% наценке. Иногда полезно даже ничего не заработать на этой первой продаже но получить лояльного, постоянного покупателя, который принесет прибыть в будущем. постоянно экспериментируйте, придумывайте новые, оригинальные акции. постоянно использует этот очень мощный инструмент продаж, а не только перед праздниками. В планах дальнейшее развитие этого модуля.
       
      Новое в версии 3.0 PRO
       
      Основные изменения:
      Акции модуля связаны с акциями самого движка. Раньше они работали отдельно, каждый сам по себе и было неудобно, теперь они максимально, на сколько это было возможно реализовать, связал эти акции в одно целое, это позволило:
      - создавать акцию модуля для акции движка (акции или скидки). В таком случае если в товаре есть акция или скидка то на его странице (а так же в категории и на странице акций движка) будет отображаться блок модуля с названием акции, описанием, картинкой, всплывающим окном, списком товаров итд. В этом блоке также отображается таймер обратного отсчета, данные для таймера берутся не из настроек акции модуля, а из настроек акции (или скидки) товара
      - отображать эту акцию на странице всех акций модуля (об этом ниже)
      - есть возможность заменить страницу акций движка страницей акций модуля
      - есть возможность на странице и в модуле акций движка отображать также товары из акций модуля вместе с блоком модуля Отдельная страница со списком всех акций модуля и акциями движка.  Отдельная страница для каждой акции, в которой отображается своя картинка, полное описание акции, таймер и список всех товаров. Ссылка на эту страницу есть во всплывающем окне в блоке акции на странице товара, категории итд.  Авто обновление периода акции. Акция не будет заканчиваться, ее время будет обновляться автоматически по окончанию срока. Работает также для акций и скидок движка. Например можно установить акцию на 2 часа и через каждых 2 часа время окончания акции будет продлеваться на 2 часа.  Улучшена работы корзины, теперь, если в корзине есть подарок с нулевой ценой и в эту корзину добавить этот же товар отдельно, то он добавится не с нулевой подарочной ценой, а со своей ценой. Страница добавления акций:
      Более удобное добавление товаров в акции, товары можно искать не только по названию, но и по модели и артикулу Добавление товаров из производителя, а не только из категории Два изображения для акции: для блока акции на странице товара и категории и для страницы самой акции и страницы акций Два описания для акции: Для блока акции на странице товара и категории и для страницы самой акций для более полного описания акции Возможность создать акцию модуля дла акции или скидки движка Возможность для даты окончания и начала акции указывать не только дату, но и часы, минуты и секунды, для более точной установки акции Автообновление периода акции, описано выше. Настройки:
      Возможность отображать количество доступных подарков Отображать ссылку на страницу акции в окне акции Отображаться в окне акции только товары из категории данного товара. Это работает для акций движка, если акций и товаров много, то более логично для данного товара отображать другие акционные товары из этой же категории, а не со всего магазина Отображать товары из акций модуля на странице акций OpenCart и в модуле акций Cтраница акций модуля вместо акций OpenCart Использовать основную картинку для страницы акции если картинка акции отсутствует     Больше настроек для таймера:
      - таймер можно выводить не только на странице товара, но и на странице категории, акции и свех акций
      - есть несколько типов таймеров: динамический, статический, простой текст
      - есть 2 темы: черная и белая
      - есть разный размер шрифта для каждой страницы  
      Функционал модуля в PRO версии увеличился во много раз!
       
      Совместимость:
      OpenCart и ocStore 2.0.x, 2.1.x, 2.2.x, 2.3.x, 3.x 
       
      Модуль использует IonCube, обычно на 99% хостингов он установлен, но на всякий случай можете проверить.
      Одна лицензия модуля позволяет установить этот модуль на 1 домене.
       
      Демо:
      Страница акций Страница акции Категория товаров Товар1 Товар2 Админка  
      Обновление с версии 2 на версию 3 PRO:
      Обновление платное, стоимость обновления составляет 1000 рублей. 
      Для связи с автором модуля пишите в ЛС на форуме или на почту sv2109@gmail.com
       
      © Стасюк Владимир (sv2109.com), 2019
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

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.