Данные о заказе текущего пользователя

Иногда нужно получить данные о заказе текущего пользователя. Не через компонент, а непосредственно через API Битрикс. Вариантов, где ожто может понадобиться достаточно много. Например: после оформления заказ пользователем, нужно вывести ему всю информацио о заказе.

Или в кабинете пользователя, автоматически заполнить персональные данные в кабинете пользователя, если он не указал иное. В общем, думайте сами, куда это применять. Расскажу просто ою этой возможности

Получаем самый свежий заказ текущего пользователя CSaleOrder::GetList

С помощью метода CSaleOrder::GetList мы можем получить все заказы, сколько бы их ни было, любого пользователя, зная его (пользователя) ID.

 $arFilter = Array( "USER_ID" => 12, //12 Это ID пользователя ); $db_sales = CSaleOrder::GetList(array(), $arFilter); while ($ar_sales = $db_sales->Fetch()) { echo '<pre>'; print_r($ar_sales); echo '</pre>'; }

Если нам нужно получить заказы текущего авторизованного пользователя. Просто подставляем в ID - $USER->GetID()

 $arFilter = Array( "USER_ID" => $USER->GetID(), ); $db_sales = CSaleOrder::GetList(array(), $arFilter); while ($ar_sales = $db_sales->Fetch()) { echo '<pre>'; print_r($ar_sales); echo '</pre>'; }

Но нам, для дальнейших манипуляций нужно получить только самый свежий заказ, при этом достаточно знать только его ID (ID заказа). Для этого, просто оборвем выполнение цикла на первой итерации. И просто присвоим переменной $lastorder ID этого заказа

$arFilter = Array( "USER_ID" => $USER->GetID(), ); $db_sales = CSaleOrder::GetList(array(), $arFilter); while ($ar_sales = $db_sales->Fetch()) { $lasorderid = $ar_sales['ID']; //присвоили переменной ID заказа break; //оборвали цикл }

Информация о заказе CSaleOrder::GetList

Теперь, зная ID конкретного заказа мы можем получить информацию о нем и вывести на экран. Для этого используем метод CSaleOrder::GetList

CModule::IncludeModule('sale'); $res = CSaleOrder::GetList(array(), array("ID" => $lasorderid)); // ID заказа из переменной while ($arItemOrder = $res->Fetch()) { echo '<pre>'; print_r($arItemOrder); echo '</pre>'; }

Или свойства этого заказа через метод CSaleOrderPropsValue::GetList

$arFilter =Array ( "ORDER_ID" => $lasorderid, ); $db_sales_ord = CSaleOrderPropsValue::GetList(array(), $arFilter); while ($ar_salesord = $db_sales_ord->Fetch()) { echo '<pre>';print_r($ar_salesord);echo '</pre>'; }

Еще больше методов относящихся к заказу, вы можете найти в официальной документации Битрикс

Все заметки
Уважаемый читатель! В связи с участившимся спамом в комментариях, возможность писать доступна только для зарегистрированных пользователей

Зарегистрироваться Войти
Напомнить пароль

Быстрая регистрация через соц.сеть:

© 2011—2017 Частный вебмастер: ИП Базаров, ОГРНИП: 315784700173692. Работает на 1С-Битрикс.

Копирование материалов запрещено: "ГК РФ, часть 4, раздел VII: Права на результаты интеллектуальной деятельности".

Информация размещенная на сайте, не является публичной офертой.
Политика конфеденциальности