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


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

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

 

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

  • 0_1575831062911_shk-logo-small-blue.png
    Что нового в версии 4.1.3:

    Добавлен компонент "Отзывы и рейтинги" (есть интерфейс для администратора). Обновлены версии всех сторонних пакетов.

    Демо-сайт обновлен. https://shk4-demo.modx-shopkeeper.ru/
    Логин: admin
    Пароль: admin

    0_1575830694586_ru_screenshot001.png

    0_1575830705492_ru_screenshot002.png

    0_1575830710901_ru_screenshot003.png

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

    Если вдруг кто-то озадачится.
    В файле updateorderstatus.class.php

    //Формируем письмо $orderOutputData = $shopCart->getOrderData( $order_id ); $chunkArr = array( 'orderID' => $order_data['id'], 'orderDate' => $order_data['date'], 'statusName' => $status_data['label'], 'orderCurrency' => $shopCart->config['currency'], 'orderOutputData' => $orderOutputData, //добавляем строку 'status' => $status_data['color'], );

    Читать далее
  • Участник @Vladislava написал в Проблема с giftCards:

    @Andchir Спасибо большое! А не скажете ещё, где можно скачать Compare? Тоже не могу найти.

    Сравнение товаров
    https://e-store.shopkerx.net/katalog/modx_extras/compare

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

    @Andchir Спасибо большое! А не скажете ещё, где можно скачать Compare? Тоже не могу найти.

    Читать далее