Magento - 为打印PDF发票添加批量操作

时间:2012-10-15 20:48:15

标签: magento invoice

我有疑问,如何添加批量操作以PDF格式打印发票。我需要两个不同的PDF发票(一个是默认的“打印发票”),所以我想添加额外的操作“打印发票2”。如何开始打印“打印发票2”?

希望有人可以提供帮助!

1 个答案:

答案 0 :(得分:3)

假设您要将批量操作添加到发票网格(管理员中的销售>发票),您需要执行以下操作:

重写Mage_Adminhtml_Block_Sales_Invoice_Grid类并将其替换为您自己的类。您的新课程应该在其自己的扩展中,并从Mage_Adminhtml_Block_Sales_Invoice_Grid继承。如果你不确定如何重写一个块,this blog post should help你就出来了。 注意:您可以将网格块复制到app/code/local/,但这会让Magento升级变得困难。更好的方法是重写并覆盖尽可能少的功能。

您的班级应该提供自己的_prepareMassaction功能,然后添加新动作。以下代码(虽然完全未经测试)应该这样做:

class MyNamspace_Extension_Block_Adminhtml_Invoice_Grid extends Mage_Adminhtml_Block_Sales_Invoice_Grid {
    protected function _prepareMassaction() {
        parent::_prepareMassaction();

        $this->getMassactionBlock()->addItem('pdfinvoices_order2', array(
             'label'=> Mage::helper('myextension')->__('PDF Invoices2'),
             'url'  => $this->getUrl('myroute/mycontroller/myaction'),
        ));

        return $this;
    }
}

addItem()调用中的“url”参数应指向您自己的控制器,您可以在其中实现自己的逻辑以生成PDF。如果你想要一些灵感,可以在第{129行app/code/core/Mage/Adminhtml/Controller/Sales/Invoice.php找到标准的质量动作PDF生成器。