Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


Recommended Posts

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

Надіслати
Поділитися на інших сайтах

Я это сделал VQModулем product-display-settings, странице списке товаров...но вот как в счёт, заказ и письмо уведомление вставить SKU !!!

Надіслати
Поділитися на інших сайтах


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


Я это сделал 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"

Змінено користувачем AlexFisher
code
Надіслати
Поділитися на інших сайтах


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

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

<?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"

что то у меня так не получилось
Надіслати
Поділитися на інших сайтах

  • 1 month later...

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

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

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

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

Надіслати
Поділитися на інших сайтах

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

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

Надіслати
Поділитися на інших сайтах


Добрый вечер. Прочитал тему, так и не нашел решения этого вопроса. Ссылки битые, никто ничего конкретно так и не предложил. Хоть тема и 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>
Змінено користувачем AlexFisher
code
  • +1 2
Надіслати
Поділитися на інших сайтах


  • 4 weeks later...

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

 

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

Змінено користувачем zdevl
Надіслати
Поділитися на інших сайтах


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

 

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

В /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

Змінено користувачем cassi
  • +1 2
Надіслати
Поділитися на інших сайтах


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

 

 

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

 

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

Надіслати
Поділитися на інших сайтах


 

В /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 в админ панели добавлять. Еще раз спасибо.

Надіслати
Поділитися на інших сайтах


Добавлю правда еще немного. После подстановки 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'])
Надіслати
Поділитися на інших сайтах


  • 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 ?

Змінено користувачем slammed
Надіслати
Поділитися на інших сайтах


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

 

в файле 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'] в склейку строки.

Надіслати
Поділитися на інших сайтах


  • 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) {
Змінено користувачем endaries
Надіслати
Поділитися на інших сайтах


  • 2 months later...

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.