Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

[РЕШЕНО] Вывод SKU и ВЕСА в счёт и письмо уведомление о заказе


Recommended Posts

В данный момент в админке можно просмотреть счёт на каждый заказ, но в нём указана МОДЕЛЬ, а мне нужен SKU и вес, и то же самое в письме что приходит когда человек делает заказ

Link to comment
Share on other sites


Здесь описана реализация показа СКУ в карточке товара!
спасибо, то что надо.


Я это сделал VQModулем product-display-settings, странице списке товаров...но вот как в счёт, заказ и письмо уведомление вставить SKU !!!
Думаю, что аналогично, вставив в соответствующим файле код:
<?php if ($product['sku']) { ?><span><?php echo $text_sku; ?></span> <?php echo $product['sku']; ?><br /><?php } else { ?><?php } ?>

с ним слово "Артикул" не будет отображаться, если у товара его нет.

С письмами еще не разбирался, конкретней сказать не могу.

Просто до этого выводил "Модель" - было не сложно (просто вставив код в файл category.tpl), т.к. она уже прописана в "admin" и "catalog", а sku было прописано только в "admin". Сейчас sku прописали в "catalog"

Edited by AlexFisher
code
Link to comment
Share on other sites


спасибо, то что надо.

Думаю, что аналогично, вставив в соответствующим файле код:

<?php if ($product['sku']) { ?>

<span><?php echo $text_sku; ?></span> <?php echo $product['sku']; ?><br />

<?php } else { ?>

<?php } ?>

с ним слово "Артикул" не будет отображаться, если у товара его нет.

С письмами еще не разбирался, конкретней сказать не могу.

Просто до этого выводил "Модель" - было не сложно (просто вставив код в файл category.tpl), т.к. она уже прописана в "admin" и "catalog", а sku было прописано только в "admin". Сейчас sku прописали в "catalog"

что то у меня так не получилось
Link to comment
Share on other sites

  • 1 month later...

так как можно организовать:

1. требуется поправить ТЕМУ письма, что приходит АДМИНУ как уведомление о заказе. У меня она длинная типа "Магазин такой то таких то товаров - заказ 77", на складе часто приходится собирать заказ глядя в экран мобилы, а там такая длина не помещается нормально. Хотелось бы что бы Админу приходило просто в теме "Магазин - заказ 77", ведь админ и так в курсе что за магазин и по продаже каких товаров.

2. И ещё, можно ли добавить вывод ещё одного столбца - Масса? То есть что бы после столбца "Количество" стоял столбец "Масса" (где была бы суммарная масса по каждой позиции). А внизу, под "Итого" например, что бы суммарная масса по всем товарам выводилась

Уже готов поделиться деньгами...

Link to comment
Share on other sites

  • 2 months later...
  • 2 years later...

Добрый вечер. Прочитал тему, так и не нашел решения этого вопроса. Ссылки битые, никто ничего конкретно так и не предложил. Хоть тема и 3-х летней давности, но актуальна и сейчас. Может предложит кто нибудь решение как вывести в письмо админу артикул? Спасибо.

Link to comment
Share on other sites


Добрый вечер. Прочитал тему, так и не нашел решения этого вопроса. Ссылки битые, никто ничего конкретно так и не предложил. Хоть тема и 3-х летней давности, но актуальна и сейчас. Может предложит кто нибудь решение как вывести в письмо админу артикул? Спасибо.

catalog/model/checkout/order.php

находим 

$template->data['products'] = array();

после нее вставляем 

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

находим ниже

