AWZ: Ограничение по наличию на одном складе [awz.dlvronestore] - модуль для CMS Битрикс

GitHub - https://github.com/azahalski/awz.dlvronestore/

Маркетплейс 1с-Битрикс:
https://marketplace.1c-bitrix.ru/solutions/awz.dlvronestore/

Модуль реализует систему проверки наличия товаров на складах при оформлении заказа. Он интегрируется с компонентом заказа и системой доставки, обеспечивая корректное отображение доступных способов доставки в зависимости от остатков на складах.

Основные возможности

  • Проверка наличия всех товаров на одном складе: Модуль проверяет, есть ли все товары из корзины на одном из выбранных складов. Если хотя бы одного товара нет в нужном количестве на складе, способ доставки будет недоступен для заказа.

  • Интеграция с компонентом заказа: Модуль подключается к событиям OnSaleComponentOrderJsData и OnSaleComponentOrderDeliveriesCalculated, что позволяет динамически обновлять список доступных способов доставки и отображать предупреждения пользователю.

  • Фильтрация складов: При недоступности доставки на некоторых складах модуль автоматически скрывает их из списка и показывает соответствующее сообщение пользователю.

Как это работает

  1. При расчете доставок модуль получает список товаров в корзине и их количество.
  2. Для каждого товара проверяется наличие на складах, указанных в настройках правила ограничения.
  3. Если все товары есть в нужном количестве на каком-либо складе из списка — доставка доступна.
  4. Если товары есть только на части складов — доставка доступна только для этих складов, остальные склады скрываются.
  5. Если товаров нет ни на одном из складов — доставка недоступна, показывается сообщение об ошибке.

Техническая реализация

Модуль использует класс AwzCheckOneStoreDeliveryRestrictions, который наследуется от Bitrix\Sale\Delivery\Restrictions\Base и реализует метод check() для проверки ограничений. Также используются обработчики событий в классе Handlers для интеграции с компонентом заказа.

Настройки и параметры конфигурации

Модуль не имеет отдельных настроек в админке. Конфигурация осуществляется через правила ограничений доставки в выбранном профиле доставки (Магазин - настройки - службы доставки) → "Ограничения" → Добавить ограничение → по наличию всех товаров на одном складе в админпанели Bitrix.

Параметры правила ограничения

  • Сообщение о недоступности доставки: Текст, который будет показан пользователю, если ни на одном складе нет всех товаров из заказа.

  • Сообщение о недоступности доставки на части складов: Текст, который будет показан, если товары есть только на части складов.

  • Склады проверки: Выберите склады, на которых будет проверяться наличие товаров. Можно выбрать несколько складов.

Для улучшения работы сайта используются cookie.
Подробнее об этом в Политике cookie.
Принять Настроить