БесплатноБесплатный аудит сайта и кода на 1С-Битрикс при заказе доработки или поддержки

Обмен заказами и статусами: МойСклад и сайт на Битрикс

Обмен заказами и статусами между МойСклад и сайтом на 1С-Битрикс: заказ с витрины, отгрузка, возврат статуса

Покупатель оформил заказ на сайте, менеджер увидел его в почте, вручную завёл в МойСклад, зарезервировал товар, собрал отгрузку — а через час на витрине всё ещё висит статус «Принят», хотя посылка уже в пути. Пока заказов десяток в день, это терпимо. Когда их сотни, ручной перенос между витриной и складом превращается в источник ошибок: задвоенные позиции, проданный «в минус» товар, недовольные звонки «где мой заказ». Связка МойСклад ↔ сайт на 1С-Битрикс убирает этот ручной мостик: заказ уезжает в учёт автоматически, а статусы возвращаются обратно на витрину.

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

Коротко

  • Заказ с витрины передаётся в МойСклад как документ «Заказ покупателя»; передачу выносите в очередь, а не делайте синхронно при оформлении.
  • Источник истины по остаткам и резервам — МойСклад; сайт показывает то, что отдал склад.
  • Обратный поток статусов работает по заранее составленной карте соответствия «этап в МойСклад → статус заказа в Битрикс».
  • Надёжность держится на идемпотентности: у каждого заказа внешний ключ, повторная отправка не создаёт дубль.
  • Товары и клиенты сопоставляются по стабильным ключам (артикул, внешний код), а не по названию.

Зачем связывать МойСклад и сайт на Битрикс

МойСклад — это учётная система: в ней ведут номенклатуру, остатки по складам, приёмки, отгрузки, резервы, взаиморасчёты с покупателями. 1С-Битрикс — это витрина: каталог, корзина, оформление заказа, личный кабинет. Пока эти две системы не разговаривают друг с другом, между ними стоит человек, который переносит данные руками. Интеграция убирает этого человека из рутины и оставляет ему только то, что действительно требует решения.

Что даёт двусторонний обмен на практике:

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

Важно: прежде чем настраивать обмен, договоритесь, какая система за что отвечает. Классическое разделение: МойСклад — источник истины по товарам, остаткам, резервам и статусам отгрузки; сайт — источник истины по факту оформления заказа и данным покупателя. Смешение ответственности — главная причина расхождений.

Архитектура обмена: кто источник истины

Любая интеграция двух систем начинается с одного вопроса: кто из них «главный» по каждому виду данных. Ответ на него определяет направление потоков и разрешает будущие конфликты ещё до того, как они возникнут. В связке МойСклад и Битрикс потоки данных распадаются на несколько независимых направлений, и путать их нельзя.

Когда потоки разведены, конфликты решаются автоматически. Остаток товара всегда «прав» со стороны МойСклад — сайт его не переопределяет. Статус заказа всегда «прав» со стороны той системы, которая по нему является источником: пока заказ обрабатывается на складе, ведущая система — МойСклад. Такое чёткое разделение снимает 90% споров «а почему на сайте одно, а в учёте другое»: у каждого поля есть ровно один хозяин.

Сайт 1С-Битрикс: витрина МойСклад учёт и склад каталог · остатки заказы покупателей статусы · резервы Источник истины по остаткам — МойСклад, по факту заказа — сайт
Схема: три независимых потока данных — каталог и остатки идут на сайт, заказы уходят в МойСклад, статусы и резервы возвращаются на витрину.

Жизненный цикл заказа: от витрины до отгрузки

