Перейти к содержимому

Отображение диапазона цены «от и до» в каталоге

Если у товаров в каталоге есть артикулы с разными ценами, полезно показывать покупателю ценовой диапазон — «от … до …» — вместо одной цены. Это помогает сориентироваться в стоимости до перехода на страницу товара.

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}