$template->data['products'][] = array( 

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

$product_data = array();
$product_data = $this->model_catalog_product->getProduct($product['product_id']);

После

$template->data['products'][] = array() 

добавляем нужное поле в массив:

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

для добавления поля в шаблон письма открываем файл 

catalog/view/theme/ваша_тема/template/mail/order.tpl

В нужном месте вставляем вывод нужного поля, например:

<?php echo $product['sku']; ?>

или вместо модели в письме 

    <td style="font-size: 12px; border-right: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; text-align: left; padding: 7px;"><?php echo $product['model']; ?></td>

выведем артикул

<td style="font-size: 12px; border-right: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; text-align: left; padding: 7px;"><?php echo $product['sku']; ?></td>
Edited by AlexFisher
code
  • +1 2
Link to comment
Share on other sites


  • 4 weeks later...

а как в счет ску выводить? в теме не нашел и по форуму что-то же. Ткните носом, пожалуйста.

 

Или пост выше - это и про счет?

Edited by zdevl
Link to comment
Share on other sites


а как в счет ску выводить? в теме не нашел и по форуму что-то же. Ткните носом, пожалуйста.

 

Или пост выше - это и про счет?

В /admin/controller/sale/order.php

заменить 
$this->data['column_model'] = $this->language->get('column_model');
$this->data['column_quantity'] = $this->language->get('column_quantity');

на

$this->data['column_model'] = $this->language->get('column_model');
$this->data['column_sku'] = $this->language->get('column_sku');$this->data['column_quantity'] = $this->language->get('column_quantity');

заменить

'name'           => $product['name'],
'model'          => $product['model'],

на

'name'           => $product['name'],
'sku'            => $product['sku'],
'model'          => $product['model'],

в файле /admin/language/russian/sale/order.php добавить

$_['column_sku'] = 'Код товара';

в файле /admin/model/sale/order.php функция getOrderProducts изменить

$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'");

на

$query = $this->db->query("SELECT op.*,p.sku FROM " . DB_PREFIX . "order_product op LEFT JOIN ".DB_PREFIX."product p ON (op.product_id = p.product_id) WHERE order_id = '" . (int)$order_id . "'");

далее в /admin/view/template/sale/order_invoice.tpl добавить по аналогии

<td><b><?php echo $column_sku; ?></b></td>

и

<td><?php echo $product['sku']; ?></td>

также можно вывести sku и в /admin/view/template/sale/order_info.tpl

Edited by cassi
  • +1 2
Link to comment
Share on other sites


также можно вывести sku и в /admin/view/template/sale/order_info.tpl

 

 

Я прошу прошу прощения за мой тупизм, но за что отвечает этот файл.

 

Со счетом все получилось, большое Вам спасибо. 

Link to comment
Share on other sites


 

В /admin/controller/sale/order.php

заменить 
$this->data['column_model'] = $this->language->get('column_model');
$this->data['column_quantity'] = $this->language->get('column_quantity');

на

$this->data['column_model'] = $this->language->get('column_model');
$this->data['column_sku'] = $this->language->get('column_sku');$this->data['column_quantity'] = $this->language->get('column_quantity');

заменить

'name'           => $product['name'],
'model'          => $product['model'],

на

'name'           => $product['name'],
'sku'            => $product['sku'],
'model'          => $product['model'],

в файле /admin/language/russian/sale/order.php добавить

$_['column_sku'] = 'Код товара';

в файле /admin/model/sale/order.php функция getOrderProducts изменить

$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'");

на

$query = $this->db->query("SELECT op.*,p.sku FROM " . DB_PREFIX . "order_product op LEFT JOIN ".DB_PREFIX."product p ON (op.product_id = p.product_id) WHERE order_id = '" . (int)$order_id . "'");

далее в /admin/view/template/sale/order_invoice.tpl добавить по аналогии

<td><b><?php echo $column_sku; ?></b></td>

и

<td><?php echo $product['sku']; ?></td>

также можно вывести sku и в /admin/view/template/sale/order_info.tpl

 

Спасибо огромное!!!! 2 дня бодался с SKU с историей заказа на сайте у покупателя пока не нарвался на этот топик. Заодно теперь знаю как SKU в админ панели добавлять. Еще раз спасибо.

Link to comment
Share on other sites


Добавлю правда еще немного. После подстановки sku в историю заказа покупателя в личном кабинете на сайте, если указываете ссылку на товар в таблице в файле \catalog\view\theme\ваша_тема\template\accountorder_info.tpl

<a href="<?php echo $product['href']; ?>"><?php echo $product['sku']; ?></a>

, то эта ссылка не рабочая получается. Чтобы она работала, надо в файле контроллера \catalog\controller\account\order.php добавить в массиве, точнее после этой строки

$data['products'][] = array(

вот этот код

'href'      => $this->url->link('product/product', 'product_id=' . $product['product_id'])
Link to comment
Share on other sites


  • 4 weeks later...

 

В /admin/controller/sale/order.php

заменить 
$this->data['column_model'] = $this->language->get('column_model');
$this->data['column_quantity'] = $this->language->get('column_quantity');

на

$this->data['column_model'] = $this->language->get('column_model');
$this->data['column_sku'] = $this->language->get('column_sku');$this->data['column_quantity'] = $this->language->get('column_quantity');

заменить

'name'           => $product['name'],
'model'          => $product['model'],

на

'name'           => $product['name'],
'sku'            => $product['sku'],
'model'          => $product['model'],

в файле /admin/language/russian/sale/order.php добавить

$_['column_sku'] = 'Код товара';

в файле /admin/model/sale/order.php функция getOrderProducts изменить

$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_product WHERE order_id = '" . (int)$order_id . "'");

на

$query = $this->db->query("SELECT op.*,p.sku FROM " . DB_PREFIX . "order_product op LEFT JOIN ".DB_PREFIX."product p ON (op.product_id = p.product_id) WHERE order_id = '" . (int)$order_id . "'");

далее в /admin/view/template/sale/order_invoice.tpl добавить по аналогии

<td><b><?php echo $column_sku; ?></b></td>

и

<td><?php echo $product['sku']; ?></td>

также можно вывести sku и в /admin/view/template/sale/order_info.tpl

 

- Сделал по пунктам, у покупателя ок, а админу всё равно не выводится в уведомлении этот SKU, будь он неладен. Система 1.5.6.4 стоковая.

А что такое в запросе есть op.*,p.sku и op.product_id ?

Edited by slammed
Link to comment
Share on other sites


всё. победил. нужно было изначально от обратного плясать.

 

в файле catalog\model\checkout\order.php

в этом блоке

$text .= $language->get('text_new_products') . "\n";

foreach ($order_product_query->rows as $product) {
$text .= $product['quantity'] . 'x ' . $product['name'] . ' (' . $product['model'] . ') ' . html_entity_decode($this->currency->format($product['total'] + ($this->config->get('config_tax') ? ($product['tax'] * $product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value']), ENT_NOQUOTES, 'UTF-8') . "\n";

нужно добавить свой злосчастный $product['sku'] в склейку строки.

Link to comment
Share on other sites


  • 1 month later...

Версия: 2.1.0.2

Подскажите, может кто сталкивался.
После добавлений "sku" появились такие проблемы.

Редактировать заказ невозможно.

При заходе на вкладку "заказы" выскакивает ошибка:

Notice: Undefined index: status in /www/system/storage/modification/admin/controller/sale/order.php on line 167
На 167 строчке:   'status'        => $result['status'],

 

Если нажать на слово "статус" в списке заказов, получается такое:

 

Notice: Error: Unknown column 'status' in 'order clause'
Error No: 1054
SELECT o.order_id, CONCAT(o.firstname, ' ', o.lastname) AS customer, (SELECT os.name FROM oc_order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '1') AS order_status, o.shipping_code, o.total, o.currency_code, o.currency_value, o.date_added, o.date_modified FROM `oc_order` o WHERE o.order_status_id > '0' ORDER BY status ASC LIMIT 0,20 in www/system/library/db/mysqli.php on line41 
Notice: Trying to get property of non-object in www/admin/model/sale/order.php on line 231
Warning: Invalid argument supplied for foreach() in www/system/storage/modification/admin/controller/sale/order.php on line 163

 

 

www/system/library/db/mysqli.php on line41  - 

trigger_error('Error: ' . $this->link->error  . '<br />Error No: ' . $this->link->errno . '<br />' . $sql);

 

 

 

www/admin/model/sale/order.php on line 231 - 

 

return $query->rows;

 

www/system/storage/modification/admin/controller/sale/order.php on line 163

foreach ($results as $result) {
Edited by endaries
Link to comment
Share on other sites


  • 2 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.