trackEcommerceTransaction method

Future<String> trackEcommerceTransaction({
  1. required String identifier,
  2. required int grandTotal,
  3. int? subTotal,
  4. int? tax,
  5. int? shippingCost,
  6. int? discount,
  7. List<EcommerceTransactionItem>? transactionItems,
})

Implementation

Future<String> trackEcommerceTransaction({
  required String identifier,
  required int grandTotal,
  int? subTotal,
  int? tax,
  int? shippingCost,
  int? discount,
  List<EcommerceTransactionItem>? transactionItems,
}) async {
  var arguments = <String, dynamic>{};
  arguments['identifier'] = identifier;
  arguments['grandTotal'] = grandTotal;
  arguments['subTotal'] = subTotal;
  arguments['tax'] = tax;
  arguments['shippingCost'] = shippingCost;
  arguments['discount'] = discount;

  final items = [];

  transactionItems?.forEach((item) {
    final itemMap = <String, dynamic>{};
    itemMap['sku'] = item.sku;
    itemMap['name'] = item.name;
    itemMap['category'] = item.category;
    itemMap['price'] = item.price;
    itemMap['quantity'] = item.quantity;
    items.add(itemMap);
  });
  arguments['transactionItems'] = items;

  final result = await _channel.invokeMethod(trackEcommerceTransactionName, arguments);
  return result;
}