[QUOTE]
Евгений написал:
[QUOTE] Alexander Ilyankin написал:
Подскажите пожалуйста, как применить купон для ещё не созданного заказа, т.е. для текущей корзины. У меня задача, посмотреть цены в корзине с применением этого купона.
Я предполагаю нужно использовать Sale\DiscountCouponsManager::add('купон'); но как это применить к корзине ?[/QUOTE]
Удалось решить? Тоже надо.[/QUOTE]
я решил так
[CODE]$product = [];
$res = CIBlockElement::GetByID($mainItemId)->Fetch();
$catalog = CCatalogProduct::GetOptimalPrice($mainItemId);
$product['NAME'] = $res['NAME'];
$product['PRICE'] = $catalog['DISCOUNT_PRICE'];
$product['CURRENCY'] = $catalog['PRICE']['CURRENCY'];
$product['QUANTITY'] = $quantity;
$product['PRODUCT_PROVIDER_CLASS'] = '\Bitrix\Catalog\Product\CatalogProvider';
$basket = Bitrix\Sale\Basket::create(SITE_ID);
$item = $basket->createItem('catalog', $mainItemId);
$item->setFields($product);
$userId = $USER->GetID() ? $USER->GetID() : CSaleUser::GetAnonymousUserID();
$orderBase = Sale\Order::create(SITE_ID, $userId);
$orderBase->setField('STATUS_ID', Sale\OrderStatus::getInitialStatus());
$orderBase->setBasket($basket);
$discounts = Sale\Discount::setOrder($basket);
$order = $discounts->getOrder();
$orderD = $order->getDiscount();
$discounts->setOrderRefresh(true);
$discounts->setApplyResult(array());
$orderBasket = $order->getBasket();
$orderBasket->refreshData(array('PRICE', 'COUPONS'));
$discounts->calculate();
$res = $discounts->getApplyResult();
foreach ($orderBasket->getBasketItems() as $item)
$discountPrice += $item->getDiscountPrice();
[/CODE]Я тут как бы создаю корзину с 1 товаром и рассчитываю скидку. Вам думаю вместо создания корзины надо взять текущую