В этом случае, вы можете доработать стандартный обмен, для передачи веса из своего реквизита в системное свойство на сайте.
Используйте наиболее близкое событие, которое можно применить для этой задачи, например OnBeforeIBlockElementUpdate.
Запишите код в /bitrix/php_interface/init.php
, и выполните полный обмен данными:
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", array("Exchange", "changeWeight"));
class Exchange {
public static function changeWeight($id, $arFields) {
static $handler = true;
if ($handler) {
$arItem = CIBlockElement::GetList(
false,
array('ID' => $id),
false,
false,
array('ID', 'PROPERTY_MASSA_KG') // символьный код реквизита
)->fetch();
if ($arItem['PROPERTY_MASSA_KG_VALUE']) {
$weightFields = array("WEIGHT" => $arItem['PROPERTY_MASSA_KG_VALUE']);
$handler = false;
CCatalogProduct::Update($id, $weightFields);
$handler = true;
}
}
}
}