Интеграции сайта: как согласовать обмен данными

Интеграции сайта: как согласовать обмен данными

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

Поэтому обмен данными удобно рассматривать как договор. В нём есть стороны, предмет, формат, сроки и ответственность. Если хотя бы один пункт не согласован, интеграция работает «как-нибудь», а не как задумано. Разберём эти пункты по порядку.

Пункт 1. Стороны: кто с кем договаривается

Первое, что стоит зафиксировать, — участники обмена. Не «сайт и 1С», а конкретно: какая система, в какой версии, через что общается. Сайт на WordPress с WooCommerce, CRM в облаке, 1С на локальном сервере — у каждого участника свои ограничения.

Иногда в цепочке есть посредник: плагин, сервис-интегратор, промежуточная база. Его тоже нужно назвать стороной, иначе при сбое непонятно, к кому идти. И сразу определите, кто отвечает за каждую сторону: разработчик сайта, администратор 1С, подрядчик по CRM.

Пункт 2. Предмет: что именно передаётся

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

Например, не «передаём заказы», а «передаём номер заказа, состав, сумму, контакт, адрес доставки, способ оплаты и комментарий». Чем подробнее список, тем меньше сюрпризов. И для каждого поля укажите, в какую сторону оно идёт: цена — только из 1С на сайт, комментарий клиента — только с сайта в 1С.

Пункт 3. Формат: на каком языке говорить

Одни и те же данные в разных системах выглядят по-разному. Телефон может быть строкой или числом, дата — в одном формате или в другом, а имя — с отчеством или без. Если формат не согласован, данные доходят, но в неудобном виде.

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

Пункт 4. Кто главный: источник истины

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

Обычно источник истины очевиден: остатки и цены — в системе учёта, заказы — на сайте, статусы — там, где с ними работает менеджер. Но это нужно проговорить и зафиксировать, а не оставлять на догадки. Иначе через месяц появится вопрос «а почему у нас две разные цены на один товар».

Пункт 5. Сроки: когда происходит обмен

Ещё один пункт, который редко обсуждают заранее. Обмен может идти по расписанию, по событию или вручную. Цены и остатки обычно обновляются по расписанию — раз в час или чаще. Заказы — сразу, по событию. Справочники — раз в сутки.

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

Пункт 6. Что делать, если что-то пошло не так

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

Хороший договор предусматривает поведение при ошибке. Данные должны сохраниться и уйти повторно, а не исчезнуть. Должен быть виден список неудачных обменов. И должно быть понятно, кто и как часто смотрит на этот список. Если этого нет, ошибки копятся молча, пока кто-нибудь не пожалуется.

Пункт 7. Как проверить, что договор работает

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

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

Красные флаги

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

Что в итоге

Согласовать обмен данными — это не написать код, а договориться о семи вещах: стороны, предмет, формат, источник истины, сроки, поведение при ошибке и способ проверки. Если всё это проговорено, интеграция живёт годами. Если нет — её приходится чинить после каждой жалобы клиента.

Мы обычно начинаем интеграцию именно с такого «договора»: собираем стороны и поля, договариваемся о формате и главном источнике данных, а потом уже настраиваем обмен и проверяем его на реальных сценариях. Иногда на этом этапе выясняется, что часть данных вообще не нужно передавать. Напишите или оставьте заявку — разберём вашу цепочку и скажем, что стоит согласовать в первую очередь, чтобы данные не терялись между системами.

 
Менджер ZM

Чем могу помочь?

Этот сайт собирает техническую информацию (куки), которая используется для обеспечения функционирования сайта, например, сохранение настроек пользователя, поддержка аутентификации, обеспечение безопасности и конфиденциальности данных. Данный тип файлов является обязательным и не подлежит отключению. Сайт запоминает выбор настроек куки на 1 год. По окончании этого периода Сайт повторно запросит Ваше согласие.
Узнать