Показ отложенных товаров в краткой корзине (для сайтов на HostCMS v6)

Показ отложенных товаров в краткой корзине (для сайтов на HostCMS v6)

После последнего обновления 6.1.4 появилась возможность показать пользователю в краткой корзине отложенные им товары. Удобная функция, особенно для тех интернет-магазинов, в которых пользователи обычно покупают сразу несколько товаров за раз. Например, интернет-магазин заказов еды на дом, или оптовый магазин. В общем, случаев применения может быть множество.

Образец использования

Рассмотрим, как это можно использовать. Все доработки делаются в XSL-шаблоне "МагазинКорзинаКраткая". Пример шаблона взят с конкретного сайта. В комментариях даны пояснения (код выделен "жирным" шрифтом).

<?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/"><img src="/images/cart.jpg" alt="корзина магазина" style="float: left; width:50px; height:50px; margin:-15px 10px 5px;"/>Корзина пуста</a>
<p><xsl:choose>
<xsl:when test="siteuser_id = 0"></xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose></p>
</xsl:when>
<xsl:otherwise>
<a href="{/shop/url}cart/">Ваша корзина:</a>
<xsl:variable name="totalQuantity" select="sum(shop_cart[postpone = 0]/quantity)" />
<hr />

<!-- Массив для вывода отложенных товаров с картинками, названием, производителем и ценой --> <xsl:for-each select=".//shop_cart/shop_item[@id]">
<!-- Изображение товара --> <img src="{dir}{image_small}" />
<!-- Название и производитель --> <span><xsl:value-of select="name"/><xsl:text> </xsl:text><xsl:value-of select="shop_producer/name" /><br />
<!-- Стоимость --> <xsl:value-of select="format-number(price, '### ##0', 'my')"/><xsl:value-of disable-output-escaping="yes" select="shop_currency/name"/>
<hr /> </xsl:for-each> <!-- Вывод суммы отложенных товаров --> <span> Сумма<xsl:text>: </xsl:text> <b><xsl:value-of select="format-number(total_amount, '### ##0,00', 'my')"/><xsl:text> </xsl:text><xsl:value-of disable-output-escaping="yes" select="shop_currency/name"/></b></span>
<a href="{/shop/url}cart/" class="button">ОФОРМИТЬ ЗАКАЗ</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>

Используя Javascript, можно сделать краткую корзину компактной и открывающейся при клике по иконке корзины, к примеру. Это будет удобно в том случае, если ваши покупатели обычно откладывают много товара. В таком случае корзина не будет занимать много места на странице.

Однако, в некоторых магазинах, где покупается сразу много наименований (или в каталоге формируется заказ, к примеру комплекта мебели), будет наоборот удобней эту краткую корзину показывать открытой, выделив под нее отдельную колонку. Таким образом покупатели будут сразу видеть, что они уже отложили.

В общем, как эту возможность использовать вы придумаете сами.

Понравилась статья?
Будем признательны, если поделитесь в соцсетях или мессенджерах, а также присоединитесь к нашей группе Вконтакте. Будет интересно!

Вас может заинтересовать:

HOSTCMS v.6. Полезные SQL запросы
HOSTCMS v.6. Полезные SQL запросы
Подборка SQL запросов к базе данных для сайтов на HostCMS v.6. Может быть очень полезной в некоторых случаях в пройцессе создания или обслуживания сайта...

HOSTCMS v.6. Внедряем coin-slider
HOSTCMS v.6. Внедряем coin-slider
Coin-slider один из популярных слайдеров, который используется на сайтах. Чаще всего слайдеры используют на Главной странице, для придания ей динамики, привлечения внимания к «горячей» информации. В этой статье рассказывается, как внедрить этот слайдер XSL-шаблон сайта, разработанного на HostCMS.

HOSTCMS v.6. Внедрение в макет кода формы с reCaptcha
HOSTCMS v.6. Внедрение в макет кода формы с reCaptcha
Хочу поделиться с вами кодом, который размещается в макете страницы и подгружает в нее форму с reCaptcha...

HOSTCMS v.6. Вывод комментариев к товарам магазина
HOSTCMS v.6. Вывод комментариев к товарам магазина
Выводим на Главной или отдельной странице сайта комментарии к товарам, оставляемые посетителями или покупателями...

Разметка Open Graph для HostCMS v.6
Разметка Open Graph для HostCMS v.6
Для начала узнаем, что такое Open Graph? Open Graph - это протокол, который формирует вид внешней ссылки в социальных сетях. Первоначально этот протокол был разработан для Facebook, однако сейчас используется и в других соцсетях.

HostCMS v.6. Вывод товаров по значению дополнительного свойства типа строка
HostCMS v.6. Вывод товаров по значению дополнительного свойства типа строка
Вам нужно вывести товары интернет-магазина по какому-то, заранее определенному, признаку? Для начала создаем дополнительное свойство товара, пройдя по цепочке «Интернет-магазин ⇒ Товар ⇒ Свойства товара».

Мы используем файлы cookie. Они помогают улучшить ваше взаимодействие с сайтом.