setShippingInformation method

Future<Cart> setShippingInformation({
  1. required String cartId,
  2. required Address address,
  3. required String methodCode,
  4. required String carrierCode,
})

Set shipping information for cart

Implementation

Future<Cart> setShippingInformation({
  required String cartId,
  required Address address,
  required String methodCode,
  required String carrierCode,
}) async {
  try {
    final response = await _client.guestRequest<Map<String, dynamic>>(
      '/rest/V1/guest-carts/$cartId/shipping-information',
      options: Options(method: 'POST'),
      data: {
        'addressInformation': {
          'shipping_address': address.toJson(),
          'billing_address': address.toJson(),
          'shipping_method_code': methodCode,
          'shipping_carrier_code': carrierCode,
        },
      },
    );

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