Try this solution: $collection->getSelect()->joinLeft( ['_inventory_table' => 'cataloginventory_stock_item'], "_inventory_table.product_id = e.entity_id", ['is_in_stock'] ); $collection->getSelect()->order(['is_in_stock desc']);