Чтобы обмен был предсказуемым, заказ нужно рассматривать не как разовое событие, а как объект с жизненным циклом. У него есть последовательность состояний, и на каждом переходе может срабатывать обмен. Типовой путь заказа в связке сайта и МойСклад выглядит так:

  1. Оформлен на сайте. Покупатель прошёл корзину и оформление, заказ сохранён в 1С-Битрикс со всеми позициями, суммой и контактами.
  2. Передан в МойСклад. Обмен создаёт в учётной системе документ «Заказ покупателя», привязывает контрагента и позиции по артикулам.
  3. Зарезервирован. МойСклад ставит резерв под позиции заказа, доступный остаток уменьшается, и это возвращается на витрину.
  4. Собран. Склад скомплектовал заказ; статус меняется в МойСклад и уезжает обратно на сайт.
  5. Отгружен. Создаётся документ отгрузки, резерв списывается в фактическое движение товара, статус на сайте обновляется на «Отгружен».
  6. Доставлен / выдан. Финальный статус закрывает заказ; при необходимости фиксируется оплата.

Ключевая мысль: не каждый переход обязан быть двусторонним. Оформление и передача — это поток «сайт → МойСклад». Резерв, сборка, отгрузка, доставка — это поток «МойСклад → сайт». Если попытаться сделать каждый статус редактируемым с обеих сторон, вы получите гонку состояний, когда две системы одновременно «правят» один заказ и перезаписывают друг друга. Поэтому для каждого этапа заранее фиксируется, какая система им управляет, а какая только отображает.

Совет: нарисуйте жизненный цикл заказа на бумаге до настройки обмена. Для каждого состояния подпишите, кто его владелец (сайт или МойСклад) и по какому событию оно меняется. Эта схема потом ложится в основу карты соответствия статусов и экономит недели отладки.

Как заказ попадает в МойСклад

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

Когда покупатель завершает оформление, в 1С-Битрикс срабатывает событие сохранения заказа. На этом моменте у нас есть выбор архитектуры: передать заказ в МойСклад прямо сейчас (синхронно) или поставить в очередь на передачу (асинхронно). Правильный ответ почти всегда — асинхронно.

Почему не синхронно. Если дёргать API МойСклад прямо в момент оформления, то любая заминка внешней системы — таймаут, техобслуживание, лимит запросов — превращается в ошибку у покупателя на последнем шаге корзины. Человек, готовый заплатить, видит «что-то пошло не так» и уходит. Заказ, ради которого всё затевалось, теряется из-за того, что сторонний сервис на секунду задумался.

Как правильно. Заказ сохраняется на сайте всегда и безусловно. Факт «этот заказ надо передать в МойСклад» кладётся в очередь. Отдельный процесс — агент по расписанию или обработчик очереди — забирает заказы из очереди и отправляет их в МойСклад, а при неудаче повторяет попытку позже. Так витрина не зависит от доступности учётной системы, а обмен становится устойчивым к временным сбоям.

При передаче обмен собирает из заказа Битрикса документ МойСклад:

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

Передача заказа: витрина не ждёт МойСклад Заказ оформлен Сохранён на сайте В очередь на передачу Агент → МойСклад по расписанию Ошибка? Заказ остаётся в очереди — повтор позже, без потери
Схема: заказ сохраняется на сайте сразу, а передача в МойСклад идёт через очередь и агент — сбой внешней системы не теряет заказ.

Сопоставление статусов: карта соответствий

Обратный поток — возврат статусов на витрину — целиком держится на одном документе: карте соответствия статусов. Проблема в том, что понятия статуса в МойСклад и в 1С-Битрикс не совпадают. В МойСклад у заказа покупателя свои этапы, у отгрузки — свои. В Битриксе — свой список статусов заказа, который вы задаёте под бизнес-процесс магазина. Задача обмена — однозначно перевести одно в другое.

Составляется таблица: слева состояние в МойСклад (статус заказа или наличие документа отгрузки), справа — статус заказа в Битриксе, который увидит покупатель. Пример типовой карты:

Состояние в МойСкладСтатус в 1С-БитриксЧто видит покупатель
Заказ создан, без резерваПринят (N)«Заказ принят, обрабатывается»
Резерв поставленПодтверждён (P)«Товар зарезервирован»
Заказ собранСобран (C)«Заказ собран, готовится к отгрузке»
Есть документ отгрузкиОтгружен (S)«Отправлен, в пути»
Отгрузка + оплатаВыполнен (F)«Доставлен / выдан»
Заказ отменёнОтменён (D)«Заказ отменён»

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

