Имеется магазин, где подключен компонент catalog. Каждый товар имеет несколько торговых предложений с разными ценами.
Необходимо сделать сортировку товаров по минимальной цене торгового предложения.
Изрядно покурив гугл, я пришел к выводу, что так просто эта задача не решается. В итоге принял решение добавить в товары свойство MIN_PRICE и написать обработчик, который по определенным событиям будет это поле обновлять.
Вопрос к знатокам
1. Цена может обновляться при добавлении/редактировании/обновлении торговых предложений товара. Какие события за это отвечают ?
2. Судя по мануалу, минимальную цену должен считать , помещая ее в результирующий массив. Вызываю так:
В $arOffers попадает массив торговых предложений. При этом, поле MIN_PRICE отсутствует. Что я делаю не так??
Необходимо сделать сортировку товаров по минимальной цене торгового предложения.
Изрядно покурив гугл, я пришел к выводу, что так просто эта задача не решается. В итоге принял решение добавить в товары свойство MIN_PRICE и написать обработчик, который по определенным событиям будет это поле обновлять.
Вопрос к знатокам
1. Цена может обновляться при добавлении/редактировании/обновлении торговых предложений товара. Какие события за это отвечают ?
2. Судя по мануалу, минимальную цену должен считать , помещая ее в результирующий массив. Вызываю так:
| Код |
|---|
$arOffers = CIBlockPriceTools::GetOffersArray(
array("IBLOCK_ID"=>1), // id инфоблока
array($arFields["ID"]), // id элемента, предложения которого нужны
array(), // сортировка
array(), // выборка полей
array(), // выборка свойств
0, // макс количество возвращаемых записей. 0-все
CIBlockPriceTools::GetCatalogPrices(1, array("BASE")), // тип цены
"Y" // включение ндс
);
|