Посмотрите решения на Маркетплейсе.
|
[QUOTE]Илья Петровский написал:
Зато скидка "-20%" (отрицательная скидка, минус двадцать процентов) — сработала как надо! Битрикс такой битрикс )[/QUOTE] Не рекомендую пользоваться подобными хаками - их работа не гарантируется и не будет поддерживаться. |
|
|
|
|
|
[QUOTE]Илья Петровский написал:
сижу второй час, галочки перетыкиваю - бесполезно.[/QUOTE] Скрин настроек покажите. |
|
|
|
|
|
[QUOTE]Алексей Щербаков написал:
Bitrix\Sale\DiscountCouponsManager::clear(true);[/QUOTE] Т.е. старые купоны заказа вы удаляете? |
|
|
|
|
|
[QUOTE]Алексей Щербаков написал:
$discounts = $order->getDiscount(); $discounts->calculate(); $basket->refreshData(["PRICE", "COUPONS"]);[/QUOTE] Т.е. вы сначала считаете скидки, а потом обновляете данные из провайдера? Используйте doFinalAction в таком случае. |
|
|
|
|
|
[QUOTE]Алексей Щербаков написал:
$discounts->calculate();[/QUOTE] Вы посчитали скидки с купоном, но результаты никуда не сохранили. Или вместо[CODE]$discounts->calculate(); [/CODE]используйте[CODE]$order->doFinalAction(true); $order->save(); [/CODE]или сами передавайте в заказ результаты расчета:[CODE]$r = $discount->calculate(); if ($r->isSuccess() && ($discountData = $r->getData()) && !empty($discountData) && is_array($discountData)) { /** @var Result $r */ $r = $order->applyDiscount($discountData); } $order->save(); [/CODE] |
|
|
|
|