Связаться
  • WordPress
  • Import/Export
  • v1.0.0

Multi Warehouse для WooCommerce — остатки по складам, распределение заказов и лист сборки

Плагин для WooCommerce, который ведёт остаток каждого товара и вариации отдельно по складам: основной склад, другой город, магазин, резерв. Заказ сам списывается со складов по приоритету, при нехватке строка делится между складами, отмена и возврат возвращают единицы туда, откуда их взяли. Лист сборки с полками, наличие на складах на странице товара. Базовая версия бесплатная; Pro — самовывоз со склада, «один склад, где есть всё» и регионы, сводный лист сборки, сканер, отгрузка частями, CSV.

Скачать Free
Pro · лицензия на год Чем больше сайтов, тем дешевле каждый
Совместимость
WordPress 6.2+ · WooCommerce 8.0+ (проверено на WordPress 7.1 и WooCommerce 11.1) · PHP 7.4+ · HPOS и классическое хранилище заказов · блочный и классический чекаут · MySQL / MariaDB
Лицензия
один сайт, годовая
Триал
7 дней, без карты, один на сайт
Обновлено
сентябрь 2026
Или все 144 Pro-модулей в All Access — 4 990 ₴ / год

Что есть во Free,
а что даёт Pro

Бесплатная версия работает без ограничения по времени. Pro добавляет остальные функции из таблицы.

Функция Free Pro
Склады без ограничения количества: код, адрес, приоритет, «Отгружает онлайн-заказы», показ на витрине ✔ ✔
Остаток и полка / ячейка по складам для простых товаров, вариаций и вариативных товаров с остатком на уровне товара ✔ ✔
Вкладка «Остатки по складам»: правка всех товаров одной таблицей, перемещение между складами, поиск и исправление расхождений ✔ ✔
Общий остаток WooCommerce = сумма складов: отчёты, фиды и другие плагины работают как раньше ✔ ✔
Автоматическое списание заказа со складов по приоритету, с делением строки между складами ✔ ✔
Возврат на тот же склад при отмене, возврате с рестоком, правке или удалении строки менеджером ✔ ✔
Защита от двойного списания одного заказа параллельными запросами ✔ ✔
Блок «Склады» в заказе: полки, нехватка, перенос строки на другой склад; колонка «Склад» в списке заказов ✔ ✔
Лист сборки заказа по складу, отсортированный по полкам ✔ ✔
Вкладка «Заказы к сборке» с фильтром по складу и статусу ✔ ✔
«Наличие на складах» на странице товара (классические и блочные темы) и шорткод ✔ ✔
HPOS и классическое хранилище, блочный и классический чекаут ✔ ✔
Самовывоз со склада на чекауте: только склады, где есть вся корзина, с адресом и графиком — ✔
Распределение «один склад, где есть всё» и по регионам (страна, область, город, индекс) — ✔
Сводный лист сборки нескольких заказов с суммой по товару — ✔
Сборка со сканером: камера телефона, USB / Bluetooth-сканер; SKU, GTIN или своё поле штрихкода — ✔
Отгрузка частями: часть склада отправлена с ТТН, заметка покупателю, «Завершён» после последней — ✔
CSV-экспорт и импорт количеств и полок по складам — ✔

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

Таблица «Остатки по складам»: количество каждого товара на каждом складе, итого и остаток WooCommerce
Вкладка «Остатки по складам»: все товары и вариации одной таблицей. Колонки «Итого» и «Остаток WooCommerce» совпадают; галочка вверху оставляет только товары с расхождением.
Блок «Склады» в заказе: склад, полка, количество, собрано, перенос строки, номер ТТН
Блок «Склады» в заказе: с какого склада и с какой полки отгружается строка, сколько осталось на складе, перенос на другой склад. Кнопки «Собирать со сканером» и «Отметить часть отправленной» с ТТН — Pro.
Страница товара: под кнопкой «В корзину» блок наличия на складах Киев, Львов, Одесса
Страница товара в теме Storefront: «Наличие на складах» — есть / осталось N / нет по каждому складу. Тестовый магазин без фото товаров и с английской витриной.

