just_guy95
@just_guy95
Bitrix 1C

Как получить массив с информацией о заказе Bitrix?

День добрый!
Встала необходимость переделать thankyou page (страница «Спасибо за заказ») и добавить несколько полей которые по умолчанию отсутствовали, добавить нужно:
1. Ф.И.О.
2. Адрес доставки

Необходимо использовать только D7!
Нашел два метода \Bitrix\Sale\Order::loadByFilter($parameters) и \Bitrix\Sale\Order::getList($parameters), но если я правильно понял, то они будут перебирать каждый заказ в БД пока не найдут необходимый, что скорее всего отразиться на производительности и скорости сайта или я ошибаюсь?
Кароче, подскажите в какую сторону копать и желательно чтобы это не отразилось на скорости работы сайта.
На самой thankyou page есть возможность получить ID и ACCOUNT_NUMBER
  • Вопрос задан
  • 2895 просмотров
Решения вопроса 1
@PetrPo
$arOrderProps = [];

$dbRes = \Bitrix\Sale\PropertyValue::getList([
    'select' => ['CODE', 'VALUE'],
    'filter' => ['=ORDER_ID' => 6, 'CODE' => ['FIO', 'PHONE']]
]);

while($arRes = $dbRes->fetch()) {
    $arOrderProps[$arRes['CODE']] = $arRes['VALUE'];
}

print_r($arOrderProps);

Коды свойств и id заказа на нужные замени
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
just_guy95
@just_guy95 Автор вопроса
Bitrix 1C
Спасибо за подсказку.
1. Использовал оба метода, и оба дают массив данных в котором нет необходимой мне информации www.prnt.sc/s952ux
2. Методы использую в result_modifier.php и на странице «Оформление заказа» следующее поведение:
5eabfeda9e1f1214188489.png

Какие мысли?
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы