Главная / Создание и продвижение сайтов / САЙТОСТРОЕНИЕ / Prestashop / PrestaShop: вывод артикула товара на странице категорий

PrestaShop: вывод артикула товара на странице категорий

Речь снова пойдет о настройке популярного движка интернет-магазина PrestaShop и выводе на странице списка товаров (странице категорий или product-list) товарного артикула. Зачем это может понадобиться? Например, в качестве дополнительной информации для постоянных клиентов, работающих с организацией-продавцом длительное время, и знающих товар по артикулу лучше, чем по наименованию. А также в качестве подспорья администратору магазина — для быстрого ориентирования в каталоге при заполнении товарных карточек, например, добавлении изображений.

Правки, разумеется, производятся в файле product-list.tpl, который находится в папке с шаблоном вашей темы. Все ниже написанное проверено на стандартной (default) теме PrestaShop 1.5.6.1. На форумах, посвященных настройке PrestaShop, удалось найти решение в виде вывода в требуемое место файла шаблона строки:

<p class="product_ref">{l s='Reference:'} #{$product.reference}</p>

Модифицировав этот код под свои нужды (убрав из отображения само слово «Артикул» и подставив кодировку UTF-8 для избежания проблем с буквенными кириллическими артикулами), получаем следующее:

{$product.reference|escape:'htmlall':'UTF-8'}

Артикул товара можно вывести в правый блок над ценой:

{$product.reference|escape:'htmlall':'UTF-8'}
{if isset($product.on_sale) && $product.on_sale && isset($product.show_price) && $product.show_price && !$PS_CATALOG_MODE}{l s='On sale!'}

prestashop-vyvod-artikula-na-stranice-kategorij-01
Или в центральный блок информации о товаре, сразу после наименования перед закрывающим ссылку тегом:

<div class="center_block">
	<a href="{$product.link|escape:'htmlall':'UTF-8'}" class="product_img_link" title="{$product.name|escape:'htmlall':'UTF-8'}">
		<img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home_default')|escape:'html'}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} />
		{if isset($product.new) && $product.new == 1}<span class="new">{l s='New'}</span>{/if}
	</a>
	<h3>{if isset($product.pack_quantity) && $product.pack_quantity}{$product.pack_quantity|intval|cat:' x '}{/if}<a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|truncate:200:'...'|escape:'htmlall':'UTF-8'} {$product.reference|escape:'htmlall':'UTF-8'}</a></h3> 
	<p class="product_desc"><a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.description_short|strip_tags:'UTF-8'|truncate:360:'...'}" >{$product.description_short|strip_tags:'UTF-8'|truncate:360:'...'}</a></p>
</div>

prestashop-vyvod-artikula-na-stranice-kategorij-02
Также можно вывести эту информацию и отдельной строкой. Этот вариант позволяет выделить ее визуально, но увеличивает высоту строки с характеристиками товара.

<div class="center_block">
	<a href="{$product.link|escape:'htmlall':'UTF-8'}" class="product_img_link" title="{$product.name|escape:'htmlall':'UTF-8'}">
		<img src="{$link->getImageLink($product.link_rewrite, $product.id_image, 'home_default')|escape:'html'}" alt="{$product.legend|escape:'htmlall':'UTF-8'}" {if isset($homeSize)} width="{$homeSize.width}" height="{$homeSize.height}"{/if} />
		{if isset($product.new) && $product.new == 1}<span class="new">{l s='New'}</span>{/if}
	</a>
	<h3>{if isset($product.pack_quantity) && $product.pack_quantity}{$product.pack_quantity|intval|cat:' x '}{/if}<a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.name|escape:'htmlall':'UTF-8'}">{$product.name|truncate:200:'...'|escape:'htmlall':'UTF-8'}</a></h3> {$product.reference|escape:'htmlall':'UTF-8'}
	<p class="product_desc"><a href="{$product.link|escape:'htmlall':'UTF-8'}" title="{$product.description_short|strip_tags:'UTF-8'|truncate:360:'...'}" >{$product.description_short|strip_tags:'UTF-8'|truncate:360:'...'}</a></p>
</div>

prestashop-vyvod-artikula-na-stranice-kategorij-03Вот и все действия. Код, как обычно, правим после предварительно сделанного бэкапа, переведя магазин в режим отладки или обслуживания. Меня лично устраивает второй вариант, им я и пользуюсь.

Расскажите об этой статье в соцсетях:

3 комментария

  1. Хорошо, когда знаешь, что и где необходимо править. В большинстве случаев все приходится делать методом тыка, т.к. спецов, готовых помочь с PrestaShop, на форумах единицы, а от их ответов порой ясности не прибавляется. С другой стороны, четыре года уже ковыряю код Престы сам, до программера не дорос, но с обслуживанием и улучшением клиентских магазинов пока справляюсь. Один момент удручает — от версии к версии у Престы меняется код, и многое из того, что работало раньше, работать перестает, Приходится каждый раз разбираться заново.

    • С Престашопом очень и очень осторожно надо обращаться. Особенно, если не программист. Мне понадобилось несколько недель, чтобы подружиться с этой системой управления. Зато теперь не променяю ее ни на какую другую!

  2. Почему Prestashop 1.5, а не 1.6? Тем более, тема у вас стандартная, как я понимаю.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *