Для того чтобы выгрузить состав заказа в XML формате в 1C-Bitrix, вам понадобится создать новую функцию или модифицировать существующую в любом из обработчиков событий (например, OnSaleOrderSaved), для получения данных о заказе и его составе.
Для начала, вам нужно получить ID заказа, с которым вы работаете. После того, как вы получили ID заказа, вы можете использовать класс BitrixSaleOrder для получения объекта заказа. Например, вы можете использовать следующий код:
use BitrixMainLoader; use BitrixSaleOrder; $action = MyCustomExportFunction(); function MyCustomExportFunction() { Loader::includeModule('sale'); $orderId = 123; // Замените на фактический ID заказа $order = Order::load($orderId); if ($order) { $basket = $order->getBasket(); // Создание XML-структуры $xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><order></order>'); foreach ($basket as $basketItem) { // Получение информации о товаре $product = $basketItem->getProduct(); $name = $product->getField('NAME'); $price = $product->getPrice(); $quantity = $basketItem->getQuantity(); // Создание подэлемента товара в XML $item = $xml->addChild('item'); $item->addChild('name', $name); $item->addChild('price', $price); $item->addChild('quantity', $quantity); } // Сохранение XML-документа в файл $xmlFilePath = "/path/to/save/xml/file.xml"; $xml->asXML($xmlFilePath); return "XML успешно выгружен в файл $xmlFilePath"; } else { return "Не удалось загрузить заказ с ID $orderId"; } }
В этом примере мы подключаем модуль sale, получаем объект заказа с помощью Order::load($orderId)
, получаем объект корзины с помощью $order->getBasket()
, а затем проходимся по каждому элементу корзины, чтобы получить необходимую информацию о продукте, такую как название, цена и количество. Затем мы создаем XML-структуру и сохраняем ее в файл с помощью asXML()
.
Не забудьте заменить $orderId
на фактический ID заказа и $xmlFilePath
на путь, по которому нужно сохранить XML-файл.
Это всего лишь пример, и вы можете добавить свои собственные дополнительные шаги или функциональность в этот код в зависимости от ваших потребностей.