Magento如何动态创建运输标签

问题描述 投票:0回答:2

一旦下订单,我需要generate shipping label dynamically

我已经配置了联邦快递运输方法,并且可以在下订单时将订单状态设置为运输,并且可以从管理员手动创建运输标签,并且在我创建运输标签后单击打印运输标签时给出pdf。

现在这个过程需要自动化 - 我如何能够动态创建运输标签?是否有任何观察者或类别覆盖示例。请帮我动态创建运输标签

magento magento-1.7
2个回答
0
投票

如果您想要带有条形码的官方运输标签,您需要购买这样的扩展名:http://www.cobbconsulting.net/magento-fedex-extension.html

该扩展程序具有缓存功能,可以存储您的所有运输标签,以便您随时轻松地重新打印它们。


0
投票

如您所知,只有在有发票时才能打印运输标签。我们希望让您知道扩展可以帮助您解决。或者您可以查看我们的代码以进行创建

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;
        }}
© www.soinside.com 2019 - 2024. All rights reserved.