Skip to content
msCurrency
msCurrency
Мультивалютность для MiniShop3
  • MODX 3
  • PHP 8.2
  • miniShop3
  • Vue 3
  1. Компоненты
  2. msCurrency
  3. Интеграция на сайте
  4. Сниппет msCurrencyPrice

Сниппет msCurrencyPrice ​

Обёртка над MsCurrency::getPrice(). Возвращает строку (с форматированием MS3) или число.

Параметры ​

ПараметрПо умолчаниюОписание
price0Цена в базовой валюте
pid0ID товара (msProduct). При price=0 база из товара / msc_price
cid0ID валюты ответа. 0 — валюта покупателя
course0Ручной делитель. 0 — использовать val валюты
format11 — формат по ms3_price_format. 0 — число без форматирования. При 1 не дописывайте символ валюты вручную

AJAX-разметка ​

При mscurrency_ajax_switch=1 и pid > 0 сниппет оборачивает вывод в:

html
<span data-msc-price data-msc-pid="123">…</span>

Без pid обёртка не ставится — при AJAX цена на странице не обновится без reload. Передавайте pids[] в POST web/currency/set через JS переключателя (собирается автоматически с [data-msc-pid]).

На карточке товара ​

fenom
{'!msCurrencyPrice' | snippet : ['price' => $price, 'pid' => $_modx->resource.id]}
modx
[[!msCurrencyPrice?
  &price=`[[!+price]]`
  &pid=`[[*id]]`
]]

Только ID товара ​

База подставится из MS3:

fenom
{'!msCurrencyPrice' | snippet : ['pid' => 123]}
modx
[[!msCurrencyPrice? &pid=`123`]]

В каталоге (msProducts) ​

fenom
{'!msCurrencyPrice' | snippet : ['price' => $row.price, 'pid' => $row.id]}
modx
[[!msCurrencyPrice?
  &price=`[[+price]]`
  &pid=`[[+id]]`
]]

Принудительная валюта и формат ​

fenom
{'!msCurrencyPrice' | snippet : ['price' => 100, 'cid' => 2, 'format' => 0]}
modx
[[!msCurrencyPrice?
  &price=`100`
  &cid=`2`
  &format=`0`
]]

Событие ​

После расчёта вызывается mscOnGetPrice с параметрами price, newPrice, currencyId, course.

См. также ​