В Bitrix Framework доступ к свойствам заказов осуществляется через объект класса "BitrixSaleOrder", а для работы со свойствами заказа можно использовать методы "getPropertyCollection()" и "getPropertyValueList()".
Для того чтобы получить список заказов, необходимо сначала получить объект класса "BitrixSaleInternalsOrderTable". Далее, выполняя запрос к БД, можно получить необходимые свойства.
Пример получения списка заказов с их свойствами типа "справочник" и "список":
use BitrixSaleInternalsOrderTable; use BitrixSaleInternalsOrderPropsValueTable; use BitrixMainLoader; Loader::includeModule("sale"); // Получаем список заказов $orderList = OrderTable::getList(); while ($order = $orderList->fetch()) { // Получаем идентификатор заказа $orderId = $order["ID"]; // Получаем коллекцию свойств заказа $propertyCollection = BitrixSalePropertyValueCollection::load($orderId); // Получаем список свойств типа "справочник" и "список" $propertyIdList = array(); // список идентификаторов свойств типа "справочник" и "список" $propertyValueList = array(); // список значений свойств типа "справочник" и "список" foreach ($propertyCollection as $propertyItem) { $property = $propertyItem->getProperty(); // Если свойство имеет тип "справочник" или "список", то добавляем его в список if ($property["TYPE"] === "L" || $property["TYPE"] === "E") { $propertyIdList[] = $propertyItem->getPropertyId(); } } // Получаем значения свойств типа "справочник" и "список" $propertyValueDb = OrderPropsValueTable::getList(array( "filter" => array( "ORDER_ID" => $orderId, "PROP_ID" => $propertyIdList, ) )); while ($propertyValue = $propertyValueDb->fetch()) { // Получаем название и значение свойства $propertyName = $propertyValue["NAME"]; $propertyValue = $propertyValue["VALUE"]; // Добавляем свойство и его значение в список $propertyValueList[$orderId][$propertyName] = $propertyValue; } // Выводим список заказов и их свойств типа "справочник" и "список" echo "Заказ №" . $orderId . ":<br>"; foreach ($propertyValueList[$orderId] as $propertyName => $propertyValue) { echo $propertyName . ": " . $propertyValue . "<br>"; } echo "<br>"; }
В данном примере мы получаем список заказов, а затем для каждого заказа получаем коллекцию свойств. Затем проходим по этой коллекции и добавляем в список свойства типа "справочник" и "список". После этого получаем значения этих свойств и выводим их на экран.