2015-02-09 111 views
0

我正在使用DHL內部模塊來處理運輸並創建運輸標籤。Magento Intraship PDF創建失敗

大部分的時間我可以打印沒有任何問題的標籤,但我不時收到以下錯誤信息:

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 - 沒有文件(標籤)具有相同的名稱:被創建的文件,但0byte。

不過,shipemnt是在DHL發起並被帶到帳戶。

由nr-apps開發的Intraship模塊在德國非常普遍並廣泛使用,我不認爲擴展名有任何特定的錯誤。我也和開發者有過接觸,但我檢查了他們所能想象的一切(見上面提到的幾點)。

有沒有人有一個想法還有什麼可能會導致錯誤?

謝謝!

回答

0

我有完全相同的問題。 0字節的PDF,錯誤消息中的順序註釋和神祕的錯誤文本「FPDF錯誤:無法找到指向外部參照表」。

通過我發現在其中創建錯誤的地方(app/code/community/Dhl/Intraship/Helper/Pdf.php上線143)擴展的代碼搜索後:

} 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。這並不意味着您收到相同的錯誤或者錯誤原因相同,但至少您有一個指示器,可以查找哪些錯誤消息可以幫助您解決該問題。

對我來說,唯一剩下的選擇是聯繫有關HTTP 500錯誤的DHL Intraship支持。