Дата последнего изменения: 11.08.2020
Рассмотрим небольшой пример изменения заказа через API. Допустим, у нас есть заказ с идентификатором 38:
Составим код, с помощью которого будет добавлен комментарий и изменен флаг разрешения отгрузки в нашем заказе. Для этого нам достаточно с помощью метода load поднять заказ из базы данных по его идентификатору. Это действие сразу позволит нам манипулировать со всеми свойствами заказа. Так, с помощью метода setField добавим необходимый нам комментарий. Затем с помощью метода getShipmentCollection получим коллекцию отгрузок и для всех отгрузок, кроме системной, пометим флаг разрешения отгрузки (метод allowDelivery). После чего сохраним заказ с помощью метода save. Данный метод сохранит и заказ, и все связанные объекты (сохраняет именно те поля, которые были изменены):
Bitrix\Main\Loader::includeModule('sale'); $order = \Bitrix\Sale\Order::load(38); $order->setField("USER_DESCRIPTION", "Доставить к подъезду"); $shipmentCollection = $order->getShipmentCollection(); /** @var Sale\Shipment $shipment */ foreach ($shipmentCollection as $shipment) { if (!$shipment->isSystem()) $shipment->allowDelivery(); } $result = $order->save(); if (!$result->isSuccess()) { //$result->getErrors(); }
После выполнения вышеуказанного кода через командную php-строку наш заказ будет изменен соответствующим образом: