2021-12-16 10:13:00
1858

Получение информации о заказе D7

use Bitrix\Sale; — импортируем рабочее пространство.

use Bitrix\Sale; 

$IdOrder = 143;
$order = Sale\Order::load((int) $IdOrder); // получаем заказ по id
$paymentCollection = $order->getPaymentCollection(); // получаем оплаты заказа $payName = []; foreach ($paymentCollection as $payment) { $payName[] = $payment->getPaymentSystemName(); // название платежной системы } print_r($payName); // покажет массив содержащий наименования платежных систем $discountData = $order->getDiscount()->getApplyResult(); // получить скидки заказа $COUPON = []; foreach($discountData["COUPON_LIST"] as $val){ $COUPON[] = $val["COUPON"]; } print_r($COUPON); // Покажет список купонов, которые были использованы в заказе

Изменение заказа

Добавить оплаты при сохранении заказа.
Добавляем этот код в init.php

\Bitrix\Main\EventManager::getInstance()->addEventHandler( 

    'sale', 

    'OnSaleOrderSaved', 

    'xClass::onSaleOrderSaved'

); 

class xClass

{

    function onSaleOrderSaved(\Bitrix\Main\Event $event)

    {
                $order = $event->getParameter("ENTITY");
                $collection = $order->getPaymentCollection(); // Получим оплаты
                $service = \Bitrix\Sale\PaySystem\Manager::getObjectById(9); // Будем использовать оплату с id 9
                $payment = \Bitrix\Sale\Payment::create($collection, $service); // создадим оплату
                $payment->setField('SUM', 100); // сумма оплаты
                $payment->setField('PAID', "Y"); // Статус оплаты, оплачено
                $collection->addItem($payment);
    }

}

Комментарии (46)