EDI (Electronic Data Interchange) — обмен структурированными сообщениями между учётными системами компаний без ручного ввода: заказ, подтверждение, уведомление об отгрузке, уведомление о приёмке. Чтобы подключить такой обмен, нужно согласовать с партнёром набор сообщений и канал, сопоставить справочники, проверить цепочку на тестовых данных, поработать параллельно со старым способом и только потом переключиться.

Основная работа сидит не в программе, а в договорённостях и справочниках. Что мы делаем на стороне вашего учёта, описано на странице «Разработка EDI-интеграций для B2B». Здесь только то, как устроен обмен и как к нему подготовиться.

Коротко. EDI передаёт коммерческие сообщения между системами, ЭДО — подписанные документы через оператора, API — те же сообщения напрямую. Подключение занимает недели не из-за кода, а из-за сопоставления артикулов и точек доставки и согласования тестов. Начинайте с одного партнёра и одного-двух сообщений.

Что такое EDI и чем он отличается от почты с таблицей

Письмо с файлом читает человек. Он видит, что в колонке «Арт.» лежит код, и сам решает, к какому товару тот относится. EDI-сообщение читает программа. У каждого поля своё место и смысл, поэтому ей не приходится догадываться. Отсюда три свойства обмена:

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

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

EDI, ЭДО, API или файлы: какой вариант выбрать

Названия путают, хотя задачи разные. EDI отвечает за коммерческие сообщения, ЭДО за подписанные документы, API за способ передачи. Часто нужны два вида сразу: заказ идёт по EDI, а счёт-фактура и УПД через оператора ЭДО. Выбор проще делать от ситуации:

СитуацияЧто подойдётПочемуНа что обратить внимание
Покупатель требует электронный заказ в своём форматеEDI через оператора или API покупателяФормат и канал задаёт он, а не выПопросите описание сообщений и тестовый контур до подписания договора
Нужны документы, имеющие юридическую силуЭДО через оператораДокумент подписывает уполномоченный человек электронной подписьюСертификаты, доверенность подписанта и обмен между операторами проверяют бухгалтерия и юрист
Партнёров немного, у них есть APIAPI напрямуюНет посредника, проще отладкаВерсии, ограничение частоты, повторная доставка, срок поддержки старых версий
Партнёров много, форматы разныеСлой приведения к единой модели плюс оператор или APIУчёт не должен знать про форматы каждого партнёраНовый формат добавляется отдельным разборщиком, а не правкой учёта
У партнёра нет подходящих системТаблица по почте или SFTP, партнёрский порталДругого способа у него нетЭто переходный вариант: разбор вложений дороже в сопровождении и чаще ошибается

Как проектировать собственный API для партнёров, разобрано в статье «Проектирование API для интеграций», а как связать подписанные документы с заказами — в статье «Автоматизация документооборота для B2B».

Из каких сообщений состоит обмен

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

СообщениеЧто значитКогда уходитЧто должно быть в учёте
ORDERSЗаказ покупателяПокупатель оформил закупкуТаблица соответствия артикулов и точек доставки
ORDRSPОтвет на заказ: принят, изменён, отклонёнСразу после разбора заказаСвободный остаток с учётом резервов и правила частичного принятия
DESADVУведомление об отгрузкеКогда отгрузка проведенаПроведённый документ отгрузки с количеством по позициям
RECADVУведомление о приёмкеПосле приёмки у покупателяМесто записи расхождений и ответственный за их разбор
INVOICСчётПосле отгрузки, по согласованному правилуСвязь счёта с заказом и отгрузкой
PRICAT, INVRPTКаталог с ценами; отчёт об остаткахПо расписанию или по изменениюЕдиный источник цен и остатков, а не копии в трёх таблицах

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

Форматы и каналы: что спросить у партнёра

Формат отвечает на вопрос «как записано», канал на вопрос «как доставлено». Формат бывает международным (EDIFACT), XML по схеме партнёра, JSON по API или таблицей. Канал бывает через оператора, по AS2 (защищённая передача с подписью и квитанцией), через SFTP или по HTTP API. Выбирает обычно более крупный партнёр, поэтому вопросы лучше задать до начала работ:

  • В каком формате и по какой схеме он ждёт сообщения, есть ли описание и примеры?
  • Через какой канал, и есть ли тестовый контур, где можно ошибаться без последствий?
  • Какие сообщения обязательны и в какие сроки нужно отвечать?
  • Чем он идентифицирует товары и точки доставки: вашими артикулами, своими кодами, штрихкодами, международными идентификаторами?
  • Что он делает с частичной отгрузкой, заменой позиции и отменой после подтверждения?
  • Кто у него отвечает за обмен и как быстро он реагирует на ошибки?

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

Как подключить первого партнёра: порядок работ

  1. Выберите партнёра и два сообщения. Лучше того, у кого много заказов и понятные справочники. Для начала хватит заказа и ответа на него.
  2. Получите описание и тестовый контур. Без примеров сообщений дальше идти нельзя: придётся угадывать.
  3. Составьте таблицу соответствия. Его артикулы и коды точек против ваших, единицы и упаковки. Неоднозначные позиции отмечайте и решайте с партнёром, а не угадывайте.
  4. Определите правила ответа. Когда принимаем целиком, когда частично, когда отклоняем, что пишем в причине.
  5. Прогоните тестовые заказы. Обычный, с частичной отгрузкой, с неизвестным артикулом, с отменой. На каждый проверьте, что получил партнёр и что осталось в учёте.
  6. Поработайте параллельно. Новый канал и старый несколько недель идут вместе, и результаты сверяются.
  7. Переключите и наблюдайте. Старый канал отключается после срока без расхождений. Первые недели журнал обмена смотрит человек.

