From 0ee7434188364dc230bbd034dc165a0f4850e3db Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Sat, 3 Jun 2023 11:16:32 +0700 Subject: Add gtag event on product detail --- src/core/utils/googleTag.js | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/core/utils/googleTag.js (limited to 'src/core') diff --git a/src/core/utils/googleTag.js b/src/core/utils/googleTag.js new file mode 100644 index 00000000..9faea39e --- /dev/null +++ b/src/core/utils/googleTag.js @@ -0,0 +1,32 @@ +export const gtagAddToCart = (variant, quantity) => { + gtag('event', 'add_to_cart', { + currency: 'IDR', + value: variant.price.priceDiscount * quantity, + items: [ + { + item_id: variant.id, + item_name: variant.name, + discount: variant.price.price - variant.price.priceDiscount, + item_brand: variant.manufacture?.name, + item_variant: variant.code || variant.id, + price: variant.price.price, + quantity + } + ] + }) +} + +export const gtagViewItem = (variants) => { + let items = [] + for (const variant of variants) { + items.push({ + item_id: variant.id, + item_name: variant.parent.name, + discount: variant.price.price - variant.price.priceDiscount, + item_brand: variant.manufacture?.name, + item_variant: variant.code || variant.id, + price: variant.price.price + }) + } + gtag('event', 'view_item', { items }) +} -- cgit v1.2.3 From 82194361b5213266aa0dd301ab259a89dde1964e Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 6 Jun 2023 09:08:13 +0700 Subject: Update googleTagViewItem param currency, value --- src/core/utils/googleTag.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/core') diff --git a/src/core/utils/googleTag.js b/src/core/utils/googleTag.js index 9faea39e..6b2c9dc2 100644 --- a/src/core/utils/googleTag.js +++ b/src/core/utils/googleTag.js @@ -28,5 +28,5 @@ export const gtagViewItem = (variants) => { price: variant.price.price }) } - gtag('event', 'view_item', { items }) + gtag('event', 'view_item', { currency: 'IDR', value: variants[0].price.priceDiscount, items }) } -- cgit v1.2.3 From a235f77530f0f51b3637b4b1096552fe3058ed69 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Fri, 16 Jun 2023 10:10:25 +0700 Subject: Add gtag begin_checkout and purchase event --- src/core/utils/googleTag.js | 73 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 60 insertions(+), 13 deletions(-) (limited to 'src/core') diff --git a/src/core/utils/googleTag.js b/src/core/utils/googleTag.js index 6b2c9dc2..6d7476bd 100644 --- a/src/core/utils/googleTag.js +++ b/src/core/utils/googleTag.js @@ -1,5 +1,40 @@ +const mapVariants = (variants) => { + return variants.map((variant) => { + const res = { + item_id: variant.id, + item_name: variant.parent.name, + discount: variant.price.price - variant.price.priceDiscount, + item_brand: variant.manufacture?.name, + item_variant: variant.code || variant.id, + price: variant.price.price + } + if (variant?.quantity > 0) { + res.quantity = variant.quantity + } + return res + }) +} + +const sumTotal = (variants) => { + let totalPurchase = variants.reduce((total, x) => total + x.price.price, 0) + let totalDiscount = variants.reduce( + (total, x) => total + (x.price.price - x.price.priceDiscount), + 0 + ) + let subtotal = totalPurchase - totalDiscount + let tax = Math.round(subtotal * 0.11) + let grandTotal = subtotal + tax + return { + totalPurchase: totalPurchase, + totalDiscount: totalDiscount, + subtotal: subtotal, + tax: tax, + grandTotal: Math.round(grandTotal) + } +} + export const gtagAddToCart = (variant, quantity) => { - gtag('event', 'add_to_cart', { + const param = { currency: 'IDR', value: variant.price.priceDiscount * quantity, items: [ @@ -13,20 +48,32 @@ export const gtagAddToCart = (variant, quantity) => { quantity } ] - }) + } + gtag('event', 'add_to_cart', param) } export const gtagViewItem = (variants) => { - let items = [] - for (const variant of variants) { - items.push({ - item_id: variant.id, - item_name: variant.parent.name, - discount: variant.price.price - variant.price.priceDiscount, - item_brand: variant.manufacture?.name, - item_variant: variant.code || variant.id, - price: variant.price.price - }) + const items = mapVariants(variants) + const param = { currency: 'IDR', value: variants[0].price.priceDiscount, items } + gtag('event', 'view_item', param) +} + +export const gtagBeginCheckout = (variants) => { + const items = mapVariants(variants) + const { subtotal } = sumTotal(variants) + const param = { currency: 'IDR', value: subtotal, items } + gtag('event', 'begin_checkout', param) +} + +export const gtagPurchase = (variants, shipping, transactionId) => { + const items = mapVariants(variants) + const { grandTotal } = sumTotal(variants) + const param = { + currency: 'IDR', + value: grandTotal, + transactionId, + shipping, + items } - gtag('event', 'view_item', { currency: 'IDR', value: variants[0].price.priceDiscount, items }) + gtag('event', 'purchase', param) } -- cgit v1.2.3 From d399212b942d8362e5cf6c76c996442f5dfe3b70 Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Fri, 30 Jun 2023 16:50:18 +0700 Subject: user activity --- src/core/components/layouts/BasicLayout.jsx | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/core') diff --git a/src/core/components/layouts/BasicLayout.jsx b/src/core/components/layouts/BasicLayout.jsx index 04b189f9..04b173fa 100644 --- a/src/core/components/layouts/BasicLayout.jsx +++ b/src/core/components/layouts/BasicLayout.jsx @@ -2,11 +2,28 @@ import dynamic from 'next/dynamic' import BasicFooter from '../elements/Footer/BasicFooter' import Image from 'next/image' import whatsappUrl from '@/core/utils/whatsappUrl' +import { useEffect, useState } from 'react' +import axios from 'axios' +import odooApi from '@/core/api/odooApi' const Navbar = dynamic(() => import('../elements/Navbar/Navbar')) const AnimationLayout = dynamic(() => import('./AnimationLayout')) const BasicLayout = ({ children }) => { + + console.log('chiled', children) + useEffect(() => { + const getIP = async () => { + const ip = await odooApi('GET', '/api/ip-address') + const data = { + page_title: document.title, + url: window.location.href, + ip: ip + } + axios.get(`/api/user-activity?page_title=${data.page_title}&url=${data.url}&ip=${data.ip}`) + } + getIP() + }, []) return ( <> -- cgit v1.2.3 From 8ce1e563305f8038f426d1d6198f1192d59bdc25 Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Fri, 30 Jun 2023 16:52:28 +0700 Subject: delete log --- src/core/components/layouts/BasicLayout.jsx | 2 -- 1 file changed, 2 deletions(-) (limited to 'src/core') diff --git a/src/core/components/layouts/BasicLayout.jsx b/src/core/components/layouts/BasicLayout.jsx index 04b173fa..70482e12 100644 --- a/src/core/components/layouts/BasicLayout.jsx +++ b/src/core/components/layouts/BasicLayout.jsx @@ -10,8 +10,6 @@ const Navbar = dynamic(() => import('../elements/Navbar/Navbar')) const AnimationLayout = dynamic(() => import('./AnimationLayout')) const BasicLayout = ({ children }) => { - - console.log('chiled', children) useEffect(() => { const getIP = async () => { const ip = await odooApi('GET', '/api/ip-address') -- cgit v1.2.3