2021-12-16 10:13:00
1255

Новые статьи

GPT-5 - преимущества нового чата | обсуждение
195
2023-06-17 07:15:00
Продление лицензии 1С-Битрикс
323
2023-05-25 00:52:00
Внедрение искусственного интеллекта в бизнес: преимущества и стратегии
368
2023-03-30 05:59:00
Льготная ипотека для сотрудников работающих в ит - 2022 год
802
2022-07-23 14:56:00
Лучшие внешние жесткие диски в 2022 году
778
2022-07-23 14:43:00

1C-Битрикс - заказы, создание заказа, изменение, примеры

Получение информации о заказе 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 и его методы.

Пример получения информации о заказе:

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.

Пример добавления оплаты при сохранении заказа:

\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);
    }
}

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

    Обратный звонок

    Имя
    Телефон
    x


    Имя
    Телефон