Стоит задача в момент создания / редактирования / удаления скидки (события , и ) вытаскивать товары на которые распространялась эта скидка и править в них определённое свойство. Когда увидел как хранится условие CONDITION (см. ) в параметрах скидки - я пришёл в ужас )) что с ним делать не понял.
Подсказали посмотреть в ядре метод GetDiscountForProduct в файле \bitrix\modules\catalog\general\discount.php, в нём достаются скидки и проверяется поле UNPACK которое содержит выражение на php вида ($ПарметрыТовара['КатегорияТовара']==15 && $ПарметрыТовара['СвойствоПроизводитель'] == 'Найк') и т.д., т.е. условие ( как я понял ) для конкретного товара. Но чтобы им воспользоваться нужно в моей задаче мне ведь нужно вытащить все товары со всеми параметрами, потом достать UNPACK скидки и проверить каждый товар на соответствие условию, а это будет долго.
Никак нельзя выбрать только те товары которые нужны (которые удовлетворяют условиям скидки)?
Подсказали посмотреть в ядре метод GetDiscountForProduct в файле \bitrix\modules\catalog\general\discount.php, в нём достаются скидки и проверяется поле UNPACK которое содержит выражение на php вида ($ПарметрыТовара['КатегорияТовара']==15 && $ПарметрыТовара['СвойствоПроизводитель'] == 'Найк') и т.д., т.е. условие ( как я понял ) для конкретного товара. Но чтобы им воспользоваться нужно в моей задаче мне ведь нужно вытащить все товары со всеми параметрами, потом достать UNPACK скидки и проверить каждый товар на соответствие условию, а это будет долго.
Никак нельзя выбрать только те товары которые нужны (которые удовлетворяют условиям скидки)?
Всё сбудется, стоит только расхотеть...