一旦下订单,我需要generate shipping label dynamically
。
我已经配置了联邦快递运输方法,并且可以在下订单时将订单状态设置为运输,并且可以从管理员手动创建运输标签,并且在我创建运输标签后单击打印运输标签时给出pdf。
现在这个过程需要自动化 - 我如何能够动态创建运输标签?是否有任何观察者或类别覆盖示例。请帮我动态创建运输标签
如果您想要带有条形码的官方运输标签,您需要购买这样的扩展名:http://www.cobbconsulting.net/magento-fedex-extension.html
该扩展程序具有缓存功能,可以存储您的所有运输标签,以便您随时轻松地重新打印它们。
如您所知,只有在有发票时才能打印运输标签。我们希望让您知道扩展可以帮助您解决。或者您可以查看我们的代码以进行创建
Magento 1:http://www.mlx-store.com/magento-extensions/shipping/print-shipping-label.html
Magento 2:http://www.mlx-store.com/magento2-extensions/shipping/print-shipping-label-for-magento-2.html
或使用代码
下面是控制器。
public function printShippingLabelAction(){
$ids= $this->getRequest()->getPost('order_ids');
if (!empty($invoicesIds)) {
$orders = Mage::getResourceModel('sales/order')->getCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('entity_id', array('in' => $ids))
->load();
if (!isset($pdf)){
$pdf = Mage::getModel('sales/order_pdf_order')->getPdf($orders );
} else {
$pages = Mage::getModel('sales/order_pdf_order')->getPdf($orders );
$pdf->pages = array_merge ($pdf->pages, $pages->pages);
}
return $this->_prepareDownloadResponse('order'.Mage::getSingleton('core/date')->date('Y-m-d_H-i-s').
'.pdf', $pdf->render(), 'application/pdf');
}
$this->_redirect('*/*/');
}
创建模型
class Mage_Sales_Model_Order_Pdf_Order extends Mage_Sales_Model_Order_Pdf_Invoice
{
public function getPdf($orders = array())
{
$this->_beforeGetPdf();
$this->_initRenderer('order');
$pdf = new Zend_Pdf();
$this->_setPdf($pdf);
$style = new Zend_Pdf_Style();
$this->_setFontBold($style, 10);
foreach ($orders as $order) {
$page = $this->newPage();
$this->insertLogo($page, $order->getStore());
$this->insertAddress($page, $order->getStore());
$this->insertOrder(
$page,
$order,
Mage::getStoreConfigFlag(self::XML_PATH_SALES_PDF_INVOICE_PUT_ORDER_ID, $order->getStoreId())
);
$this->insertDocumentNumber(
$page,
Mage::helper('sales')->__('Order # ') . $order->getIncrementId()
);
$this->_drawHeader($page);
foreach ($order->getAllItems() as $item){
if ($item->getOrderItem()->getParentItem()) {
continue;
}
$this->_drawItem($item, $page, $order);
$page = end($pdf->pages);
}
$this->insertTotals($page, $order);
if ($order->getStoreId()) {
Mage::app()->getLocale()->revert();
}
}
$this->_afterGetPdf();
return $pdf;
}}