Дата последнего изменения: 13.11.2023
К службам доставки можно добавлять дополнительные услуги, оказываемые клиентам при доставке товаров. Так, например, вы можете спросить у клиента нужно ли товар упаковать в подарочную упаковку.
В случае, если вас не устраивают стандартные типы дополнительных услуг, то вы можете добавлять свои собственные типы. Для этого следует использовать событие onSaleDeliveryExtraServicesClassNamesBuildList, которое регистрирует пользовательские типы услуг:
EventManager::getInstance()->addEventHandler( 'sale', 'onSaleDeliveryExtraServicesClassNamesBuildList', 'myFunction' );
Зарегистрируйте свой класс, который реализует ваш кастомный тип:
class MyService extends \Bitrix\Sale\Delivery\ExtraServices\Base { public function getClassTitle() { return "Моя услуга"; } ... }
Обработчик события должен вернуть список ваших классов типов дополнительных услуг и путей к ним:
public static function myFunction(Main\Event $event) { return new Main\EventResult( Main\EventResult::SUCCESS, array( 'MyService' = > 'folder/myservice.php', ) ); }
В результате ваш класс включится в работу и будет реализован интерфейс услуг в соответствии с вашими настройками.
Класс наследуется от базового Base, которые размещается в директории: /bitrix/modules/sale/lib/delivery/extra_services
.
Там же вы сможете найти примеры штатных типов услуг.