yoomoney / cms-prestashop

YooKassa payment module for PrestaShop
https://yookassa.ru/developers
11 stars 9 forks source link

Ошибки в CRON режиме для Яндекс.Маркета #42

Open cbl4 opened 4 years ago

cbl4 commented 4 years ago

Обнаружил в коде параметр крон режима для сохранения xml в файл. Запустил из браузера /module/yandexmodule/generate?cron=1 Получил ошибки:

PHP message: PHP Notice: Undefined property: YandexMoneyModule\Models\MarketModel::$context in /app_code/modules/yandexmodule/classes/Models/MarketModel.php on line 151 PHP message: PHP Notice: Trying to get property 'shop' of non-object in /app_code/modules/yandexmodule/classes/Models/MarketModel.php on line 151 PHP message: PHP Notice: Trying to get property 'id' of non-object in /app_code/modules/yandexmodule/classes/Models/MarketModel.php on line 151 PHP message: PHP Fatal error: Uncaught Error: Call to undefined method YandexMoneyModule\Models\MarketModel::log() in /app_code/modules/yandexmodule/classes/Models/MarketModel.php:154 Stack trace: -0- /app_code/modules/yandexmodule/controllers/front/generate.php(25): YandexMoneyModule\Models\MarketModel->generateXML(true) -1- /app_code/classes/controller/Controller.php(281): YandexModuleGenerateModuleFrontController->postProcess() -2- /app_code/classes/Dispatcher.php(515): ControllerCore->run() -3- /app_code/index.php(28): DispatcherCore->dispatch() -4- {main} thrown in /app_code/modules/yandexmodule/classes/Models/MarketModel.php on line 154

Версия модуля 1.1.11 Версия престы 1.7.6.1

Что я делаю не так?

cbl4 commented 4 years ago

Переписал этот участок в такой рабочий вариант:

    if ($cron) {
        if ($fp = fopen(_PS_UPLOAD_DIR_.'yml.'.Context::getContext()->shop->id.'.xml', 'w')) {
            fwrite($fp, $xml);
            fclose($fp);
            $this->module->log('info', 'market_generate: Cron '.$this->module->l('Generate price'));
        }
    }
ostulov commented 4 years ago

Добрый день!

Благодарю за предоставление кода, рассмотрим его добавление в модуль!