Node_save fails silently
The field structure you are using for your entity reference field is not correct. See entityreference_field_schema().

The correct column name is target_id, not product_id, so it should be like this:

$node = node_load($base_node-&gt;nid, FALSE, TRUE);

$node-&gt;field_product[LANGUAGE_NONE][]['target_id'] = $entity-&gt;product_id-&gt;value();

node_save($node);


This assumes you are using an entity wrapper to access the $entity object but not for accessing the $node object.

[edit]

Regarding your dpm() not firing, it is quite possible it is firing but you aren't seeing the output. This can happen depending on where you are calling it from.

A good alternative in these cases could be dd() or watchdog() since their output will be visible regardless of where you call it from.