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

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-2019, «1С-Битрикс», 2019
Наверх