Компания обратилась ко мне с просьбой сделать модуль () интеграции их сервиса с магазинами на Битриксе. В этом мини-кейсе я опишу и как его использовать, и с какими сложностями пришлось столкнуться, работая на конечного клиента (пользователя модуля), а не для галочки. Проект выполнен в сотрудничестве с .
Особенности модуля
Большинство особенностей появилось в новой версии 2.0, так что, если у кого-то версия старая - пожалуйста, обновитесь.
1. Модуль максимально лоялен к пользователю. Предлагает варианты доставки по индексу. А если он не введен, то по названию города.
2. Позволяет рассчитывать стоимость доставки не только по весу, но и по объему (новое).
3. Позволяет включить Почту России в варианты доставки (новое).
4. Заказы для доставки компанией B2Cpl автоматически выгружаются на сервер компании и поступают в оборот (новое).
5. Присутствует обратная связь, показывающая в админ.части внутренний статус B2Cpl (новое). При желании это может быть вынесено и в публичную часть (не входит в данный модуль):

6. Отправленный на сервер B2Cpl заказ возвращает файл стикера, который можно удобно скачать и распечатать чтобы потом наклеить на посылку для передачи курьеру B2Cpl (новое):


Как правильно настроить модуль
1. Итак, вы ознакомились со , поняли, что вас оно полностью устраивает, заключаете с компанией договор, и начинаете работать.
2. Устанавливаете посредством кнопки "Установить". У вас должны быть активны обновления вашей лицензии Битрикс, и наличие модуля Магазина обязательно конечно же.
3. В разделе "Настройки магазина / Автоматизированные службы доставки" после установки модуля появится новая неактивная служба доставки.
(путь Рабочий стол / Магазин / Настройки магазина / Службы доставки / Автоматизированные)

4. Переходим в Службу. Мы видим несколько вкладок. Пробежимся по важным.
4.1. Базовая конфигурация. Включают название, описание, сортировку в списке доставок и (в последних версиях Битрикс) еще и изображение Службы.
4.2. Настройки доставки. Это уже обязательные настройки, которые вам необходимо внести.

ID клиента и ключ вам выдают при заключении договора. Для тестирования можете использовать тестовые доступы: test / test.
(new) Символьный код для объема. Это код свойства инфоблока товаров, где содержится объем каждого товара. Требуется на случай, если вы работаете с объемными товарами и расчет стоимости будет зависеть от объема. Подробности уточняйте в компании. Если объем не используете, оставьте поле пустым.
(new) Включить Почту России. В вариантах доставки появится почта России, простая посылка. За деталями обращайтесь в компанию.
(new) ПВЗ (пункты выдачи) из окрестностей. Если опция указана, то в вариантах доставки будет указываться ПВЗ столичных городов для данного города. К примеру, для пригорода Новосибирска будет выведен ПВЗ Новосибирска. Если опцию убрать, то ПВЗ для данного пригорода указан не будет вовсе.
(new) Статус заказа для выгрузки. Чтобы вам вручную не выгружать заказы сайта в кабинет B2Cpl, введена данная опция. Как только статус заказа поменяется на указанный, информация о заказе улетит в кабинет, и сотрудники B2Cpl возьмут его в оборот.
4.3. Привязка к свойствам заказа. Собственно здесь, вам нужно прописать в каком свойстве заказа содержится телефон (требуется, если вы будете использовать выгрузку на сайт B2Cpl) и где будет содержаться уже упомянутый внутренний статус B2Cpl.
Не забудьте активировать Службу после внесения изменений для начала работы!
Ну и наконец. Вам нужно убедиться, что у вас присутствует свойство заказа Индекс, отмеченное соответствующей галочкой:

И конечно же Местоположение, также отмеченное соответствующей галочкой:

Часть для разработчиков
О тонкостях и плюсах модуля можете почитать ниже. В какие сложности мы уперлись, и какие вопросы для решения перед собой поставили
1. Клиент должен ставить одной кнопкой и вбивать всего несколько опций.
2. У него может не быть базы индексов, или быть неполная. Он не должен заботиться об этом.
3. Мы не должны править шаблоны и лишать клиента обновлений.
Первый вопрос был решен просто, так как модуль всего лишь добавлял автоматизированную службу доставки. А вот второй вопрос без третьего уже решить сложнее.
Но мы решили это сообща с самой компаний. Обрисовав им ситуацию, что модулем (и сервисом) будут пользоваться тем охотнее, чем меньше он мороки доставит при установке. Таким образом, с их стороны был предоставлен функционал определения индекса по названию города!
Ну все, казалось бы, проблема решена: есть индекс - узнаем цену доставки, нет индекса - узнаем по городу. Но встала еще одна проблема - город может вернуть несколько индексов. Соответственно, в таком случае надо уведомить пользователя

Если город будет не найден, модуль тоже услужливо ответит посетителю

И даже после этого опять столкнулись со сложностями - индекс после предупреждения введен пользователем, но как обновить форму заказа, отправив запрос на сервер доставки? Но и это было решено автоматически и без правки шаблона - ищется поле индекса и на него вешается js-event blur.

Вот как-то так галопом по модулю
скачивайте пользуйтесь, изучайте, и делайте такие же удобные модули. Или обращайтесь к нам 
Особенности модуля
Большинство особенностей появилось в новой версии 2.0, так что, если у кого-то версия старая - пожалуйста, обновитесь.
1. Модуль максимально лоялен к пользователю. Предлагает варианты доставки по индексу. А если он не введен, то по названию города.
2. Позволяет рассчитывать стоимость доставки не только по весу, но и по объему (новое).
3. Позволяет включить Почту России в варианты доставки (новое).
4. Заказы для доставки компанией B2Cpl автоматически выгружаются на сервер компании и поступают в оборот (новое).
5. Присутствует обратная связь, показывающая в админ.части внутренний статус B2Cpl (новое). При желании это может быть вынесено и в публичную часть (не входит в данный модуль):

6. Отправленный на сервер B2Cpl заказ возвращает файл стикера, который можно удобно скачать и распечатать чтобы потом наклеить на посылку для передачи курьеру B2Cpl (новое):


Как правильно настроить модуль
1. Итак, вы ознакомились со , поняли, что вас оно полностью устраивает, заключаете с компанией договор, и начинаете работать.
2. Устанавливаете посредством кнопки "Установить". У вас должны быть активны обновления вашей лицензии Битрикс, и наличие модуля Магазина обязательно конечно же.
3. В разделе "Настройки магазина / Автоматизированные службы доставки" после установки модуля появится новая неактивная служба доставки.
(путь Рабочий стол / Магазин / Настройки магазина / Службы доставки / Автоматизированные)

4. Переходим в Службу. Мы видим несколько вкладок. Пробежимся по важным.
4.1. Базовая конфигурация. Включают название, описание, сортировку в списке доставок и (в последних версиях Битрикс) еще и изображение Службы.
4.2. Настройки доставки. Это уже обязательные настройки, которые вам необходимо внести.

ID клиента и ключ вам выдают при заключении договора. Для тестирования можете использовать тестовые доступы: test / test.
(new) Символьный код для объема. Это код свойства инфоблока товаров, где содержится объем каждого товара. Требуется на случай, если вы работаете с объемными товарами и расчет стоимости будет зависеть от объема. Подробности уточняйте в компании. Если объем не используете, оставьте поле пустым.
(new) Включить Почту России. В вариантах доставки появится почта России, простая посылка. За деталями обращайтесь в компанию.
(new) ПВЗ (пункты выдачи) из окрестностей. Если опция указана, то в вариантах доставки будет указываться ПВЗ столичных городов для данного города. К примеру, для пригорода Новосибирска будет выведен ПВЗ Новосибирска. Если опцию убрать, то ПВЗ для данного пригорода указан не будет вовсе.
(new) Статус заказа для выгрузки. Чтобы вам вручную не выгружать заказы сайта в кабинет B2Cpl, введена данная опция. Как только статус заказа поменяется на указанный, информация о заказе улетит в кабинет, и сотрудники B2Cpl возьмут его в оборот.
4.3. Привязка к свойствам заказа. Собственно здесь, вам нужно прописать в каком свойстве заказа содержится телефон (требуется, если вы будете использовать выгрузку на сайт B2Cpl) и где будет содержаться уже упомянутый внутренний статус B2Cpl.
Не забудьте активировать Службу после внесения изменений для начала работы!
Ну и наконец. Вам нужно убедиться, что у вас присутствует свойство заказа Индекс, отмеченное соответствующей галочкой:

И конечно же Местоположение, также отмеченное соответствующей галочкой:

Часть для разработчиков
О тонкостях и плюсах модуля можете почитать ниже. В какие сложности мы уперлись, и какие вопросы для решения перед собой поставили
1. Клиент должен ставить одной кнопкой и вбивать всего несколько опций.
2. У него может не быть базы индексов, или быть неполная. Он не должен заботиться об этом.
3. Мы не должны править шаблоны и лишать клиента обновлений.
Первый вопрос был решен просто, так как модуль всего лишь добавлял автоматизированную службу доставки. А вот второй вопрос без третьего уже решить сложнее.
Но мы решили это сообща с самой компаний. Обрисовав им ситуацию, что модулем (и сервисом) будут пользоваться тем охотнее, чем меньше он мороки доставит при установке. Таким образом, с их стороны был предоставлен функционал определения индекса по названию города!
Ну все, казалось бы, проблема решена: есть индекс - узнаем цену доставки, нет индекса - узнаем по городу. Но встала еще одна проблема - город может вернуть несколько индексов. Соответственно, в таком случае надо уведомить пользователя

Если город будет не найден, модуль тоже услужливо ответит посетителю

И даже после этого опять столкнулись со сложностями - индекс после предупреждения введен пользователем, но как обновить форму заказа, отправив запрос на сервер доставки? Но и это было решено автоматически и без правки шаблона - ищется поле индекса и на него вешается js-event blur.

Вот как-то так галопом по модулю
скачивайте пользуйтесь, изучайте, и делайте такие же удобные модули. Или обращайтесь к нам 
я не знаю как тут поступить (я даже не знаю как ее преподнести - то ли недоработка, то ли ...). Внедриться в шаблон, и уж тем более в компонент, я не смогу. Попробуйте по способу Эдуарда, к примеру. 