Мультисклад и правила наличия
МУЛЬТИСКЛАД И ПРАВИЛА НАЛИЧИЯ
Покажите покупателю наличие и срок готовности товара с учётом складов, резерва и выбранного региона. Решение для 1С-Битрикс: Управление сайтом читает данные «Торгового каталога» и выводит понятный ответ: «в наличии», «осталось», «под заказ» или «нет в наличии».
НАЛИЧИЕ ПО ПРАВИЛАМ МАГАЗИНА
Пороги «много» и «мало» задаются для всего каталога, раздела, бренда или товара. Точный остаток показывается по настройкам магазина, с единицей измерения товара: например, «12,5 кг». Правила с большим приоритетом применяются раньше; при равном приоритете побеждает более точное правило.
СКЛАДЫ, РЕЗЕРВ И ПОСТАВЩИКИ
Для каждого склада задаются приоритет разбора, срок и название для покупателя. Служебные склады можно исключить из расчёта, а адреса внутренних складов — скрыть. Новый склад по умолчанию не показывается покупателю. Свободный остаток считается с вычетом резерва по складам, если эта колонка поддерживается каталогом.
Остаток склада поставщика учитывается отдельно: он даёт поставку под заказ, а его адрес не попадает в разбивку для покупателя. Если складские строки товара отсутствуют, решение использует количество из каталога без адреса и разбивки.
РЕГИОНЫ И СРОКИ
Регион определяет доступные склады, их приоритет и срок доставки. Строгий режим учитывает только привязанные склады. Покупатель выбирает регион на сайте; выбор сохраняется в cookie на год, а наличие обновляется без перезагрузки страницы. Определения города по IP нет.
Дата готовности считается в часовом поясе магазина, с возможностью пропускать выходные и с пределом в один календарный год. Если своего остатка не хватает, срок берётся со склада поставщика, закрывающего потребность; далее — из правила, свойства срока поставщика и общих настроек. Пустой срок в правиле означает наследование, ноль — отсутствие обещанного срока. Если каталог разрешает покупку без остатка, показывается «под заказ» без даты.
ТОРГОВЫЕ ПРЕДЛОЖЕНИЯ
До выбора размера карточка показывает наличие по видимым предложениям. После выбора в стандартном catalog.element блок переключается на выбранное предложение. Для нестандартного шаблона предусмотрено подключение через событие onCatalogStoreProductChange.
Точное количество карточки показывается только при разрешении у всех её видимых предложений и совместимых единицах измерения. Сумма пар и килограммов не выводится. Скрытые и недоступные посетителю товары в ответ не включаются.
ОТЧЁТ О НЕХВАТКЕ ТОВАРОВ
Запросы витрины фиксируют показы «нет» и «под заказ». Отчёт отделяет нехватку в выбранном регионе от нехватки на всех учитываемых собственных складах: это помогает выбрать между перемещением и закупкой. Повторы отсекаются, частота записи ограничена. Отчёт отражает зарегистрированный спрос, а не сумму потерянной выручки.
ПОДКЛЮЧЕНИЕ И СОВМЕСТИМОСТЬ
Компонент наличия устанавливается в карточку или список товаров, компонент выбора региона — в шапку сайта. Остатки и данные каталога читаются пакетно, ответы кешируются с учётом региона и прав посетителя.
Решение рассчитывает план распределения потребности по складам через API, но не создаёт отгрузки, перемещения и резервы. Складской учёт продолжает вести «Торговый каталог».
Требуются PHP 8.2+, главный модуль 20.0.0+ и «Торговый каталог». Поддерживаются MySQL 5.7+, MariaDB 10.3+ и PostgreSQL; для PostgreSQL нужен главный модуль 23.900.900+.