Вообще ни как не хочет применяться купон.
Сначала я создаю либо беру текущую корзину.
Код |
---|
$order = Bitrix\Sale\Order::load($order_id);
$order->setPersonTypeId(1); |
либо
Код |
---|
$order = Bitrix\Sale\Order::create(SITE_ID, $userID);
$order->setPersonTypeId(1); |
Всё запоняется правильно, товары создаются, доставка прикрепляется, а вот купоны не хотят. Купон проверял так же в живую, в админке в заказе его указывал и всё работало. Через код не хочет.
Код |
---|
if ($custom_fields[24]) { // Тут купон
Bitrix\Sale\DiscountCouponsManager::init(
Bitrix\Sale\DiscountCouponsManager::MODE_ORDER, [
"userId" => $order->getUserId(),
"orderId" => $order->getId()
]
);
$addCoupon = Bitrix\Sale\DiscountCouponsManager::add($custom_fields[24]);
$discounts = $order->getDiscount();
$discounts->calculate();
setLogArr($addCoupon); // возвращает 1
setLogArr(Bitrix\Sale\DiscountCouponsManager::getErrors()); // Возвращает пустой массив
}
|
После кода идёт сохранение корзины
setLogArr - сохраняю в текстовый файл логи.
Помогите, скажите что не так.
Это использую почти после каждого блока важного, например когда добавил товары, доставку, заполнил пользовательские поля. Конечно использую и после вышеуказанного блока кода.