БонусБесплатный первый месяц абонентской поддержки при заказе разработки «под ключ»

Обмен с 1С по нескольким складам в 1С-Битрикс

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

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

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

Коротко

  • Стандартный обмен CommerceML умеет выгружать остатки по складам, если включён многоскладской учёт.
  • Многоскладской остаток отвечает на вопрос «есть ли товар там, откуда отгрузят», а не «есть ли вообще».
  • Склады сопоставляют с регионами покупателей, чтобы показывать честное наличие.
  • Резервирование настраивают на конкретном складе, иначе продаётся то, чего уже нет.

Зачем магазину несколько складов

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

Если магазин показывает суммарный остаток по всем складам, он неизбежно обманывает часть покупателей: товар «есть» в сумме, но отсутствует там, откуда конкретному клиенту его отгрузят. Результат — сорванные заказы, недовольство и ручные звонки менеджеров. Многоскладской обмен решает это, передавая остатки в разрезе складов.

Как устроен многоскладской обмен

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

РежимЧто приходит в обменеЧто видит покупатель
ОдноскладскойОдин суммарный остаток на товар«Есть / нет» вообще
МногоскладскойОстаток по каждому складуНаличие по своему складу/региону

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

Обмен данными сайта с 1С Сайткаталог, заказы1Стовары, заказыОбменочередь / APIДанные идут в обе стороны по расписанию или по событию
Схема: сайт и 1С обмениваются данными в обе стороны — по расписанию или по событию. Товары и остатки приходят на сайт, заказы уходят обратно.

Что включить в 1С и на сайте

Многоскладской обмен работает только если он включён с обеих сторон. Одностороннего включения недостаточно.

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

Настройка выгрузки складов

Практическая настройка выгрузки складов идёт по понятной последовательности. Названия пунктов зависят от версии конфигурации 1С и редакции Битрикс, но логика общая.

  1. Проверьте учёт в 1С. Убедитесь, что многоскладской учёт ведётся и остатки по складам верны в самой учётной системе.
  2. Включите выгрузку складов. В настройках обмена активируйте передачу остатков по складам.
  3. Заведите склады на сайте. Создайте склады в модуле «Интернет-магазин» и сопоставьте их со складами 1С.
  4. Проведите первый обмен. Выгрузите каталог с остатками и проверьте, что по товарам пришли остатки по складам.
  5. Настройте регулярность. Задайте расписание обмена остатков через агенты или cron.

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

Получить остатки по складам — половина дела. Вторая половина — понять, какой склад показывать какому покупателю. Здесь склады связывают с регионами или локациями.

Для мультирегиональных магазинов сопоставление складов и регионов — часть общей архитектуры мультирегиональности; о чистоте номенклатуры и данных для неё заботится автоматизация на 1С. Инфраструктурную устойчивость регулярного обмена мы разбирали в статье про хостинг и инфраструктуру BitrixVM.

Отображение наличия покупателю

Как именно показывать наличие — вопрос проектирования под аудиторию. Разным покупателям нужен разный уровень детализации.

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

Резервирование по складам

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

  1. Резерв на складе отгрузки. Товар резервируется на том складе, с которого поедет клиенту, а не абстрактно.
  2. Согласование с 1С. Логика резерва одинакова на сайте и в учёте, чтобы не расходились доступные остатки.
  3. Снятие резерва. Резерв снимается при отгрузке или отмене заказа, а не «зависает» навсегда.
  4. Защита от перепродажи. Доступный к заказу остаток учитывает уже зарезервированное.

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

Частота и расписание обмена

Как часто обновлять остатки — компромисс между актуальностью и нагрузкой. Регулярный обмен в Битрикс запускают по расписанию через агенты или cron.

Скорость и нагрузка

Наличие — динамическая величина, и при большом каталоге с многими складами его нужно обрабатывать аккуратно, чтобы не замедлить витрину.

