Из 1С на сайт в реквизите "УпаковкаВес" приходит значение веса в кг. Пересчитываем его в граммы.
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler(
'catalog',
'Bitrix\Catalog\Model\Product::OnBeforeUpdate',
static function ( $event ) {
$id = $event->getParameter("id");
$iblockId = 13;
$iblock = \Bitrix\Iblock\Iblock::wakeUp($iblockId);
$element = \Bitrix\Iblock\Elements\ElementCatalogTable::getByPrimary($id, [
'select' => ['ID', 'NAME', 'CML2_TRAITS'],
]);
$weight = '';
while($ar = $element->fetch())
{
if($ar['IBLOCK_ELEMENTS_ELEMENT_CATALOG_CML2_TRAITS_DESCRIPTION']=="УпаковкаВес")
{
$weight = $ar['IBLOCK_ELEMENTS_ELEMENT_CATALOG_CML2_TRAITS_VALUE']*1000;
}
}
$result = new \Bitrix\Main\ORM\EventResult;
$result->modifyFields( [ 'fields' => [ 'WEIGHT' => $weight] ] );
return $result;
}
);
Теги: Product, OnBeforeUpdate, d7, ORM