'WIDTH' => $VALUES['3'] * 10,
'HEIGHT' => $VALUES['4'] * 10,
'LENGTH' => $VALUES['5'] * 10;
Тут недочет - если из 1с не прийдет какое либо поле то ключи собьются и ваши габариты запишутся не туда, либо же к примеру прийдет еще 1поле - обьем, тогда
'WIDTH' => $VALUES['3'] * 10, уже будет не [3], а к [4] например, поэтому можно сравнивать по описанию полей
Тестил сегодня - все работает
Скрытый текст |
---|
<? function OnAfterIBlockElementUpdateAdd(&$arFields) {
$el = new CIBlockElement;
switch (SITE_ID ) { case 's1': $iBlockID = 12; break; case 's2': $iBlockID = 49; break; }
$delivery_fields = array();
$db_props = CIBlockElement::GetProperty( $iBlockID, $arFields['ID'], array("sort" => "asc"), Array("CODE" => "CML2_TRAITS") );
while ($ar_props = $db_props->Fetch()) {
switch ($ar_props["DESCRIPTION"]) { case 'Длина': $length = $ar_props['VALUE']; break; case 'Высота': $height = $ar_props['VALUE']; break; case 'Ширина': $width = $ar_props['VALUE']; break; }
}
$delivery_fields = array(
'LENGTH' => $length * 10, 'HEIGHT' => $height *10, 'WIDTH' => $width *10 );
\Bitrix\Catalog\Model\Product::update($arFields['ID'], $delivery_fields); } |