Смена организации продавца в зависимости от выбора платежной системы

#
Смена организации продавца в зависимости от выбора платежной системы
Добрый день, уважаемые товарищи!

Возникла ситуация: необходимо менять организацию продавца (и реквизиты передаваемые в счет) в зависимости от выбора клиентом платежного обработчика. Упрощая ситуацию, у меня две копии обработчика "Оплата безналичная от юрлица" - с НДС и с УСН. И два разных юрлица для каждого вида счетов.
В форме заказа есть выбор компаний, задающихся в CRM-Компания, которые используются для установки по умолчанию юрлица Интернет-магазина.

Судя по файлу /shop/payment/system/handler.php, при генерации  XML для счета используется параметр company_id ( _shopOrder->company_id)
Я пробовал передавать company_id в $_SESSION['hostcmsOrder']['company_id'] -реакции никакой - компания продавца в заказе не изменяется (пустое значение).
Пробовал использовать хук на событие Shop_Payment_System_Handler.onAfterProcessOrder, задавать $object->_orderParams->company_id  - ругается на то что переменная protected.

Буду признателен за совет.

#
Re: Смена организации продавца в зависимости от выбора платежной системы
Какая у вас версия системы? Вариант с $_SESSION['hostcmsOrder']['company_id']  должен работать. Как именно вы подставляли id и куда вставляли этот код?
«Не выходи из комнаты, не совершай ошибку…»
#
Re: Смена организации продавца в зависимости от выбора платежной системы
Версия 6.9.2 Корпорация. ТДС Корзины кастомная, в 1 шаг.

// Окончание оформления заказа
   case 4:
...
if (($_SESSION['hostcmsOrder']['shop_payment_system_id']) && $_SESSION['hostcmsOrder']['shop_payment_system_id'] == 28) {
  $_SESSION['hostcmsOrder']['company_id']  = 1;
} elseif   (($_SESSION['hostcmsOrder']['shop_payment_system_id']) && $_SESSION['hostcmsOrder']['shop_payment_system_id'] == 122) {
  $_SESSION['hostcmsOrder']['company_id']  = 2;
} else {
$_SESSION['hostcmsOrder']['company_id']  = 3;
}

                $_SESSION['hostcmsOrder']['shop_country_id'] = intval(Core_Array::getPost('shop_country_id', 0));
      $_SESSION['hostcmsOrder']['shop_country_location_id'] = intval(Core_Array::getPost('shop_country_location_id', 0));
      $_SESSION['hostcmsOrder']['shop_country_location_city_id'] = intval(Core_Array::getPost('shop_country_location_city_id', 0));
      $_SESSION['hostcmsOrder']['shop_country_location_city_area_id'] = intval(Core_Array::getPost('shop_country_location_city_area_id', 0));
      $_SESSION['hostcmsOrder']['postcode'] = Core_Str::stripTags(strval(Core_Array::getPost('postcode')));
      $_SESSION['hostcmsOrder']['address'] = Core_Str::stripTags(strval(Core_Array::getPost('address')));
...
#
Re: Смена организации продавца в зависимости от выбора платежной системы
Обратитесь в тех поддержку с данными доступа в админку. По огрызкам кода на форуме проблематично помочь.
«Не выходи из комнаты, не совершай ошибку…»
#
Re: Смена организации продавца в зависимости от выбора платежной системы
Вопрос решился через обработчик платежной системы.
...
protected function _processOrder()
   {
      parent::_processOrder();
      
      // Установка компании, которая отвечает за счета с УСН
      $oShop_Order = $this->getShopOrder();
                $oShop_Order->company_id = 1;
                $oShop_Order->save();
      
...
Авторизация