Magento Intraship PDF 创建失败

Posted

技术标签:

【中文标题】Magento Intraship PDF 创建失败【英文标题】:Magento Intraship PDF Creation Failed 【发布时间】:2015-02-09 12:28:44 【问题描述】:

我正在使用 DHL 内部运输模块来处理运输和创建运输标签。

大多数时候我可以毫无问题地打印标签,但有时我会收到以下错误消息:

pdf creation failed. service temporary not available. Unable to save PDF to [...] /var/intraship/documents/pdf--a/pdf--a2/pdf--a29/label-00340433836395078284.pdf.

不幸的是,我不知道是什么导致了错误。它与订购的物品、地址、数量、装运类型或付款方式或我能想象的任何其他变量无关。

问题是,它只发生在某些订单上 - 假设我可以连续打印 20 个标签,而接下来的 3 个标签不起作用。由于它与时间无关,我可以一次打印很多标签,然后只打印两个,我认为这与服务器工作内存的过载无关。

此外,我检查了 - 目录权限正确 (777) - url_fopen 设置为 allwo - 没有同名文件(标签):文件已创建,但有0字节。

不过,DHL 还是会发货并负责处理。

nr-apps 的 Intraship 模块在德国非常普遍并被广泛使用,我认为扩展没有任何特定错误。我也与开发人员有过接触,但我检查了他们能想象到的一切(见上面提到的几点)。

有人知道还有什么可能导致错误吗?

谢谢!!

【问题讨论】:

【参考方案1】:

我遇到了完全相同的问题。 0字节PDF、cmets命令中的错误信息和神秘的错误文本“FPDF错误:无法找到指向外部参照表的指针”。

在搜索了扩展的代码后,我找到了产生错误的地方(第143行的app/code/community/Dhl/Intraship/Helper/Pdf.php):

 catch (Exception $e) 
    Mage::log($e->getMessage());
    throw new Dhl_Intraship_Helper_Pdf_Exception(
        'pdf creation failed. service temporary not available. ' . $e->getMessage(),
        $e->getCode()
    );

由于记录了错误,我在var/log/system.log中搜索了错误日志,发现了相关的异常信息:

2015-04-16T17:52:27+00:00 DEBUG (7): Unable to save PDF to /path-to-your-app/var/intraship/documents/pdf--X/pdf--XX/pdf--XXX/label-<code>.pdf.
2015-04-16T17:52:27+00:00 ERR (3): Warning: file_get_contents(http://www.intraship.de:80/cartridge/WSPrint?code=<long code>): failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error
    in /path-to-your-app/app/code/community/Dhl/Intraship/Helper/Pdf.php on line 143

所以对我来说,错误是(最近非常不稳定)DHL Intraship API。这并不意味着您会收到相同的错误或错误原因相同,但至少您有一个指示符,可以在哪里查找可能有助于您解决问题的错误消息。

对我来说,剩下的唯一选择是联系 DHL Intraship 支持以了解 HTTP 500 错误。

【讨论】:

以上是关于Magento Intraship PDF 创建失败的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Magento 中获取订单时间?

Magento - 按位置对PDF发票产品进行排序

getRate() 和 Magento 税率

iview的AutoComplete组件点两次才能失焦怎么解决

如何创建 Magento-2 扩展包以上传到 Magento-2 官方网站?

Magento:创建存储过程