Веб-разработка

Как интегрировать дилерскую сеть с порталом запчастей: от телефона к API

838 
 

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

Стандартный ответ индустрии — «сделайте портал и интегрируйте дилеров через API». Но реализация этой идеи скрывает несколько нетривиальных решений, от которых зависит успех всего проекта.

В этой статье — методология интеграции разнородных дилерских систем, основанная на опыте автоматизации крупной дилерской сети производителя сельхозтехники из Ростова-на-Дону (40+ дилеров, 50,000 SKU запчастей).

Почему «просто написать API» не работает

Типичный сценарий: разработчики проектируют REST API, пишут документацию, отправляют дилерам. Через три месяца половина дилеров не подключилась, у другой половины кривые данные об остатках.

Причина почти всегда одна: технологии решают только 20% проблемы. Остальные 80% — это структура данных и организационные процессы.

Дилеры работают в разных конфигурациях 1С. У одного это 1С:Управление торговлей 11, у другого 1С:ERP 2.0, у третьего самописная конфигурация под свой бизнес. Но главная сложность не в версиях — она в том, что одна и та же запчасть везде называется по-разному. В одной базе это «Подшипник 180305», в другой «180305 подшипник конический», в третьей «Подшипник роликовый 180305». Попытка соединить эти базы напрямую приводит к дублям, ошибкам и расхождениям в остатках.

Это организационная проблема, и решается она не кодом.

Эталонный справочник как основа интеграции

Прежде чем проектировать API, нужно ответить на вопрос: как система будет понимать, что запчасть у дилера А и запчасть у дилера Б — это одно и то же?

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

Второй подход — распознавать соответствия через AI/ML. Алгоритм сопоставляет «Подшипник 180305» и «180305 подшипник конический» как одну позицию. Точность таких решений — 85-90%, что означает 10-15% ошибок в остатках и заказах. В B2B-контексте это неприемлемо.

Третий подход — эталонный справочник. На портале создаётся единая номенклатура всех запчастей с уникальными идентификаторами (в нашем случае — rsm_id). Каждый дилер один раз сопоставляет свои позиции с эталоном в своей 1С. Эта работа занимает 2-3 дня на стороне программиста дилера, но после этого все коммуникации идут через идентификатор, а не через название. Система не знает, как запчасть называется у дилера — ей важен только код.

Дополнительный эффект: любые данные без идентификатора из эталонного справочника система игнорирует. Это защита от мусора и от ошибочных выгрузок.

Архитектура: пять методов вместо пятнадцати

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

На практике для полноценной автоматизации достаточно пяти методов.

Авторизация. JWT-токены: access_token на 24 часа, refresh_token на 60 дней. Все запросы идут с токеном в заголовке Authorization.

Передача остатков. POST-запрос с массивом [{rsm_id, quantity}]. Здесь важно одно неочевидное требование: передавать нужно свободный остаток — физический минус резерв. Если дилер отправляет физический остаток, возникает двойное резервирование: клиент заказал, товар зарезервирован в 1С, но на портале остаток не изменился. Кроме того, нулевые остатки тоже нужно передавать явно — иначе на портале останется устаревшее значение.

Получение заказов. GET-запрос с параметрами фильтрации по дате, пагинацией (лимит 100 заказов за запрос). 1С дилера забирает новые заказы по расписанию, автоматически создаёт документ «Заказ покупателя» и резервирует товар.

Обновление заказов. POST-запрос меняет статусы позиций, цены, флаг оплаты. Общий статус заказа рассчитывается автоматически на основе статусов позиций.

Передача документов. Загрузка счетов и спецификаций в PDF через multipart/form-data. Клиент видит документы в личном кабинете.

Важная деталь по документам: загрузить их можно независимо от того, запросил ли клиент счёт. Но увидит клиент документы только после запроса — это управляется флагами bill_requested и specification_requested в заказе.

Документация, которая работает без техподдержки

