Как вывести артикул (sku) в письме заказа OpenCart 3

5471

Письмо, уведомляющее администратора магазина о новом заказе в OpenCart 3, содержит минимум информации. В то же самое время уведомление, приходящее клиенту магазина, содержит исчерпывающие данные о приобретенных товарах. Но в обоих шаблонах писем не предусмотрен вывод таких данных, как артикул ( sku ), ean, upc и пр.  Чтобы исправить это недоразумение и вывести артикул (sku) и прочие данные в письме заказа OpenCart , необходимо подправить несколько файлов:

    1.  В файле catalog/controller/mail/order.php в строке 220 перед массивом  $data['products'][] = array( , выводящим данные в письме клиента, вставляем:

$this->load->model('catalog/product');

$product_info = $this->model_catalog_product->getProduct($order_product['product_id']);

Если хотим вывести артикул (sku), то в сам массив добавляем такую строку

'sku' => $product_info['sku'],

В итоге массив будет выглядеть так:

$this->load->model('catalog/product');
$product_info = $this->model_catalog_product->getProduct($order_product['product_id']);
$data['products'][] = array(
'name' => $product['name'],
'sku' => $product_info['sku'],
'model' => $product['model'],
'option' => $option_data,
'quantity' => $product['quantity'],

Если необходимо вывести ean и upc, то добавляем в массив 'ean' => $product_info['ean'], 'upc' => $product_info['upc'], .

То же самое проделываем с массивом письма админа, который находится в строке 420.

     2. Далее в этом же файле необходимо добавить языковую переменную, для чего в строке 84 после

$data['text_model'] = $language->get('text_model');

вставляем такой код:

$data['text_sku'] = $language->get('text_sku');

3. В файлы order_add.twig  и order_alert.twig , расположенные по адресу: /catalog/view/theme/ваша_тема/template/mail, вносим следующие изменения:

В order_add.twig после строки

<td style="font-size: 12px; border-right: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; background-color: #EFEFEF; font-weight: bold; text-align: left; padding: 7px; color: #222222;">{{ text_model }}</td>

добавляем:

<td style="font-size: 12px; border-right: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; background-color: #EFEFEF; font-weight: bold; text-align: left; padding: 7px; color: #222222;">{{ text_sku }}</td>

После строки

<td style="font-size: 12px; border-right: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; text-align: left; padding: 7px;">{{ product.model }}</td>

добавляем:

<td style="font-size: 12px; border-right: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; text-align: left; padding: 7px;">{{ product.sku }}</td>
В order_alert.twig  в строку
{{ product.quantity }}x {{ product.name }} ({{ product.model }}) {{ product.total }}
добавляем sku, в итоге она будет выглядеть так:
{{ product.quantity }}x {{ product.name }} ({{ product.model }}) ({{ product.sku }}) {{ product.total }}.
     3. Далее необходимо добавить языковую переменную в файл
catalog/language/ru-ru/mail/order_add.php:
$_['text_sku'] = 'Артикул';
На этом все. После проделанных манипуляций не забываем обновлять кэш модификаторов в админке.

Комментарии

    Андрей

    (03.10.2020 - 21:33)

    Спасибо большое за подробную инструкцию!!! Все получилось сделать с первого раза, и SKU и UPC смог добавить в информацию о заказе !!!

    VaIaV

    (05.07.2023 - 15:19)

    Если в теме нету файлов по адресу /catalog/view/theme/ваша_тема/template/mail куда надо их заносить?

      VAIAV

      (05.07.2023 - 16:01)

      Справился, как нуп понял, что в своей теме не хватает, берется из дефолта. Теперь вопрос как поправить форму, что бы не съезжала таблица в письме, Итого пишется, не под всего)

        Admin

        (07.07.2023 - 01:44)

        Насколько помню, у итоговой ячейки стоит атрибут colspan=4. Его надо увеличить до 5.

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

Ваш адрес email не будет опубликован.

*
code