Евгений Жуков написал: Нет, нереализуемо. Вам это нужно делать не через события классов, а в шаблоне компонента корзины, блокируя запрос на добавление.
Спасибо. В шаблоне корзины, полагаю придётся смотреть где в js-е происходит событие применения купона и отталкиваться оттуда, верно?
Использую событие \Bitrix\Sale\DiscountCouponsManager::EVENT_ON_COUPON_ADD, чтобы при определённых условиях сбросить применение того или иного купона в корзине (купоны можно применять только в корзине).
Купон сбрасываю через \Bitrix\Sale\DiscountCouponsManager::clearApplyCoupon($coupon) и \Bitrix\Sale\DiscountCouponsManager::delete($coupon);
Всё работает нормально, но дополнительное мне при этом нужно рядом с полем ввода купона вывести пользователю текст с ошибкой. И здесь я застрял. Прошу помощи. Реализуемо ли это вообще или мне придётся отказаться от использования события DiscountCouponsManager::EVENT_ON_COUPON_ADD?
В профиле пользователя, есть поле "Город". Задача состоит в следующем: на странице оформления заказа (компонент sale.order.ajax), если пользователь авторизован, проверять данное поле и подставлять дефолтное местоположение в зависимости от его значения.
Не могу понять в каком месте нужно осуществить подстановку так, чтобы она сработала только один раз. Пробовал повесить на событие OnSaleComponentOrderProperties. Но оно срабатывает при каждой отправке данных аяксом. А значит у пользователя не получится выбрать другое местоположение (всегда будет подставляться одно и то же).