Наименование артикула в уведомлениях
В шпаргалке не нашел понятного примера вывода наименования артикула в уведомлениях.
Есть следующий код.
{foreach $order.items as $item} {$item.quantity} шт × {wa_currency($item.price, $order.currency)} - {$item.name|escape} (арт.{$item.sku_code|escape}) {/foreach}
Выводит товары из заказа.
Вместо {$item.name|escape} нужно выводить SKU NAME, если он есть. Но как это сделать не смог разобраться. Все примеры на форуме в других ветках подставлял и проверял. Итог не срабатывают.
Прошу подсказать или помочь.
6 ответов
как-то так
Спасибо за участие.
Но проблема не в выводе НОМЕРА (SKU CODE) артикула. А проблема в выводе ИМЕНИ (SKU NAME) артикула.
Не могу вывести наименование артикула
Пример:
Название продукта: Витамины для детей
Название артикула 1: Витамины для детей (туба 100 гр)
Название артикула 2: Витамины для детей (60 капсул)
Как выглядит вывод сейчас
{$item.name|escape} - Витамины для детей (Витамины для детей (туба 100 гр))
а нужно вывести
SKU NAME - Витамины для детей (туба 100 гр)
В заказе название sku не хранится. И нет гарантий, что в магазине все еще есть товар с sku.code который записан в заказе.
$item.name содержит название заказанной позиции, неважно есть такой товар в магазине или вы его удалили/переименовали. С sku такая же вещь.
по идее-то sku name должны бы быть типа "туба 100 гр" или "60 капсул", тогда название заказанной позиции будет с ним формироваться так, как вы ожидаете. Но уже оформленные заказы это опять-же не затронет. Там названия будут такие, как на момент заказа
В заказе имя артикула, если оно есть, присутствует в скобках после названия товара
Имя товара (имя артикула)Так что если есть желание, артикул можно выкусывать регуляркой из названия товара.
Например так
{$item.name|escape|regex_replace:"/^.*\((.*)\)/":"${1}"}
Правда если у товара нет артикула, но есть в конце что-то в скобках "Имя товара (опаопа)" то результат будет не совсем тот который вы ожидаете -)
Попробовал и ваш вариант и еще один. В сожалению не один не вывел содержимое скобок.
http://regexstorm.net/tester?p=%5c%28.*%5c%29&i=%d...
Хех -) такие регулярки подбирайте сами -)
У вас внутри куча скобок в тестовом примере. Конечно оно не будет работать.