Я использую модуль Intraship для доставки и создания этикеток.
Большую часть времени я могу печатать этикетки без проблем, но время от времени я получаю следующее сообщение об ошибке:
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 байтов.
Тем не менее, shipemnt является инициатором в DHL и привлечен к ответственности.
Модуль Intraship от nr-apps довольно распространен и широко используется в Германии, и я не думаю, что есть какие-то конкретные ошибки с расширением. У меня также были контакты с разработчиками, но я проверил все, что они могли себе представить (см. Пункты, упомянутые выше).
У кого-нибудь есть идеи, что еще могло вызвать ошибку?
Спасибо!!
У меня была точно такая же проблема. 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. Это не означает, что вы получаете ту же ошибку или что причина ошибки та же, но по крайней мере у вас есть индикатор, где искать сообщения об ошибках, которые могут помочь вам с решением.
Для меня единственный оставшийся вариант — обратиться в службу поддержки DHL Intraship по поводу ошибок HTTP 500.
Других решений пока нет …