
Multi Warehouse для WooCommerce — остатки по складам, распределение заказов и лист сборки
Плагин для WooCommerce, который ведёт остаток каждого товара и вариации отдельно по складам: основной склад, другой город, магазин, резерв. Заказ сам списывается со складов по приоритету, при нехватке строка делится между складами, отмена и возврат возвращают единицы туда, откуда их взяли. Лист сборки с полками, наличие на складах на странице товара. Базовая версия бесплатная; Pro — самовывоз со склада, «один склад, где есть всё» и регионы, сводный лист сборки, сканер, отгрузка частями, CSV.
- Совместимость
- WordPress 6.2+ · WooCommerce 8.0+ (проверено на WordPress 7.1 и WooCommerce 11.1) · PHP 7.4+ · HPOS и классическое хранилище заказов · блочный и классический чекаут · MySQL / MariaDB
- Лицензия
- один сайт, годовая
- Триал
- 7 дней, без карты, один на сайт
- Обновлено
- сентябрь 2026
Что есть во Free,
а что даёт Pro
Бесплатная версия работает без ограничения по времени. Pro добавляет остальные функции из таблицы.
Как это выглядит
Главное о модуле
Как это выглядит для покупателя
Под кнопкой «В корзину» — блок «Наличие на складах»: по каждому складу «есть», «осталось 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. На живых телефонах камеру мы не проверяли — попробуйте в триале.
Языки интерфейса: украинский, русский, английский.
История версий
Первый публичный релиз: склады, остатки и полки по складам, распределение заказов по приоритету с делением строки, возврат при отмене, возврате и правке, блок «Склады» в заказе, «Остатки по…
Вместе с Multi Warehouse для WooCommerce покупают
4 модуля одним заказом — на 40% дешевле, чем по отдельности


Nova Poshta Premium — модуль Новая Почта для OpenCart 2.3, 3.x и 4.x

LiqPay — оплата картой для OpenCart 2.3, 3.x и 4.x

Telegram-уведомления и Viber/SMS покупателям для OpenCart
Полное описание модуля
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 не знает, что карточки пула — одна вещь, поэтому раскладка по складам у каждой карточки своя. Раскладку по складам ведите на одной карточке пула; остальные карточки фактически держат остаток на основном складе — когда продаётся одна карточка, у других цифра снимается с основного склада, дальше со складов по приоритету, без минусов. Самовывоз для других карточек предлагает склады по их собственной раскладке.
Как это работает — шаг за шагом
- Вы создаёте склады и раскладываете остаток. Остаток WooCommerce каждого товара становится суммой его складов.
- Покупатель оформляет заказ. Когда WooCommerce списывает остаток (оплата, «Обработка», «На удержании»), модуль берёт каждую строку со складов, которые отгружают онлайн-заказы, по приоритету; не хватает на одном — строка делится.
- Распределение записывается в заказ: склад, полка, количество — его видно в блоке «Склады», в листе сборки и в списке заказов.
- Менеджер собирает заказ по листу сборки (в Pro — ещё и сканером) и при необходимости переносит строку на другой склад.
- Отмена, возврат с рестоком или правка строки возвращает единицы на склад, с которого их взяли.
- Изменения остатка извне — импорт, учётная программа, 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 не меняются.
Как установить
- Скачайте бесплатную версию
catcode-multi-warehouse-for-woocommerce-free-1.0.0.zipкнопкой вверху страницы (или Pro-архив из кабинета после оплаты): Плагины → Добавить новый → Загрузить плагин → Установить → Активировать. - Убедитесь, что в WooCommerce → Настройки → Товары → Запасы включено управление запасами.
- WooCommerce → Склады: основной склад уже создан со всем вашим остатком. Добавьте другие склады, адреса и приоритеты.
- Разложите остаток: в карточке товара (вкладка «Запасы» и каждая вариация) или таблицей на вкладке «Остатки по складам».
- Для Pro: вставьте лицензионный ключ из письма после оплаты или нажмите «Попробовать Pro 7 дней» в разделе «Pro-лицензия».
Вопросы
о модуле
Не нашли ответ? Напишите в Telegram — ответим в течение рабочего дня.
Что будет с моими текущими остатками?
В WooCommerce ничего не изменится. После активации весь остаток каждого товара лежит на основном складе, пока вы не разложите его по другим складам — в карточке товара или таблицей на вкладке «Остатки по складам».
С какого склада списывается заказ?
Со складов, отмеченных «Отгружает онлайн-заказы», сначала с меньшим числом приоритета. Если на одном складе не хватает, строка делится между складами. Любую строку можно вручную перенести на другой склад в блоке «Склады» заказа. В Pro есть ещё режим «один склад, где есть всё» и приоритет складов по региону покупателя.
Остатки у меня обновляет импорт или учётная программа. Это будет работать?
Общий остаток WooCommerce обновляется как раньше. Модуль видит изменение и раскладывает его сам: увеличение идёт на основной склад, уменьшение снимается с основного склада, пока там есть единицы, дальше со складов по приоритету. Если же ваша учётная программа ведёт остатки именно по складам, эта логика вам не подходит — раскладку по складам тогда нужно загружать CSV-импортом Pro, а не общей цифрой.
Откуда может взяться расхождение между складами и остатком WooCommerce?
От изменений в обход WooCommerce: плагин или скрипт пишет остаток прямо в базу, или остаток изменили, пока модуль был выключен. Такую запись модуль не видит. Расхождение видно на вкладке «Остатки по складам» (фильтр «Только где сумма по складам отличается»), исправляется одной кнопкой — автоматически оно не лечится.
Самовывоз работает в блочном чекауте?
Да, в блочном и классическом. Способ доставки «Самовывоз со склада» предлагает только склады, где есть вся корзина, и ещё раз проверяет склад при оформлении. В блочном чекауте он показывается как обычный вариант доставки, а не через штатный переключатель Local Pickup. Если двое покупателей в одно мгновение забирают последнюю единицу одного склада, склад уходит в минус, а заказ показывает нехватку — на другой склад самовывоз намеренно не переносится.
Склад может уйти в минус?
Да, когда вы продаёте под заказ (backorder) или в описанном выше случае с самовывозом. Нехватка видна в заказе и в таблице остатков.
Модуль куда-то отправляет данные?
Free — никуда: склады, количества и распределение лежат в трёх таблицах вашей базы. Pro раз в сутки проверяет лицензионный ключ на catcode.com.ua (отправляются ключ и адрес сайта).
Сколько стоит?
Базовая версия бесплатная. Pro — 990 грн в год, более длинный срок дешевле: 2 года — 1 880 грн, 5 лет — 3 710 грн. Автосписаний нет. Купленная лицензия оставляет Pro-функции навсегда, а срок покрывает обновления и поддержку.
Пока нет ни одного отзыва. Будьте первым.
Пока вопросов нет. Спроси — мы ответим в течение 24 часов.
Не тот вариант, что искали?
Делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.
Заказать кастомный модуль
Покупка модуля
—