Россия

d7 создание ограничения по местоположениям для службы доставки


Задача:

Программно(с помощью api bitrix) установить ограничения по местоположениям для службы доставки.


Решение:

CModule::IncludeModule("sale");

use Bitrix\Sale\Delivery\DeliveryLocationTable,
   Bitrix\Sale\Internals\CollectableEntity,
   Bitrix\Sale\Shipment;

$deliveryId = 9; // ID доставки

if ($deliveryId > 0) 
{
   $arLocation = array();
   $arLocation["L"] = array(618,1333,10,11,12,14);  // L - для местоположений , G - для типов местоположений
   DeliveryLocationTable::resetMultipleForOwner($deliveryId, $arLocation);  
}	

Метод установки ограничения DeliveryLocationTable::resetMultipleForOwner работает от версии sale 17.5.7, на 17.0.35 просто удалял существующие местоположения в ограничении.