// Создаем заказ и привязываем корзину
$order = Order::create(SITE_ID, $USER_ID);
$order->setPersonTypeId($SOME_PERSON_TYPE_ID);
$basket = Sale\Basket::loadItemsForFUser(Sale\Fuser::getId(), Bitrix\Main\Context::getCurrent()->getSite());
$price = $basket->getPrice();
$fullPrice = $basket->getBasePrice();
$order->setBasket($basket);
// Добавляем Доставку(Отгрузку?)
$shipmentCollection = $order->getShipmentCollection();
$shipment = $shipmentCollection->createItem(
Bitrix\Sale\Delivery\Services\Manager::getObjectById($SOME_DELIVERY_TYPE_ID)
);
// Отгрузку наполняем товарами из корзины
$shipmentItemCollection = $shipment->getShipmentItemCollection();
foreach ($basket as $basketItem) {
$item = $shipmentItemCollection->createItem($basketItem);
$item->setQuantity($basketItem->getQuantity());
}
// PAYMENT
$arPaySystemServiceAll = [];
$paymentCollection = $order->getPaymentCollection();
$extPayment = $paymentCollection->createItem();
$extPayment->setField("SUM", $order->getPrice());
$arPaySystemServiceAll = Sale\PaySystem\Manager::getListWithRestrictions($extPayment);
reset($arPaySystemServiceAll);
$arPaySystem = current($arPaySystemServiceAll);
if(!empty($arPaySystem)) {
$extPayment->setFields(array(
"PAY_SYSTEM_ID" => $arPaySystem["ID"],
"PAY_SYSTEM_NAME" => $arPaySystem["NAME"]
));
} else
$extPayment->delete();
$arPaySystemServiceAll;
При изменение $SOME_DELIVERY_TYPE_ID массив $arPaySystemServiceAll изменяется в зависимости от типа доставки, НО НЕ ПРАВИЛЬНО! Не так как обусловлено в "Ограничения платежной системы". Код выполняется запросом AJAX. Что же тут не так ?!