Is checking the value of $order->status sufficient to understand when an order has been completed? If I want to use this hook in order to execute a code when the order is complete.
function hook_commerce_order_update($order) {
  if ($order-&gt;status == 'completed') {
    // ...
  }
}

Is this condition sufficient, or should I add the following in order to prevent the confusion with the complete status that belongs to the checkout state?
 if ($order-&gt;status != $order-&gt;original-&gt;status) {
    $status = commerce_order_status_load($order-&gt;status);
    $state = commerce_order_state_load($status['state']);
    if (($state['name'] == 'completed') &amp;&amp; ($order-&gt;status == 'completed')) {
      // ... 
    }
  }
All the checkout order statuses are prefixed with checkout_, so there is no need to check the state. Just bear in mind that in Commerce 1.x, an order may be moved into and out of that status multiple times. If you need to ensure an operation only occurs once per order, you can follow the core precedent of logging the timestamp for your operation in the $order-&gt;data array.