Php 在Magento中生成PDF发票
我正在尝试检查Magento中的新订单,如果存在,请向网站管理员发送PDF发票。除了PDF,一切都很好 尝试从外部创建PDF发票时,呈现的PDF中缺少所有帐单信息。创建发票相当简单,但我无法找到丢失账单信息的原因。这是我学到的 下面是我创建实际PDF发票的代码。这与默认的Php 在Magento中生成PDF发票,php,zend-framework,magento,Php,Zend Framework,Magento,我正在尝试检查Magento中的新订单,如果存在,请向网站管理员发送PDF发票。除了PDF,一切都很好 尝试从外部创建PDF发票时,呈现的PDF中缺少所有帐单信息。创建发票相当简单,但我无法找到丢失账单信息的原因。这是我学到的 下面是我创建实际PDF发票的代码。这与默认的pdfinvoicesAction中用于为管理员后端创建PDF的代码相同(app/code/core/Mage/Adminhtml/controllers/Sales/OrderController.php:459) cron/
pdfinvoicesAction
中用于为管理员后端创建PDF的代码相同(app/code/core/Mage/Adminhtml/controllers/Sales/OrderController.php:459
)
cron/Invoice.php
<?php
/* $order is a valid Mage_Sales_Model_Order object */
$invoices = $order->getInvoiceCollection();
$pdfInvoice = Mage::getModel('sales/order_pdf_invoice');
$pdf = $pdfInvoice->getPdf($invoices);
$pdfFile = $pdf->render();
?>
这就是发生的事情。我不知道如何或为什么。真正的踢球者?在我的cron作业脚本中,如果我运行以下命令:
die(print_r($order->getPayment()->toArray()));
所有的付款信息都在那里
我在Magento网站的开发论坛上问过这个问题,但运气不好。我真的希望有人能帮我解释这个问题,因为我已经用尽了调试的努力。非常感谢你
编辑:刚刚发现,虽然
Mage::helper('payment')->getInfoBlock($order->getPayment())->setIsSecureMode(true)->toHtml()
返回格式正确的HTML->toPdf仍然不返回任何内容。我希望这对其他人有所帮助。有时候,当你问一个详细的问题时,它会让你思考得更清楚。这是一个非常简单的解决方案,没有明确的错误消息指示问题所在
Magento将两个文件夹用于模板文件adminhtml
和frontend
。默认情况下,后端的支付数据助手pdf操作只有一个.phtml。我的脚本在前端运行,找不到此文件,并输出一个空字符串
简言之,如果你的PDF发票在Magento中,我尝试了@Mahdi.Montgomery的解决方案,但它对我不起作用
我的问题几乎是一样的,但我没有丢失账单信息,而是缺少付款方式。但我的直觉是,根本原因是相同的-管理和前端的PDF模板是不同的,这不是很直观。我的直觉正好是对的
我是从网上看到这个链接的
回答我自己的问题,这是一个Magento bug,请参阅
修正:
在frontend/base/default/template/payment/info中,创建一个pdf文件夹
并将所有.phtml文件复制到其中
希望这对某人有所帮助。我刚刚遇到了同样的问题。当在xdebug中单步执行时,我注意到PDF想要从这个模板文件加载付款信息:frontend/base/default/template/payment/info/PDF/purchaseorder.phtml,它在默认Magento中不存在。
die(print_r($order->getPayment()->toArray()));