Необходимо получить значения скидок товаров на главную страницу в слайдеры. В слайдерах карточки товаров.
В документации нашёл метод CCatalogDiscount::GetList, не могу разобраться как правильно с ним работать. Он возвращает нужные мне поля : NAME - название скидки, VALUE - величина скидки и прочие.
Есть уже готовый код, через который идёт получение товаров в слайдер по свойству :
<?
if(CModule::IncludeModule("iblock")){
$arSelect = Array(
"ID",
"IBLOCK_ID",
"DETAIL_PAGE_URL",
"NAME", "PREVIEW_PICTURE",
"PREVIEW_TEXT",
"DATE_ACTIVE_FROM",
"CATALOG_GROUP_1",
);
$arrFilterMain["PROPERTY_CATMAIN_PROD_VALUE"] = "выгодные комплекты";
$res = CIBlockElement::GetList(
Array(),
$arrFilterMain,
false,
Array("nPageSize"=>50),
$arSelect
);
while($ob = $res->GetNextElement()) {
$arFields = $ob->GetFields();
$arProps = $ob->GetProperties();
//debug($arProps);
}
}
Сюда надо как то добавить получение скидок
Сам по себе метод CCatalogDiscount::GetList не работает. На отдельной тестовой странице пытаюсь получить скидки по одному конкретному товару, ничего не возвращает.
<?
// Выберем все скидки для данного товара
$dbProductDiscounts = CCatalogDiscount::GetList(
array("SORT" => "ASC"),
array(
"+PRODUCT_ID" => 64,
"ACTIVE" => "Y",
"!>ACTIVE_FROM" => $DB->FormatDate(date("Y-m-d H:i:s"),
"YYYY-MM-DD HH:MI:SS",
CSite::GetDateFormat("FULL")),
"!<ACTIVE_TO" => $DB->FormatDate(date("Y-m-d H:i:s"),
"YYYY-MM-DD HH:MI:SS",
CSite::GetDateFormat("FULL")),
"COUPON" => ""
),
false,
false,
array(
"ID", "SITE_ID", "ACTIVE", "ACTIVE_FROM", "ACTIVE_TO",
"RENEWAL", "NAME", "SORT", "MAX_DISCOUNT", "VALUE_TYPE",
"VALUE", "CURRENCY", "PRODUCT_ID"
)
);
while ($arProductDiscounts = $dbProductDiscounts->Fetch())
{
print_r = $arProductDiscounts;
}
?>
Вместо $PRODUCT_ID подставляю id товара 64. Может что-то не правильно делаю?
Либо есть другой способ решить мою задачу
В каталоге есть массив, это из карточки товара массив:
[PRICES] => Array
(
[price_type] => Array
(
[PRICE_ID] => 1
[ID] => 13
[CAN_ACCESS] => Y
[CAN_BUY] => Y
[MIN_PRICE] => Y
[CURRENCY] => RUB
[VALUE_VAT] => 6900
[VALUE_NOVAT] => 6900
[DISCOUNT_VALUE_VAT] => 6865
[DISCOUNT_VALUE_NOVAT] => 6865
[ROUND_VALUE_VAT] => 6865
[ROUND_VALUE_NOVAT] => 6865
[VALUE] => 6900
[UNROUND_DISCOUNT_VALUE] => 6865
[DISCOUNT_VALUE] => 6865
[DISCOUNT_DIFF] => 35
[DISCOUNT_DIFF_PERCENT] => 1
[VATRATE_VALUE] => 0
[DISCOUNT_VATRATE_VALUE] => 0
[ROUND_VATRATE_VALUE] => 0
[PRINT_VALUE_NOVAT] => 6 900 руб.
[PRINT_VALUE_VAT] => 6 900 руб.
[PRINT_VATRATE_VALUE] => 0 руб.
[PRINT_DISCOUNT_VALUE_NOVAT] => 6 865 руб.
[PRINT_DISCOUNT_VALUE_VAT] => 6 865 руб.
[PRINT_DISCOUNT_VATRATE_VALUE] => 0 руб.
[PRINT_VALUE] => 6 900 руб.
[PRINT_DISCOUNT_VALUE] => 6 865 руб.
[PRINT_DISCOUNT_DIFF] => 35 руб.
)
Было бы идеально получить поля из него, но не выходит