There is possibility do disable order statuses with "hook_commerce_order_status_info_alter" but I am wondering what happens then. Example is. Alipay has many pending statuses. I would summarize them into few or just one. But wondering what would happen then when Alipay returns some status which is not available or disabled?
I dig in a bit and run some custom code.
$order = commerce_order_load($order_id); $order_status = 'payment_received'; commerce_order_status_update($order, $order_status);
and changed status. So even if status is disabled, it still is changed. Only way is to remove the status, unset it in
hook_commerce_order_state_info for whole parent state or hook_commerce_order_status_info for particular status.
What happens then is if you try to change status to the one that is not there, status will be undefined.