Интеграция 1С-Битрикс с МойСклад (WMS) — полная синхронизация

Рассинхронизация остатков и дубли модификаций между 1С-Битрикс и МойСклад приводят к ошибкам отгрузок и потере заказов. Мы разрабатываем интеграцию, которая синхронизирует данные в реальном времени через вебхуки и API, исключая коллизии и простои. Наша команда реализует проект под ключ — от аудита до последующей поддержки, обеспечивая стабильную работу даже при высокой нагрузке.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Интеграция 1С-Битрикс с МойСклад (WMS) — полная синхронизация
Средний
~1-2 недели

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1532
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1045
  • Разработка виджета онлайн-записи на прием для медицинского центра
    Разработка виджета онлайн-записи на прием для медицинского центра
    820
  • Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    915
  • Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    853
  • Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1208

Интеграция 1С-Битрикс с МойСклад (WMS)

Сталкивались с ситуацией, когда после отгрузки в МойСклад остатки в Битрикс застыли, и клиент заказывает товар, которого уже нет? Или модификации товара дублируются при каждой синхронизации? Типичные проблемы интеграции 1С-Битрикс с МойСклад (WMS) — рассинхронизация остатков, потеря модификаций, ошибки частичных отгрузок. Наш опыт: за 6+ лет реализовали более 50 проектов, где каждый раз приходилось решать уникальные задачи маппинга и высоконагруженной синхронизации. Мы используем агенты, вебхуки и кастомные обработчики, чтобы интеграция работала стабильно даже при 1000+ заказов в день. Основной стек: PHP 8.1, Битрикс ORM, REST API МойСклад, MySQL с индексацией по MOYSKLAD_ID. Без правильной архитектуры синхронизация может упасть из-за лимитов API (45 запросов/с на бесплатном тарифе, 100 на платном), что приводит к блокировке на 5 минут. Мы предусматриваем пакетирование запросов и повтор при ошибках.

Проблемы, которые решаем

Синхронизация модификаций. В Битрикс торговые предложения живут в b_catalog_sku, в МойСклад — variant. Без таблицы маппинга каждый импорт плодит дубли. Мы храним соответствие в свойстве инфоблока MOYSKLAD_ID или отдельной custom_moysklad_mapping, что исключает коллизии.

Частичные отгрузки. При частичной отгрузке статус заказа в Битрикс должен стать «Частично отгружен», а не «Выполнен». Обрабатываем через вебхук МойСклад на событие demand: сравниваем позиции отгрузки и заказа, обновляем статус. Без этого — потеря учёта.

Лимиты API. 45 запросов/с на бесплатном тарифе, 100 на платном. При массовых обновлениях (1000+ позиций) пакетируем запросы и добавляем задержку usleep(100000). Иначе — блокировка на 5 минут.

Почему синхронизация модификаций — самая сложная часть?

В 1С-Битрикс товарные предложения (модификации) хранятся в b_catalog_sku и связаны с родительским товаром через IBLOCK_ID торговых предложений. В МойСклад это variant с ссылкой на product. Проблема возникает при первичной загрузке: нужно правильно связать variant.id с ID торгового предложения в Битрикс.

Без таблицы маппинга каждый запуск синхронизации создаёт дубли. Храним соответствие в свойстве инфоблока MOYSKLAD_ID (или отдельной таблице custom_moysklad_mapping).

При обновлении остатков модификаций: получить variant.id → найти в маппинге offer.ID → обновить b_catalog_product:

\Bitrix\Catalog\ProductTable::update($offerBitrixId, [
    'QUANTITY' => $stockData['stock'],
    'QUANTITY_RESERVED' => $stockData['reserve'],
]);
\Bitrix\Catalog\Catalog::clearProductCache($offerBitrixId);

Как правильно обрабатывать частичные отгрузки?

Новый заказ в Битрикс → customerorder в МойСклад. Минимальный набор полей:

  • organization — ссылка на организацию продавца
  • agent — покупатель (counterparty), маппится по email
  • positions — позиции с количеством и ссылками на variant/product
  • vatEnabled, vatIncluded — должны совпадать с настройками организации

Частичная отгрузка — сценарий, который ломает простые интеграции. Заказ на 5 позиций, отгрузили 3. В МойСклад создаётся demand с 3 позициями, связанный с customerorder. Статус заказа в Битрикс — «Частично отгружен», а не «Выполнен». Обрабатываем через вебхук МойСклад на событие создания demand — сравниваем demand.positions с customerorder.positions и выбираем нужный статус в Битрикс.

Какие метрики улучшает интеграция?

Интеграция с МойСклад сокращает время обработки заказов на 60%, исключает ручной ввод остатков и уменьшает количество ошибок отгрузки до 2%. Типовой проект снижает ручной труд на 70%. Вебхуки обновляют данные за 1-3 секунды, тогда как агенты — раз в 15 минут, что в 900 раз медленнее при пиковых нагрузках.

Способы синхронизации: вебхуки vs агенты

Способ Задержка Нагрузка Применимость
Вебхуки 1-3 сек Низкая Интенсивные отгрузки
Агенты 5-15 мин Средняя Большие каталоги

Вебхуки МойСклад

МойСклад поддерживает вебхуки для событий: CREATE, UPDATE, DELETE по любой сущности. Подписка:

POST /notification/webhook
{
  "entityType": "customerorder",
  "action": "UPDATE",
  "url": "https://your-bitrix-site.ru/api/moysklad/webhook/"
}

На стороне Битрикс создаём контроллер (наследник \Bitrix\Main\Engine\Controller) или простой init.php-обработчик. Важно вернуть HTTP 200 в течение 3 секунд — иначе МойСклад ретраит.

Пошаговая настройка вебхука

  1. Создать контроллер в Битрикс, обрабатывающий запросы от МойСклад.
  2. Подписаться на события через POST /notification/webhook.
  3. В обработчике проверить целостность данных и обновить сущности.
  4. Настроить логирование и уведомления об ошибках.

Что входит в работу

  • Аудит номенклатуры и схемы складов
  • Настройка таблицы маппинга
  • Разработка сценариев синхронизации (остатки, заказы, вебхуки)
  • Тестирование на тестовом и боевом контуре
  • Документация для администраторов
  • Обучение сотрудников работе с интеграцией
  • Поддержка первый месяц после запуска

Ориентиры по срокам

Сценарий Срок
Односторонняя синхронизация остатков 1–2 недели
Двусторонний обмен заказами и остатками 3–6 недель
Полная синхронизация с вебхуками и частичными отгрузками 6–10 недель

Стоимость рассчитывается индивидуально после анализа номенклатуры, схемы складов и бизнес-процессов. Получите консультацию — оценим ваш проект за 1 день. Подробнее о REST API МойСклад.