Здравствуйте!
Разрабатываю новый функционал на сайте , возникла проблема с использованием апи битрикса.
Задача - при оплате заказа, если в нем есть подарочные карты, сгенерировать для них купоны.
Для этого написал свой класс и добавил его в init.php на автозагрузку -
Когда тестирую код в браузере, получаю заказ по номеру, все хорошо работает и купоны генерируются...
но когда пытаюсь цепляться в инит.пхп на событие оплаты, один из методов не возвращает ответа
а именно
в $dbRes в случае вызова из браузера приходят данные
http://joxi.ru/vAWqN4VuB4qEvm
и я могу их потом обработать,
но если вызов класса происходит из события в инит.пхп то
в $dbRes ничего не попадает -http://joxi.ru/4AkDkvZT04XGVr
Что пробовал
-вставлял перед применением класса CSaleDiscount if(CModule::IncludeModule("sale"))
-подключал require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
Прошу пояснить в чем моя ошибка, что надо исправить чтобы и при вызове в событии CSaleDiscount::GetList возвращал мне все правила работы с корзиной
Разрабатываю новый функционал на сайте , возникла проблема с использованием апи битрикса.
Задача - при оплате заказа, если в нем есть подарочные карты, сгенерировать для них купоны.
Для этого написал свой класс и добавил его в init.php на автозагрузку -
Код |
---|
Bitrix\Main\Loader::registerAutoLoadClasses(null, array( 'CGiftCardClass' => '/local/helper/class/CGiftCardClass.php', )); |
Когда тестирую код в браузере, получаю заказ по номеру, все хорошо работает и купоны генерируются...
но когда пытаюсь цепляться в инит.пхп на событие оплаты, один из методов не возвращает ответа
а именно
Код |
---|
class CGiftCardClass { ....... public function getRulesForWorkWithBasket($giftCardProducts){ $dbRes = CSaleDiscount::GetList(array(), array("LID" => SITE_ID, "ACTIVE" => "Y",), false, false, array()); $this->debugLogger($dbRes,'$dbRes');//логирую результат while ($arRes = $dbRes->Fetch()){ обработка правил...... } ..... } ....... |
в $dbRes в случае вызова из браузера приходят данные
и я могу их потом обработать,
но если вызов класса происходит из события в инит.пхп то
в $dbRes ничего не попадает -
Что пробовал
-вставлял перед применением класса CSaleDiscount if(CModule::IncludeModule("sale"))
-подключал require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
Прошу пояснить в чем моя ошибка, что надо исправить чтобы и при вызове в событии CSaleDiscount::GetList возвращал мне все правила работы с корзиной