Старый метод, позволяет понять некоторые вещи в работе доставки.
Разработчики, которые делают проекты на Битрикс, хорошо знакомы с двумя типами служб доставки в этой CMS — это Настраиваемые и Автоматизированные. В этой статье мы посмотрим как сделать свой Автоматизированный обработчик доставки и даже сделаем простой пример такого обработчика.
Об автоматизированном обработчике доставки
Все предустановленные обработчики располагаются в папке /bitrix/modules/sale/lang/ru/delivery/ . Свои обработчики следует располагать в папке /bitrix/php_interface/include/sale_delivery/ (этот путь можно изменить в свойствах модуля интернет-магазина). Обработчик представляет собой класс определенной структуры со строкой подключения обработчика доставки по событию onSaleDeliveryHandlersBuildList .
Класс обработчика доставки должен иметь ряд методов, типы действий которых, описываются в методе Init класса.
Эти методы такие:
1. Init — происходит инициализации основных полей.
2. DBGETSETTINGS — метод считывания значений параметров.
3. DBSETSETTINGS — метод установки значений параметров.
4. GETCONFIG — определение конфигурации настроек (их можно разбить на табы).
5. COMPABILITY — проверка совместимости профилей обработчика с заказом.
6. CALCULATOR — расчет стоимости доставки.
Также должны быть заданы поля:
1. SID — Уникальный строковой идентификатор обработчика. 2. NAME — Название обработчика. 3. DESCRIPTION — Текстовое описание обработчика 4. DESCRIPTION_INNER — Внутреннее описание обработчика, отображаемое при конфигурации обработчика в Панели Управления. 5. BASE_CURRENCY — Идентификатор базовой валюты обработчика 6. HANDLER — Путь к файлу обработчика. Нужен для корректного автоматического копирования обработчика (ещё не реализовано). В подавляющем большинстве случаев достаточно значения __FILE__
Также должны быть заданы профили доставки. Хотя бы один.
Простейший обработчик доставки.
Не будем мудрить — сделаем обработчик, который ничего не считает и всегда выдает цену одну и ту же, например 200 руб. В нем будет всего один профиль — без ограничений. В настройки вынесем цену доставки.
Сохраним этот обработчик в файле /bitrix/php_interface/include/sale_delivery/delivery_plain.php и посмотрим в список автоматизированных обработчиков. Если мы видим его в списке, то значит все сделано правильно. Нам осталось его активировать и проверить работу.