mills
@mills

Скидка для каждого товара в корзине. Вроде все сделал, но финальная сумма не такая в чем ошибка?

Всем привет!
Сделал скидку своб в корзине на товары, все отлично, но когда заходим на странице, то показывает верную сумму:
60eac1af77f03030835661.png
А когда прибавляем количество к примеру на скрине второго товара, то сумма становится одного товара:
60eac1e9c7680678130184.png

Понять не могу в чем проблема, где то 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 , буду очень благодарен
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы