Модуль «СДЭК» для «1С-Битрикс»

Задача: Разработка модуля интеграции личного кабинета логистической службы СДЭК для Интернет-магазинов на базе cms 1C-Bitrix.

Клиент: СДЭК – курьерская служба доставки, осуществляющая транспортировку грузов и документов для организаций и частных лиц по России и миру.

Запуск: 19 февраля 2015

Разработанный продукт является официальным модулем СДЭК для 1C-Bitrix.

Главная задача модуля – обеспечивать комфортную работу с Личными кабинетом СДЭК, не покидая административный раздел сайта Интернет-магазина. Продукт динамично развивается, чтобы своевременно закрывать потребности в комфортной работе, и включает в себя многие пожелания наших клиентов.

Связка подразумевает охват большей части возможностей, предоставляемых средствами Интеграции СДЭК:

  • отправка заказов с автоматическим заполнением необходимых полей (состав заказа, данные о клиенте и т.п.);
  • синхронизация статусов заказов в 1C-Bitrix в соответствии со статусами отправлений СДЭК;
  • печать необходимых сопроводительных документов;
  • расчет доставки с учетом местоположения, габаритов заказа и типа оплаты;
  • виджет выбора пункта выдачи заказов или постамата;
  • удаление заказа из Личного кабинета СДЭК.

Предоставляется необходимый для работы функционал:

  • таблица заявок с полной информацией о них;
  • расчет габаритов заказа на основе содержащихся в нем товаров;
  • синхронизация местоположений сайта с таблицами городов СДЭК;
  • гибкая система настроек;
  • документация.

Средства, обеспечивающие работу расширенного функционала:

  • работа с несколькими личными кабинетами;
  • поддержка работы с несколькими сайтами;
  • разбиение содержимого заказа на несколько грузомест;
  • работа с разными отправителями, в том числе – и находящимися в разных городах;
  • работа с разными валютами Личный кабинетов;
  • отправка трек-номера клиенту;
  • автоматическая отправка заказов при их оформлении;
  • импорт местоположений СДЭК на сайт;
  • модификация многих этапов работы под желания клиентов.

Расчет доставки

Точный расчет стоимости и сроков доставки – сильное конкурентное преимущество для Интернет-магазинов.

Модуль получает необходимые данные напрямую от СДЭКа, основываясь на местоположении и габаритах отправляемого груза, выдавая покупателю актуальную информацию, совпадающую с той, что выводится в Личном кабинете СДЭКа.

Габариты заказа

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

Точное указание габаритов заказа – залог корректного расчета стоимости и сроков доставки. Однако, не всегда есть возможность указать эти данные для каждого товара, особенно – если список торговых позиций внушителен. На помощь приходят настройки модуля, позволяющие указать усредненные габариты для одного заказа или одного товара – на выбор пользователя.

Выбор пункта выдачи заказов

Чтобы покупателям было удобнее ориентироваться по адресам пунктов выдачи заказов и постаматов, в модуль добавлен удобный виджет, автоматически встраивающийся на страницу оформления заказа в случае выбора доставки на ПВЗ или постамат, выводящий необходимую информацию по выбранному пункту.

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

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

Учет тарифов

СДЭК предоставляет выбор множества тарифов, вывод полной информации о которых приведет к замедлению работы расчета и превращения блока доставки в огромную «простыню». Чтобы этого избежать, в модуле встроена таблица приоритетов тарифов от самого дешевого к самому дорогому – и выводиться будет тот, что успешно рассчитался первее согласно приоритету.

В случае, если такая таблица не устраивает клиента – он может изменить приоритеты через безопасную для обновлений модификацию, удовлетворяющую его нуждам.

Отправка заказов

Модуль избавляет менеджера Интернет-магазина от необходимости вводить все необходимые поля вручную – они автоматически берутся из самого заказа в системе 1C-Bitrix и подставляются в форму.

При необходимости данные можно изменить согласно требованиям покупателя, а также указать дополнительные услуги, допустимые к оформлению через Интеграцию СДЭК.

В форме уже содержится вся информация по составу заказа, включая название товаров и их габариты. При необходимости здесь можно распределить товары по разным грузоместам.

В зависимости от выбранного тарифа можно редактировать либо адрес доставки, либо пункт, куда будет доставлен заказ.

