Яндекс Маркет выгрузка из Prestashop

Для выгрузки товаров из Prestashop в Яндекс маркет можно воспользоватся модулем Выгрузка в Яндекс Маркет (Lite).

При попытке установить модуль версии 1.1 на Prestashop 1.5.3 который стоит на PHP 5.4 Strict Standards ON у меня повалились ошибки.

При попытке генерацииYML выпадает Strict Standards: Declaration of ymlCatalog::generate() should be compatible with ymlElement::generate($close = true) in …\modules\yamarket\classes\ymlCatalog.php on line 16

Эту ошибку легко поправить так как к ней идёт подсказка что делать. Правим yamarket\classes\ymlCatalog.php и заменяем public function generate() на public function generate($close = true) Следующая ошибка Notice: Trying to get property of non-object in …\classes\Category.php on line 560. Правим этот файл и заменяем

if ($check_access && !$this->checkAccess($context->customer->id))

на

if ($check_access && is_object($context->customer) && !$this->checkAccess($context->customer->id))

Ещё есть специфическая ошибка на странице динамически генерируемого YML файла.

This page contains the following errors:
error on line 201 at column 39: Extra content at the end of the document
Below is a rendering of the page up to the first error.

Это потому что у меня шаблон изменён и в файле layouts.php (который подгружается как файл шаблона по умолчанию) есть изменения которые рассчитывают на присутствие некоторых переменных в шаблоне. Править можно двумя способами:

  1. Проверять в шаблоне на наличие нужных переменных и только тогда выводить их
  2. Сделать небольшое изменение в модуле

Пойдём по второму пути. Для этого нужно (не обязательно но будет проще) изменить файл yamarket.php. Заменить строки

$this->fields_value['url2'] = $this->context->link->getModuleLink('yamarket', 'generate', array(), true);
$this->fields_value['url3'] = $this->context->link->getModuleLink('yamarket', 'generate', array('cron'=>'1'), true);

на

$this->fields_value['url2'] = $this->context->link->getModuleLink('yamarket', 'generate', array('ajax'=>'true'), true);
$this->fields_value['url3'] = $this->context->link->getModuleLink('yamarket', 'generate', array('cron'=>'1', 'ajax'=>'true'), true);

Теперь ссылка у нас будет по типу http://localhost/module/yamarket/generate?ajax=true