Несколько правил, которые делают карту статусов рабочей:

Возврат статусов на витрину

Разобравшись с картой соответствия, посмотрим на механику: как именно сайт узнаёт, что статус в МойСклад изменился. Есть два подхода, и они не взаимоисключающие.

Опрос по расписанию (поллинг). Агент 1С-Битрикс с заданной периодичностью (например, раз в 5–15 минут) запрашивает у API МойСклад заказы, изменившиеся с момента прошлой синхронизации, и обновляет их статусы на сайте. Плюс — простота и предсказуемость: не нужен внешне доступный обработчик, всё инициирует сайт. Минус — задержка: статус на витрине обновляется не мгновенно, а в пределах интервала опроса.

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

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

После обновления статуса на сайте часто нужно и уведомить покупателя: письмом или сообщением «ваш заказ отгружён, трек-номер такой-то». Это уже логика 1С-Битрикс — почтовые события и статусы заказа. Важно только, чтобы уведомление триггерилось по факту реальной смены статуса, а не на каждый цикл синхронизации, иначе покупатель получит десяток одинаковых писем.

Важно: при поллинге запрашивайте у МойСклад не все заказы подряд, а только изменённые с момента последней успешной синхронизации (по метке времени изменения). Иначе с ростом числа заказов синхронизация будет перебирать всю историю и упрётся в лимиты API.

Отгрузки, резервы и остатки

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

Резерв. Когда заказ передан в МойСклад и подтверждён, под его позиции ставится резерв. Резерв не уменьшает физический остаток на складе, но уменьшает доступный остаток — тот, что можно продать. Именно доступный остаток и должен выгружаться на витрину, иначе сайт покажет «5 шт в наличии», хотя 4 из них уже зарезервированы под другие заказы.

Отгрузка. Документ отгрузки в МойСклад фиксирует фактическое движение товара со склада покупателю. В этот момент резерв «превращается» в реальное списание, физический остаток уменьшается. Для обмена появление отгрузки — сигнал сменить статус заказа на «Отгружен» и передать этот статус на сайт.

Остаток на витрине. Сайт получает остатки из МойСклад по расписанию. Ключевой вопрос — какой именно остаток выгружать: физический или доступный (за вычетом резервов). Для интернет-магазина почти всегда нужен доступный, чтобы не продать уже обещанный товар.

ПонятиеЧто означаетКуда идёт на витрину
Физический остатокСколько товара реально лежит на складеОбычно не показывается напрямую
РезервСколько «забронировано» под заказыВычитается из доступного
Доступный остатокФизический минус резервПоказывается в каталоге как «в наличии»
Ожидаемое поступлениеЧто едет от поставщикаОпционально — «скоро в наличии»

Если у бизнеса несколько складов (розничная точка, основной склад, склад под самовывоз), логика усложняется: нужно решить, остатки какого склада или их сумму показывать на сайте, и с какого склада резервировать под онлайн-заказ. Эти правила задаются в настройках обмена и должны быть согласованы с реальной логистикой, иначе резерв встанет не на тот склад.

Остаток: физический, резерв, доступный 10 шт Физический 3 шт резерв Забронировано 7 шт Доступно на сайте
Схема: на витрину идёт доступный остаток (физический минус резерв), поэтому уже обещанный товар не продаётся повторно.

Сопоставление товаров и клиентов

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

Товары. Позиция заказа на сайте должна однозначно указывать на товар в МойСклад. Связывать по названию — ошибка: названия правят, они не уникальны, в них опечатки. Правильный ключ — артикул (Article) или внешний код (externalCode). Артикул задаётся в номенклатуре МойСклад и в карточке товара Битрикса; обмен ищет соответствие именно по нему. Если каталог изначально выгружается из МойСклад, соответствие устанавливается автоматически при выгрузке и хранится в свойстве товара.