Отдельная особенность этого окна – модуль проверяет флаг оплаты заказа при заполнении блока Оплата. Если заказ еще не был оплачен – но при этом стоит указание, что Курьер не получает деньги за заказ, то будет выдано предупреждение, чтобы акцентировать внимание менеджера на этот важный пункт.

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

Таблица тарифов

Иногда возникает ситуация, когда нужно срочно поменять тариф, например, при созвоне с покупателем.

В таком случае на помощь приходит Таблица тарифов, которая выводит данные по стоимости и срокам доставки для всех возможных тарифов.

В некоторых случаях эта стоимость может отличаться от Личного кабинета (например, в случае модификации расчетов). Тогда будет выдано оповещение (восклицательный знак) с возможностью ознакомиться стоимостью в Личном кабинете.

Синхронизация статусов

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

Однако у большинства сайтов есть потребность изменять и статус заказа согласно его путешествию к покупателю. Для этого в настройках модуля предусмотрена таблица соответствий статусов СДЭКа и статусов на сайте.

Своевременное отслеживание статусов отправленных заказов – залог лояльности покупателей, ждущих заветную посылку.

Смена статусов в 1C-Bitrix – хороший инструмент для оповещения, ведь с помощью почтовых событий можно настроить отправку писем как менеджерам сайта, так и клиентам при смене статуса заказа средствами CMS.

Оплаченный заказ

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

Таблица заказов

Модулем также предусмотрено место, где можно ознакомиться со всеми отправленными заказами. Таблица содержит информацию по текущему статусу заказа, его накладной, отправленным данным, сообщения об ошибке, а также – дату последнего изменения (то есть, когда последний раз был изменен статус заказа в системе СДЭК).

Здесь же предоставлен фильтр по всем актуальным полям, позволяющий, например, увидеть все «подвисшие» заказы.

Печатные формы

Отправка заказов всегда сопровождается необходимой номенклатурой: наклейками-штрихкодами, накладными и актом приема-передачи. Для отправленных в Личный кабинет заказов модуль позволяет распечатать необходимые документы. Наклейки и накладная будет сформирована на сервере СДЭКа, а для формирования акта приема-передачи можно использовать предоставляемый в модуле шаблон его заполнения.

В настройках модуля можно указать необходимые для работы параметры, с учетом количества копий и формата листов, на которых будут печататься штрихкоды.

При необходимости можно распечатывать только акты, без накладных.

Настройки модуля

Страница настроек модуля на первый взгляд может показаться весьма громоздкой – однако это следствие предоставления гибкого функционала, призванного удовлетворить потребности большинства наших клиентов. И чего тут только нет…

Опции рассредоточены по блокам, сопровождающимися пояснительной документацией. Для некоторых полей предоставляется дополнительное всплывающее пояснение.

Страница настроек затрагивает следующие части функционала модуля:

  • информации по Отправителю (название компании, адрес и телефон, контактное лицо);
  • настройки для печати, рассмотренные в Печатных формах;
  • данные для расчета габаритов по умолчанию;
  • соответствия полей заказа (данные покупателя, данные по товарам) СДЭКа со свойствами на сайте;
  • управление ставками НДС;
  • настройки оплат;
  • синхронизация статусов;
  • настройки для интеграции виджета;
  • настройки для платежных систем;
  • настройки активности тарифов и дополнительных услуг;
  • и многое другое.

Документация

Многие согласятся, что модуль предоставляет большое количество функционала со множеством настроек – и такой продукт не может не сопровождаться подробной документацией для удобной настройки и работы.

Информация разбита по блокам, соответствующим с заявленным функционалом и сопровождается дополнительными пояснениями и скриншотами.

Также на этой странице выводится информация о версии модуля с возможностью проверить обновления.

Возможно такое обилие текста отпугнет некоторых пользователей – но нет причин для беспокойства: на сайт без значительных кастомизаций (особенно – на странице оформления заказа) модуль встает очень просто, и настройка едва ли займет больше 15 минут. Для тех же пользователей, которые предпочитают подстраивать решение «под себя» документация сопровождается дополнительными блоками, чтобы удовлетворить потребности клиентов.

Отладка

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

На страже работоспособности сайтов стоит наша техподдержка, которая, согласно отзывам клиентов, своевременно и грамотно приходит на помощь.

Однако модуль сам по себе предоставляет мощный функционал отладки, дающий информацию по работе своих функциональных частей, а также позволяющий логировать процесс своей работы для быстрой локализации возникшей ошибки.