Что должно быть готово в вашем учёте до подключения

Хорошая новость: EDI не требует заменить учётную систему. Плохая: он вскрывает всё, что в ней неряшливо. Проверьте до начала:

  • У товара один код. Если один и тот же товар заведён дважды, заказ попадёт то на одну карточку, то на другую.
  • Есть место для кодов партнёра. Таблица соответствия должна где-то храниться и кем-то поддерживаться.
  • Точки доставки отделены от юрлиц. Покупатель один, а адресов десять, и уведомление об отгрузке должно знать, на какой.
  • Единицы измерения и упаковки описаны. «Штука», «коробка» и «паллет» связаны коэффициентами.
  • Свободный остаток считается с учётом резервов. Иначе ответ «принято» будет обещанием, которого нельзя выполнить.
  • Есть владелец обмена. Один человек со стороны бизнеса, который разбирает ошибки и разговаривает с партнёром.

Если в учёте беспорядок, подключайте по частям: сначала ассортимент, где справочники в порядке, остальное по мере наведения порядка.

Что чаще всего ломается

СимптомТипичная причинаКак проверитьЧто делать
Заказ создан, но не хватает позицийНеопознанный артикул отброшен без сообщенияСравнить число позиций в сообщении и в заказеОставлять неопознанные позиции в заказе с пометкой и сообщать партнёру
Один заказ создан дваждыПовторная доставка сообщения без проверки идентификатораИскать заказы с одним номером партнёраХранить идентификатор партнёра и возвращать прежний результат при повторе
Уведомление об отгрузке не совпало с приёмкойОтгрузка шла частями, а уведомление одноСопоставить отгрузки и сообщения по заказуОтправлять уведомление на каждую проведённую отгрузку
Партнёр не получает ответыОшибка канала или истёкший сертификатСмотреть журнал отправки и срок действия сертификатовОповещение о сообщениях без подтверждения и календарь продления сертификатов
Изменение заказа применилось не тудаИзменение пришло раньше самого заказаПроверить порядок по времени и номерамДержать такие сообщения в очереди до прихода заказа

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

Сколько стоит подключение и когда EDI не нужен

Расходы делятся на три части. Первая — оператор, шлюз и сертификаты подписи, если они нужны: условия зависят от поставщика, поэтому суммы не называем. Вторая — работа на стороне вашего учёта и справочников. Третья — время партнёра на тесты, и она чаще всего определяет срок. Подключение второго и последующих партнёров обычно обходится дешевле первого, если профиль и таблица соответствия сделаны шаблоном.

EDI не нужен, когда заказов немного и партнёр спокойно работает по почте, когда все заказы идут через ваш B2B-портал или когда главная проблема не в обмене, а в самих справочниках. Тогда сначала наведите порядок в учёте и посмотрите интеграцию 1С. Если обмен с платформой и ERP шире EDI, см. страницу «Интеграция ERP с B2B-платформой».

Что делаем мы и с чего начать

Начинаем с обследования: 200 000 ₽ и 2–3 недели за один обмен, 350 000 ₽ и 3–4 недели, если партнёров и систем несколько. На выходе схема сообщений, таблица соответствия, профили партнёров и вилка бюджета. Стоимость вычитается из первого этапа, если продолжаете с нами, а документом можно пользоваться и без нас.

Дальше лёгкий пилот на одном партнёре или полная цепочка, затем вывод в эксплуатацию; остановиться можно после любой ступени. Мы строим разбор, проверки, очередь и экран разбора ошибок в вашем репозитории. Мы не оператор EDI или ЭДО, не выдаём сертификаты подписи и не заключаем договоры с партнёрами за вас. Цены и сроки — на странице «Тарифы», описание услуги — на странице «Разработка EDI-интеграций для B2B».

Частые вопросы

Что такое EDI простыми словами?

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

Чем EDI отличается от ЭДО?

EDI передаёт коммерческие сообщения о заказе и отгрузке. ЭДО передаёт подписанные документы, например счёт-фактуру и УПД, через оператора. Они дополняют друг друга, и в учёте их связывает номер заказа.

Нужно ли для EDI менять 1С или ERP?

Нет. Система остаётся, обмен строится вокруг неё: через HTTP-сервисы, OData или обмен файлами. Меняются справочники, если они в беспорядке: товары, точки доставки, единицы измерения.

Сколько времени занимает подключение первого партнёра?

Зависит от готовности справочников и скорости ответов партнёра, а не от объёма кода. Обследование занимает 2–4 недели, пилот одного партнёра 2–8 недель. Следующие партнёры подключаются быстрее по шаблону.

Нужен ли оператор для EDI?

Не всегда. Бывает обмен через оператора, напрямую по AS2, через SFTP или по HTTP API. Выбор обычно диктует партнёр. Договор с оператором и его тарифы вы согласуете сами.

Можно ли подключить партнёра, который присылает только таблицы?

Да, как переходный вариант: автоматический разбор вложений с проверкой и ручной отметкой для того, что не разобралось. Он дороже в сопровождении, и лучше постепенно переводить такого партнёра на API.

Что делать, если в учёте один товар заведён дважды?

Сначала привести справочник в порядок или выбрать основную карточку и записать правило. Иначе таблица соответствия закрепит путаницу. Это часто самая длинная часть подключения.

Как устроено сопровождение обмена?

Ежемесячно: 20 000, 60 000 или 120 000 ₽ в месяц, до 4, 12 или 25 часов. Часы идут на мониторинг очередей, разбор отказов и подключение новых партнёров по этапам. Сверх пакета — 5 000 ₽ в час.