Поэтому в зависимости от текущего статуса надо переводить в в 1 из 2х статусов:
- Если предоплата, то в статус "Оплачен, формируется к отправке"
- Если постоплата, то в статус "Выполнено"
1. Отключить все изменения Битриксом:
- В роботах-триггерах (если CRM)
- В настройках модуля платежной системы "Статус заказа после оплаты"
- В настройках модуля "интернет-магазин" вкладка "автоматизация процессов" поле "При получении полной оплаты переводить заказ в статус"
AddEventHandler("sale", "OnSalePayOrder", "MyOnSalePayOrder"); function MyOnSalePayOrder($id,$val){ if($val=="Y" && CModule::IncludeModule('sale') && ($arOrder = CSaleOrder::GetByID($id))) { if(in_array($arOrder['STATUS_ID'], array("N","NP"))){//если на стадии "В обработке", "Ожидает оплаты"" CSaleOrder::StatusOrder($id, "P"); //переводим в статус "оплачен, формируется к отправке" } elseif(in_array($arOrder['STATUS_ID'], array("S","Z"))){//если на стадии "Отправлен", "Отправлен, ожидание оплаты" CSaleOrder::StatusOrder($id, "F"); //переводим в статус "выполнен" } } } |