Главное о модуле

Как это выглядит для покупателя

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

Что получает админ

Всё — в разделе WooCommerce → Склады. На первой вкладке — список складов: код, адрес, приоритет (меньшее число — первым), отметка «Отгружает онлайн-заказы» (снимите её для торгового зала или резерва) и показ на витрине.

Сборка заказов

Вкладка «Заказы к сборке» показывает заказы по статусам и складу и сколько единиц по каждому уже собрано.

Триал стартует, когда вы попросите

Свежая установка — бесплатная версия, ничего не включается само. Кнопка «Попробовать Pro 7 дней» → e-mail → ключ сразу в окне и письмом.

Один ключ — один сайт

Переносите магазин — отвяжите лицензию на старом домене и активируйте на новом сами. Если наш сервер недоступен, Pro работает ещё 14 дней. Для студий — ключи на 5, 25 сайтов или без ограничений.

Технические требования

  • WordPress 6.2+ и WooCommerce 8.0+ с включённым управлением запасами. Сквозной прогон — на WordPress 7.1 и WooCommerce 11.1.
  • PHP 7.4+. Прогон — на PHP 8.3 и 7.4, без единого предупреждения от модуля.
  • База. MySQL или MariaDB (InnoDB), как у WooCommerce. Проверено на MariaDB 10.11; MySQL 8, Galera и Redis как объектный кэш отдельно не проверяли.
  • Заказы. HPOS и классическое хранилище, блочный и классический чекаут.
  • Сканер (Pro). Камера телефона работает только на сайте с HTTPS; браузер со встроенным распознаванием штрихкодов (BarcodeDetector) использует его, остальные — встроенный в модуль ZXing. На живых телефонах камеру мы не проверяли — попробуйте в триале.
  • Языки интерфейса: украинский, русский, английский.

История версий

v1.0.0 Текущая сентябрь 2026

Первый публичный релиз: склады, остатки и полки по складам, распределение заказов по приоритету с делением строки, возврат при отмене, возврате и правке, блок «Склады» в заказе, «Остатки по…

Вместе с Multi Warehouse для WooCommerce покупают

4 модуля одним заказом — на 40% дешевле, чем по отдельности

Набор «Старт магазина» Multi Warehouse Nova Poshta Premium LiqPay Telegram-уведомления и Viber/SMS покупателям Нужно больше — все 144 модулей в All Access за 4 990 ₴.
3 590 ₴ / год вместо 5 960 ₴ поштучно
Купить набор →

Полное описание модуля

Multi Warehouse для WooCommerce — плагин для магазина, у которого товар лежит в нескольких местах: основной склад, склад в другом городе, торговый зал, резерв. WooCommerce знает одну цифру на товар — сколько его всего. Модуль добавляет к ней раскладку: сколько единиц на каком складе и на какой полке, с какого склада собирать каждый заказ и что именно должен пройти комплектовщик.

Общий остаток при этом остаётся за WooCommerce: остаток товара = сумма его складов. Поэтому отчёты, фиды, витрина и другие плагины работают как раньше, а модуль лишь раскладывает эту цифру по складам и следит, чтобы сумма совпадала после каждого изменения. Продаёте одну вещь несколькими карточками (отдельно и в подарочной коробке, в двух категориях)? К нему есть парный модуль Shared Stock — они работают вместе.

Как это выглядит для покупателя

Под кнопкой «В корзину» — блок «Наличие на складах»: по каждому складу «есть», «осталось N» или «нет» (или точные количества — переключатель в настройках). У вариативного товара список переключается вместе с выбранным размером или цветом, в том числе в новом блоке «Add to Cart with Options» блочных тем. Блок можно вывести и в любом другом месте шорткодом [catcode_mwh_availability]; склад, который не нужно показывать, скрывается одной галочкой.

