Если для кого-то это еще актуально.
Решение дала поддержка 1С-Битрикс в мануале вот здесь -
"Получение списка доступных служб доставок с учетом настроенных ограничений"
Если очень схематично. При ограничении по местоположениям.
Решение дала поддержка 1С-Битрикс в мануале вот здесь -
"Получение списка доступных служб доставок с учетом настроенных ограничений"
Если очень схематично. При ограничении по местоположениям.
| Код |
|---|
//$FUSER_TYPE_ID - тип плательщика, определен заранее
$basket = \Bitrix\Sale\Basket::loadItemsForFUser(\Bitrix\Sale\Fuser::getId(), SITE_ID);
// корзину товарами наполнять даже не обязательно
$order = \Bitrix\Sale\Order::create(SITE_ID, $USER->GetID());
$order->setPersonTypeId($FUSER_TYPE_ID);
$order->setBasket($basket);
$shipmentCollection = $order->getShipmentCollection();
$shipment = $shipmentCollection->createItem();
$propertyCollection = $order->getPropertyCollection();
$propertyLocation = $propertyCollection->getDeliveryLocation();
$propertyLocation->setField('VALUE', "Код нужного местоположения. Именно код, а не ID");
$deliveryList = \Bitrix\Sale\Delivery\Services\Manager::getRestrictedList($shipment, \Bitrix\Sale\Services\Base\RestrictionManager::MODE_CLIENT);
foreach($deliveryList as $deliveryService)print_r($deliveryService);
|