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

Magento edit PDF renderer for configurable and bundle products

我想编辑发票的外观并遵循此处提供的建议 https://magento.stackexchange.com/questions/41650/how-to-change-pdf-invoice-layout and here https://www.hummingbirduk.com/remove-tax-pdf-invoices-magento/

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

问题是 可配置和捆绑产品仍然显示包含税列 的组件,而其他组件仍然被替换。

code/local/mage/sales/model/order/pdf/Invoice.php ( commenting the lines starting at line 77)

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

将隐藏 header 标签,这没问题。

code/local/mage/sales/model/order/pdf/Items/Invoice/Default.php (commenting this fragment starting at line 106)

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

将使简单产品的税收字段隐藏,但对于构​​成bundle/configurable.

的简单产品的那些则不会。

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

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

中使用此功能呈现的

code/local/mage/sales/model/order/pdf/Abstract.php (line 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();
    }

但我找不到可配置渲染器的定义位置。

复制文件到

local/Mage/Bundle/Model/Sales/Order/Pdf/Items

来自

core/Mage/Bundle/Model/Sales/Order/Pdf/Items

Invoice.php 评论行中 146&147

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