oderid sort not work correclty in number more than 1000 in commerce_orders views
As you can see in commerce_order_schema, order number is not a number, it's a string:

'order_number' =&gt; array(
    'description' =&gt; 'The order number displayed to the customer.', 
    'type' =&gt; 'varchar', 
    'length' =&gt; 255, 
    'not null' =&gt; FALSE,
  ),


This means that your view works as designed, sorting this text field that accidentally contains numbers alphabetically. Which, again accidentally, gave you illusion of numeric sort when numbers was in [100-999] range.

If you need something that's guaranteed to be numeric and ordered the way orders was placed, use either order_id ('type' =&gt; 'serial') or created ('type' =&gt; 'int').