Что умеет решение
Модуль добавляет правило ограничения для способов доставки, проверяя наличие всех товаров корзины на одном из выбранных складов. Если хотя бы один товар отсутствует в необходимом количестве на складе, способ доставки становится недоступным для заказа.
Модуль интегрируется с событиями OnSaleComponentOrderJsData и OnSaleComponentOrderDeliveriesCalculated. Это позволяет динамически обновлять список доступных способов доставки и отображать предупреждения пользователю.
При расчете доставки система анализирует состав корзины и количество каждого товара. Затем проверяется наличие позиций на складах, указанных в настройках правила. Если все товары есть в нужном объеме на каком-либо складе из списка, доставка активируется. Если товары доступны только на части складов, система оставляет доступными только эти варианты и скрывает остальные, показывая пользователю соответствующее сообщение.
Модуль проверяет наличие всех товаров заказа на одном складе. Если требуемые позиции отсутствуют на всех выбранных складах, доставка становится недоступной, и пользователю показывается сообщение об ошибке.
Техническая реализация основана на классе \Awz\Dlvronestore\AwzCheckOneStoreDeliveryRestrictions, наследующемся от Bitrix\Sale\Delivery\Restrictions\Base. Основная логика проверки реализована в методе check(). Интеграция с компонентом оформления заказа осуществляется через обработчики событий в классе Handlers.
Отдельных настроек в административной панели модуль не имеет. Конфигурация выполняется через интерфейс Bitrix: в профиле доставки переходят в раздел «Ограничения», добавляют правило «По наличию всех товаров на одном складе» и настраивают его параметры.
Параметры правила ограничения:
Сообщение о недоступности доставки: текст, отображаемый пользователю, если ни на одном складе нет всех товаров заказа.
Сообщение о недоступности доставки на части складов: текст, отображаемый, если товары есть только на части складов.
Склады проверки: список складов, где будет проверяться наличие товаров. Можно выбрать несколько складов.
General iT поможет установить модуль, настроить его и проверить работу на твоём сайте.