Чекаут для покупателя не меняется: он выбирает доставку и оплату, как обычно. С Pro появляется способ доставки «Самовывоз со склада»: предлагаются только склады, где есть вся корзина, с адресом, графиком и телефоном; выбранный склад записывается в заказ.

Что получает админ

Всё — в разделе WooCommerce → Склады. На первой вкладке — список складов: код, адрес, приоритет (меньшее число — первым), отметка «Отгружает онлайн-заказы» (снимите её для торгового зала или резерва) и показ на витрине. Основной склад уже есть после активации — на нём весь ваш текущий остаток. Удалённый склад отдаёт свой остаток основному, общие цифры товаров не меняются.

Разложить остаток можно в карточке товара — на вкладке «Запасы» под полем количества появляется таблица складов с полками, у каждой вариации своя — или для всех товаров сразу на вкладке «Остатки по складам». Изменение записывается как разница к тому, что было, когда вы открыли страницу, поэтому заказ, оформленный пока вы редактируете, сохраняет свои единицы. Перемещение между складами (−2 здесь, +2 там) общего остатка не меняет.

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

Сборка заказов

Вкладка «Заказы к сборке» показывает заказы по статусам и складу и сколько единиц по каждому уже собрано. С неё и из самого заказа печатается лист сборки: отдельно для каждого склада, строки отсортированы по полкам (A-2 раньше, чем A-10), с артикулом и GTIN — комплектовщик идёт по складу по порядку, а не ищет товар.

В Pro отмечаете несколько заказов галочками и получаете сводный лист: сумма по каждому товару для одного прохода по складу, а дальше — отдельная страница на каждый заказ для упаковки. Собирать можно со сканером: камера телефона (через HTTPS), USB или Bluetooth-сканер, поиск по SKU, GTIN / EAN / UPC или вашему полю штрихкода; после «Завершить сборку» заказ получает заметку и статус, заданный в настройках. Заказ с двух складов можно отгружать частями: каждая часть отмечается отправленной с номером ТТН, покупатель получает заметку, а после последней части заказ становится «Завершён».

Вместе с Shared Stock

Если одна физическая вещь продаётся несколькими карточками, общий остаток для них ведёт Shared Stock для WooCommerce, а Multi Warehouse раскладывает остаток каждой карточки по складам. Мы проверили их вместе: 42 проверки совместимости на каждом прогоне (HPOS включён и выключен, PHP 7.4 и 8.3) и одновременные чекауты восьми покупателей — склады, карточки и пул после каждого раунда совпадали.

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

Как это работает — шаг за шагом

  1. Вы создаёте склады и раскладываете остаток. Остаток WooCommerce каждого товара становится суммой его складов.
  2. Покупатель оформляет заказ. Когда WooCommerce списывает остаток (оплата, «Обработка», «На удержании»), модуль берёт каждую строку со складов, которые отгружают онлайн-заказы, по приоритету; не хватает на одном — строка делится.
  3. Распределение записывается в заказ: склад, полка, количество — его видно в блоке «Склады», в листе сборки и в списке заказов.
  4. Менеджер собирает заказ по листу сборки (в Pro — ещё и сканером) и при необходимости переносит строку на другой склад.
  5. Отмена, возврат с рестоком или правка строки возвращает единицы на склад, с которого их взяли.
  6. Изменения остатка извне — импорт, учётная программа, REST API, быстрое редактирование — модуль раскладывает сам: увеличение на основной склад, уменьшение с основного, пока там есть единицы, дальше со складов по приоритету.

Что проверено, а что нет

