Отображение диапазона цены «от и до» в каталоге
Если у товаров в каталоге есть артикулы с разными ценами, полезно показывать покупателю ценовой диапазон — «от … до …» — вместо одной цены. Это помогает сориентироваться в стоимости до перехода на страницу товара.
Как это работает
Заголовок раздела «Как это работает»Shop-Script для каждого товара хранит значения min_price и max_price — минимальную и максимальную цену среди всех артикулов. Если эти значения различаются, выводим диапазон. Если совпадают — показываем одну цену как обычно.
Откройте файл шаблона list-thumbs.html вашей темы дизайна:
wa-data/public/shop/themes/<ваша_тема>/list-thumbs.htmlНайдите строку вывода цены:
<span>{shop_currency($p.price)}</span>И замените её на:
{if $p.min_price < $p.max_price} <span style="font-size:14px;">от {shop_currency($p.min_price)} до {shop_currency($p.max_price)}</span>{else} <span>{shop_currency($p.price)}</span>{/if}Что делает код
Заголовок раздела «Что делает код»$p.min_price— минимальная цена среди всех артикулов товара.$p.max_price— максимальная цена среди всех артикулов товара.{shop_currency(...)}— Smarty-функция Shop-Script, которая форматирует цену с учётом текущей валюты магазина.- Если минимальная и максимальная цены различаются — выводится диапазон «от … до …».
- Если цены совпадают (у товара один артикул или все артикулы по одной цене) — выводится обычная цена.
Стилизация
Заголовок раздела «Стилизация»В примере размер шрифта задан инлайн-стилем font-size:14px. Для более гибкой настройки вынесите стили в user.css:
.price-range { font-size: 14px;}И используйте класс в шаблоне:
{if $p.min_price < $p.max_price} <span class="price-range">от {shop_currency($p.min_price)} до {shop_currency($p.max_price)}</span>{else} <span>{shop_currency($p.price)}</span>{/if}