Отлавливаю событие с 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", а не тот что я передаю.
Подскажите что я делаю не так?