Значение свойства основного товара скопировать к его модификациям.

#
Значение свойства основного товара скопировать к его модификациям.

<?php

header("Content-type: text/html; charset=UTF-8");

// Подключаем основные классы
require_once ('bootstrap.php');

$iShopId = 7; //ID магазина
$iPropertyId = 89; //ID свойста

$oShop = Core_Entity::factory('Shop', $iShopId);
$oProperty = Core_Entity::factory('Property', $iPropertyId);

$offset = 0;
$limit = 100;

do {
   $oShop_Items = $oShop->Shop_Items;
   $oShop_Items->queryBuilder()
      ->clearOrderBy()
      ->orderBy('id', 'ASC')
      ->offset($offset)
      ->limit($limit);

   $aShop_Items = $oShop_Items->findAll(FALSE);

   foreach ($aShop_Items as $oShop_Item)
   {
      $aProperty_Values = $oProperty->getValues($oShop_Item->id, FALSE);

      // Есть значения у родительского товара
      if (count($aProperty_Values))
      {
         $Property_Value = $aProperty_Values[0]->value;

         $aModifications = $oShop_Item->Modifications->findAll(FALSE);

         foreach ($aModifications as $oModification)
         {
            // Получаем массив всех значений дополнительного свойства 123 для информационного элемента $informationsystem_item_id
            $aPropertyValues = $oProperty->getValues($oModification->id);
            // Если нет ни одного значение, то добавляем в массив новое значение
            !isset($aPropertyValues[0]) && $aPropertyValues[0] = $oProperty->createNewValue($oModification->id);
            // Устанавливаем значение
            $aPropertyValues[0]->value = $Property_Value;
            // Сохраняем
            $aPropertyValues[0]->save();
         }
      }
   }

   $offset += $limit;
}
while(count($aShop_Items));

echo "OK";
«Не выходи из комнаты, не совершай ошибку…»
Авторизация