Последние темы


Плагин мультивалютности

  • При создании магазина на Shopkeeper 3.2.6 и двумя валютами. Цена всегда задается в одной валюте и выводиться в другой. Но пересчет происходит не зразу, а курс меняется бывает очень часто и это влияет на цену.
    Из этого вопрос, как можно принудительно сделать пересчет цены на всем сайте (так чтобы для всех кто на сайте показывалась новая цена)?

  • Тут ветка про это целая была, но так и не решили вопрос я так понял. Поэтому рекомендую отключить мультивалютность и сделать так:

    Иногда возникает задача изменить цену у товара в зависимости от определенных условий. При отображении в каталоге, в карточке товара для изменения цены достаточно применить выходной фильтр :

    [[+num:incr=`[[*price]]`:mpy=`[[++kurs]]`]]
    

    Но как потом скормить измененную цену корзине для магазина на Shopkeeper 3? Для этих целей предусмотрено специальное событие, которое регистрируется при установке пакета Shopkeeper. Нам остается только написать плагин и повесить его на это событие. Давайте рассмотрим модификацию цены товара на примере импортных товаров. Допустим, у нас есть товары, которые поступают на склад в валюте. Стоит задача отобразить цены на сайте по заданному курсу.

    Создаём плагин для изменения цены. На вкладке "Системные события" отмечаем OnSHKgetProductPrice. И используем следующий код.

    <?php
    $output->name == "OnSHKgetProductPrice";
    $output = 0;
    $price_tv_name = 'price'; //Имя TV цены
    $p_id = $modx->getOption( 'id', $scriptProperties, 0 );
    if($p_id){
    $price_tv = $modx->getObject('modTemplateVar',array('name'=>$price_tv_name));
    $price_usd = $price_tv->renderOutput($p_id);
    $rate = $modx->getOption('kurs', '', 1);//Параметр в настройках системы со значением курса (справа вверху шестеренка, системные настройки, создаем поле kurs)
    $output = $price_usd*$rate;
    }
    $modx->event->_output = '';
    $modx->event->output($output);
    return '';
    

    Особо примечательно что это уже поправленый плагин и точно работает с 3.2.5 Будет зразу пересчитывать

  • Из этого вопрос, как можно принудительно сделать пересчет цены на всем сайте

    Уменьшить время жизни сессии. Параметр "session_cookie_lifetime" в настройках системы.

 

Последние комментарии

  • Документация: https://modx-shopkeeper.ru/docs/shopkeeper-3/shopkeeper-3
    Там написано какие плейсхолдеры доступны.
    Если имеется ввиду цена одного товара, то [[+price]] - это цена без доп. параметров.

    Читать далее
  • D

    Такой вопрос: как вывести цену без дополнительных атрибутов? В мини-корзине.

    Читать далее
  • в категорию assets/catalogfill/files/ экспорт происходит нормально.

    Что-то в вашем сообщении всё перемешано. Папки или категории? А если папки (с файлами), то какие у них могут быть id...
    Если появляется сообщение про категорию, то это имеется ввиду категория каталога (документ MODX).

    Читать далее
  • D

    Добрый день!

    Искал такой функционал в настройках или в конфигах, найти не получилось. Суть такая: клиент может загружать файлы только в media/ (Источник файлов 1 Filesystem, но есть еще один с полным доступом в корень id 4), таким образом, при загрузке файлов CatalogFill не видит файлы. Возникакет ошибка о том что нет такого каталога. Создаю его в ФС. Загрузка не происходит. в категорию assets/catalogfill/files/ экспорт происходит нормально. Есть какие-то возможности переключить именно для catalogfill возможность загрузить в четверый источник без модификации самого компонента?

    Версия последняя, производил обновление сегодня.

    Заранее благодарен.

    Читать далее