Лучший способ воспроизвести представление таблицы заказов в виде отчета для печати?
Ниже приведено изображение экрана по этому URL-адресу в нашей версии сообщества Magento.
Это сеточное представление всех заказов на продажу.
Мне было поручено создать отчет для печати на рабочем листе, в котором будут перечислены все заказы в нашем Magento, поэтому в двух словах мне нужно получить данные, которые вы видите на этом изображении ниже, а также пару других элементов о заказе, таких как изображение продуктов и размеров. А также иметь возможность сортировать данные на основе разные статусы заказов.
Хотя я не уверен, что это лучший способ получить все эти данные.
Можно ли запросить базу данных для всех этих данных? То, что я создаю, даже не обязательно должно быть расширениями Magento, если можно просто запросить базу данных и создать эти отчеты, что тоже было бы неплохо.
Еще одна идея, возможно, API - это лучший способ получить все эти данные?
Поскольку я новичок в Magento и даже не прикасался к нему в прошлом месяце, я просто не знаю, с чего здесь начать.
Был бы признателен за любые советы о том, как вы могли бы выполнить эту задачу.
Все заказы в нашей системе имеют статус , и мой босс хотел бы, чтобы в этих отчетах для печати каждый статус был указан в разделе заголовка, а затем перечислены все заказы в каждом разделе статуса, поэтому мне нужно отсортировать данные
Http://www.domain.com/index.php/admin/sales_order/index/key/d99d05283bcf037b8476eb938cdd8649/
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;
практически ко всем элементам, кроме сетки, которая, я думаю, должна работать довольно хорошо. :)