Не выводить ссылку для добавления товара в корзину если его нет на складе

Материал из Umicms
Перейти к:навигация, поиск

Актуально для версии 2.9.6


Задача: скрывать кнопку заказа при отсутствии товара на складе.

Решение: Часто бывает необходимость отключить возможность добавления товара в корзину (либо отключить вывод данного товара) если его нет на складе.

Ниже представлен пример XSLT шаблона который реализует данную задачу:

Записываем в переменную $sklad количество товара на складе:

<xsl:variable name="sklad" select="//property[@name = 'stores_state']/value/option/@int"/>


Проверяем, если товар отсутствует на складе, то выводим сообщение о том, что товара нет в наличии. Если товар имеется на складе то выводим ссылку на добавление товара в корзину.

<xsl:choose>
	<xsl:when test="$sklad &gt; 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>

Вместо надписи НЕТ В НАЛИЧИИ можно указать ссылку на форму обратной связи, через которую покупатель сможет отправить заявку на нужный товар.