From eda7f58c97c3cb1a1ee4684556346d7576f2e3a8 Mon Sep 17 00:00:00 2001 From: jborlase-snowplow Date: Wed, 28 May 2025 10:53:36 +0100 Subject: [PATCH 1/4] Fixing GA4 Add To Cart for GTM Ecommerce Template --- .../browser-plugin-snowplow-ecommerce/src/ga4/api.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts b/plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts index 21d74d93c..ffcd07514 100644 --- a/plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts +++ b/plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts @@ -33,21 +33,23 @@ export function trackGA4SelectPromotion(ecommerce: GA4EcommerceObject & Promotio } export function trackGA4AddToCart( - ecommerce: GA4EcommerceObject & Currency, + ecommerce: GA4EcommerceObject & Currency & { finalCartValue?: number }, opts: Options & { finalCartValue: number } ) { const currency = (ecommerce.currency || opts.currency)!; + const finalCartValue = (ecommerce.finalCartValue || opts.finalCartValue)!; const products = transformG4ItemsToSPProducts(ecommerce, currency); - trackAddToCart({ products, total_value: opts.finalCartValue, currency }); + trackAddToCart({ products, total_value: finalCartValue, currency }); } export function trackGA4RemoveFromCart( - ecommerce: GA4EcommerceObject & Currency, + ecommerce: GA4EcommerceObject & Currency & { finalCartValue?: number }, opts: Options & { finalCartValue: number } ) { const currency = (ecommerce.currency || opts.currency)!; + const finalCartValue = (ecommerce.finalCartValue || opts.finalCartValue)!; const products = transformG4ItemsToSPProducts(ecommerce, currency); - trackRemoveFromCart({ products, total_value: opts.finalCartValue, currency }); + trackRemoveFromCart({ products, total_value: finalCartValue, currency }); } export function trackGA4ViewItem(ecommerce: GA4EcommerceObject, opts: Options = {}) { From 5745439fdb34769e3dea679de08580f7122b604f Mon Sep 17 00:00:00 2001 From: James Borlase Date: Wed, 28 May 2025 11:25:48 +0100 Subject: [PATCH 2/4] Adding rush change description --- .../ga4-ecommerce-fix_2025-05-28-10-25.json | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 common/changes/@snowplow/browser-plugin-snowplow-ecommerce/ga4-ecommerce-fix_2025-05-28-10-25.json diff --git a/common/changes/@snowplow/browser-plugin-snowplow-ecommerce/ga4-ecommerce-fix_2025-05-28-10-25.json b/common/changes/@snowplow/browser-plugin-snowplow-ecommerce/ga4-ecommerce-fix_2025-05-28-10-25.json new file mode 100644 index 000000000..c956adf68 --- /dev/null +++ b/common/changes/@snowplow/browser-plugin-snowplow-ecommerce/ga4-ecommerce-fix_2025-05-28-10-25.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@snowplow/browser-plugin-snowplow-ecommerce", + "comment": "Fixing GA4 Ecommerce functions to use finalCartValue within ecommerce object", + "type": "none" + } + ], + "packageName": "@snowplow/browser-plugin-snowplow-ecommerce" +} \ No newline at end of file From 3f2d34e1c0e6995522e7c4cefdc3469314e5399c Mon Sep 17 00:00:00 2001 From: jborlase-snowplow Date: Fri, 30 May 2025 12:27:17 +0300 Subject: [PATCH 3/4] Update plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts Nice! I should really spend some time learning TypeScript. Co-authored-by: Matus Tomlein --- plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts b/plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts index ffcd07514..f36136881 100644 --- a/plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts +++ b/plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts @@ -47,7 +47,7 @@ export function trackGA4RemoveFromCart( opts: Options & { finalCartValue: number } ) { const currency = (ecommerce.currency || opts.currency)!; - const finalCartValue = (ecommerce.finalCartValue || opts.finalCartValue)!; + const finalCartValue = ecommerce.finalCartValue ?? opts.finalCartValue; const products = transformG4ItemsToSPProducts(ecommerce, currency); trackRemoveFromCart({ products, total_value: finalCartValue, currency }); } From 641c0f2bfb1d745b30be19d18b320e7c928f6430 Mon Sep 17 00:00:00 2001 From: jborlase-snowplow Date: Mon, 23 Jun 2025 13:04:45 +0100 Subject: [PATCH 4/4] Update plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts Including Matus' feedback Co-authored-by: Matus Tomlein --- plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts b/plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts index f36136881..c2a25284f 100644 --- a/plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts +++ b/plugins/browser-plugin-snowplow-ecommerce/src/ga4/api.ts @@ -37,7 +37,7 @@ export function trackGA4AddToCart( opts: Options & { finalCartValue: number } ) { const currency = (ecommerce.currency || opts.currency)!; - const finalCartValue = (ecommerce.finalCartValue || opts.finalCartValue)!; + const finalCartValue = ecommerce.finalCartValue ?? opts.finalCartValue; const products = transformG4ItemsToSPProducts(ecommerce, currency); trackAddToCart({ products, total_value: finalCartValue, currency }); }