createReturn method

Future<Return> createReturn({
  1. required String orderId,
  2. required List<ReturnItem> items,
  3. String? comment,
})

Create return for order

Implementation

Future<Return> createReturn({
  required String orderId,
  required List<ReturnItem> items,
  String? comment,
}) async {
  try {
    final Map<String, dynamic> data = {
      'items': items.map((item) => item.toJson()).toList(),
    };

    if (comment != null) {
      data['comment'] = comment;
    }

    final response = await _client.authenticatedRequest<Map<String, dynamic>>(
      '/rest/V1/orders/$orderId/returns',
      options: Options(method: 'POST'),
      data: data,
    );

    if (response.statusCode == 200) {
      return Return.fromJson(response.data!);
    } else {
      throw Exception('Failed to create return: ${response.statusMessage}');
    }
  } on DioException catch (e) {
    throw Exception('Failed to create return: ${e.message}');
  } catch (e) {
    throw Exception('Failed to create return: $e');
  }
}