msMultiCurrency

Компонент добавляет мультивалютность в miniShop2, а также позволяет привязывать цену отдельного товара к одной из
валют.
Видео-обзор
Купить
Prihod
Prihod
10 мая 2018, 12:18
modx.pro
5 670

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

Дмитрий
10 мая 2018, 16:04
То, чего не хватало всем многие годы. Спасибо!
    Andrey
    18 мая 2018, 02:19
    Работает ли с mFilter2 когда фильтруешь по цене?
      Prihod
      18 мая 2018, 10:55
      Фильтрация по цене будет работать но вот цена в фильтре всегда будет отображаться в базовой валюте. На следующей недели посмотрю как это можно исправить.
        Prihod
        19 июня 2018, 12:13
        Инфа в доках, раздел mFilter2
      Андрей
      16 июля 2018, 11:53
      Добрый день. Компонент позволяет задать привязку например к евро и выводить цену в рублях, на основе курса евро?
      Евгений
      27 сентября 2018, 11:02
      Возможно ли привязать цену не к каждому отдельному товару, а ко всем товарам отдельно взятой категории?
        Prihod
        27 сентября 2018, 11:11
        нет
        Prihod
        02 ноября 2018, 17:59
        UPD 1.0.3
        — Добавлено: Наборы значений валюты

        ВАЖНО! Перед обновлением не забывайте сделать бэкап базы данных. После обновления необходимо очистить кэш браузера
          Prihod
          17 февраля 2019, 14:22
          UPD 1.0.4
          — Добавлено: Вывод полей: валюта, цена и старая цена в категории товара
          — Добавлено: Пересчет цены при импорте с помощью msImportExport

          Вывод цен и валюты в категории товаров
          Для того что бы поля “Валюта”, “Цена в выбранной валюте” или “Старая цена в выбранной валюте” вывести в категории товара, необходимо в системных настройках minishop2 для опцию “Поля таблицы товаров” (ключ ms2_category_grid_fields) добавить название нужных полей.

          currency_id — название валюты
          msmc_price — цена в выбранной валюте
          msmc_old_price — старая цена в выбранной валюте

          Пример
          id,menuindex,pagetitle,article,price,msmc_price,currency_id,thumb,new,favorite,popular
            Дмитрий
            18 марта 2019, 18:58
            А как сделать что бы при изменении количества товара в корзине итоговая цена менялась в выбранной валюте?
              Prihod
              18 марта 2019, 19:03
              ничего делать не нужно т/к она и так должна меняться если у тебя последняя версия minishop2 и msMultiCurrency ну и естественно если ты id у элементов формы не удалил
                Дмитрий
                18 марта 2019, 19:06
                Не менял ничего, вот код корзины
                <div class="cartPage" id="msCart">
                    <div class="cartPageTitle">
                    	<h2>
                    		Корзина
                    	</h2>
                    	<form class="clearCart" method="post">
                    	    <button class="clearCart" type="submit" name="ms2_action" value="cart/clean">
                    		    Очистить корзину
                    		</button>
                    	</form>
                    </div>
                    {if !count($products)}
                        {'ms2_cart_is_empty' | lexicon}
                    {else}
                    <div class="cartPageTable">
                        <div class="cartPageTableTitle">
                			<p class="columnImage cartPageTableTitleEl">
                				Товар
                			</p>
                			<p class="columnDescription cartPageTableTitleEl">
                				Описание
                			</p>
                			<p class="columnPrice cartPageTableTitleEl">
                				Цена
                			</p>
                			<p class="columnCount cartPageTableTitleEl">
                				Количество
                			</p>
                			<p class="columnClose cartPageTableTitleEl"></p>
                    	</div>
                    	<div class="cartPageTableContent">
                    	    {foreach $products as $product}
                    	    <div class="cartPageTableContentEl" id="{$product.key}">
                    	        <div class="goodsImageColumnWrapper">
                					<div class="goodsImageColumn">
                						{if $product.thumb?}
                                                <img src="{$product.thumb}" alt="{$product.pagetitle}" title="{$product.pagetitle}"/>
                                            {else}
                                                <img src="{'assets_url' | option}components/minishop2/img/web/ms2_small.png"
                                                     srcset="{'assets_url' | option}components/minishop2/img/web/ms2_small@2x.png 2x"
                                                     alt="{$product.pagetitle}" title="{$product.pagetitle}"/>
                                            {/if}
                					</div>
                				</div>
                				<div class="goodsDescriptionColumnWrapper">
                					<div class="goodsDescriptionColumn">
                						<p>
                							<strong>Артикул:  </strong>
                							{$product.article}
                						</p>
                						<p class="goodsDescriptionColumnBrief">
                							{if $product.options?}
                                                {foreach $product.options as $key => $option}
                                                    {if $key in ['modification','modifications','msal']}{continue}{/if}
                                            
                                                    {set $caption = $product[$key ~ '.caption']}
                                                    {set $caption = $caption ? $caption : ('ms2_product_' ~ $key) | lexicon}
                                                    
                                                    {if $option is array} 
                                                    {$caption} - {$option | join : '; '} 
                                                    {else}
                                                    {$caption} - {$option} 
                                                    {/if}
                                                    
                                                {/foreach}
                                            {/if}
                						</p>
                					</div>
                				</div>
                				<div class="goodsPrice">
                					<p>
                					    [[!msMultiCurrencyPrice? &price=`{$product.price}`]][[!+msmc.symbol_right]]
                					</p>
                				</div>
                				<div class="goodsAmount">
                    			<form method="post" class="ms2_form e quantity" role="form">
                    			  <input type="hidden" name="key" value="{$product.key}"/>
                    			  <a class="minus" href="#reduce">-</a>
                    			  <input type="number" name="count" class="counter" value="{$product.count}"/>
                    			  <a class="plus" href="#add">+</a>
                    			  <button class="btn btn-default" type="submit" name="ms2_action" value="cart/change">
                    				<i class="glyphicon glyphicon-refresh"></i>
                    			  </button>
                			    </form>
                    			</div>
                    			<div class="goodsClose">
                					<form method="post" class="ms2_form">
                					    <input type="hidden" name="key" value="{$product.key}">
                						<button type="submit" name="ms2_action" value="cart/remove">
                							<img class="goodsCloseButton" src="img/cart/closeIcon.png" alt="">
                							<img class="goodsCloseButtonHover" src="img/cart/closeHoverIcon.png" alt="">
                						</button>
                					</form>
                				</div>
                    	    </div>
                    	    {/foreach}
                    	</div>
                    	<div class="cartPageResult">
                    	    <p>
                    			<strong>
                    				{'ms2_cart_total' | lexicon}:  
                    			</strong>
                    			<span class="ms2_total_cost">[[!msMultiCurrencyPrice? &price=`{$total.cost}`]]</span> 	[[!+msmc.symbol_right]]
                    		
                    		</p>
                    		<div class="cartPageResultButton">
                				<a href="[[++site_url]]">
                					Назад в магазин
                				</a>
                				<a href="[[~56]]">Оформить заказ</a>
                			</div>
                    	</div>
                    </div>
                    {/if}
                </div>
                  Prihod
                  18 марта 2019, 19:31
                  скинь мне через техподдержку доступ в админку сайта
              homka
              21 марта 2019, 12:20
              установили модуль. пытаемся создать поставщика котировок валют и не ясно как это сделать. согласно инструкции должна быть папка providers и в ней класс пример. но такой нет папки или что-то не так поняла??
              Сергей
              03 мая 2019, 14:37
              Компонент работает с динамическим обновлением цен и товаров на компоненте msMCD, проверил на своем проекте
              Чанк вывода msMCDMiniCartRowTpl
              Вывод цены товара [[!msMultiCurrencyPrice? &price=`{$item.price}`]] [[!+msmc.symbol_right]]
              Вывод суммы [[!msMultiCurrencyPrice? &price=`{$total_cost}`]]
                Сергей
                03 мая 2019, 16:30
                fenom
                Вывод цены товара  {'!msMultiCurrencyPrice' | snippet : ['price' => $item.price,]} {$_modx->getPlaceholder('msmc.symbol_right')}
                
                Вывод суммы {'!msMultiCurrencyPrice' | snippet : ['price' => $total_cost,]} {$_modx->getPlaceholder('msmc.symbol_right')}
                Владимир
                27 мая 2019, 14:37
                Ребята, добрый день! Нужна ваша помощь. В общем проблема с выводом конвертированной суммы на страницу оплаты через liqPay.
                Коротко о поставленной мне задачи:
                У товаров основной валютой должно быть Евро, но в корзине и на страницу оплаты через Liqpay должна быть цена пересчитанная в грн. В общем все настроил, только вот в LiqPay заходит сумма не 3000 грн, 100 грн, где 100 это цена товара в евро.
                  Prihod
                  27 мая 2019, 15:27
                  Ну так дополнение которое реализует оплату liqPay берет цену из поля price, а у тебя там цена в евро вот ты и получаешь 100 грн. Система оплаты ничего же не знает о msMultiCurrency. Поэтому тебе нужно, если конечно в этом модуле оплаты есть системное событие, прикрутить плагин в котором конвертировать сумму из евро в гривну. Вот код конвертации.

                  $convertCurrencyId = 2; // ID валюты в которую нужно конвертировать цену. У гривны это 2  
                  $msmc = $modx->getService('msmulticurrency', 'MsMC');
                  $convertPrice =  $msmc->getPrice($price, 0, $convertCurrencyId, 0, false);
                    Владимир
                    27 мая 2019, 15:44
                    Огромное спасибо! Буду пробовать
                      Владимир
                      27 мая 2019, 16:43
                      На сколько я понял скрипт находиться здесь core/components/minishop2/custom/payment/liqpay.class.php
                      <?php
                      
                      if (!class_exists('msPaymentInterface')) {
                      	require_once dirname(dirname(dirname(__FILE__))) . '/model/minishop2/mspaymenthandler.class.php';
                      }
                      
                      class LiqPay extends msPaymentHandler implements msPaymentInterface {
                      	public $config;
                      	public $modx;
                      
                      	function __construct(xPDOObject $object, $config = array()) {
                      		$this->modx = & $object->xpdo;
                      		$siteUrl = $this->modx->getOption('site_url');
                      		$assetsUrl = $this->modx->getOption('minishop2.assets_url', $config, $this->modx->getOption('assets_url').'components/minishop2/');
                      		$paymentUrl = $siteUrl . substr($assetsUrl, 1) . 'payment/liqpay.php';
                      		$this->config = array_merge(array(
                      			'paymentUrl' => $paymentUrl
                      			,'checkoutUrl' => $this->modx->getOption('ms2_payment_liqpay_url', null, 'https://www.liqpay.com/api/pay', true)
                      			,'public_key' => $this->modx->getOption('ms2_payment_liqpay_public_key')
                      			,'private_key' => $this->modx->getOption('ms2_payment_liqpay_private_key')
                      			,'currency' => $this->modx->getOption('ms2_payment_liqpay_currency', 'USD')
                      			,'culture' => $this->modx->getOption('ms2_payment_liqpay_culture', 'ru')
                      			,'sandbox' => $this->modx->getOption('ms2_payment_liqpay_sandbox')
                      			,'payway' => $this->modx->getOption('ms2_payment_liqpay_payway', 'card, liqpay, delayed, invoice, privat24', true)
                      		), $config);
                      	}
                      
                      	/* @inheritdoc} */
                      	public function send(msOrder $order) {
                      		$link = $this->getPaymentLink($order);
                      		return $this->success('', array('redirect' => $link));
                      	}
                      
                      	public function getPaymentLink(msOrder $order) {
                      		$id = $order->get('id');
                      		$successUrl = $this->config['paymentUrl']."?action=success&order_id=".$id;
                      		$sum = number_format($order->get('cost'), 2, '.', '');
                              $description='Payment #'.$id;
                              $signature = base64_encode(sha1($this->config['private_key'].$sum.$this->config['currency'].$this->config['public_key'].$id.'buy'.$description.$successUrl.$this->config['paymentUrl'],1));
                      		$request = array(
                      			'url' => $this->config['checkoutUrl']
                      			,'public_key' => $this->config['public_key']
                      			,'amount' => $sum
                      			,'order_id' => $id
                      			,'type' => 'buy'
                      			,'pay_way' => $this->config['payway']
                      			,'language' => $this->config['culture']
                      			,'sandbox' => $this->config['sandbox']
                      			,'signature' => $signature
                      			,'description' => $description
                      			,'result_url'=> $successUrl
                      			,'server_url' => $this->config['paymentUrl']
                      			,'currency' => $this->config['currency']
                      		);
                      		$link = $this->config['checkoutUrl'] .'?'. http_build_query($request);
                      		return $link;
                      	}
                      
                      	/* @inheritdoc} */
                      	public function receive(msOrder $order, $params = array()) {
                      		$id = $order->get('id');
                      		$success =
                                  isset($_POST['amount']) &&
                                  isset($_POST['currency']) &&
                                  isset($_POST['public_key']) &&
                                  isset($_POST['description']) &&
                                  isset($_POST['order_id']) &&
                                  isset($_POST['type']) &&
                                  isset($_POST['status']) &&
                                  isset($_POST['transaction_id']) &&
                                  isset($_POST['sender_phone']);
                              if (!$success) { die(); }
                              $amount = $_POST['amount'];
                              $currency = $_POST['currency'];
                              $public_key = $_POST['public_key'];
                              $description = $_POST['description'];
                              $order_id = $_POST['order_id'];
                              $type = $_POST['type'];
                              $status = $_POST['status'];
                              $transaction_id = $_POST['transaction_id'];
                              $sender_phone = $_POST['sender_phone'];
                              $insig = $_POST['signature'];
                              if ($order_id!=$id) { die(); }
                              $private_key = $this->config['private_key'];
                              $gensig = base64_encode(sha1(join('',compact(
                                  'private_key',
                                  'amount',
                                  'currency',
                                  'public_key',
                                  'order_id',
                                  'type',
                                  'description',
                                  'status',
                                  'transaction_id',
                                  'sender_phone'
                              )),1));
                              if ($insig != $gensig) { die(); }
                              if ($status == 'sandbox' || $status == 'success') {
                              	/* @var miniShop2 $miniShop2 */
                      			$miniShop2 = $this->modx->getService('miniShop2');
                      			@$this->modx->context->key = 'mgr';
                      			$miniShop2->changeOrderStatus($order->get('id'), 2);
                      			exit('OK');
                              } elseif ($status == 'failure') {
                                  $this->paymentError('Err: wrong signature.', $params);
                              }
                      	}
                      
                      	public function paymentError($text, $request = array()) {
                      		$this->modx->log(modX::LOG_LEVEL_ERROR,'[miniShop2:LiqPay] ' . $text . ', request: '.print_r($request,1));
                      		header("HTTP/1.0 400 Bad Request");
                      
                      		die('ERR: ' . $text);
                      	}
                      }
                      Вот только как прикрутить к нему выше указанный Вами код, реально не выкупаю. Буду весьма признателен за помощь
                        Prihod
                        27 мая 2019, 17:04
                        ну тебе нужно сделать свой класс который будет наследникам LiqPay в котором переопределить метод getPaymentLink т/к в этом методе происходит получение цены заказа. Нужно
                        $sum = number_format($order->get('cost'), 2, '.', '');
                        заменить на

                        $msmc = $modx->getService('msmulticurrency', 'MsMC');
                        $sum =  $msmc->getPrice($order->get('cost'), 0, 2, 0, false);
                        $sum = number_format($sum, 2, '.', '');


                        потом естественно свой класс нужно указать в настройках miniShop2 prntscr.com/ntykpc
                          Владимир
                          27 мая 2019, 18:04
                          На данный момент в minishope в выборе класса оплаты нельзя вбить свой, а в выпадающем меню только PayPal и LiqPay. Есть ли возможность откорректировать родительский класс?
                            Prihod
                            27 мая 2019, 20:03
                            ну по моему если ты этот свой класс добавишь в core/components/minishop2/custom/payment то он появиться в списке
                              Владимир
                              27 мая 2019, 21:34
                              В общем через создание нового класса так и не получилось (виснет корзина, а при обновлении страницы пишет корзина пуста), но засветилась ошибка в логах, о конфликте с компонентом msExtraFields, снес компонент и выбранная валюта стала передаваться в LiqPay, в общем огромное спасибо! Напишу скрипт на выбор гривны при загрузке страницы и удаления выпадающего списка и будет все ок). Еще раз спасибо!
                    Evgeny Tarasov
                    11 февраля 2020, 12:21
                    Планирую приобрести данное дополнение.
                    Подскажите, может кто сталкивался, дополнение msMultiCurrency работает с msOptionsPrice2?
                    Володя (автор msOptionsPrice2) сказал, что нужно уточнять у разработчика msMultiCurrency.
                      Prihod
                      11 февраля 2020, 18:14
                      Частично, не работает привязка товара к валюте т.к для этого нужно делать правки компонента msOptionsPrice2
                        Александр
                        24 апреля 2020, 22:51
                        Не подскажите, в каком направлении должны быть правки?
                          Prihod
                          24 апреля 2020, 22:57
                          когда привязывается цена к валюте то цена в выбранной валюте указывается в отдельном поле которое добавлено к товару, у модификаций msOptionsPrice2 такого поля нет и добавить его через плагин как это сделано для товара нельзя
                      Николай
                      11 февраля 2020, 17:19
                      Планирую купить ваш компонент, однако задача стоит нетривиальная. Может ли ваш компонент по клику менять цену в [[+price]]. Допустим менеджер внес цену в евро (т.к. именно в евро ему дает цену поставщик), потом он нажимает где то в админке кнопку и цена меняется именно в поле [[+price]] на рубли. В общем клиент хочет менять валюту в бекенде точнее в своей админке причем именно нажатием на кнопку, он не планирует импортировать товары.
                        Prihod
                        11 февраля 2020, 18:11
                        Привязка товара к валюте так и происходит, ты вводишь цену в выбранной валюте, а она автоматом пересчитывается по курсу в базовую при сохранении товара
                        Prihod
                        13 февраля 2020, 22:39
                        UPD 1.1.0
                        — Добавлено: Параметр «ID валюты по умолчанию на сайте» (для разных контекстов можно указать свою валюту)
                        — Изменено: При включенной опции «Цена в корзине в валюте пользователя» заказ создается в валюте выбранной пользователем. ВАЖНО! Если используется какой то платежный сервис то значение цены для него будет в валюте выбранной пользователем.
                        — Изменено: Cниппет «msMultiCurrencyCart» (в чанках больше не нужно использовать сниппет msMultiCurrencyPrice)
                        — Улучшено: Работа с контекстами
                          Владимир Ребров
                          25 февраля 2020, 19:23
                          При создании нового товара устанавливается код валюты = 0. Без названия валюты, которого естественно и быть не может, так как валюты с таким кодом в базе нет.


                          После сохранения нового товара, даже, если принудительно выбираю базовую (основную) валюту, код валюты опять сбрасывается в ноль и наблюдается картина со скрина выше.

                          Если выбрать для нового товара небазовую неосновную валюту, то в этом случае основная цена пересчитывается и после сохранения товара выбранная валюта сохраняется, но в поле валюты отображается её ID, а не название.
                            Владимир Ребров
                            25 февраля 2020, 22:59
                            Вопрос закрыт в рамках техподдержки. Спасибо автору дополнения за помощь и исчерпывающую консультацию.
                            Arahort
                            10 апреля 2020, 11:29
                            Здравствуйте, стоит задача дать возможность вносить в админке цены в рубля\долларах\евро и на сайте везде выводить в рублях, установил на modhost тестовую версию, не с первого раза но всё таки обновились курсы валют, ввожу цену в долларах, в поле price как и должно быть появляется цена в рублях по курсу. Но я так понял при смене курса цены не меняются? Вручную изменил курс — цены остались те же?
                              local
                              10 апреля 2020, 11:50
                              в настройках модуля указано, что нужно его автоматически обновлять?
                              https://prnt.sc/rm1onf
                                Arahort
                                10 апреля 2020, 14:32
                                Да joxi.ru/ZrJ9e5LcM74vxA
                                P.S Я имею ввиду изменение не курса, а цены товара при смене курса
                                  local
                                  10 апреля 2020, 14:41
                                  при изменение курса, цена меняется, когда включена эта опция
                                    Arahort
                                    10 апреля 2020, 14:45
                                    Цена уже созданных товаров? Я вручную меняю курс доллара например на 80 — цена товаров остаётся прежней
                                      Prihod
                                      10 апреля 2020, 19:03
                                      все должно пересчитываться даже если ты вручную меняешь курс валюты так что смотри лог modx и лог ошибок сервера. Ну и проверь что у тебя не закешировались данные товара
                              Andrey
                              10 апреля 2020, 19:47
                              добрый день.
                              планируем использовать дополнение, чтобы в контексте с англ. версией сайта выводить цену в USD.
                              Используем msOptionPrice (для опций цвета, не для цен)
                              Есть вопросы:
                              1. Можем ли заводить вручную цены в USD и в рублях по-отдельности? я так понял, они будут связаны курсом?
                              Мы не хотим привязываться к курсу, сами все цены круглые проставим.
                              2. возможно, был опыт — через какую платежную систему можем брать оплату с карт в долларах?
                              и в них же получать потом на расчётный счет.
                              сейчас используется яндекс.касса, но они все равно транзакции только в рублях могут производить.
                                Prihod
                                10 апреля 2020, 20:17
                                Можем ли заводить вручную цены в USD и в рублях по-отдельности? я так понял, они будут связаны курсом?
                                Нет, но в новой версии возможно эта возможность будет
                                  Andrey
                                  10 апреля 2020, 20:26
                                  как скоро можно ожидать?
                                    Prihod
                                    10 апреля 2020, 20:28
                                    не раньше июня
                                      Andrey
                                      28 мая 2020, 11:12
                                      добрый день!
                                      очень ждем, готовы проспонсировать функцию
                                Виктор
                                07 июля 2020, 18:53
                                Сергей, приветствую! Что-то у меня техподдержка на день раньше отключилась. Спасибо тебе огромное за помощь. По последнему вопросу с НП — да, совсем мимо задал… Но всё получилось!)

                                Возник еще момент странный. Пока доработка liqpay в процессе, снял в настройках «отображение корзины в валюте пользователя». Но вот что вышло — итоговая сумма, сумма за каждый товар показывается как надо — не переключаются, а «итого с доставкой» всё равно переключается вместе со сменой валюты.

                                Сайт — lovebythemoon.store
                                  Prihod
                                  09 июля 2020, 15:12
                                  Hi, доступы к сайту актуальные? Если нет то сделай такие как были раньше я сегодня постараюсь посмотреть
                                    Виктор
                                    10 июля 2020, 18:18
                                    Да, те же. Сумму вызывал как положено — без сниппета
                                      Prihod
                                      12 июля 2020, 21:43
                                      в общим там в js файле msMultiCurrency остался код от старой версии я у тебя ее поправил
                                  Rrp2010
                                  01 ноября 2020, 00:01
                                  Здравствуйте! Добавлена ли совместимость с msOptionPrice?
                                    Александр
                                    21 февраля 2021, 16:43
                                    Здравствуйте. Написали в техподдржку компонента ещё в пятницу, до сих пор ответа нет. Продублирую здесь, может кто то сталкивался и подскажет:
                                    Добрый день. Подскажите пожалуйста: Задаем цену товара 170$ и надо ее выводить именно так, однако видимо при пересчете получается 169.99 это при точности 2. Если ставим точность ноль, то выводит 169$. Получается округляет в меньшую сторону. Как то можно сделать чтобы округляло в большую сторону? Или же цена, которая задана (привязана к товару) выводилась именно такой, как задана? В данном случае 170$

                                    На странице товара выводим так:

                                    {'!msMultiCurrencyPrice' | snippet: [
                                    'price' => $_pls['price'],
                                    ]}
                                    {$_modx->getPlaceholder('msmc.symbol_right')}


                                    Далее обнаружил что в динамической корзине товар с ценой 4.74$ например (это пересчет по курсу от цены в рублях), пересчитывается, вернее показывает, при количестве 4 штук вот так:
                                    4 x 4 = 18
                                    Получается что пересчет идет: 4.74 умножает на 4, потом округляет 18.96 до 18. Но показывает округленную цену товара, равную 4. И получается неправильная арифметика.
                                    Возможно кто то знает решение.
                                    Спасибо.
                                      Александр
                                      22 февраля 2021, 12:17
                                      В техподдержке ответили: Нужно написать свой плагин для события msmcOnGetPrice в котором делать округление в нужную сторону. Будем пробовать
                                      Александр
                                      25 февраля 2021, 19:58
                                      Опять возник вопрос, написали утром в поддержку, нет ответа, а время поджимает. Поэтому спрошу и здесь.
                                      Каким образом правильно загружать компонентом msImportExport?
                                      Сейчас загружая указываем id валюты, цену в валюте, всё это загружается и отображается в карточке товара в админке и там же перерасчитанная цена в рублях. А в категории в админке в списке товаров цены нулевые и на сайте также не отображаются. После пересохранения товара вручную начинают отображаться, пробовали программно пересохранять — ничего не меняется. В чем ошибка?
                                        Роман
                                        15 марта 2021, 11:14
                                        Здравствуйте. Создается новый магазин, еще не наполняли товарами. Хочется задать каждому товару стоимость в Евро, на фронтенде чтобы было отображение в Гривне.

                                        При изменении курса, допустим с 33 грн до 34 грн за 1 евро, зайти в админку, изменить в одном поле 33 на 34 и получить пересчет всех цен.

                                        Компонент готов к таким нечеловеческим нагрузкам?)
                                          Prihod
                                          15 марта 2021, 11:24
                                          Да, в карточки товар можно сделать привязку цены к нужной валюте после чего при изменении курса привязанной валюты будет автоматически пересчитывается цена товара к основной валюте
                                          Курс валюты можно обновлять как вручную так и автоматически по крону
                                            Роман
                                            15 марта 2021, 11:51
                                            Курс 33, выставляю стоимость 11.8 евро, получаю стоимость 389.4 грн, задаю формат цен [0, ".", " "], получаю отображение цены 389 грн на фронтенде.

                                            Но при заказе в CRM получаю стоимость 389.4 грн.

                                            Как округлять правильно? Нужно чтобы и в CRM получать стоимость 389 грн.
                                          Sergey (Sentinel)
                                          16 апреля 2021, 14:24
                                          Как можно переключать валюту для polylang? При смене языка?
                                            Сергей Карпович
                                            03 мая 2021, 09:55
                                            Тоже интересует данный вопрос, автор в личке пока молчит
                                              Sergey (Sentinel)
                                              04 мая 2021, 10:36
                                              Автор выпустил обновление с интеграцией, но пока не удалось решить задачу. Разбираемся.
                                                Сергей Карпович
                                                04 мая 2021, 10:42
                                                Интеграция работает так: соответствующая валюта языку включается при первом входе на языковую версию сайта. Т.е. по умолчанию.
                                                Но если затем переключить язык на сайте, то валюта не переключается.
                                              Prihod
                                              07 мая 2021, 00:43
                                              Обнови до последней версии msMultiCurrency и Polylang и создай плагин код которого приведен в доках Polylang в разделе msMultiCurrency
                                                Александр Быковский
                                                09 июня 2021, 11:50
                                                Добрый день. Тоже подключился к данной теме по просьбе) Дополнения последние msMultiCurrency и Polylang. У У ссылок класс polylang-toggle как и в trigger. Событие OnTogglePolylangLanguage для плагина из документации. Но переключение валюты при смене языка не происходит
                                              Prihod
                                              28 мая 2021, 14:59
                                              Если не корректно считается стоимость доставки и версия miniShop2 < 2.9.*-pl то необходим обновить файл /core/components/minishop2/model/minishop2/msorderhandler.class.php на этот
                                                Oleg
                                                14 февраля 2023, 10:06
                                                Всем привет. Доставку в оформлении заказа неправильно считает, то есть не переводит в usd. Самое интересное, что сначала правильно считает, но потом срабатывают скрипты и цена меняется на неправильную. Может было у кого подобное?

                                                www.youtube.com/watch?v=KBjx4Olh970
                                                  Andy
                                                  03 мая 2023, 14:51
                                                  Добрый день! Юань поддерживается?
                                                    Prihod
                                                    03 мая 2023, 15:46
                                                    Да, только его нужно будет добавить вручную joxi.ru/a2XN0EgCpQ7lMr
                                                      Артур Шевченко
                                                      22 мая 2023, 13:54
                                                      Я тут сайт пилил с несколькими контекстами. Контексты на разных доменах. Повесил плагин переключения контекстов на OnHandleRequest, контексты исправно переключались, но авторизация во втором контексте не работала. Причина тому плагин на событие OnMODXInit, в котором есть вот такой код
                                                      $msmc->makePlaceholders();
                                                      И в этой функции есть вызов метода switchContext(), который берет ключ контекста из сессии. Поскольку я не придумал как добавить ключ контекста в сессию на событие OnMODXInit, то просто сделал так
                                                      case 'OnMODXInit':
                                                              $msmc->extendMsOptionsPriceModel();
                                                              break;
                                                          case 'OnHandleRequest':
                                                              if ($ctx === 'mgr') return;
                                                               $msmc->makePlaceholders();
                                                              $key = $msmc->getSessionContextKey();
                                                              $_SESSION[$key] = $ctx;
                                                              break;
                                                    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                                    69