Модуль протестирован сквозным прогоном на локальном стенде: nginx + PHP-FPM, PHP 8.3 и 7.4, MariaDB 10.11, HPOS включён и выключен, блочная тема Twenty Twenty-Five и классическая Storefront — 105 проверок на каждом прогоне плюс тест одновременных заказов. Не проверяли: MySQL 8, Redis как объектный кэш, каталоги на 10 000+ товаров. Страницу сканера с камерой телефона мы в браузере не открывали — проверена серверная часть (каждый скан считается на сервере, собрать больше, чем в заказе, нельзя). Настоящий лицензионный сервер и триал в тесте не участвовали.

Что под капотом

  • Учёт. Три собственные таблицы: склады, количества по складам, распределение заказов. Каждое изменение количества — один относительный SQL-запрос, а последние единицы снимаются условно, поэтому два заказа не заберут одну и ту же единицу. В тесте 10 одновременных заказов по 2 шт. на 20 шт. в трёх складах списали склады ровно до нуля.
  • Сумма = остаток WooCommerce. В конце каждого запроса модуль сверяет сумму складов с остатком WooCommerce и раскладывает разницу, пришедшую извне.
  • Один заказ — одно списание. Колбэк оплаты и возврат покупателя на сайт могут прийти одновременно; без защиты WooCommerce 11.1 в нашем тесте списал один заказ несколько раз. Модуль пускает списание одного заказа по очереди (MySQL GET_LOCK) — ровно одно.
  • Распределение идёт по факту. Возвраты всегда считаются от количества, которое WooCommerce реально списал для строки (_reduced_stock).
  • Удаление с галочкой «Удалять данные складов вместе с плагином» убирает таблицы, настройки, метки модуля в заказах и способ доставки в зонах; остатки WooCommerce не меняются.

Как установить

  1. Скачайте бесплатную версию catcode-multi-warehouse-for-woocommerce-free-1.0.0.zip кнопкой вверху страницы (или Pro-архив из кабинета после оплаты): Плагины → Добавить новый → Загрузить плагин → Установить → Активировать.
  2. Убедитесь, что в WooCommerce → Настройки → Товары → Запасы включено управление запасами.
  3. WooCommerce → Склады: основной склад уже создан со всем вашим остатком. Добавьте другие склады, адреса и приоритеты.
  4. Разложите остаток: в карточке товара (вкладка «Запасы» и каждая вариация) или таблицей на вкладке «Остатки по складам».
  5. Для Pro: вставьте лицензионный ключ из письма после оплаты или нажмите «Попробовать Pro 7 дней» в разделе «Pro-лицензия».

Вопросы
о модуле

Не нашли ответ? Напишите в Telegram — ответим в течение рабочего дня.

@catcode_support Настройка, совместимость, активация
Что будет с моими текущими остатками?

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

С какого склада списывается заказ?

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

Остатки у меня обновляет импорт или учётная программа. Это будет работать?

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

Откуда может взяться расхождение между складами и остатком WooCommerce?

От изменений в обход WooCommerce: плагин или скрипт пишет остаток прямо в базу, или остаток изменили, пока модуль был выключен. Такую запись модуль не видит. Расхождение видно на вкладке «Остатки по складам» (фильтр «Только где сумма по складам отличается»), исправляется одной кнопкой — автоматически оно не лечится.

Самовывоз работает в блочном чекауте?

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

Склад может уйти в минус?

Да, когда вы продаёте под заказ (backorder) или в описанном выше случае с самовывозом. Нехватка видна в заказе и в таблице остатков.

Модуль куда-то отправляет данные?

Free — никуда: склады, количества и распределение лежат в трёх таблицах вашей базы. Pro раз в сутки проверяет лицензионный ключ на catcode.com.ua (отправляются ключ и адрес сайта).

Сколько стоит?

Базовая версия бесплатная. Pro — 990 грн в год, более длинный срок дешевле: 2 года — 1 880 грн, 5 лет — 3 710 грн. Автосписаний нет. Купленная лицензия оставляет Pro-функции навсегда, а срок покрывает обновления и поддержку.

Не тот вариант, что искали?

Делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.

Заказать кастомный модуль