Php 在Magento中生成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/

我正在尝试检查Magento中的新订单,如果存在,请向网站管理员发送PDF发票。除了PDF,一切都很好

尝试从外部创建PDF发票时,呈现的PDF中缺少所有帐单信息。创建发票相当简单,但我无法找到丢失账单信息的原因。这是我学到的

下面是我创建实际PDF发票的代码。这与默认的
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()));