Here’s an eCommerce example, that I found on StackOverflow:
<script type="application/ld+json">
{
"@context" : "http://schema.org",
"@type": "CollectionPage",
"name": "Shopify Apps",
"url": "https://sherpas.design/pages/shopify-apps",
"description": "We build apps that function and feel natively Shopify",
"image": "https://cdn.shopify.com/s/files/1/0085/8515/0560/files/logox2_500x500.png?v=1555661781",
"mainEntity" : {
"@type":"ItemList",
"itemListElement":[
{
"@type":"ListItem",
"position":1,
"url":"http://example.com/coffee_cake.html",
"name":"coffee cake"
},
{
"@type":"ListItem",
"position":2,
"url":"http://example.com/apple_pie.html",
"name":"apple pie"
},
{
"@type":"ListItem",
"position":3,
"url":"http://example.com/blueberry-pie.html"
"name":"blueberry pie"
}
]
}
}
</script>
(Thanks stackoverflow and sherpa.design)
You can add an image URL below “name” too^
Here’s an example with elatedLink and IsPartOf schema elements:
<script type="application/ld+json">
{
@context: "http://schema.org",
@type: "CollectionPage",
name: "Shopify Apps",
url: "https://sherpas.design/pages/shopify-apps",
description: "We build apps that function and feel natively Shopify",
image: "https://cdn.shopify.com/s/files/1/0085/8515/0560/files/logox2_500x500.png?v=1555661781",
isPartOf: {
@type: "WebSite",
name: "Sherpas Design",
url: "https://sherpas.design"
},
relatedLink: [
https: //sherpas.design/about-us,
https: //sherpas.design/contact
],
mainEntity: {
@type: "ItemList",
itemListElement: [{
@type: "ListItem",
position: 1,
url: "http://example.com/coffee_cake.html",
name: "Coffee Cake",
image: "http://example.com/images/coffee_cake.jpg"
}, {
@type: "ListItem",
position: 2,
url: "http://example.com/apple_pie.html",
name: "Apple Pie",
image: "http://example.com/images/apple_pie.jpg"
}, {
@type: "ListItem",
position: 3,
url: "http://example.com/blueberry-pie.html",
name: "Blueberry Pie",
image: "http://example.com/images/blueberry_pie.jpg"
}]
}
}
</script>
Here’s an example with a “description” and “brand” – please note – Brand should really be used with Product Schema:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "CollectionPage",
"name": "Shopify Apps",
"url": "https://sherpas.design/pages/shopify-apps",
"description": "We build apps that function and feel natively Shopify",
"image": "https://cdn.shopify.com/s/files/1/0085/8515/0560/files/logox2_500x500.png?v=1555661781",
"isPartOf": {
"@type": "WebSite",
"name": "Sherpas Design",
"url": "https://sherpas.design"
},
"relatedLink": [
"https://sherpas.design/about-us",
"https://sherpas.design/contact"
],
"mainEntity": {
"@type": "ItemList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"url": "http://example.com/coffee_cake.html",
"name": "Coffee Cake",
"image": "http://example.com/images/coffee_cake.jpg",
"description": "product is yummy",
"brand": "NanesBakes"
},
{
"@type": "ListItem",
"position": 2,
"url": "http://example.com/apple_pie.html",
"name": "Apple Pie",
"image": "http://example.com/images/apple_pie.jpg",
"description": "product is yummy",
"brand": "MumsCakesYo"
},
{
"@type": "ListItem",
"position": 3,
"url": "http://example.com/blueberry-pie.html",
"name": "Blueberry Pie",
"image": "http://example.com/images/blueberry_pie.jpg",
"description": "product is yummy",
"brand": "NanesBakes"
}
]
}
}
</script>
You can add products as the ‘listitems”, although I’m not 100% sure this is best practice:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "CollectionPage",
"name": "Shopify Apps",
"url": "https://sherpas.design/pages/shopify-apps",
"description": "We build apps that function and feel natively Shopify",
"image": "https://cdn.shopify.com/s/files/1/0085/8515/0560/files/logox2_500x500.png?v=1555661781",
"isPartOf": {
"@type": "WebSite",
"name": "Sherpas Design",
"url": "https://sherpas.design"
},
"relatedLink": [
"https://sherpas.design/about-us",
"https://sherpas.design/contact"
],
"mainEntity": {
"@type": "ItemList",
"itemListElement": [
{
"@type": "Product",
"position": 1,
"url": "http://example.com/coffee_cake.html",
"name": "Coffee Cake",
"image": "http://example.com/images/coffee_cake.jpg",
"description": "product is yummy",
"brand": "NanesBakes"
},
{
"@type": "Product",
"position": 2,
"url": "http://example.com/apple_pie.html",
"name": "Apple Pie",
"image": "http://example.com/images/apple_pie.jpg",
"description": "product is yummy",
"brand": "MumsCakesYo"
},
{
"@type": "Product",
"position": 3,
"url": "http://example.com/blueberry-pie.html",
"name": "Blueberry Pie",
"image": "http://example.com/images/blueberry_pie.jpg",
"description": "product is yummy",
"brand": "NanesBakes"
}
]
}
}
</script>
If you are going to embed “Product” schema within itemlist – validator suggests removing the “position” element:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "CollectionPage",
"name": "Shopify Apps",
"url": "https://sherpas.design/pages/shopify-apps",
"description": "We build apps that function and feel natively Shopify",
"image": "https://cdn.shopify.com/s/files/1/0085/8515/0560/files/logox2_500x500.png?v=1555661781",
"isPartOf": {
"@type": "WebSite",
"name": "Sherpas Design",
"url": "https://sherpas.design"
},
"relatedLink": [
"https://sherpas.design/about-us",
"https://sherpas.design/contact"
],
"mainEntity": {
"@type": "ItemList",
"itemListElement": [
{
"@type": "Product",
"url": "http://example.com/coffee_cake.html",
"name": "Coffee Cake",
"image": "http://example.com/images/coffee_cake.jpg",
"description": "product is yummy",
"brand": "NanesBakes"
},
{
"@type": "Product",
"url": "http://example.com/apple_pie.html",
"name": "Apple Pie",
"image": "http://example.com/images/apple_pie.jpg",
"description": "product is yummy",
"brand": "MumsCakesYo"
},
{
"@type": "Product",
"url": "http://example.com/blueberry-pie.html",
"name": "Blueberry Pie",
"image": "http://example.com/images/blueberry_pie.jpg",
"description": "product is yummy",
"brand": "NanesBakes"
}
]
}
}
</script>
Here’s is another example – but with more “Product” schema categories/elements – This is now pretty comprehensive, but we could also include “Review”review” “aggregateRating” and “PriceValidUntil”
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "CollectionPage",
"name": "Cakes",
"url": "https://food.com/all-cakes",
"description": "We build cakes that function and feel natively welsh",
"image": "https://cdn.shopify.com/s/files/1/0085/8515/0560/files/logox2_500x500.png?v=1555661781",
"isPartOf": {
"@type": "WebSite",
"name": "Sherpas Design",
"url": "https://sherpas.design"
},
"relatedLink": ["https://food.design/about-us", "https://food.design/contact"],
"mainEntity": {
"@type": "ItemList",
"itemListElement": [{
"@type": "Product",
"url": "http://example.com/coffee_cake.html",
"name": "Coffee Cake",
"image": "http://example.com/images/coffee_cake.jpg",
"description": "product is yummy",
"brand": "NanesBakes",
"sku": "sku1",
"manufacturer": "Manufacturer 1",
"offers": {
"@type": "Offer",
"price": "99.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
}, {
"@type": "Product",
"url": "http://example.com/apple_pie.html",
"name": "Apple Pie",
"image": "http://example.com/images/apple_pie.jpg",
"description": "product is yummy",
"brand": "MumsCakesYo",
"sku": "sku2",
"manufacturer": "Manufacturer 2",
"offers": {
"@type": "Offer",
"price": "99.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
}, {
"@type": "Product",
"url": "http://example.com/blueberry-pie.html",
"name": "Blueberry Pie",
"image": "http://example.com/images/blueberry_pie.jpg",
"description": "product is yummy",
"brand": "NanesBakes",
"sku": "sku3",
"manufacturer": "Manufacturer 3",
"offers": {
"@type": "Offer",
"price": "99.99",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
}]
}
}
</script>