Лучший способ воспроизвести представление таблицы заказов в виде отчета для печати?


Ниже приведено изображение экрана по этому URL-адресу в нашей версии сообщества Magento.

Это сеточное представление всех заказов на продажу.

Мне было поручено создать отчет для печати на рабочем листе, в котором будут перечислены все заказы в нашем Magento, поэтому в двух словах мне нужно получить данные, которые вы видите на этом изображении ниже, а также пару других элементов о заказе, таких как изображение продуктов и размеров. А также иметь возможность сортировать данные на основе разные статусы заказов.

Хотя я не уверен, что это лучший способ получить все эти данные.

Можно ли запросить базу данных для всех этих данных? То, что я создаю, даже не обязательно должно быть расширениями Magento, если можно просто запросить базу данных и создать эти отчеты, что тоже было бы неплохо.

Еще одна идея, возможно, API - это лучший способ получить все эти данные?

Поскольку я новичок в Magento и даже не прикасался к нему в прошлом месяце, я просто не знаю, с чего здесь начать.

Был бы признателен за любые советы о том, как вы могли бы выполнить эту задачу.

Все заказы в нашей системе имеют статус , и мой босс хотел бы, чтобы в этих отчетах для печати каждый статус был указан в разделе заголовка, а затем перечислены все заказы в каждом разделе статуса, поэтому мне нужно отсортировать данные

Http://www.domain.com/index.php/admin/sales_order/index/key/d99d05283bcf037b8476eb938cdd8649/

enter image description here

Author: JasonDavis, 2013-09-12

1 answers

Коллекции

Сначала начните с базового скрипта, включающего ядро Magento, создающего экземпляр Mage::app() с идентификатором магазина 0 (администратор) и использующего следующий код для получения коллекции заказов, в данном случае отфильтрованной по дате.

$collection = Mage::getModel('sales/order')->getCollection()
                ->addAttributeToFilter('created_at', array(
                   'from' => '2013-09-05',
                   'to' => '2013-09-05',
                   'date' => true,
                ));

Подробнее о коллекциях здесь.

Расширения Adminhtml

Как только вы освоитесь с созданием этих коллекций и сможете извлекать необходимые данные, вам придется изучить возможность создания расширение adminhtml с собственным контроллером для вывода данных на печать.

Эта презентация слайд-шоу должна указать вам правильное направление. Вам, вероятно, понадобится что-то вроде формы, позволяющей пользователю определять некоторые фильтры, такие как даты заказов, которые публикуются на конечной странице вывода.

Печать заказов

Теперь для последнего шага нам нужно будет фактически вывести данные в формате для печати. Я бы предложил использовать для этого формат PDF, так как он хорошо работает с принтерами (разбивка данных на страницы и т.д.)

Создание PDF-файлов в Magento лучше всего выполнять с помощью класса Zend_Pdf, который входит в стандартную комплектацию Magento. Я нашел хороший пример над в stackoverflow.

Ссылка stackoverflow также предоставляет другое решение, которое добавляет функцию экспорта PDF в сетку sales > order. Это также хороший подход, при котором вы, возможно, захотите рассмотреть единственный недостаток, заключающийся в том, что вы ограничены коллекцией, представленной в сетке.

[ РЕДАКТИРОВАТЬ] Использование некодирующего подхода

Итак, я только что понял, что если вы хотите сделать это быстро, не запачкав руки кодом, просто добавьте таблицу стилей печатных носителей.

<link rel="stylesheet" type="text/css" href="http://www.domain.com/skin/adminhtml/base/default/css/myprintablegrid.css" media="print" />

Добавьте display:none; практически ко всем элементам, кроме сетки, которая, я думаю, должна работать довольно хорошо. :)

 4
Author: Sander Mangel, 2017-05-23 12:37:16