Как обновить поле field используя Fields API

Иногда не хочется использовать node_save, а поле сохранить надо, да еще желательно отработать все хуки. А как это делать см. ниже.

$entity = new stdClass(); $entity->nid = $nid; $entity->type = 'offer'; $entity->field_offer_rate['und'][0]['value'] = carpot_certificate::count_purchased($nid)/self::count_views($nid); field_attach_presave('node', $entity); field_attach_update('node', $entity);

ВНИМАНИЕ!!! Необходимо указывать правильный тип материала, иначе не все поля будут иметь пред значения и данные будут пропадать.