Выбрать страницу

Данная проблема может возникнуть, например, при попытке клиента скачать pdf-файл с данными своего заказа, если тот уже находится в обработке. Самое интересное в этом, что администратор магазина скачать данный pdf может без проблем!

Как понятно из текста ошибки, проблема в обращении к изображению (чаще всего – товара). В интернете есть несколько способ решения данной проблемы (например, тут), которые действенны в общем случае. У Prestashop’a проблема чаще всего в другом, а именно – в пути к изображению, который генерируется в методе thumbnail класса ImageManager. Примечательно то, что для администратора магазина путь генерируется не так, как для посетителя – этим и объясняется возможность скачать pdf одним, и отсутствие возможности у другого:

Данный метод вызывается для определения параметра image_tag, который и используется для вывода изображения в pdf:

Вызывается он в методе getContent класса HTMLTemplateInvoice:

Таким образом, для администратора получается относительный путь:
../img/tmp/product_mini_2_7.jpg
, а для посетителя – абсолютный:
/img/tmp/product_mini_2_7.jpg
что и приводит к проблеме. Почему – не знаю :)

В версии 1.6.1.0 данную проблему исправили – изменили присваивание image_tag в методе getContent класса HTMLTemplateInvoice:

Это изменение позволило передавать полный путь до изображения и решило имеющуюся проблему. Соответственно, это решение подходит и для версии 1.6.0.14…

Надеюсь, данный материал кому-нибудь поможет решить проблему ошибки CPDF ERROR [Image] unable to get Image в CMS Prestashop.