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