Здравствуйте! Хотим указать в .../modules/catalog/object-view.xsl условия доставки ("доставка ?! руб.", "бесплатная доставка"). Ниже код, подскажите, как правильно сделать проверку, чтобы, если стоимость товара 15.000 руб. и больше, то "бесплатная доставка", а если меньше 15.000 руб., то "доставка ?! руб.".
<xsl:choose>
<xsl:when test="здесь условие для проверки - данные по стоимости товара должны браться из udata://emarket/price/">
Бесплатная доставка
</xsl:when>
<xsl:otherwise>
Доставка ?! руб.
</xsl:otherwise>
</xsl:choose>
Суть вопроса не в том, какой путь указать, а как проверить, что именно "value" этого самого "price" выводит, т.е. какое значение? И если это значение превышает 15.000 руб., то выводить "бесплатная доставка". Знаю, что надо создавать переменную объявив её в шаблоне, а затем указать в этой переменной нужное значение для проверки:
<xsl:variable name="item_price" select="document(concat('udata://emarket/price/', page/@id))" />
<xsl:choose>
<!-- если значение $item_price больше или равно (не меньше) 15.000 руб. -->
<xsl:when test="$item_price >= 15000">
Бесплатная доставка
</xsl:when>
<xsl:otherwise>
Доставка ?! руб.
</xsl:otherwise>
</xsl:choose>
Моё условие может быть неверной, но суть вопроса раскрывает. Просьба подсказать, как правильно написать, если я сам написал неверное проверочное условие? Если все верно за исключением чего-то одного, подправьте, пожалуйста.
необязательно помещать в переменную, но суть верна, только нельзя использовать знак больше меньше в явном виде, надо использовать > и <
<xsl:choose>
<!-- если значение $item_price больше или равно (не меньше) 15.000 руб. -->
<xsl:when test="document(concat('udata://emarket/price/', page/@id,'//0'))/udata/price/actual >= 15000">
Бесплатная доставка
</xsl:when>
<xsl:otherwise>
Доставка ?! руб.
</xsl:otherwise>
</xsl:choose>
P.S. обратите внимание на последний параметр при вызове emarket/price и почитайте в документации зачем он нужен... советую использовать везде, где не нужны валюты.