Цены в другой валюте

#
Цены в другой валюте
В справочнике валют есть несколько валют. Как сделать так, чтобы при смене валюты в "Редактировании информации о товаре", цена выводилась в другой валюте?
Я нашёл в xsl шаблоне место вывода:
<xsl:value-of select="sum((price | discount)[number(.) = .])"/>
<xsl:value-of select="currency" disable-output-escaping="yes"/>

Но не пойму как обратиться к конкретной валюте? Код валюты прописать как-то или ещё что... Всего пару дней с HostCMS разбираюсь.

И да, я пытался добавить хук отсюда http://www.hostcms.ru/documentation/modules/core/events/ в ТДС "интернет магазин", но всё равно не получается другую валюту получить.
Модератор
#
Re: Цены в другой валюте
reireirei,
Магазин работает в валюте, указанной у магазина. Каждый товар может иметь свою валюту, которая будет пересчитываться в валюту магазина согласно курсам, заданым в справочнике валют.

reireirei писал(а):
но всё равно не получается другую валюту получить.

так надо включить XML и посмотреть, в каком узле XML находятся интересующие вас сведения
#
Re: Цены в другой валюте
hostcms писал(а):
Магазин работает в валюте, указанной у магазина. Каждый товар может иметь свою валюту, которая будет пересчитываться в валюту магазина согласно курсам, заданым в справочнике валют.

Мне нужно чтоб не пересчитывалось, а цена товара была в той валюте, которая выбрана в "информации о товаре". Т.е. Если при редактировании информации о товаре из выпадающего списка выбираю евро, то цена этого товара отображается в евро и т.д.
[img]https://i.gyazo.com/49003be3333daaa29bcce1c1911184a8.png [/img]
hostcms писал(а):
так надо включить XML и посмотреть, в каком узле XML находятся интересующие вас сведения

А где его включить? XML как такового я вообще нигде не нашёл...
Модератор
#
Re: Цены в другой валюте
#
Re: Цены в другой валюте
Генерируется только id валюты магазина <shop_currency_id>4</shop_currency_id>
А разные валюты для разных товаров в магазине (в соответствии с тем, что выбрано в информации о товаре) никак не сделать?
Модератор
#
Re: Цены в другой валюте
reireirei,
согласно хуку, на который вы ссылаетесь в первом сообщении, в ноду <prices> добавляются и значение в валюте, и сама валюта, поэтому все данные есть, осталось только вывести.
#
Re: Цены в другой валюте
Не пойму что в xsl надо писать чтоб нужную валюту вывести... Пробовал select="shop_currency", select="shop_currency[@id=1]",  select="currency[@id=1]" и др. вставлять...
Модератор
#
Re: Цены в другой валюте
reireirei,
вы что, наугад пишите?
я вам даже названия узла привел, рассказал как включить XML, определить правильный путь к данным.
#
Re: Цены в другой валюте
Ну насколько я понимаю вот тут добавляется:
$oPrices = Core::factory('Core_Xml_Entity')
               ->name('prices');

            $oShop = $object->Shop;
            $aShop_Currencies = Core_Entity::factory('Shop_Currency')->findAll();


$oPrices->addEntity(
                  Core::factory('Core_Xml_Entity')
                     ->name('price')
                     ->addEntity(
                        Core::factory('Core_Xml_Entity')
                           ->name('value')
                           ->value(
                              Shop_Controller::instance()->round($aPrices['price_discount'] * $fCurrencyCoefficient)
                           )
                     )
                     ->addEntity(
                        $oShop_Currency
                     )
               );
            }

            $object->addEntity($oPrices);


Я так понимаю раз $oShop_Currency элемент массива $aShop_Currencies, в узле prices должно быть что-то вроде currency[id] (я подробно не знаком с xsl шаблонами и тем как это в hostcms должно записываться)
Модератор
#
Re: Цены в другой валюте
reireirei, ВКЛЮЧИТЕ XML и ПОСМОТРИТЕ ДАННЫЕ.

опять слепое программирование, как-то так:
<xsl:variable name="currencyId" select="shop_currency_id" />
<xsl:value-of select="prices/price[shop_currency[@id = $currencyId]/node()]/value" />


если не получится - присылайте в поддержку с данными доступа, для форума тема затянулась
Авторизация