Массовое обновление значений tv-параметров

Здравствуйте.

У каждого ресурса есть TV с ценой в у.е. Цена добавляется в основном с помощью CatalogFill и вручную. Нужно чтобы на сайте цена уже показывалась в национальной валюте. Например, я ввожу некий коэффициент (текущий курс) и плагин или сниппет умножает его на ту цифру, которая указана в TV параметре ресурса и на странице выводится уже пересчитанная цена.

Честно отгуглил несколько дней, но ничего подходящего не нашел. Есть вариант для MS2 с автоматическим обновлением, но у меня MS2 не используется. Есть еще Модуль Изменение цен, но, опять же, для EVO.

Спасибо за любую помощь.
vlntnztn
24 июля 2019, 14:05
modx.pro
505
0

Комментарии: 7

Павел Романов
24 июля 2019, 15:23
+1
Просто модификатором (62 — курс):
[[*price:mpy=`62`]]

Чтобы в корзину товар добавлялся с этой ценой, сделайте плагин.
Для miniShop — на событие msOnBeforeAddToCart:
<?php
if($_POST['myprice'] != '')  $product->set('price', $_POST['myprice']);

И в форму кнопки добавления в корзину добавьте скрытое поле:
<input type="hidden" name="myprice" value="[[*price:mpy=`62`]]" />
    vlntnztn
    24 июля 2019, 16:44
    0
    Здравствуйте, спасибо за ответ.

    MiniShop у нас не используется. Корзины тоже нет. Есть просто каталог товаров. Ресурс-контейнер и в нем ресурсы как карточки товаров, которые просто выводятся на странице категории. Цена выводится TV-параметром.
      Павел Романов
      24 июля 2019, 16:55
      +1
      Ну тогда просто выводите через модификатор. На странице товара так:
      [[*price:mpy=`62`]]

      В категории (чанке &tpl) так:
      [[+tv.price:mpy=`62`]]
      vlntnztn
      24 июля 2019, 16:56
      0
      Работает вот так [[+cena1:mpy=`25,4`]]

      Но это придется у каждого TV (их 5 штук) вручную менять курс, может есть какой-то сниппет, у которого в одном месте написал курс, а он на всех поменяет?
        Павел Романов
        24 июля 2019, 17:06
        +1
        Не совсем понятно. У Вас пять разных TV под цены?
        Что касается «в одном месте», то можете создать системную настройку curs и выводить ее по всему сайту
        [[++curs]]

        Тогда в чанке так:
        [[+cena1:mpy=`[[++curs]]`]]
          vlntnztn
          24 июля 2019, 17:09
          0
          Да, пять разных TV. Сейчас попробую создать системную настройку.
            vlntnztn
            24 июля 2019, 17:27
            0
            ЕСТЬ!!! Всё работает с системной настройкой! Павел, СПАСИБО!
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        7