2021-12-16 10:13:00
2338

Новые статьи

Аспро купить
74
2024-09-13 02:41:00
Hamster Kombat: Новости, airdrop
374
2024-06-10 23:23:00
Дипломная разработка сайта
362
2024-05-08 20:50:00
Ton Digger - Новый проект на getgetms
763
2024-04-28 22:28:00
Какие NFT на getgems стоит приобрести
1061
2024-04-19 09:49: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);
    }
}

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

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

    Имя
    Телефон
    x


    Имя
    Телефон