Ограничения служб доставки в Битрикс

Бывает ситуация, когда ограничений доставки не хватает, к примеру надо показать доставку только для выбранной группы пользователей или ограничить по сумме заказа.

Битрикс предлагает решение - надо только дополнить стандартный набор ограничений своими собственными. Для этого используется событие onSaleDeliveryRestrictionsClassNamesBuildList:

$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler(
    'sale',
    'onSaleDeliveryRestrictionsClassNamesBuildList',
    'myDeliveryRestrictions'
);

function myDeliveryRestrictions()
{
    return new \Bitrix\Main\EventResult(
        \Bitrix\Main\EventResult::SUCCESS,
        array(
            '\MyDeliveryRestriction' => '/path/to/your/class/restriction.php',
        )
    );
}