Can I set a Commerce order custom field from a plugin
You can use $order->setContent()

craft()-&gt;on('commerce_orders.onBeforeOrderComplete', function($event) {
  $order = $event-&gt;params['order'];
  $content = array('myCustomField' =&gt; 3);
  $order-&gt;setContent($content);
}