GitHub - https://github.com/azahalski/awz.dlvronestore/
Маркетплейс 1с-Битрикс:
https://marketplace.1c-bitrix.ru/solutions/awz.dlvronestore/
Модуль реализует систему проверки наличия товаров на складах при оформлении заказа. Он интегрируется с компонентом заказа и системой доставки, обеспечивая корректное отображение доступных способов доставки в зависимости от остатков на складах.
Основные возможности
-
Проверка наличия всех товаров на одном складе: Модуль проверяет, есть ли все товары из корзины на одном из выбранных складов. Если хотя бы одного товара нет в нужном количестве на складе, способ доставки будет недоступен для заказа.
-
Интеграция с компонентом заказа: Модуль подключается к событиям
OnSaleComponentOrderJsDataиOnSaleComponentOrderDeliveriesCalculated, что позволяет динамически обновлять список доступных способов доставки и отображать предупреждения пользователю. -
Фильтрация складов: При недоступности доставки на некоторых складах модуль автоматически скрывает их из списка и показывает соответствующее сообщение пользователю.
Как это работает
- При расчете доставок модуль получает список товаров в корзине и их количество.
- Для каждого товара проверяется наличие на складах, указанных в настройках правила ограничения.
- Если все товары есть в нужном количестве на каком-либо складе из списка — доставка доступна.
- Если товары есть только на части складов — доставка доступна только для этих складов, остальные склады скрываются.
- Если товаров нет ни на одном из складов — доставка недоступна, показывается сообщение об ошибке.
Техническая реализация
Модуль использует класс AwzCheckOneStoreDeliveryRestrictions, который наследуется от Bitrix\Sale\Delivery\Restrictions\Base и реализует метод check() для проверки ограничений. Также используются обработчики событий в классе Handlers для интеграции с компонентом заказа.
Настройки и параметры конфигурации
Модуль не имеет отдельных настроек в админке. Конфигурация осуществляется через правила ограничений доставки в выбранном профиле доставки (Магазин - настройки - службы доставки) → "Ограничения" → Добавить ограничение → по наличию всех товаров на одном складе в админпанели Bitrix.
Параметры правила ограничения
-
Сообщение о недоступности доставки: Текст, который будет показан пользователю, если ни на одном складе нет всех товаров из заказа.
-
Сообщение о недоступности доставки на части складов: Текст, который будет показан, если товары есть только на части складов.
-
Склады проверки: Выберите склады, на которых будет проверяться наличие товаров. Можно выбрать несколько складов.























