Чтоб закрыть тему, вот в чем дело было:
[QUOTE]но есть одна проблема, модуль онлайн касс не видит то что заказ перешел в статус оплачено[/QUOTE]
[QUOTE]Просим Вас обратить внимание, дергается ли после оплаты в нашем модуле метод для старых версий OnSalePayOrder, для новых OnSaleOrderPaid.[/QUOTE]
[QUOTE]Обновляю статус оплаты этим кодом но не цепляется событие OnSaleOrderPaid[/QUOTE]
С событием там все в порядке.
В модуле по событию и далее по цепочке есть такие строки:
[CODE]$order = CSaleOrder::GetByID($orderID);
if ($this->paySystems and !in_array($order['PAY_SYSTEM_ID'], $this->paySystems)) {
return;
}[/CODE]Как не трудно догадаться тут-то работа модуля и заканчивалась.
C приведенным выше листингом кода в результате ключ 'PAY_SYSTEM_ID' содержал null
Быстрое решение:
Заменить:
[CODE]CSaleOrder::PayOrder($result_order_id, "Y");[/CODE]
На:
[CODE]$arFields = array(
"PAYED" => "Y",
"DATE_PAYED" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", LANG))),
"USER_ID" => $USER_ID,
"PAY_SYSTEM_ID" => $PAY_SYSTEM_ID
);
CSaleOrder::Update($result_order_id, $arFields);[/CODE]
P.S. Приведенный выше ТС код полностью из курса, если кто знает что с ним не так - поделитесь.
[QUOTE]но есть одна проблема, модуль онлайн касс не видит то что заказ перешел в статус оплачено[/QUOTE]
[QUOTE]Просим Вас обратить внимание, дергается ли после оплаты в нашем модуле метод для старых версий OnSalePayOrder, для новых OnSaleOrderPaid.[/QUOTE]
[QUOTE]Обновляю статус оплаты этим кодом но не цепляется событие OnSaleOrderPaid[/QUOTE]
С событием там все в порядке.
В модуле по событию и далее по цепочке есть такие строки:
[CODE]$order = CSaleOrder::GetByID($orderID);
if ($this->paySystems and !in_array($order['PAY_SYSTEM_ID'], $this->paySystems)) {
return;
}[/CODE]Как не трудно догадаться тут-то работа модуля и заканчивалась.
C приведенным выше листингом кода в результате ключ 'PAY_SYSTEM_ID' содержал null
Быстрое решение:
Заменить:
[CODE]CSaleOrder::PayOrder($result_order_id, "Y");[/CODE]
На:
[CODE]$arFields = array(
"PAYED" => "Y",
"DATE_PAYED" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", LANG))),
"USER_ID" => $USER_ID,
"PAY_SYSTEM_ID" => $PAY_SYSTEM_ID
);
CSaleOrder::Update($result_order_id, $arFields);[/CODE]
P.S. Приведенный выше ТС код полностью из курса, если кто знает что с ним не так - поделитесь.