Опубликовано: 14 июля 2015
Как заменить название товара в категории на артикул? Есть решение
Добрый день!
Сейчас под каждым товаром указано его значение "Наименование" ($p.name).
Мне нужно вместо этого значения сделать вывод двух строк:
1. "Наименование артикула".
2. "Бренд:" - это значение характеристики товара. На латинице в настройках приложения "Магазин" это значение прописано как "brend". Это значение может быть пустым.
При этом нужно обработать значение строки 2 следующим образом, например:
Указано значение: "ESSE (essential accessories)".Если в этой строке есть " (", то выдать значение до символов " (", а именно "ESSE".
Если в этой строке нет " (", то строку оставить без изменений.
Подскажите, пожалуйста, как это можно сделать?
Комментарии (6)
Сайт: sumki5.ru
Скриншот: http://joxi.ru/bmokVXWcb04lmy
наименование артикула
в файле "products.list.html"
1. перед строкой
{strip}{foreach $products as $p}
прописать
{$skus = $wa->shop->skus(array_keys($products))}
2. вместо кода
{$p.name}
вставить
{if !empty($skus[$p.id][0].name)}{$skus[$p.id][0].name}{else}{$p.name}{/if}
* это если вывести наименование артикула
если вывести сам артикул то
{if !empty($skus[$p.id][0].sku)}{$skus[$p.id][0].sku}{else}{$p.name}{/if}
* если вариация 1, то "наименования артикула" в товаре нет
соответственно, если вариаций несколько, то можно вывести не 1 наименование артикула а несколько
для этого вышеуказанный код заменить на
{foreach $skus[$p.id] as $sku}{if $sku.sku}{$sku.sku}<br />{/if}{/foreach}
Вопрос №2:
в файле "products.list.html" перед строкой:
{foreach $products as $p}
вставьте строку:
{$features = $wa->shop->features($products)}
далее после строки:
<div class="product-block block">
вставьте строки:
{if !empty($p.features) && !empty($p.features.brand)}
{if strpos($p.features.brand, '(') !== false}
{substr($p.features.brand, 0, strpos($p.features.brand, '('))}
{else}
{$p.features.brand}
{/if}
{/if}
*подходит только для характеристики типа текст
* brand можно заменить на любой другой идентификатор характеристики
Огромное спасибо!
По вопросу 1 всё понятно, работает!
По вопросу 2 решение не помогло. Не понимаю почему.
Как я понимаю, в эти строчки срабатывают как false:
{if !empty($p.features) && !empty($p.features.brand)}
{if strpos($p.features.brand, '(') !== false}
Напишите нам на электронную почту: kolmakov.igor@gmail.com
Нужно смотреть индивидуально, возможно причина в неверной вставке кода.