Как добавить характеристики товаров в уведомления о заказах
Характеристики товаров (например, размер, цвет или материал) помогают покупателю убедиться, что он заказал именно тот товар. По умолчанию в уведомлениях отображаются только названия товаров. Расскажем, как добавить характеристики в письмо с уведомлением о заказе.
Решение
Заголовок раздела «Решение»Отредактируйте шаблон уведомления в разделе «Магазин → Настройки → Уведомления».
Шаг 1. Добавьте инициализацию переменных
Заголовок раздела «Шаг 1. Добавьте инициализацию переменных»Вставьте следующий код перед строкой {foreach $order.items as $item}:
{$features_products = []}{$items_product_ids = []}{$items_products = []}
{foreach $order.items as $item} {$product = $wa->shop->product($item.product_id)}
{if $product.name|default:''} {$features_products[$item.product_id] = $product} {$items_product_ids[$item.id] = $item.product_id} {/if}{/foreach}
{if $features_products} {$features = $wa->shop->features($features_products)}{/if}
{if $features} {foreach $order.items as $item} {if !empty($items_product_ids[$item.id])} {$items_products[$item.id] = $features_products[$item.product_id]} {/if} {/foreach}{/if}Этот код собирает информацию о всех товарах в заказе и их характеристиках.
Шаг 2. Выведите характеристики в нужном месте
Заголовок раздела «Шаг 2. Выведите характеристики в нужном месте»Вставьте код отображения характеристик между строками {foreach $order.items as $item} и {/foreach}:
{if !empty($items_products[$item.id].features)} <ul> {foreach $items_products[$item.id].features as $feature_code => $feature_value} {if !empty($features[$feature_code])} <li> {$features[$feature_code].name|escape}: {if is_array($feature_value)} {implode(', ', $feature_value)|escape} {else} {$feature_value|escape} {/if} </li> {/if} {/foreach} </ul>{/if}Этот код выводит список характеристик для каждого товара.
Пример размещения
Заголовок раздела «Пример размещения»Код из шага 2 можно разместить, например, сразу после блока вывода названия товара:
<p style=" font-style:normal; font-variant:normal; font-weight:normal; font-size: {if $_is_service}12{else}14{/if}px; line-height:16px; font-family:Helvetica,Arial,sans-serif; "> {if !$_is_service} <a href="{$item.product.frontend_url|default:'javascript:void(0);'}"> <font style="text-decoration: underline;">{if $_is_service}+ {/if}{$item.name|escape}</font> {if !empty($item.sku_code)} <font style="color: #aaaaaa; font-size: 0.8em;">{$item.sku_code|escape}</font>{/if} </a> {else} {if $_is_service}+ {/if}{$item.name|escape} {if !empty($item.sku_code)} <font style="color: #aaaaaa; font-size: 0.8em;">{$item.sku_code|escape}</font>{/if} {/if} {if !empty($item.download_link)}<a href="{$item.download_link}"><strong>Скачать</strong></a>{/if}</p>В результате в уведомлении о заказе рядом с каждым товаром отобразится список его характеристик: цвет, размер, материал и другие.