Блог InSales об интернет-продажах

Вывод товаров на главной странице

26.09.2009

В предыдущем обзоре мы показали как можно скрывать товары с витрины и как сообщать покупателям, что товара нет в наличии (Какие товары показывать на сайте?). В этот раз рассмотрим как можно можно вывести  товары  на главной странице.

Для начала создадим отдельную скрытую категорию на сайте c путем /collection/special :

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

Теперь добавим код для вывода товаров  в шаблон главной страницы. В самом простейшем виде:

{% for product in collections.special.products %}
{{ product.title }}
{% endfor %}

В качестве идентификатора категории используется ее пермалинк (постоянная ссылка), который мы указали в пути, в данном случае “special”. Но этот пример выведет всего лишь список названий товаров, мы же хотим вывести полноценный список товаров с картинками, краткими описаниями и кнопками “Купить” и “Подробнее”. Для этого на примере шаблона “Зеленый лист” скопируем код из шаблона “Категория”  и слегка модифицируем его:

<div class="view-catalog">
<TABLE id="products-in-collection">
{% tablerow product in collections.special.products cols: 3 %}
<div class="node node-teaser" style="height: 300px;">
<div class="node-inner" id="product_{{ product.id }}" style="height: 230px; overflow: hidden;">
<div class="img"><a href="{{ product.url }}"><img src="{{ product.first_image.thumb_url }}" alt="[IMG]" title="{{ product.title | escape }}" /></a></div>
<h3 class="title"><a href="{{ product.url }}">{{ product.title | escape }}</a></h3>
<div class="content">
<p class="short-description">{{ product.short_description | truncate:100 }}</p>
</div>
</div>
<div class="buyzone">
<div class="price">{{ product.sale_price | money }}</div>
{% if product.variants.size == 1 %}
<form action="{{ cart_url }}" method="post" id="order">
<input type="hidden" name="variant_id" value="{{ product.variants.first.id }}">
<input type="submit" class="buy" value="" title="Купить"/>
<div class="readmore"><a href="{{ product.url }}">подробнее...</a></div>
</form>
{% else %}
<a href="{{ product.url }}" class="buy" title="Купить"></a>
<div class="readmore"><a href="{{ product.url }}">подробнее...</a></div>
{% endif %}
<BR class='clear'>
</div>
<BR class="clear">
</div>
{% endtablerow %}
</TABLE>
</div>

Мы убрали постраничный вывод и вывод текущей категории. Вставляем его в шаблон главной страницы сразу после блока:

<div class="content">{{ page.content }}</div>

Сохраняем изменения и смотрим результат:

result

Вот и все, таким же образом можно выводить товары из произвольной категории в любом из шаблонов сайта.

Оставить ответ