Не выводить ссылку для добавления товара в корзину если его нет на складе
Материал из Umicms
(перенаправлено с «Не выводить ссылку для добавления товара в корзину если его нет на складе (XSLT)»)
Актуально для версии 2.9.6
Задача: скрывать кнопку заказа при отсутствии товара на складе.
Решение: Часто бывает необходимость отключить возможность добавления товара в корзину (либо отключить вывод данного товара) если его нет на складе.
Ниже представлен пример XSLT шаблона который реализует данную задачу:
Записываем в переменную $sklad количество товара на складе:
<xsl:variable name="sklad" select="//property[@name = 'stores_state']/value/option/@int"/>
Проверяем, если товар отсутствует на складе, то выводим сообщение о том, что товара нет в наличии. Если товар имеется на складе то выводим ссылку на добавление товара в корзину.
<xsl:choose>
<xsl:when test="$sklad > 0">
<a id="add_basket_{@id}"
class="button basket_list" href="{$lang-prefix}/emarket/basket/put/element/{@id}/">
<xsl:text>&basket-add; </xsl:text>
<xsl:variable name="element_id" select="@id" />
<xsl:if test="$cart_items and $cart_items/item[page/@id = $element_id]">
<xsl:text> (</xsl:text>
<xsl:value-of select="sum($cart_items/item[page/@id = $element_id]/amount)" />
<xsl:text>)</xsl:text>
</xsl:if>
</a>
</xsl:when>
<xsl:otherwise>
<xsl:text>НЕТ В НАЛИЧИИ </xsl:text>
</xsl:otherwise>
</xsl:choose>
Вместо надписи НЕТ В НАЛИЧИИ можно указать ссылку на форму обратной связи, через которую покупатель сможет отправить заявку на нужный товар.