Как добавить ссылку на товар в письме заказа Opencart 3

5261

Привет друзья! На связи coderistu.ru.
Уже неоднократно писал о том, что CMS Opencart обладает массой недоработок, которые не видны с первого взгляда и выплывают на поверхность в процессе эксплуатации системы. И одна из самых распространенных проблем  - это крайне малая информативность письма о заказе, которое приходит на почту администратору сайта. При этом письмо о заказе клиенту содержит всю необходимую информацию.

О том, как сделать, чтобы админу приходило такое же письмо, расскажу в следующих статьях. А сейчас речь пойдет о том, как добавить в письмо opencart ссылку на товар, чтобы можно было прямо из e-mail перейти в нужную товарную карточку.

1.

Открываем /catalog/controller/mail/order.php и находим в строке 228 следующий массив:

$data['products'][] = array(
'name' => $order_product['name'],
'model' => $order_product['model'],
'product_id' => $result['product_id'],
'option' => $option_data,
'quantity' => $order_product['quantity'],
'price' => $this->currency->format($order_product['price'] + ($this->config->get('config_tax') ? $order_product['tax'] : 0), $order_info['currency_code'], $order_info['currency_value']),
'total' => $this->currency->format($order_product['total'] + ($this->config->get('config_tax') ? ($order_product['tax'] * $order_product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value'])
);
}
Меняем его на следующий код:

$this->load->model('catalog/product');
$product_info = $this->model_catalog_product->getProduct($order_product['product_id']);
$data['products'][] = array(
'name' => $order_product['name'],
'model' => $order_product['model'],
'href' => $this->url->link('product/product', 'product_id=' . $product_info['product_id']),
'option' => $option_data,
'quantity' => $order_product['quantity'],
'price' => $this->currency->format($order_product['price'] + ($this->config->get('config_tax') ? $order_product['tax'] : 0), $order_info['currency_code'], $order_info['currency_value']),
'total' => $this->currency->format($order_product['total'] + ($this->config->get('config_tax') ? ($order_product['tax'] * $order_product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value'])
);
}

2.

Открываем /catalog/view/theme/ваша-тема/template/mail/order_add.twig и в строке  83 код

<td style="font-size: 12px; border-right: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; text-align: left; padding: 7px;">{{ product.name }}
меняем на такой:
<td style="font-size: 12px; border-right: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; text-align: left; padding: 7px;"><a href="{{ product.href }}">{{ product.name }}</a>
После проделанных манипуляций не забываем обновлять кэш темы и модификаторов в админке.
На этом все. Надеюсь, что статья была вам полезной.

Комментарии

    Yundiga

    (23.03.2021 - 22:13)

    Как добавить ссылку в карточку товара на опенкарт 3?

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

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

*
code