garinov
@garinov
Фрилансер

Биртикс: как правильно собрать данные заказа?

Требуеся в один массив собрать не только поля, которые получаю в запросе

$parameters = [
   'filter' => [
       ">=DATE_INSERT" => $date
   ],
   'order' => ["DATE_INSERT" => "ASC"]
];


$dbRes = \Bitrix\Sale\Order::loadByFilter($parameters);


или

$dbRes = \Bitrix\Sale\Order::getList($parameters);

но также данные по покупателю, товарам заказа, оплате и т.д.
Для одного заказа это все можно получить как

$order = \Bitrix\Sale\Order::load($id);
$order_props = $order->getPropertyCollection()->getArray();
$basket = $order->getBasket();


Но требуется получить для массива заказов, и выходит, что придется в цикле делать запрос по каждому заказу, и это, как я понимаю, не очень хорошо.

Есть ли возможность в этой ситуации получить все в одном запросе?
Другой метод нужен, или есть другие $parameters ?

$result = Bitrix\Sale\Order:: какой-то метод (с параметрами) ->toArray();


С учетом того, что конечная цель - все вывести в JSON

echo \Bitrix\Main\Web\Json::encode($result);
  • Вопрос задан
  • 331 просмотр
Пригласить эксперта
Ответы на вопрос 1
Real_Fermer
@Real_Fermer
Программист PHP
Возможно это поможет
use Bitrix\Sale;

$filter=[
'USER_ID' => '13627' ,
];


$user_orders = Sale\Order::getList(
                [
                    'filter'  => $filter,
                    'select'  => [
"ID",
"BASKET.PRODUCT_ID",
"USER.ID",
"SHIPMENT.STATUS_ID", 
"PAYMENT.ID"
],
                ]
            )->fetchAll();

 var_dump($user_orders);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы