trackCollectionsEvent static method
Implementation
static Future<void> trackCollectionsEvent(
TrackCollectionsEventArgs args) async {
final merchantUrl =
(await cacheInstance.getValue(KeyConfig.gkMerchantUrlKey)) ?? '';
String pageUrl = args.pageUrl ?? '';
if (args.handle != null && merchantUrl.isNotEmpty && pageUrl.isEmpty) {
pageUrl = 'https://$merchantUrl/collections/${args.handle}';
}
String cartId = args.cartId;
if (cartId.contains('gid://shopify/Cart/')) {
cartId = _trimCartId(cartId);
}
final params = {
'pageUrl': pageUrl,
'cart_id': cartId,
'collection_id': args.collectionId.toString(),
'name': args.name,
'image_url': args.imageUrl ?? '',
'handle': args.handle?.toString() ?? '',
};
final contextDetails = TrackCollectionEventContext(
collection_id: args.collectionId.toString(),
img_url: args.imageUrl,
collection_name: args.name,
collection_handle: args.handle ?? '',
type: 'collection',
);
final contexts = (await Future.wait([
getCollectionsContext(contextDetails),
getUserContext(),
getCartContext(cartId),
getDeviceInfoContext(),
])).where((context) => context != null).cast<SelfDescribing>().toList();
await _trackEvent(params, contexts);
}