orderCheckOut method
Implementation
void orderCheckOut(BuildContext context, double amount, String transactionId,
ProductData data) async {
var addresss =
addresses.firstWhere((element) => element.isDefaultAddress == 'true');
try {
isLoading(true);
var request = {
'merchant_id': Storage.getValue(Constants.merchantID),
'api_key': await Constants.apiKey(),
'amount': amount,
'currency': "USD",
'customer_id': Storage.getValue(Constants.customerID),
'shipping_fee': data.shippingFee.toString(),
'tax': data.tax.toString(),
'transaction_id': transactionId,
'zip': addresss.zip ?? '',
'street_address': addresss.streetAddress ?? '',
'address_name': addressName.text.toString(),
'city': addresss.city ?? '',
'state': addresss.state ?? '',
'country': addresss.country ?? '',
'save_address': "false",
'is_default_address': "false",
'product_ids': [data.id],
'quantity_list': ["1"],
'meta': {"address": addresss.streetAddress ?? ''}
};
var response = await DioClient().request(
context: context,
api: '/customer/orders/checkout',
method: Method.FORM,
payloadObj: request);
OrderCheckoutResponse getAddressResponse =
OrderCheckoutResponse.fromJson(response);
if (getAddressResponse.status == Strings.success) {
return Utils.showSnackbar(context, Strings.success,
response['message'].toString().toTitleCase(), AppColors.green);
} else {
return Utils.showSnackbar(context, Strings.error,
response['message'].toString().toTitleCase(), AppColors.red);
}
} catch (e) {
return Utils.showSnackbar(
context, Strings.error, e.toString(), AppColors.red);
} finally {
isLoading(false);
}
}