getOrderByIncrementId method

Future<Order> getOrderByIncrementId(
  1. String incrementId
)

Get order by increment ID

Implementation

Future<Order> getOrderByIncrementId(String incrementId) async {
  try {
    final response = await _client.authenticatedRequest<Map<String, dynamic>>(
      '/rest/V1/orders?searchCriteria[filterGroups][0][filters][0][field]=increment_id&searchCriteria[filterGroups][0][filters][0][value]=$incrementId',
    );

    if (response.statusCode == 200) {
      final items = response.data!['items'] as List<dynamic>;
      if (items.isNotEmpty) {
        return Order.fromJson(items.first);
      } else {
        throw Exception('Order not found with increment ID: $incrementId');
      }
    } else {
      throw Exception(
        'Failed to get order by increment ID: ${response.statusMessage}',
      );
    }
  } on DioException catch (e) {
    throw Exception('Failed to get order by increment ID: ${e.message}');
  } catch (e) {
    throw Exception('Failed to get order by increment ID: $e');
  }
}