Magentoで新しい注文を確認しようとしていますが、存在する場合は、サイト管理者にPDF請求書を送信します。 PDFを除いてすべてが素晴らしいです。PDF Magentoでの請求書作成
外部でPDF請求書を作成しようとすると、すべての請求情報がレンダリングされたPDFにありません。請求書の作成は簡単ですが、欠落している請求情報の理由を見つけることは不可能です。ここに私が学んだことがあります。
実際のPDF請求書を作成するためのコードは次のとおりです。これは、管理者のバックエンド(app/code/core/Mage/Adminhtml/controllers/Sales/OrderController.php:459
)のPDFを作成するために、デフォルトのpdfinvoicesAction
で使用されているのと同じコードです。
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();
?>
これは、すべての注文情報マイナス課金を含む、有効なPDFを作成します。この原因を特定すると、次の(デフォルト)ファイルで注文請求情報が空の文字列であることがわかりました。私はマゼンタバックエンド経由で請求書を取り出すと、すべての請求情報を含む書式設定された文字列を返します。
app/core/Mage/Sales/Model/Order/Pdf/Abstract.php:221
/* Payment */
$paymentInfo = Mage::helper('payment')->getInfoBlock($order->getPayment())
->setIsSecureMode(true)
->toPdf();
// $paymentInfo is an empty string when rendering a PDF externally,
// and formatted as expected when rendering a PDF via the admin panel
$payment = explode('{{pdf_row_separator}}', $paymentInfo);
起こっていただきました!だからです。どのように、なぜか、私には分かりません。本当のキッカー?私のcronジョブのスクリプトでは、私は次を実行する場合:
die(print_r($order->getPayment()->toArray()));
すべての支払い情報があります。
Magentoウェブサイトの開発フォーラムでこれを幸運にも尋ねました。デバッグ作業が疲れてしまったので、誰かがこの問題を解明するのを助けてくれることを本当に望んでいます。どうもありがとうございます。
編集:ちょうどMage::helper('payment')->getInfoBlock($order->getPayment())->setIsSecureMode(true)->toHtml()
が正しくフォーマットされたHTMLを返す間、それを見つけました。 ->toPdf
はまだ何も返しません。
私はちょうど同じ問題に遭遇しました。デフォルトMagentoの中に存在しないフロントエンド/ベース/デフォルト/テンプレート/支払/情報/ PDF/purchaseorder.phtml:xdebugの中をステップ実行するとき、私は、PDFは、このテンプレートファイルからの支払い情報をロードしようと気づきました。 –