removeCouponFromStoreCart method
Remove coupon from cart
code Coupon code (required)
bearerToken Optional Bearer token for authenticated users
useFaker Fakes the API request
Returns the full cart object response
Implementation
Future<StoreCart> removeCouponFromStoreCart({
required String code,
String? bearerToken,
bool? useFaker,
}) async {
final isUsingFaker = useFaker ?? this.useFaker;
if (isUsingFaker) {
return StoreCart.fake();
}
try {
final originalBaseUrl = dio.options.baseUrl;
dio.options.baseUrl = '$baseUrl/wp-json/wc/store/v1';
dio.options.headers = {};
final headers = await _buildStoreApiHeaders(bearerToken: bearerToken);
final response = await dio.post(
_StoreCartEndpoints.removeCoupon,
options: Options(headers: headers),
queryParameters: {'code': code},
);
await _extractAndStoreCartToken(response, bearerToken: bearerToken);
dio.options.baseUrl = originalBaseUrl;
if (response.statusCode != null &&
response.statusCode! >= 200 &&
response.statusCode! < 300) {
return StoreCart.fromJson(response.data);
} else {
final errorMsg =
response.data["message"] ??
"API call failed with status code: ${response.statusCode}";
throw Exception(errorMsg.toString().cleanErrorMessage);
}
} on DioException catch (e) {
final errorMsg = e.response?.data["message"] ?? e.message;
throw Exception(errorMsg.toString().cleanErrorMessage);
} catch (e) {
throw Exception(e.toString().cleanErrorMessage);
}
}