Примерная наводка, сейчас негде проверить и дописать. Если справитесь, напишите готовый код (если нет, то смогу в сл выходные)
Нужен метод CCatalogProduct::GetDiscountGroupList (инфа о скидках по ID товара)
Код |
---|
$resPrice = CIBlockElement::GetList(
Array(
"CATALOG_PRICE_2" => "ASC"
),
Array(
"SECTION_ID"=>$arResult['~ID']
),
false,
false,
Array(
"ID",
"CATALOG_PRICE_2"
)
);
while($getPrices = $resPrice->Fetch()) {
// Получение скидок ID текущего товара
$discounts = CCatalogProduct::GetDiscountGroupList(
$getPrices['ID']
);
// Получение информации о каждой скидке
foreach ($discounts as $discount) {
$discountInfo = CCatalogDiscount::GetByID(
$discount['ID']
);
/*
Здесь вычитаем скидку из цены товара
*/
}
//
// Если скидка есть, загоняем вычисленное значение в $arPrices[]
// Иначе, просто $getPrices['CATALOG_PRICE_2']
}
|
На деле может оказаться много зависимостей: скидка по периоду, скидка на количество и прочие условности скидки.
Нужно на конкретном проекте адаптироваться.