Битрикс разработчикам: Как изменить пользовательское свойство у товара

08.08.2020

Иногда требуется программно обновить пользовательское свойство у товаров в CMS Bitrix.

Например, если было добавлено новое обязательное поле.

Ниже приведенный код, берет все товары, перебирает их и выставляет значения для пользовательского свойства PUBLISHED в значение Да

Важно: Нудно использовать метод SetPropertyValuesEx вместо SetPropertyValues иначе все не переданные пользовательские поля будут обнулены.

 
<?php
  error_reporting(E_ALL);
  ini_set('display_errors', 'On');

  require_once($_SERVER['DOCUMENT_ROOT']. "/bitrix/modules/main/include/prolog_before.php");

  //CModule::IncludeModule("catalog");
  CModule::IncludeModule("iblock");
  
  $IBLOCK_ID = 1;
  $PRODUCT_ID = 5708; // Ограничение только для одного тестового товара
  $PROPERTY_CODE = 'PUBLISHED';  // код свойства
  $PROPERTY_VALUE = 235;  // Нужно использовать ID от значения "Да" (Не "y" и не "Да")
  
  $res = CIBlockElement::GetList(array(), array('IBLOCK_ID' => 1), false, false, array('ID', 'NAME'));
  while($row = $res->Fetch())
  {
  if($row['ID'] == $PRODUCT_ID)
  {
    echo $row['NAME']. '<br />';
    // $aProp = CIBlockElement::GetByID($row['ID'])->GetNextElement()->GetProperties();
    
    CIBlockElement::SetPropertyValuesEx($row['ID'], $IBLOCK_ID, array($PROPERTY_CODE => $PROPERTY_VALUE));
  }
  }


Категории: Bitrix CMS
Пометки: Как изменить пользовательское свойство у товара
Яндекс.Метрика