Цитата |
---|
Владислав Миронов пишет: Добрый день! Помогите настроить общее количество товаров у позиции в каталоге Т.е. к примеру у позиции есть торговые предложения, у каждого предложения есть по 100 едениц товара... Как вывести все это "в общее количество" в список товаров (catalog.section) В новом компоненте не работает DETAIL_SHOW_MAX_QUANTITY |
Вот писал для себя. Эта функция суммирует количество по предложениям.
Код |
---|
//Получаем количество по всем складам и торговых предложений
function GetAmount($prodID)
{
$isProductExistSKU = CCatalogSKU::IsExistOffers($prodID);
if($isProductExistSKU)
{
$arSkuElements = $arSkuInfo = array();
$intIBlockID = intval(CIBlockElement::GetIBlockByID($prodID));
if($intIBlockID > 0)
$arSkuInfo = CCatalogSKU::GetInfoByProductIBlock($intIBlockID);
if(!empty($arSkuInfo) && is_array($arSkuInfo))
{
$dbAllSkuElements = CIBlockElement::GetList(
array(),
array('IBLOCK_ID' => $arSkuInfo['IBLOCK_ID'], '=PROPERTY_'.$arSkuInfo['SKU_PROPERTY_ID'] => $prodID),
false,
false,
array('ID')
);
while($arAllSkuElements = $dbAllSkuElements->fetch())
{
$arSkuElements[] = $arAllSkuElements;
}
}
$amount= 0;
foreach($arSkuElements as $skuId)
{
if(isset($skuId["ID"]))
{
$arSkuId = $skuId["ID"];
$rsProps = CCatalogStore::GetList(array(), array('ACTIVE' => 'Y', "PRODUCT_ID" => $arSkuId, "ISSUING_CENTER" => 'Y'), false, false, array("PRODUCT_AMOUNT"));
while($arStore = $rsProps->GetNext())
{
$amount= $amount + $arStore['PRODUCT_AMOUNT'];
}
}
}
}
return $amount;
}
|
Разместить можно или в шаблоне catalog.element или в modifer_result.php и вывести новый параметр
Код |
---|
$arResult['AMOUNT']= GetAmount($arResult['ID']);
|
Ну а потом в шаблоне вывести уже.