Получение информации о заказе 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); } }
Получение информации о заказе D7
Для получения информации о заказе в Битрикс D7 необходимо использовать класс Sale\Order и его методы.
Пример получения информации о заказе:
![](/img/copy.png)
use Bitrix\Sale; $orderId = 143; $order = Sale\Order::load((int) $orderId); // получаем заказ по id $paymentCollection = $order->getPaymentCollection(); // получаем оплаты заказа $paymentSystems = []; foreach ($paymentCollection as $payment) { $paymentSystems[] = $payment->getPaymentSystemName(); // название платежной системы } print_r($paymentSystems); // покажет массив содержащий наименования платежных систем $discountData = $order->getDiscount()->getApplyResult(); // получить скидки заказа $coupons = []; foreach($discountData["COUPON_LIST"] as $coupon){ $coupons[] = $coupon["COUPON"]; } print_r($coupons); // Покажет список купонов, которые были использованы в заказе
Изменение заказа
Для добавления оплаты при сохранении заказа необходимо использовать событие OnSaleOrderSaved и классы Sale\PaymentCollection, Sale\Payment и Sale\PaySystem\Manager.
Пример добавления оплаты при сохранении заказа:
![](/img/copy.png)
\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'sale', 'OnSaleOrderSaved', 'xClass::onSaleOrderSaved' ); class xClass { public static function onSaleOrderSaved(\Bitrix\Main\Event $event) { $order = $event->getParameter("ENTITY"); $paymentCollection = $order->getPaymentCollection(); // Получим оплаты $paymentService = \Bitrix\Sale\PaySystem\Manager::getObjectById(9); // Будем использовать оплату с id 9 $payment = \Bitrix\Sale\Payment::create($paymentCollection, $paymentService); // создадим оплату $payment->setField('SUM', 100); // сумма оплаты $payment->setField('PAID', "Y"); // Статус оплаты, оплачено $paymentCollection->addItem($payment); } }
Комментарии (33)