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

Вывести производителя товара в order_invoice.


unkind

Recommended Posts

Доброго всем времени!

 

Собственно сабж. Не могу вывести производителя в order_invoice. Кто может подсказать что вписать в admin/controller/sale/order.php что бы потом вывести в order_invoice.tpl? 

 

С order_invoice.tpl проблем нет - уже вывел модель и sku, а вод производителя не осилил...

 

Заранее спасибо!

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


Способов несколько.

Наверное, самый простой:

В модели admin/model/sale/order.php в методе getOrderProducts меняете запрос, добавляя Join с таблицей продуктов для выяснения id производителя:

"SELECT o.*, p.manufacturer_id FROM " . DB_PREFIX . "order_product o INNER JOIN " . DB_PREFIX . "product p ON o.product_id=p.product_id WHERE o.order_id = '" . (int)$order_id . "'"
Далее, в контроллере admin/controller/sale/order.php в методе invoice() после строки

$this->load->model('sale/order');
грузите модель производителей:

$this->load->model('catalog/manufacturer');
а после строки

foreach ($products as $product) {
грузите данные по производителю:

$manufacturer = $this->model_catalog_manufacturer->getManufacturer($product['manufacturer_id']);
если нужен еще перевод или другие описания то используйте

$manufacturer_description = $this->model_catalog_manufacturer->getManufacturerDescriptions($product['manufacturer_id']);
(ну, или можно написать новый метод в модели производителей, который вернет сразу всё за один запрос)

затем нужные поля из этих данных добавляете к

$product_data[]
и используете в шаблоне.

Как-то так... Вживую не проверял, так что мог где-то ошибиться, но направление должно быть понятно.

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


Попробовал.  Результат:

 

В модели admin/model/sale/order.php в методе getOrderProducts  у меня в итоге заработал такой запрос (я еще раньше sku вывел в order_invoice.tpl)

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

В файл  admin/controller/sale/order.php вывел добавил строку:

$manufacturer = $this->model_catalog_manufacturer->getManufacturer($product['manufacturer_id']);

Затем к $product_data [] добавил:

'manufacturer'  => $product['manufacturer_id'],

Вывел все это добро в шаблон:

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

В итоге вывелось id производителя. Не могу понять как вывести Имя производителя.

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


Ну, вы manufacturer_id получили, его и вывели. Надо к $product_data [] добавлять:

'manufacturer'  => $manufacturer['name'],
Посмотрите метод info() в catalog/controller/product/manufacturer.php, там понятно как конкретные поля достаются.
  • +1 1
Надіслати
Поділитися на інших сайтах


Ну, вы manufacturer_id получили, его и вывели. Надо к $product_data [] добавлять:

'manufacturer'  => $manufacturer['name'],
Посмотрите метод info() в catalog/controller/product/manufacturer.php, там понятно как конкретные поля достаются.

 

 Точно! Спасибо! Все отлично работает. :)

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


Не за что.
Для порядка, можно добавить проверку, что данные по производителю получены корректно. Посмотрите в том же методе info() в catalog/controller/product/manufacturer.php после строки:

$manufacturer_info = $this->model_catalog_manufacturer->getManufacturer($manufacturer_id);

стоит такая проверка:

if ($manufacturer_info) {
  • +1 1
Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

А очень даже просто! В функции function getOrderProducts файла order.php  нужно заменить в запросе окончание "'"); на "' ORDER BY location");  - location это столбец для сортировки. 

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


  • 5 years later...
В 02.09.2013 в 01:58, unkind сказал:

Доброго всем времени!

 

Собственно сабж. Не могу вывести производителя в order_invoice. Кто может подсказать что вписать в admin/controller/sale/order.php что бы потом вывести в order_invoice.tpl? 

 

С order_invoice.tpl проблем нет - уже вывел модель и sku, а вод производителя не осилил...

 

Заранее спасибо!

 

как вывели sku хотябы?

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


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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

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