Не выводить ссылку для добавления товара в корзину если его нет на складе — различия между версиями
Материал из Umicms
Alexh (обсуждение | вклад) (Новая страница: «Часто бывает необходимость отключить возможность добавления товара в корзину (либо отклю…») |
Velross (обсуждение | вклад) м (переименовал «Не выводить ссылку для добавления товара в корзину если его нет на складе (XSLT)» в «[[Не выводить ссылку для добавления товар) |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
+ | Актуально для версии 2.9.6 | ||
+ | |||
+ | ---- | ||
+ | '''Задача:''' скрывать кнопку заказа при отсутствии товара на складе. | ||
+ | |||
+ | '''Решение:''' | ||
Часто бывает необходимость отключить возможность добавления товара в корзину (либо отключить вывод данного товара) если его нет на складе. | Часто бывает необходимость отключить возможность добавления товара в корзину (либо отключить вывод данного товара) если его нет на складе. | ||
Строка 6: | Строка 12: | ||
<source lang="xml"> | <source lang="xml"> | ||
− | <xsl:variable name="sklad" select=" | + | <xsl:variable name="sklad" select="//property[@name = 'stores_state']/value/option/@int"/> |
</source> | </source> | ||
Строка 14: | Строка 20: | ||
<source lang="xml"> | <source lang="xml"> | ||
<xsl:choose> | <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:when test="$sklad"> | + | <xsl:text>&basket-add; </xsl:text> |
− | <a id="add_basket_{@id}" | + | <xsl:variable name="element_id" select="@id" /> |
− | class="button basket_list | + | <xsl:if test="$cart_items and $cart_items/item[page/@id = $element_id]"> |
− | <xsl:text>&basket-add; </xsl:text> | + | <xsl:text> (</xsl:text> |
− | <xsl:variable name="element_id" select="@id" /> | + | <xsl:value-of select="sum($cart_items/item[page/@id = $element_id]/amount)" /> |
− | <xsl:if test="$cart_items and $cart_items/item[page/@id = $element_id]"> | + | <xsl:text>)</xsl:text> |
− | <xsl:text> (</xsl:text> | + | </xsl:if> |
− | <xsl:value-of select="sum($cart_items/item[page/@id = $element_id]/amount)" /> | + | </a> |
− | <xsl:text>)</xsl:text> | + | </xsl:when> |
− | </xsl:if> | + | <xsl:otherwise> |
− | </a> | + | <xsl:text>НЕТ В НАЛИЧИИ </xsl:text> |
− | </xsl:when> | + | </xsl:otherwise> |
</xsl:choose> | </xsl:choose> | ||
</source> | </source> | ||
Вместо надписи НЕТ В НАЛИЧИИ можно указать ссылку на форму обратной связи, через которую покупатель сможет отправить заявку на нужный товар. | Вместо надписи НЕТ В НАЛИЧИИ можно указать ссылку на форму обратной связи, через которую покупатель сможет отправить заявку на нужный товар. | ||
+ | |||
+ | [[Категория:Модуль Каталог]][[Категория:Верстка в XSLT]] |
Текущая версия на 07:52, 30 апреля 2014
Актуально для версии 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>
Вместо надписи НЕТ В НАЛИЧИИ можно указать ссылку на форму обратной связи, через которую покупатель сможет отправить заявку на нужный товар.