Jump to content
Sign in to follow this  
unkind

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

Recommended Posts

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

Подниму тему! Неужели никто не может подсказать, как вывести произвоlителя в admin/controller/sale/order.php?

Share this post


Link to post
Share on other sites

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

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

В модели 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

Share this post


Link to post
Share on other sites

Спасибо! попробую-отпишусь.

 

Плюсую в репу :)

Share this post


Link to post
Share on other sites

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

 

В модели 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 производителя. Не могу понять как вывести Имя производителя.

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

Share this post


Link to post
Share on other sites

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

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

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

if ($manufacturer_info) {
  • +1 1

Share this post


Link to post
Share on other sites

Подскажите, а как теперь еще и сортировать данные при выводе по этому добавленному полю?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
В 02.09.2013 в 01:58, unkind сказал:

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

 

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.