Документация для разработчиков
Темная тема

GetOrderProps

Описание и параметры

CDBResult
CSaleOrderPropsValue::GetOrderProps(
  int ORDER_ID
);

Метод возвращает набор значений свойств для заказа с кодом ORDER_ID. Кроме параметров значений свойств возвращаются также некоторые связанные значения. Нестатический метод.

Параметры вызова

ПараметрОписание
ORDER_ID Код заказа.

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий ассоциативные массивы параметров значений свойств заказа (и сопутствующие параметры других объектов) с ключами:

Ключ Описание
ID Код значения свойства заказа.
ORDER_ID Код заказа.
ORDER_PROPS_ID Код свойства заказа.
NAME Название свойства заказа (привязанное к значению)
VALUE Значение свойства заказа.
CODE Символьный код свойства заказа.
PROPERTY_NAME Название свойства заказа.
TYPE Тип свойства заказа.
PROPS_GROUP_ID Код группы свойств заказа.
GROUP_NAME Название группы свойств заказа.
IS_LOCATION Флаг (Y/N) использовать ли это значение в качестве кода местоположения для получения стоимости доставки.
IS_EMAIL Флаг (Y/N) использовать ли это значение в качестве email адреса покупателя.
IS_PROFILE_NAME Флаг (Y/N) использовать ли это значение в качестве названия профиля покупателя.
IS_PAYER Флаг (Y/N) использовать ли это значение в качестве имени покупателя.

Результирующий набор отсортирован последовательно по индексу сортировки группы свойств заказа, названию группы свойств заказа, индексу сортировки свойства заказа, названию свойства заказа.

Примеры использования

<?
// Выведем все свойства заказа с кодом $ID, сгруппированые по группам свойств
$db_props = CSaleOrderPropsValue::GetOrderProps($ID);
$iGroup = -1;
while ($arProps = $db_props->Fetch())
{
   if ($iGroup!=IntVal($arProps["PROPS_GROUP_ID"]))
   {
      echo "<b>".$arProps["GROUP_NAME"]."</b><br>";
      $iGroup = IntVal($arProps["PROPS_GROUP_ID"]);
   }

   echo $arProps["NAME"].": ";

   if ($arProps["TYPE"]=="CHECKBOX")
   {
      if ($arProps["VALUE"]=="Y")
         echo "Да";
      else
         echo "Нет";
   }
   elseif ($arProps["TYPE"]=="TEXT" || $arProps["TYPE"]=="TEXTAREA")
   {
      echo htmlspecialchars($arProps["VALUE"]);
   }
   elseif ($arProps["TYPE"]=="SELECT" || $arProps["TYPE"]=="RADIO")
   {
      $arVal = CSaleOrderPropsVariant::GetByValue($arProps["ORDER_PROPS_ID"], $arProps["VALUE"]);
      echo htmlspecialchars($arVal["NAME"]);
   }
   elseif ($arProps["TYPE"]=="MULTISELECT")
   {
      $curVal = split(",", $arProps["VALUE"]);
      for ($i = 0; $i<count($curVal); $i++)
      {
         $arVal = CSaleOrderPropsVariant::GetByValue($arProps["ORDER_PROPS_ID"], $curVal[$i]);
         if ($i>0) echo ", ";
         echo htmlspecialchars($arVal["NAME"]);
      }
   }
   elseif ($arProps["TYPE"]=="LOCATION")
   {
      $arVal = CSaleLocation::GetByID($arProps["VALUE"], LANGUAGE_ID);
      echo htmlspecialchars($arVal["COUNTRY_NAME"]." - ".$arVal["CITY_NAME"]);
   }

   echo "<br>";
}
?>
//выборка по нескольким свойствам (например, по LOCATION и ADDRESS):
$dbOrderProps = CSaleOrderPropsValue::GetList(
        array("SORT" => "ASC"),
        array("ORDER_ID" => $intOrderID, "CODE"=>array("LOCATION", "ADDRESS"))
    );
    while ($arOrderProps = $dbOrderProps->GetNext()):
            echo "<pre>"; print_r($arOrderProps); echo "</pre>";
    endwhile;


© «Битрикс», 2001-2023, «1С-Битрикс», 2023