263  /  382
Справочник

Кастомизация типов дополнительных услуг

Просмотров: 22880
Дата последнего изменения: 13.11.2023
Татьяна Старкова
Сложность урока:
2 уровень - несложные понятия и действия, но не расслабляйтесь.
1
2
3
4
5
Недоступно в лицензиях:
Старт, Стандарт

К службам доставки можно добавлять дополнительные услуги, оказываемые клиентам при доставке товаров. Так, например, вы можете спросить у клиента нужно ли товар упаковать в подарочную упаковку.

В случае, если вас не устраивают стандартные типы дополнительных услуг, то вы можете добавлять свои собственные типы. Для этого следует использовать событие 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.
Там же вы сможете найти примеры штатных типов услуг.


12
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии