Skip to content

Commit

Permalink
Merge branch 'main' into LYNX-722
Browse files Browse the repository at this point in the history
  • Loading branch information
svera authored Feb 13, 2025
2 parents 6b1bf46 + 3df82c1 commit 4b5b2a4
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
5 changes: 5 additions & 0 deletions blocks/product-details/product-details.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import ProductQuantity from '@dropins/storefront-pdp/containers/ProductQuantity.
import ProductDescription from '@dropins/storefront-pdp/containers/ProductDescription.js';
import ProductAttributes from '@dropins/storefront-pdp/containers/ProductAttributes.js';
import ProductGallery from '@dropins/storefront-pdp/containers/ProductGallery.js';
import trackViewedProduct from '../../scripts/api/productTracking.js';

// Libs
import { setJsonLd } from '../../scripts/commerce.js';
Expand Down Expand Up @@ -220,6 +221,10 @@ export default async function decorate(block) {
pdpRendered.render(ProductAttributes, {})($attributes),
]);

if (product) {
trackViewedProduct(product.sku);
}

// Lifecycle Events
events.on('pdp/valid', (valid) => {
// update add to cart button disabled state based on product selection validity
Expand Down
23 changes: 23 additions & 0 deletions scripts/api/productTracking.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import { getSignInToken, performMonolithGraphQLQuery } from '../commerce.js';

const trackViewedProductMutation = `
mutation trackViewedProduct($sku: String!) {
trackViewedProduct(sku: $sku)
}
`;

/**
* Track a product was viewed
* @param sku SKU of the product viewed
* @returns {Promise<void>}
*/
export default async function trackViewedProduct(sku) {
const token = getSignInToken();

return performMonolithGraphQLQuery(
trackViewedProductMutation,
{ sku },
false,
token,
);
}

0 comments on commit 4b5b2a4

Please sign in to comment.