Expand my Community achievements bar.

Join us at Adobe Summit 2024 for the Coffee Break Q&A Live series, a unique opportunity to network with and learn from expert users, the Adobe product team, and Adobe partners in a small group, 30 minute AMA conversations.
SOLVED

New DataLayer for Product Comparison

Avatar

Level 4

I have several products in the shop and on a subpage it is possible to compare the products.

Like e.g.

handy-vergleich-seite-amazon.JPG

My question: What does the DataLayer have to look like in order to realize this?

Would such a DataLayer be possible?

digitalData.ProductComparison = {

ComparisonInfo: {

ProductName1: "xxx",

ProductName2: "xxx",

ProductName3: "xxx",

ProductName4: "xxx",

ComparisonDisplayAll:"5-4.5-5.5",

ComparisonBrandAll:"brand1_brand2_brand3",

ComparisonPriceAll:"price1_price2_price3",

}

}

Thx.

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

In place for going flat, It would be easy to create an array of product details i.e. somewhat similar to below...

digitalData = {

    comparisonInfo: [{

            productName: "xxx1",

            comparisonDisp: 5,

            comparisonBrand: "brand1",

            comparisonPrice: "price1"

        },

        {

            productName: "xxx2",

            comparisonDisp: 4.5,

            comparisonBrand: "brand2",

            comparisonPrice: "price2"

        },

        {

            productName: "xxx3",

            comparisonDisp: 5.5,

            comparisonBrand: "brand3",

            comparisonPrice: "price3"

        },

        {

            productName: "xxx4",

            comparisonDisp: 4,

            comparisonBrand: "brand4",

            comparisonPrice: "price4"

        }

    ]

}

Then use the forEach loop to iterate through it; change the key name in the code below to get value for different keys. eg. to get value for "comparisonBrand" comparisonBrand"

var foo = []

digitalData.comparisonInfo.forEach(function(e) {

  foo.push(e.comparisonBrand);
  console.log(foo);// remove this line when use in dtm.

});

Good Luck

View solution in original post

3 Replies

Avatar

Correct answer by
Community Advisor

In place for going flat, It would be easy to create an array of product details i.e. somewhat similar to below...

digitalData = {

    comparisonInfo: [{

            productName: "xxx1",

            comparisonDisp: 5,

            comparisonBrand: "brand1",

            comparisonPrice: "price1"

        },

        {

            productName: "xxx2",

            comparisonDisp: 4.5,

            comparisonBrand: "brand2",

            comparisonPrice: "price2"

        },

        {

            productName: "xxx3",

            comparisonDisp: 5.5,

            comparisonBrand: "brand3",

            comparisonPrice: "price3"

        },

        {

            productName: "xxx4",

            comparisonDisp: 4,

            comparisonBrand: "brand4",

            comparisonPrice: "price4"

        }

    ]

}

Then use the forEach loop to iterate through it; change the key name in the code below to get value for different keys. eg. to get value for "comparisonBrand" comparisonBrand"

var foo = []

digitalData.comparisonInfo.forEach(function(e) {

  foo.push(e.comparisonBrand);
  console.log(foo);// remove this line when use in dtm.

});

Good Luck

Avatar

Level 4

Hallo asheeshp,

Thanks for the help, I'll put it in this way and see what it becomes.

Thanks

Avatar

Community Advisor

Sure! Lmk if you need any help.