Клиенты. Покупатель на сайте должен связываться с контрагентом в МойСклад так, чтобы повторные заказы одного человека не плодили карточки. Обычный ключ — телефон или email. Логика такая: при передаче заказа обмен ищет контрагента по телефону; нашёл — привязывает заказ к нему, не нашёл — создаёт нового. Для B2B-магазинов сопоставление идёт по ИНН компании. Тему единой клиентской базы мы подробно разобрали в статье о синхронизации клиентской базы на Битрикс — те же принципы дедупликации применимы и здесь.

Отдельно стоит сказать про торговые предложения (SKU). Если у товара есть вариации — размеры, цвета, — то в заказе фигурирует конкретное торговое предложение, и связывать с МойСклад нужно именно его, по артикулу варианта, а не родительского товара. Иначе резерв встанет «на модель вообще», а не на конкретный размер, и склад соберёт не то.

Правило сопоставления: связывайте товары по артикулу или внешнему коду, клиентов — по телефону/email/ИНН, а не по названию или ФИО. Стабильный ключ — единственная защита от задвоения справочников при обмене.

Оплата и доставка в обмене

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

Оплата. Факт оплаты может рождаться на сайте (онлайн-касса, эквайринг) или в МойСклад (оплата при получении, счёт для юрлица). Если оплата прошла на сайте, обмен передаёт в МойСклад информацию о платеже, чтобы взаиморасчёты сходились. Если оплата фиксируется на складе при выдаче — она приходит обратным потоком и меняет статус заказа на витрине на «Оплачен».

Доставка. Способ доставки и адрес вводит покупатель на сайте, и они переезжают в заказ МойСклад — как комментарий, отдельные поля или через привязку к службе доставки. Стоимость доставки должна попадать в сумму документа отдельной позицией или полем, чтобы итог совпадал с тем, что заплатил покупатель.

Важно заранее сопоставить справочники: способы оплаты и доставки в 1С-Битрикс и соответствующие им сущности в МойСклад. Как и со статусами, здесь нужна карта соответствия — «наложенный платёж на сайте → тип оплаты X в МойСклад». Без неё каждый нестандартный способ будет ломать передачу заказа.

Очередь, идемпотентность и надёжность

Всё, что описано выше, работает в идеальных условиях. В реальности API временами недоступно, ответы приходят с задержкой, события дублируются, сеть рвётся. Надёжный обмен отличается от хрупкого тем, что он спроектирован под сбои, а не только под «счастливый путь».

Три опоры надёжного обмена:

Идемпотентность на практике реализуется через внешний идентификатор. У заказа Битрикса есть ID; при передаче он проставляется документу МойСклад как externalCode. Перед созданием документа обмен спрашивает: «есть ли уже заказ с таким externalCode?». Есть — обновляем существующий, нет — создаём новый. Тот же принцип для статусов: обновление до состояния, в котором заказ уже находится, ничего не ломает.

Ещё один важный аспект — лимиты API МойСклад. У облачного API есть ограничения на частоту запросов. Обмен должен уважать эти лимиты: не долбить API в лоб, а выдерживать паузы, группировать запросы (batch), кэшировать справочники. При всплеске заказов (распродажа) очередь сглаживает нагрузку, растягивая отправку во времени, вместо того чтобы упереться в лимит и начать терять данные.

Три слоя надёжного обмена 1. Очередь с повторами Сбой API → задача остаётся и повторяется с нарастающей паузой 2. Идемпотентность по внешнему ключу Повторная отправка не создаёт дубль — externalCode один на заказ 3. Журнал и алерты Не прошло после N попыток → мёртвая очередь + уведомление ответственному
Схема: очередь удерживает заказ при сбое, внешний ключ защищает от дублей, а журнал и алерты не дают проблеме остаться незамеченной.

Реализация в 1С-Битрикс

Перейдём от принципов к тому, где именно всё это живёт в 1С-Битрикс. Технически у обмена есть несколько точек опоры в платформе.

Есть два принципиальных пути реализации, и выбор между ними определяет объём работ.

Готовый модуль из Маркетплейса. Существуют коробочные решения обмена «1С-Битрикс ↔ МойСклад», которые ставятся как модуль и настраиваются через админку: указываете токен, сопоставляете статусы, выбираете склад — и обмен работает. Это быстро и дёшево для типовых магазинов. Ограничение — гибкость: нестандартная логика статусов, несколько складов с хитрыми правилами резерва, специфические скидки часто выходят за рамки коробочных настроек.

Базовые принципы интеграции с МойСклад, общие для любого сценария, мы разбирали в обзорной статье об интеграции сайта на Битрикс с МойСклад — там про выбор способа обмена и подготовку номенклатуры.

Собственная интеграция через API. Своё решение поверх JSON API МойСклад даёт полный контроль: любое сопоставление полей, произвольная карта статусов, тонкая работа с резервами и складами, встраивание в существующие бизнес-процессы. Цена — разработка и последующее сопровождение. Этот путь оправдан, когда процессы магазина заметно отличаются от типовых или когда обмен — часть более крупной интеграции (например, ещё и с 1С или CRM).

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

Как это выглядит в админке

Чтобы было предметнее, покажем схематично, как выглядит экран настройки соответствия статусов — центральный элемент обмена. Реальные подписи зависят от конкретного модуля обмена и версии платформы, но логика везде одна.

Обмен с МойСклад · Соответствие статусов Статус в МойСклад Статус заказа в 1С-Битрикс Заказ создан Принят (N) Резерв поставлен Подтверждён (P) Отгружен Отгружен (S) Отменён Отменён (D) Последняя синхронизация: 5 минут назад · без ошибок Синхронизировать
Схема: экран сопоставления статусов — слева состояния МойСклад, справа статусы заказа Битрикс с символьными кодами. Реальный вид зависит от модуля обмена и версии платформы.

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

Модуль или своя интеграция — сравнение

Чтобы выбор способа реализации был осознанным, сведём отличия готового модуля и собственной интеграции в таблицу.

КритерийГотовый модульСвоя интеграция через API
Скорость внедренияБыстро — часы/дниДольше — дни/недели
Стоимость стартаНижеВыше
Гибкость логики статусовВ рамках настроекЛюбая
Несколько складов, сложный резервОграниченноПолностью под задачу
Нестандартные скидки и оплатыЧасто не покрываетРеализуется
Зависимость от вендора модуляЕстьНет
СопровождениеОбновления модуляСвоя команда/подрядчик

Практический ориентир: если у вас типовой магазин с одним складом и стандартными статусами — начинайте с готового модуля, он закроет задачу быстро и дёшево. Если процессы нестандартные, складов несколько, а обмен с МойСклад — лишь часть большей интеграции (с 1С, CRM, службами доставки) — закладывайте собственное решение, оно окупится управляемостью. Нередко разумен гибрид: коробочный модуль для базового потока плюс небольшие доработки под специфику.

Мониторинг и разбор расхождений

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

Когда расхождение всё-таки случилось, разбор идёт от журнала обмена. По внешнему ключу заказа находится история его передачи: когда ушёл, какой ответ вернул МойСклад, менялся ли статус. В 90% случаев причина видна сразу: заказ не прошёл из-за отсутствующего в МойСклад товара, статус не сопоставлен, токен просрочен. Хороший обмен делает такой разбор минутным делом, плохой — превращает в раскопки по всей системе.

Частые ошибки

Мини-FAQ. Нужно ли выгружать заказ в МойСклад мгновенно? Нет — задержка в минуты некритична, а синхронная передача опасна. Заказ должен сохраниться на сайте сразу, а уйти в МойСклад через очередь, пусть и с небольшим лагом.

Чек-лист внедрения

Сведём всё в практический список, по которому удобно принимать готовность обмена перед запуском:

  1. Разграничена ответственность. Зафиксировано, какая система источник истины по каждому виду данных: остатки — МойСклад, факт заказа — сайт.
  2. Товары сопоставлены. У всех товаров есть стабильный ключ связи (артикул/внешний код) с номенклатурой МойСклад; SKU связаны по вариантам.
  3. Клиенты дедуплицируются. Настроен поиск контрагента по телефону/email/ИНН, повторные заказы не плодят карточки.
  4. Передача через очередь. Заказ сохраняется на сайте всегда, а в МойСклад уходит асинхронно с повторами при сбое.
  5. Идемпотентность есть. У заказа внешний ключ, повторная отправка не создаёт дубль документа.
  6. Карта статусов составлена. Каждому состоянию МойСклад сопоставлен статус заказа Битрикс по символьному коду; отмена прописана отдельно.
  7. Остатки — доступные. На витрину выгружается доступный остаток за вычетом резервов, склад(ы) выбраны осознанно.
  8. Оплата и доставка согласованы. Способы оплаты и доставки сопоставлены между системами, суммы совпадают до копейки.
  9. Агенты на cron. Опрос статусов, обработка очереди и выгрузка остатков запускаются по реальному расписанию сервера.
  10. Мониторинг настроен. Отслеживаются глубина очереди, возраст синхронизации и доля ошибок; есть журнал и алерты.

Вывод

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

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

Как заказ с сайта на 1С-Битрикс попадает в МойСклад?

После оформления заказа сайт формирует запись о заказе и передаёт её в МойСклад — либо через штатный модуль обмена, либо через собственный обработчик, обращающийся к JSON API МойСклад. В МойСкладе создаётся документ «Заказ покупателя» с позициями, контрагентом и суммой. Передачу лучше делать не синхронно в момент оформления, а через очередь, чтобы недоступность МойСклад не мешала покупателю завершить оформление.

Как статусы из МойСклад возвращаются на витрину?

Обратный поток работает по сопоставлению статусов: каждому этапу заказа в МойСклад (собран, отгружен, доставлен) соответствует статус заказа в 1С-Битрикс. Изменение статуса в МойСклад ловится по расписанию (опрос API) или через вебхук, после чего сайт обновляет статус заказа и, при необходимости, уведомляет покупателя. Ключ к корректной работе — заранее составленная таблица соответствия статусов.

Что делать, если МойСклад недоступен в момент оформления заказа?

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

Кто является источником истины по остаткам — сайт или МойСклад?

В связке «витрина + учётная система» источником истины по остаткам и резервам почти всегда выступает МойСклад: там ведётся складской учёт, приёмки, отгрузки и списания. Сайт получает остатки из МойСклад и показывает их в каталоге. Заказ уменьшает доступный остаток через резерв в МойСклад, а не напрямую редактированием остатка на сайте, иначе две системы быстро разойдутся.

Нужен ли отдельный модуль или можно обойтись API?

Оба пути рабочие. Готовый модуль обмена из Маркетплейса быстрее внедряется и покрывает типовые сценарии, но хуже гибок под нестандартную логику статусов, скидок и нескольких складов. Собственная интеграция через JSON API МойСклад даёт полный контроль над сопоставлением полей и статусов, но требует разработки и сопровождения. Выбор зависит от того, насколько ваши процессы отличаются от типовых.

Как избежать задвоения заказов и товаров при обмене?

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

Поделиться:

Нужен обмен с МойСклад, который не теряет заказы?

Настроим двусторонний обмен: заказы уходят в МойСклад, отгрузки и статусы возвращаются на витрину, остатки учитывают резервы. С очередью, идемпотентностью и мониторингом. Рассчитаем стоимость под ваши процессы.

Редакция B2Bsite

Редакция студии B2Bsite. С 2014 года команда разрабатывает и поддерживает интернет-магазины и корпоративные сайты на 1С-Битрикс, настраивает обмен заказами и остатками с МойСклад и 1С, выстраивает надёжные интеграции для среднего и крупного бизнеса.

← Все статьи блога