Всем привет!
Сделал скидку своб в корзине на товары, все отлично, но когда заходим на странице, то показывает верную сумму:
А когда прибавляем количество к примеру на скрине второго товара, то сумма становится одного товара:
Понять не могу в чем проблема, где то js еще редактировать надо, может кто то делал что то подобное, подскажите, пожалуйста.
В коде если в массиве убрать:
$result['allSum'] += $row['SUM_VALUE'];
То финальная сумма считается норм, но без нужных скидок товара.
В файле mutator.php верху внес изменения по скидкам:
в foreach
$go3sale = "";
$intElementID = 100; // ID предложения
$mxResult = CCatalogSku::GetProductInfo($row['PRODUCT_ID']);
$pid = 0;
if (is_array($mxResult))
{
$pid = $mxResult['ID'];
}
else
{
$pid = $row['PRODUCT_ID'];
}
$iteratorz = CIBlockElement::GetPropertyValues(21, array("ID"=>$pid));
while ($arFields = $iteratorz->Fetch())
{
//var_dump($arFields[198]);
if($arFields[198] != "")
{
$go3sale = "";
for($i=0;$i<=count($arFields[198]);$i++)
{
if($arFields[198][$i] == "7892"){ $go3sale = "ok";}
}
}
}
if ($go3sale == "ok"){$allskidos=$com2;}else{$allskidos=$com1;}
//Скидка
$row['DISCOUNT_PRICE'] = $row['PRICE'] * $allskidos / 100;
$row['PRICE'] = $row['PRICE'] - $row['DISCOUNT_PRICE'];
if ($allskidos > 0)
$row['DISCOUNT_PRICE_PERCENT'] = $allskidos;
$row['SUM_VALUE'] = $row['PRICE'] * $row['QUANTITY'];
$result['allSum'] += $row['SUM_VALUE'];
$row['SUM_DISCOUNT_PRICE'] = $row['DISCOUNT_PRICE'] * $row['QUANTITY'];
$row['PRICE_FORMATED'] = CCurrencyLang::CurrencyFormat($row['PRICE'], $row['CURRENCY'], true);
$row['SUM'] = CCurrencyLang::CurrencyFormat($row['SUM_VALUE'], $row['CURRENCY'], true);
$row['DISCOUNT_PRICE_FORMATED'] = CCurrencyLang::CurrencyFormat($row['DISCOUNT_PRICE'], $row['CURRENCY'], true);
$row['SUM_DISCOUNT_PRICE_FORMATED'] = CCurrencyLang::CurrencyFormat($row['SUM_DISCOUNT_PRICE'], $row['CURRENCY'], true);
if ($allskidos > 0)
$row['DISCOUNT_PRICE_PERCENT_FORMATED'] = $allskidos.'%';
Если у кого есть желание разобраться, могу скинуть файл mutator.php , буду очень благодарен