разработка

Как мы за 24 дня сделали интеграцию сайта с нестандартной 1С, когда предыдущий подрядчик сорвал сроки

Максим Жуков
Сооснователь ecommerce-агентства KISLOROD
Максим Жуков
Сайт был готов, но без обмена с 1С он не мог полноценно работать: товары, цены, остатки и заказы не синхронизировались. Пока предыдущий подрядчик пытался решить задачу типовыми средствами, сроки запуска продолжали двигаться. Рассказываем, как мы реализовали интеграцию через REST API за 24 дня и получили от клиента новые проекты сразу после сдачи работ.

Задача

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

Решение

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

Начали со спецификации

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

Вместо типового обмена выбрали API

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

Продумали работу под реальные объемы данных

Одно дело — проверить обмен на нескольких товарах, другое — обработать каталог с десятками тысяч позиций. Для этого данные передавались пакетами. Система принимала одну часть выгрузки, завершала обработку и только после этого переходила к следующей.
Во время тестирования команда проверяла интеграцию на больших массивах данных. Для этого подготовили нагрузочные сценарии с массивами данных более чем на 200 тысяч товаров и ценовых предложений.
Результат нагрузочного тестирования API
Результат нагрузочного тестирования API
За 3,49 секунды обработано 200 000 записей без ошибок. Благодаря пакетной обработке данных система масштабируется на каталоги практически любого объема и не зависит от количества импортируемых записей. Такой результат подтвердил, что выбранная архитектура подходит для работы с большими каталогами и сохраняет высокую скорость даже при значительных объемах данных.
Результат нагрузочного тестирования API загрузки остатков
Результат нагрузочного тестирования API загрузки остатков
За 1,09 секунды обработано 30 000 записей без ошибок. Благодаря пакетной обработке система поддерживает импорт данных по большому количеству складов и масштабируется на каталоги практически любого объема.

Решили вопрос с изображениями

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

Добавили инструменты для контроля обмена

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

Усилили команду

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

Результат

Что получил клиент:
  • рабочую интеграцию сайта с доработанной 1С за 24 дня — на неделю раньше запланированного срока;
  • обмен товарами, остатками, ценами и заказами через REST API;
  • спецификацию API и документацию по обмену, которую клиент планирует использовать в других проектах компании;
  • минимальное количество корректировок после сдачи работ;
  • техническую поддержку и дальнейшее развитие проекта в рамках одной команды.
После запуска клиент передал нам дополнительные задачи и подключил техническую поддержку. Работа над проектом продолжилась уже в формате долгосрочного сотрудничества.
Получайте полезный контент от KISLOROD в любом из мессенджеров
При переходе в одну из указанных социальных сетей вы автоматически даете согласие на обработку персональных данных и согласие на получение рекламной рассылки. Подробнее об обработке данных в Политике конфиденциальности.

Рекомендованные статьи

Скачайте 17 точек роста и 100 + чекеров для роста конверсии и прибыли интернет-магазина
При переходе в одну из указанных социальных сетей вы автоматически даете согласие на обработку персональных данных и согласие на получение рекламной рассылки. Подробнее об обработке данных в Политике конфиденциальности.
Мы проанализировали ведущие интернет-магазины, результаты исследований, свой опыт и собрали важные моменты в одно руководство. Делаем e-commerce лучше, поэтому не только пользуемся сами, но и делимся с вами.
Выберите удобный мессенджер и получите чек-лист прямо сейчас: