В стандартном функционале Opencart после заказа покупателю приходит письмо на почту с данными заказа. С коробки письмо достаточно информативное, в нем идет перечень покупаемых товаров (название, к-во, модель, цена), их опции, плата за доставку и т.д. Однако в некоторых случаях мало данных в письме, для тех, кто использует дополнительные поля (sku, location, mpn и т.п.)
Для вывода дополнительных данных в письме покупателю, открываем файл модель, с помощью которой и отсылается письмо заказчику catalog/model/checkout/order.php находим строку объявления массива для товаров
$template->data['products'] = array();
После или перед ней вставляем
$this->load->model('catalog/product');
Для заполнения массива данными о заказанных товарах в opencart используется таблица order_product где у нас есть ограниченное количество полей и соответственно нет тех что нам нужны.
Для того что бы получить необходимые данные о товаре нам надо сделать выборку из двух таблиц order_product и product где доступны все поля товара (sku, upc, ean, jan, isbn, mpn, location и т.д.). Поможет нам функция выборки данных о товаре по его product_id.
Чуть ниже находим строку
$template->data['products'][] = array(
Перед! ней добавляем выборку getProduct вставляя код:
$product_data = array(); $product_data = $this->model_catalog_product->getProduct($product['product_id']);
После этого нам надо добавить нужные поля в массив товаров:
'sku' => $product_data['sku'],
или
'location' => $product_data['location'],
в зависимости что нам надо, можно и все добавить.
Далее для добавления поля в шаблон письма открываем файл: catalog/view/theme/default/template/mail/order.tpl
И в нужном месте вставляем вывод нужного поля, например:
Обязательно смотрите на верстку, там она табличная по этому создавайте новую ячейку таблицы и вставляйте туда данные.
С помощью данной доработки можно сделать вывод не только дополнительных полей, а и описание, фото и все данные, которые есть в базе товаров.