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


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

  • При создании магазина на 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" в настройках системы.

 

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

  • Мало информации.
    Вот документация по сниппету getProducts
    https://modx-shopkeeper.ru/docs/shopkeeper-3/snippet-getproducts
    Если ресурс с ID=2 это категория, в которой есть подкатегории, то надо использовать параметр depth.

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

    Пытаюсь вывести товары из категории Товары - ресурсы MODX на демо сайте shk3, стандартный набор параметров цепляет товары только с сетки migx, а с ресурсов не выводит, вставляю такие параметры снипета:

    [[!getProducts? &parents=`2` &limit=`50` &tpl=`product_cart_main` &where=`{"tags:LIKE": "%#новинка#%"}` ]]

    другой снипет нужен?

    Читать далее
  • Я не грубил, а только указал, что вы слишком много хотите. Зачем вы мне предлагаете доступ к админке, чтобы я за вас там всё сделал, а Вы не утруждали себя предоставлением информации? Задавайте конкретный вопрос и ждите ответа. Если вопросов много, то лучше их пронумеровать.

    Если ваш компонент некорректно работает

    Я открыл ваш сайт и первое, что увидел, это JS ошибки, которые не относятся к шопкиперу, а относятся к какому-то слайдеру. То, что у вас локально всё работает, а на сервере не работает для меня эта информация лишняя, она ничего не дает.

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

    Всмысле за меня? Почему вы постоянно грубите? Если ваш компонент некорректно работает, почему я не могу обратиться в поддержку? Форумы постоянно читаю, в том числе этот. Но если сайт компонент работает на одном хостинге но по магическим причинам не работает на другом, когда все остальное работает, что я должен делать?

    Читать далее