Перейти к содержанию
unkind

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

Рекомендуемые сообщения

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

 

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 02.09.2013 в 01:58, unkind сказал:

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

 

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

 

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.