При масштабе 40+ дилеров индивидуальное сопровождение каждой интеграции невозможно. Нужна документация, по которой программист 1С может внедрить интеграцию самостоятельно, не задавая вопросов.


Разместите
тендер бесплатно

Наша система сама подберет вам исполнителей на услуги, связанные с разработкой сайта или приложения, поисковой оптимизацией, контекстной рекламой, маркетингом, SMM и PR.

Заполнить заявку 13359 тендеров
проведено за восемь лет работы нашего сайта.


Хорошая документация для таких проектов включает несколько обязательных элементов. Во-первых, примеры реальных запросов и ответов для каждого метода — не абстрактные схемы, а конкретный JSON с реальными значениями полей. Во-вторых, описание всех кодов ошибок с объяснением причин. Например, «Too small request: min 1 record per request» или «Необходимо явно указать ID склада (store_id)» — дилер должен понимать, что пошло не так, без созвона с разработчиком. В-третьих, описание бизнес-логики, а не только технической спецификации: почему нужен свободный остаток, что происходит с заказом при каждом статусе, как рассчитывается итоговый статус.

В описываемом проекте руководство заняло 35 страниц. Программисты дилеров внедряли интеграцию за 3-5 дней без обращений в техподдержку.

Поэтапное внедрение: почему нельзя запускать всё сразу

Цифровизация дилерской сети — это изменение устоявшихся процессов. Люди сопротивляются изменениям, особенно если не понимают, зачем это нужно лично им.

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

Рабочий подход — три этапа.

Первый этап: MVP. Веб-каталог с возможностью оформления заказа, но без интеграции с 1С. Заказы приходят дилерам на email. Цель — проверить, готовы ли клиенты заказывать онлайн, и дать дилерам привыкнуть к порталу без необходимости технических изменений в их системах. Первые результаты появляются быстро, дилеры видят реальную ценность.

Второй этап: API с пилотными дилерами. Три-пять технически готовых дилеров подключаются к REST API. На этом этапе неизбежно выявляются проблемы, которые нельзя было предугадать: кодировки, неправильные остатки, отсутствие автозапуска задач в 1С. Лучше разобраться с ними на трёх дилерах, чем на сорока. Пилотные дилеры, убедившиеся в работоспособности системы, становятся внутренними амбассадорами проекта.

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

Мониторинг: то, о чём забывают после запуска

Распространённая ошибка: после успешного запуска считать, что задача выполнена. В B2B-интеграциях это не так.

Дилер настроил интеграцию в декабре. В январе программист заболел, расписание регламентного задания в 1С перестало работать. Остатки на портале не обновляются две недели, но никто этого не замечает — пока клиент не приедет за деталью, которой нет.

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

Аналогично стоит мониторить и другие события: дилеры, которые получили заказы, но долго не меняют статусы; дилеры, у которых большое количество позиций попадает в skipped (не найдены в эталонном справочнике).

Три принципа, которые определяют успех

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

Простота ускоряет внедрение. Каждый дополнительный метод API — это дополнительное время на внедрение у каждого дилера, дополнительная точка отказа, дополнительный вопрос в поддержку. Пять методов, закрывающих 95% задач, лучше пятнадцати методов «на вырост».

Контроль не заканчивается после запуска. Интеграция — это не событие, а процесс. Мониторинг активности, своевременное реагирование на проблемы, поддержка документации в актуальном состоянии — всё это часть работы, а не опциональные улучшения.

Об авторе:

Олег Линьков, CEO & Tech Lead Webformula

Мы переводим агромаркетинг с «интуиции» на рельсы Data-Driven & AI. Разрабатываем и внедряем федеративные архитектуры данных и методологию DSAC (Dynamic Seasonally-Adaptive Content).

С 2012 года работаем с крупнейшим производителем сельхозтехники в России (Ростов-на-Дону): портал запчастей, федеративная архитектура дилерских сайтов, AI-генерация сезонного контента.

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




838

Лучшие статьи

Поделиться: 0 0 0

Оцените статью
Спасибо за оценку