Несколько складов интернет-магазина: как настроить склады и остатки

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

Задача бизнеса и границы решения

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

Границы решения важно зафиксировать до настройки. Сайт показывает доступность и принимает заказы, но он не заменяет систему учёта и не является первоисточником остатков. Первоисточником обычно остаётся учётная система или товароучётный сервис, а магазин получает оттуда данные и отображает их. Если эту границу не обозначить, команда начинает спорить, где «правильная» цифра, и правки вносятся то на сайте, то в учёте.

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

Физический остаток, резерв и доступность

Три величины, которые нельзя смешивать:

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

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

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

Почему нельзя показывать только физический остаток

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

Что показывать, если доступность нулевая

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

Как распределить товар между складами

Когда складов несколько, нужно правило, с какого склада отгружать заказ. Без правила менеджер каждый раз решает вручную, а покупатель видит то одну цифру, то другую.

Приоритет склада отгрузки

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

Что делать, если на одном складе не хватает

Возможны три подхода:

  • Собирать заказ целиком с одного склада, а при нехватке — переносить на другой.
  • Разрешать частичную сборку с нескольких складов, если это не удорожает доставку.
  • Запрещать смешивание и предлагать покупателю два отдельных заказа.

Выбор зависит от логистики. Если склады в разных городах, смешивание почти всегда увеличивает срок и стоимость доставки, поэтому его лучше не разрешать автоматически.

Самовывоз и адрес склада

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

Конкурирующие покупки последней единицы

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

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

Срок резерва

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

Что делать при отмене

При отмене заказа резерв должен сниматься, а товар — возвращаться в доступность. Это звучит очевидно, но на практике отмены часто обрабатывают вручную, и остатки расходятся с реальностью. Стоит заранее решить, какие статусы заказа снимают резерв, а какие нет, и проверить это на тестовых заказах.

Обмен с учётной системой: остатки на складе

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

Что важно согласовать до настройки обмена

  • Какие склады участвуют в обмене и как они называются на сайте и в учёте.
  • Как часто обновляются остатки и что происходит, если обмен не прошёл.
  • Что считается источником истины при расхождении.
  • Как передаются цены и как они связаны с остатками.

Названия складов должны совпадать или быть сопоставлены. Если в учёте склад называется «Основной», а на сайте — «Склад №1», сопоставление задаётся явно, иначе остатки попадут не туда.

Что делать с расхождениями

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

Права доступа и публичная часть складского учёта

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

Кто что должен видеть

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

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

Сценарии остатков

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

СценарийЧто видит покупательЧто происходит с резервомКто отвечаетКак проверить
Товар на одном складе, запас естьДоступное количествоРезерв ставится при оформленииМенеджер продажОформить тестовый заказ, проверить уменьшение доступности
Товар на двух складах, хватает на основномДоступное количествоРезерв на основном складеРуководитель складаПроверить, что заказ собирается с основного склада
Товар на двух складах, на основном не хватаетДоступное количествоРезерв распределяется по правилу приоритетаРуководитель складаПроверить сборку с резервного склада
Последняя единица, два одновременных заказаКоличество до оформленияРезерв за первым оформившимМенеджер продажСмоделировать два заказа подряд
Заказ отменёнКоличество возвращаетсяРезерв снимаетсяПоддержкаОтменить тестовый заказ, проверить доступность
Обмен с учётной системой не прошёлКоличество не обновилосьРезерв, созданный на сайте, сохраняетсяАдминистратор магазинаПроверить журнал обмена и последнее успешное обновление

Учебный пример: два склада и один товар

Учебный пример. Данные условные.

Входные условия. Интернет-магазин продаёт складной стол. Товар хранится на двух складах: основном в городе А и резервном в городе Б. В учётной системе на основном складе 3 единицы, на резервном — 2. Один покупатель оформил заказ на 1 единицу с основного склада, но не оплатил. Резерв установлен на срок, принятый в компании.

Что должно произойти. Доступность к продаже считается как физический остаток минус резерв. По основному складу это 3 минус 1, то есть 2 единицы. По резервному — 2 единицы без резерва. Итого покупатель должен видеть 4 единицы, а не 5.

Действия. Новый покупатель оформляет заказ на 2 единицы. Система по правилу приоритета пытается собрать заказ с основного склада: там доступно 2 единицы, значит заказ собирается целиком с основного. Резерв по основному складу становится 3 (1 изначальный + 2 новых), доступность по нему — 0. Резервный склад не задействован.

Проверка. После оформления на витрине должно остаться 2 единицы — это доступность резервного склада (3 минус 1 резерв? Нет, 2 без резерва). Если на витрине по-прежнему 4 или 5, значит резерв не вычитается из доступности. Если на витрине 0, значит система не видит второй склад. Оба отклонения — повод разбираться до запуска, а не после жалоб.

Развилка. Если бы на основном складе было 1 единица, а покупатель заказывал 2, система либо добрала бы недостающее с резервного склада, либо предложила бы разделить заказ. Какое поведение выбрать — решает бизнес, исходя из логистики между городами А и Б.

Ограничение примера. Здесь не учитываются сроки доставки, стоимость перевозки между складами и правила маркетплейсов. В реальной настройке эти факторы нужно добавить отдельно.

Как проверить результат и принять работу

Проверка должна быть воспроизводимой: один и тот же набор действий даёт один и тот же результат. Ниже — чек-лист приёмки.

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

Типичные ошибки и ограничения

Ошибки повторяются из проекта в проект, и большинство из них связано не с техникой, а с несогласованными правилами.

  • Показ физического остатка без вычета резерва. Самая частая причина двойных продаж.
  • Разные названия складов на сайте и в учёте. Остатки попадают не туда, а расхождение ищут в обмене.
  • Резерв без срока. Товар замораживается под заказы, которые уже не состоятся.
  • Ручные правки остатков на сайте. Через неделю никто не помнит, откуда взялась цифра.
  • Отсутствие ответственного. Остатки «никто не ведёт», а расхождения объясняют сбоем обмена.
  • Смешивание розничных и оптовых правил. Опт и розница по-разному относятся к резерву и объёмам.

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

Какие исходные данные подготовить для оценки

Чтобы оценить объём работ, нужен не список пожеланий, а конкретные данные. Соберите их до обсуждения.

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

Что дальше

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

Нужно ли включать складской учёт, если складов несколько, но остатки ведёт только бухгалтерия?

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

Чем резерв отличается от физического остатка?

Физический остаток — сколько единиц лежит на складе. Резерв — сколько из них уже обещано покупателям. Доступность к продаже считается как физический остаток минус резерв.

Что делать, если два покупателя одновременно оформляют последнюю единицу?

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

Как часто должны обновляться остатки из учётной системы?

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

Кто должен отвечать за остатки на сайте?

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

Можно ли показывать покупателю разбивку по складам?

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

Читайте также

разработка интернет-магазина на Битрикс под ключсроки и стоимость
обсудить проект