Создание счетов в формате PDF в Magento

Я пытаюсь проверить наличие новых заказов в 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();
?>

Создает действительный PDF-файл, содержащий всю информацию о заказе за вычетом счетов. Выявив причину этого, я обнаружил, что в следующем (по умолчанию) файле информация о выставлении счетов является пустой строкой - когда я получаю счет через серверную часть magento, он возвращает отформатированную строку, содержащую всю информацию о выставлении счетов.

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 по-прежнему ничего не возвращает.

6
задан Mahdi.Montgomery 12 January 2012 в 02:59
поделиться