addToCart method
Add item to guest cart.
Adds a product to the specified guest cart with the given quantity and options.
cartId the ID of the cart to add the item to
sku the product's SKU to add
quantity the quantity to add
productOptions optional product options (size, color, etc.)
Returns the updated Cart object. Throws an exception if the item cannot be added.
Implementation
Future<Cart> addToCart({
required String cartId,
required String sku,
required int quantity,
Map<String, dynamic>? productOptions,
}) async {
try {
final data = {
'cartItem': {'sku': sku, 'qty': quantity, 'quote_id': cartId},
};
if (productOptions != null) {
data['cartItem']!['product_option'] = productOptions;
}
final response = await _client.guestRequest<Map<String, dynamic>>(
'/rest/V1/guest-carts/$cartId/items',
data: data,
options: Options(method: 'POST'),
);
if (response.statusCode == 200) {
return Cart.fromJson(response.data!);
} else {
throw Exception(
'Failed to add item to cart: ${response.statusMessage}',
);
}
} on DioException catch (e) {
throw Exception('Failed to add item to cart: ${e.message}');
} catch (e) {
throw Exception('Failed to add item to cart: $e');
}
}