Отлавливаю событие с init.php.
Необходимо при определенных условиях ( цена равняется n ), при сохранении товара выбрасывать админу сообщение и прервать сохранение товара (по принципу "обязательного поля").
Раньше для этого я использовал:
Теперь переписываю на d7
Текст ошибки дефолтный "Ошибка
Ошибка обновления параметров цены с кодом 35", а не тот что я передаю.
Подскажите что я делаю не так?
Необходимо при определенных условиях ( цена равняется n ), при сохранении товара выбрасывать админу сообщение и прервать сохранение товара (по принципу "обязательного поля").
Раньше для этого я использовал:
Код |
---|
global $APPLICATION; $APPLICATION->throwException("Ошибка..."); return false; |
Код |
---|
use Bitrix\Main\Entity; $eventManager = Bitrix\Main\EventManager::getInstance(); $eventManager->addEventHandler("catalog", "Bitrix\Catalog\Model\Price::OnBeforeUpdate", ["ActionPrice", "handlerOnPriceUpdate"]); class ActionPrice { public static function handlerOnPriceUpdate(Bitrix\Catalog\Model\Event $event) { $data = $event->getParameter("fields"); $newPrice = (int)$data['PRICE']; if ($newPrice>10000) { $result = new Entity\EventResult; $result->addError(new Entity\EntityError('Невозможно обновить запись')); return $result; } } } |
Ошибка обновления параметров цены с кодом 35", а не тот что я передаю.
Подскажите что я делаю не так?