Сейчас решил следующим образом, при этом [B]если у Вас есть иное решение - пожалуйста, предлагайте[/B]!
require($_SERVER['DOCUMENT_ROOT'].'/local/templates/main/phpscripts/myGetBasketData.php');// класс нужен для получения Id товаров с скидкой
$myGetBasketData = new myGetBasketData;
global $arrFilter;
$arrFilter = array();
$arrFilter["=ID"] = $myGetBasketData->getProductIdDiscontAr();
далее $arrFilter передаём комплексному компоненту bitrix catalog через FILTER_NAME а именно
$APPLICATION->IncludeComponent(
"bitrix:catalog",
"new_catalog",
array(
"FILTER_NAME" => "arrFilter",
...
Метод [B]getProductIdDiscontAr[/B] класса [B]myGetBasketData[/B] доступен в листинге файла класса [B]myGetBasketData.php[/B] по ссылке [URL=http://blog.ivru.net/?id=96]blog.ivru.net/?id=96[/URL]
Важно! Метод возвращает массив товаров с скидкой, только тогда, когда скидка создана непосредственно на товар, то есть так как показано на скринсшоте.
[IMG WIDTH=1564 HEIGHT=836]https://habrastorage.org/webt/5d/15/f4/5d15f4350ea9c968017210.jpeg[/IMG]
Алгоритм работы метода определения Id товаров с скидкой метода getProductIdDiscontAr() примерно следующий
1) получается список скидок через CSaleDiscount::GetList
2) далее в foreach Id скидок передаются в CSaleDiscount::GetByID
3) у возвращённых данных проверяется наличие и не пустота ключа массива ["CONDITIONS"]
4) если строка есть и не пустая парсятся данные от Equal";s:5:"value";a: до }
5) если такие данные найдены то они множественно парсятся от i: до ;
6) каждое второе значение это и есть Id товара на который действует скидка(эти Id собираются в массив $prodIdAr и возвращаются методом [B]getProductIdDiscontAr[/B])
Таким образом если у Вас скидки указаны не явно на товар а например по свойства, то метод нужно дописывать под такие скидки.
require($_SERVER['DOCUMENT_ROOT'].'/local/templates/main/phpscripts/myGetBasketData.php');// класс нужен для получения Id товаров с скидкой
$myGetBasketData = new myGetBasketData;
global $arrFilter;
$arrFilter = array();
$arrFilter["=ID"] = $myGetBasketData->getProductIdDiscontAr();
далее $arrFilter передаём комплексному компоненту bitrix catalog через FILTER_NAME а именно
$APPLICATION->IncludeComponent(
"bitrix:catalog",
"new_catalog",
array(
"FILTER_NAME" => "arrFilter",
...
Метод [B]getProductIdDiscontAr[/B] класса [B]myGetBasketData[/B] доступен в листинге файла класса [B]myGetBasketData.php[/B] по ссылке [URL=http://blog.ivru.net/?id=96]blog.ivru.net/?id=96[/URL]
Важно! Метод возвращает массив товаров с скидкой, только тогда, когда скидка создана непосредственно на товар, то есть так как показано на скринсшоте.
[IMG WIDTH=1564 HEIGHT=836]https://habrastorage.org/webt/5d/15/f4/5d15f4350ea9c968017210.jpeg[/IMG]
Алгоритм работы метода определения Id товаров с скидкой метода getProductIdDiscontAr() примерно следующий
1) получается список скидок через CSaleDiscount::GetList
2) далее в foreach Id скидок передаются в CSaleDiscount::GetByID
3) у возвращённых данных проверяется наличие и не пустота ключа массива ["CONDITIONS"]
4) если строка есть и не пустая парсятся данные от Equal";s:5:"value";a: до }
5) если такие данные найдены то они множественно парсятся от i: до ;
6) каждое второе значение это и есть Id товара на который действует скидка(эти Id собираются в массив $prodIdAr и возвращаются методом [B]getProductIdDiscontAr[/B])
Таким образом если у Вас скидки указаны не явно на товар а например по свойства, то метод нужно дописывать под такие скидки.