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/。
- Magento 版本为 1.9.3.7
- 我不是在寻找修改发票外观的模块。
我想要的是重新对齐列并使 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');
我想编辑发票的外观并遵循此处提供的建议 https://magento.stackexchange.com/questions/41650/how-to-change-pdf-invoice-layout and here https://www.hummingbirduk.com/remove-tax-pdf-invoices-magento/。
- Magento 版本为 1.9.3.7
- 我不是在寻找修改发票外观的模块。
我想要的是重新对齐列并使 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');