Magento为可配置和捆绑产品编辑PDF渲染器

时间:2018-01-11 15:54:54

标签: php magento pdf invoice

我想修改发票的展示方式,并按照https://magento.stackexchange.com/questions/41650/how-to-change-pdf-invoice-layout此处https://www.hummingbirduk.com/remove-tax-pdf-invoices-magento/提供的建议进行操作。

  • Magento版本是1.9.3.7
  • 我不是在寻找修改发票外观的模块。

我想要的是重新排列列并使TAX列消失。我设法为简单的产品这样做。

问题是可配置产品和捆绑产品仍会显示包含税栏的组件,而其他产品仍然会被取代。

  

code / local / mage / sales / model / order / pdf / Invoice.php(评论从第77行开始的行)

$lines[0][] = array(
            'text'  => Mage::helper('sales')->__('Tax'),
            'feed'  => 495,
            'align' => 'right'
        );

将隐藏标题标签,这是正常的。

  

code / local / mage / sales / model / order / pdf / Items / Invoice / Default.php(从第106行开始评论此片段)

$lines[0][] = array(
            'text'  => $order->formatPriceTxt($item->getTaxAmount()),
            'feed'  => 495,
            'font'  => 'bold',
            'align' => 'right'
        );

将使纳税领域对于简单产品隐藏,而不是来自作为捆绑/可配置组件的简单产品的那些。

问题是这些文件都不对PDF发票中可配置和捆绑的呈现方式负责。

enter image description here

我可以确定的是,这些产品是使用

中的此功能呈现的
  

code / local / mage / sales / model / order / pdf / Abstract.php(第760行)

protected function _drawItem(Varien_Object $item, Zend_Pdf_Page $page, Mage_Sales_Model_Order $order)
    {
        $orderItem = $item->getOrderItem();
        $type = $orderItem->getProductType();
        $renderer = $this->_getRenderer($type);

        $this->renderItem($item, $page, $order, $renderer);

        $transportObject = new Varien_Object(array('renderer_type_list' => array()));

        Mage::dispatchEvent('pdf_item_draw_after', array(
            'transport_object' => $transportObject,
            'entity_item'      => $item
        ));

        foreach ($transportObject->getRendererTypeList() as $type) {
            $renderer = $this->_getRenderer($type);
            if ($renderer) {
                $this->renderItem($orderItem, $page, $order, $renderer);
            }
        }

        return $renderer->getPage();
    }

然而,我找不到定义可配置渲染器的位置。

1 个答案:

答案 0 :(得分:0)

将文件复制到

  

本地/法师/捆绑/型号/销售/订购/ PDF /项目

来自

  

核心/法师/捆绑/型号/销售/订购/ PDF /项目

Invoice.php评论专栏146&147

$tax = $order->formatPriceTxt($_item->getTaxAmount());
$line[] = array('text'  => $tax,'feed'  => 495,'font'  => 'bold',    'align' => 'right');