Дополнительно

Как неоднократно отмечалось, задача модуля – не просто связать Личный кабинет с сайтом, но еще и сделать работу комфортной и отвечать весьма жестким требованиям к интеграции. Поэтому он оброс многими «фишками», появление которых – нередко заслуга наших клиентов.

Разные аккаунты

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

Это пригодится тем, кто, например, использует аккаунты с разными валютами (рубли, тенге, итп).

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

Разные города-отправители

Крупные Интернет-магазины могут похвастаться наличием складов сразу в нескольких городах.

Модуль позволяет указать несколько городов-отправителей и указать их для автоматизированной службы доставки и при отправке заказа.

Работа с отгрузками

Отгрузка – это сущность 1C-Bitrix-а, по сути позволяющая разбить заказ на две части. Модуль позволяет отправлять как целый заказ, так и конкретную Отгрузку – если вдруг он, например, доставляется разными службами доставки.

Синхронизация местоположений

Интернет-магазин отображает местоположения в соответствии с таблицей, предоставляемой 1C-Bitrix или же заданной иным образом. СДЭК же обладает собственными таблицами, заполненными в другом формате. Задача Синхронизации местоположений – свести их и показать, что, пусть они немного и разные, но все-таки они будут вместе обеспечивать работу интеграции.

Модуль позволяет управлять подключенными странами и, при необходимости, если Личный кабинет аккаунта этой страны имеет собственную валюту, установить ее для последующей конвертации.

Так же он предоставляет информацию по местоположениям: кто синхронизировался, а кто блуждает в потемках.

Синхронизация – сложный процесс, однако постепенно «белых пятен» становится все меньше с обновлениями модуля.

Модификации

Это слово часто встречалось в тексте статьи. Зачастую при нем у разработчиков модулей начинается нервный тик: ведь любые правки в коде приведут к отказу от обновлений и/или возникновению трудновыявляемых ошибок. Да, сделать абсолютно универсальное решение, которое будет работать на любом сайте и так, как захочет любой владелец – задача невозможная в принципе, и модификации в некоторых случаях необходимы.

Поэтому мы решили эту проблему просто: встроили возможность модифицирования процесса работы прямо в модуль, без необходимости вносить правки в его код. Конечно, без помощи опытного программиста тут уже не обойтись – такова цена нестандартных подходов. Наша задача – сделать так, чтобы результата можно было достигнуть с минимальными затратами.

Модуль содержит множество событий, на которые можно подписаться согласно документации 1C-Bitrix. Они несут как информативную функцию, так и редакторскую, позволяя править параметры доставки, габариты товаров, изменять алгоритм парсинга адреса доставки и многое другое. Помимо пояснений, документация также содержит и код-пример для быстрого вникания в суть дела.

Эти события возникли в модуле не просто так: в случае возникновения схожих запросов у клиентов, мы предоставляем новый функционал, при этом не перегружая модуль, чтобы он не превратился в монстра Франкенштейна.

Разумеется, обилие событий может стать причиной сбоев в модуле в случае, если их бесконтрольно использовать – но заявленный ранее функционал Отладки позволяет отследить, кто же на какое событие подписался.

Возможно, у кого-то возникнет вопрос: «А все ли события задокументированы и расписаны?» Ответ на него мы предложим найти самим самым пытливым. Думаем, докопавшиеся до истины сами поймут причину такого подхода.

Раздельное указание свойств

Напоследок – небольшая, но, как оказалось, довольно актуальная «фича», для демонстрации большой гибкости настроек модуля.

На некоторых сайтах контактное лицо покупателя задается не одним свойством заказа, а раздельными. Для модуля это не проблема: он легко переключается между разными режимами, позволяя покрыть и эти различия в сайтах.

Заключение

«Интеграция со СДЭК» - это не просто еще один модуль для службы доставки. Это проект с действительно многолетней историей, который развивается вместе с службой доставки, CMS 1C-Bitrix и нашими клиентами. Он обрастает дополнительными возможностями, преображаясь до неузнаваемости. Многие «фишки» модуля были предложены нашими клиентами, чтобы решение стало еще более удобным и универсальным.

Поэтому в конце хочется сказать спасибо тем, кто участвовал и будет участвовать в развитии и совершенствовании продукта. Модуль занимает особое место среди наших продуктов, ведь его практически десятилетняя история – это также история нашей компании.