orderCheckOut method

void orderCheckOut(
  1. BuildContext context,
  2. double amount,
  3. String transactionId,
  4. ProductData data,
)

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);
  }
}