<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:hostcms="http://www.hostcms.ru/"
exclude-result-prefixes="hostcms">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<!-- МагазинКорзинаКраткая -->
<xsl:decimal-format name="my" decimal-separator="," grouping-separator=" "/>
<xsl:template match="/shop">
<div id="little_cart">
<xsl:choose>
<!-- В корзине нет ни одного элемента -->
<xsl:when test="count(shop_cart) = 0">
<a href="{/shop/url}cart/" class="cart-a"><img src="/images/cart.png" />Товаров в корзине: 0шт.</a>
<p><xsl:choose>
<xsl:when test="siteuser_id != 0">
Если вы зарегистрированный пользователь, данные вашей корзины станут видны после <a href="/users/">авторизации</a>.
</xsl:when>
<xsl:otherwise><!--Перейдите в <a href="{/shop/url}">каталог</a>, выберите требуемый товар и добавьте его в корзину.--></xsl:otherwise>
</xsl:choose></p>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="totalQuantity" select="sum(shop_cart[postpone = 0]/quantity)" />
<!-- Вывод общих количества, веса и стоимости товаров -->
<a href="{/shop/url}cart/" class="cart-a"><img src="/images/cart.png" />Товаров в корзине: <xsl:value-of select="$totalQuantity"/><xsl:text> </xsl:text>шт.
</a>
</xsl:otherwise>
</xsl:choose>
</div>
</xsl:template>
<!-- Склонение после числительных -->
<xsl:template name="declension">
<xsl:param name="number" select="number"/>
<!-- Именительный падеж -->
<xsl:variable name="nominative">
<xsl:text>товар</xsl:text>
</xsl:variable>
<!-- Родительный падеж, единственное число -->
<xsl:variable name="genitive_singular">
<xsl:text>товара</xsl:text>
</xsl:variable>
<xsl:variable name="genitive_plural">
<xsl:text>товаров</xsl:text>
</xsl:variable>
<xsl:variable name="last_digit">
<xsl:value-of select="$number mod 10"/>
</xsl:variable>
<xsl:variable name="last_two_digits">
<xsl:value-of select="$number mod 100"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$last_digit = 1 and $last_two_digits != 11">
<xsl:value-of select="$nominative"/>
</xsl:when>
<xsl:when test="$last_digit = 2 and $last_two_digits != 12 or $last_digit = 3 and $last_two_digits != 13 or $last_digit = 4 and $last_two_digits != 14">
<xsl:value-of select="$genitive_singular"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$genitive_plural"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
Измененный код. При добавлении товара, корзина показывает количество товаров. После обновления счетчик сбрасывается(просто показывает 0). Но если снова добавить товар, она прибавит его к предыдущим. Большая корзина работает нормально.