Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

[РЕШЕНО] Вывод 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

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • 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.