2

我在 Magento 1.7.0.2 上。如何以与前端相同的方式从后端打印发票?我希望它是 HTML 格式而不是 PDF。

4

2 回答 2

2

假设您想从管理订单详细信息页面一次打印一张发票

创建自定义管理模块

使用以下方法添加控制器

public function printInvoiceAction()
{  

    $invoiceId = (int) $this->getRequest()->getParam('invoice_id');
    if ($invoiceId) {
        $invoice = Mage::getModel('sales/order_invoice')->load($invoiceId);
        $order = $invoice->getOrder();
    } else {
        $order = Mage::registry('current_order');
    }


    if (isset($invoice)) {
        Mage::register('current_invoice', $invoice);
    }
    $this->loadLayout('print');
    $this->renderLayout();

}

参考 app/code/core/Mage/Sales/controllers/GuestController.php 中的 printInvoiceAction()

然后在您的自定义 layout.xml<sales_guest_printinvoice>中使用 /app/design/frontend/base/default/layout/sales.xml 作为您的模板

然后添加一个按钮,链接到以下网址(需要从订单中获取发票ID)/customModule/controller/printInvoice/invoice_id/xxx

(未测试,所以如果您遇到任何问题,请告诉我)

于 2012-11-24T15:38:51.187 回答
0

您应该创建用于打印的自定义 css 文件print.css。你应该添加“打印按钮”,这将调用window.print()

于 2012-11-22T14:37:15.427 回答