Здравствуйте!
Разрабатываю новый функционал на сайте , возникла проблема с использованием апи битрикса.
Задача - при оплате заказа, если в нем есть подарочные карты, сгенерировать для них купоны.
Для этого написал свой класс и добавил его в init.php на автозагрузку -
Когда тестирую код в браузере, получаю заказ по номеру, все хорошо работает и купоны генерируются...
но когда пытаюсь цепляться в инит.пхп на событие оплаты, один из методов не возвращает ответа
а именно
в $dbRes в случае вызова из браузера приходят данные
и я могу их потом обработать,
но если вызов класса происходит из события в инит.пхп то
в $dbRes ничего не попадает -
Что пробовал
-вставлял перед применением класса 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 возвращал мне все правила работы с корзиной