Бортовой журнал Ктулху

Битрикс: получить список товаров в заказе

Опишу как в Битриксе можно сделать вывод списка товаров в одном заказе, во всех заказах и в заказах за определенный период.

 

Можно разбить на несколько этапов.

1. Получить список заказов. Если нужен только один заказ, этот этап пропускаем.

CModule::IncludeModule("sale"); // подключение модуля продаж
$arFilter = array();// При необходимости использовать параметры фильтрации
$db_sales = CSaleOrder::GetList(array(), $arFilter);
while ($ar_sales = $db_sales->Fetch()) {
 $arr[] = $ar_sales[ID]; // массив со списком заказов
}

2. Получить список товаров определенного заказа $order_id.

$dbBasketItems = CSaleBasket::GetList(array(), array("ORDER_ID" => $order_id), false, false, array());
 while ($arItems = $dbBasketItems->Fetch()) {
 $macciw[] = $arItems[PRODUCT_ID];
 }

 

3. Получить список товаров всех заказов

$arFilter = array();// При необходимости использовать параметры фильтрации
$db_sales = CSaleOrder::GetList(array(), $arFilter);
while ($ar_sales = $db_sales->Fetch()) {
  # получить список товаров определенного заказа
  $dbBasketItems = CSaleBasket::GetList(array(), array("ORDER_ID" => $ar_sales[ID]), false, false, array());
  while ($arItems = $dbBasketItems->Fetch()) {
    $macciw[] = $arItems[PRODUCT_ID];
  }
}
$mass = array_unique($macciw);// уникальные id товаров в заказах

 

 4. Получить список товаров, заказанных в этом месяце

$arFilter = Array(">=DATE_INSERT" => date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")), mktime(0, 0, 0, date("n"), 1, date("Y"))));

И рабочий пример во вложении.

Для использования просто кинуть в корень сайта с Битриксом.

Будет выведен массив с id товаров.

Вложения:
ФайлОписаниеРазмер файла:
Скачать этот файл (test.zip)test.zip 0.7 Кб