Про современные механизмы выборки данных, важные для тяжёлых каталогов с остатками, — в статье про D7 ORM в Битрикс.

Диагностика проблем

Когда остатки по складам приходят неверными, диагностику ведут по цепочке от источника к витрине, а не наугад.

  1. Учёт в 1С. Верны ли остатки по складам в самой учётной системе и включён ли многоскладской учёт.
  2. Настройки обмена. Включена ли выгрузка складов, не сворачиваются ли остатки в суммарные.
  3. Сопоставление на сайте. Совпадают ли идентификаторы складов 1С и сайта, включён ли многоскладской режим.
  4. Целостность обмена. Не обрывается ли обмен на больших объёмах, доходят ли все части выгрузки.
  5. Кэш. Сбрасывается ли кэш каталога после обновления остатков.

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

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

  1. Многоскладской учёт в 1С. Остатки по складам корректны в учётной системе.
  2. Выгрузка складов включена. Обмен передаёт остатки по складам, а не суммарно.
  3. Режим складов на сайте. Многоскладской режим включён, склады заведены и сопоставлены.
  4. Регионы сопоставлены. Каждому региону сопоставлен склад отгрузки и приоритеты.
  5. Наличие спроектировано. Уровень детализации наличия подобран под аудиторию.
  6. Резерв на складе. Резервирование привязано к складу, согласовано с 1С, снимается корректно.
  7. Расписание настроено. Частота обмена остатков соответствует обороту.
  8. Скорость проверена. Наличие вне общего кэша, композит, оптимальные выборки.

Вывод

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

Ключевые условия успеха — включённый многоскладской учёт с обеих сторон, корректное сопоставление складов, привязка к регионам и согласованное резервирование. Настройте это аккуратно, подберите частоту обмена под оборот и позаботьтесь о скорости — и наличие на сайте перестанет расходиться с реальностью склада.

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

Поддерживает ли стандартный обмен 1С-Битрикс несколько складов?

Да. Стандартный обмен по протоколу CommerceML умеет выгружать остатки в разрезе складов, если многоскладской учёт включён и на стороне 1С, и в модуле «Интернет-магазин» на сайте. В настройках обмена включается выгрузка складов, и тогда по каждому товару приходят остатки не одной цифрой, а по каждому складу отдельно. Без включённого многоскладского режима остаток приходит суммарным.

Чем многоскладской остаток лучше суммарного?

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

Как связать склад с регионом покупателя?

На стороне сайта настраивается сопоставление складов с регионами или локациями: каждому региону сопоставляется склад (или приоритет складов) отгрузки. Тогда покупатель из определённого региона видит наличие своего склада. Это часто реализуется поверх модуля локаций Битрикс и логики мультирегиональности. Само сопоставление — задача проектирования, а остатки для него приходят обменом из 1С.

Как настроить резервирование товара при многоскладском учёте?

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

Как часто нужно обновлять остатки по складам?

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

Что делать, если остатки по складам приходят неверными?

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

Влияет ли многоскладской обмен на скорость сайта?

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

Нужно ли показывать покупателю остатки всех складов?

Не обязательно и часто не нужно. Рознице обычно достаточно статуса «есть/нет» и, возможно, наличия в ближайшей точке. Опту и B2B полезно видеть остатки по нескольким складам, чтобы планировать отгрузку. Показывать точные цифры по всем складам всем подряд не стоит — это и лишняя информация, и иногда коммерческая тайна. Уровень детализации наличия проектируют под аудиторию.

Поделиться:

Остатки на сайте расходятся с реальностью склада?

Настроим многоскладской обмен с 1С, сопоставим склады с регионами и наладим резервирование — чтобы наличие было честным, а заказы не срывались.

Редакция B2Bsite

Команда B2Bsite. С 2014 года настраиваем обмен интернет-магазинов на 1С-Битрикс с 1С: многоскладской учёт, остатки по регионам, резервирование и надёжную интеграцию каталога.

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