Обход валюты по умолчанию

#
Обход валюты по умолчанию
Есть интернет-магазин, в котором разные товары используют разную валюту.
Если установлена валюта магазина, скажем, $, то все товары, цены которых указаны, например, в евро, пересчитываются и отображаются в долларах.
Каким образом можно реализовать, чтобы в какой валюте установлена цена товара, в такой она и отображалась в карточке, а пересчет если и был, то на финальной стадии оформления заказа.
#
Re: Обход валюты по умолчанию
Ator писал(а):
Каким образом можно реализовать, чтобы в какой валюте установлена цена товара, в такой она и отображалась в карточке
- у нас в коде стандартного XSL-шаблона "МагазинКаталогТоваров" имеется блок пересчета цены товара во все валюты из справочника и выводом полученных значений. Можете использовать этот пересчет, добавив проверку: делать его только для той валюты, которая совпадает с валютой данного товара(ее название содержится в теге <item_currency> для item-а, см. XML-код).
#
Re: Обход валюты по умолчанию
Спасибо огромное! Но возникла новая проблема.

В шаблоне МагазинКаталогТоваровНаГлавнойСпецПред следующий код выдает каждому товару по две цены. Дело в том, что в перечне товаров, выводимых на главную присутствуют товары и в евро, и в фунтах. В итоге под КАЖДЫМ из них показывается цена в евро и в фунтах. Только вот в коде докопаться до сути я не смог.

<p style="color:black;font-weight:bold;text-align:center;">
                  
                        <!-- Цена -->
                        <xsl:variable name="price" select="price"/>
                  Цена:
                  <xsl:choose>
                  <xsl:when test="shop_list_of_prices_for_item/shop_list_of_price_for_item !=0">
                     <xsl:if test="count(/shop/all_currency/shop_currency) > 1 and $price > 0">
                                    <!-- Выбираем валюты -->
                                    <xsl:for-each select="/shop/all_currency/shop_currency">
                                       <xsl:if test="/shop/item/item_currency = shop_currency_name">
                                            <xsl:value-of disable-output-escaping="yes" select="shop_currency_name"/><xsl:value-of select="format-number($price * shop_currency_coefficient, '### ##0,00', 'my')"/>
                                       </xsl:if>
                                    </xsl:for-each>
                            </xsl:if>
                  </xsl:when>
                     <xsl:otherwise>
                        <xsl:if test="price =0">
                           договорная
                        </xsl:if>
                        
                     </xsl:otherwise>
                  </xsl:choose>
                  
               </p>
#
Re: Обход валюты по умолчанию
Вместо:
<!-- Выбираем валюты -->
<xsl:for-each select="/shop/all_currency/shop_currency">
<xsl:if test="/shop/item/item_currency = shop_currency_name">

используйте:
<xsl:variable name="item_id" select="@id"/>
<!-- Выбираем валюты -->
<xsl:for-each select="/shop/all_currency/shop_currency">
<xsl:if test="/shop//item[@id = $item_id]/item_currency = shop_currency_name">
Авторизация