Below is an example for a webpage which lists different soccer balls for sale:
<script type="application/ld+json">
{
@context: "https://schema.org/",
@type: "OfferCatalog",
name: "Cakes for Sale",
description: "A catalog of cakes offered by our online store",
url: "https://www.example.com/all-cakes",
numberOfItems: 2,
itemListOrder: "https://schema.org/ItemListOrderAscending",
itemListElement: [{
@type: "Offer",
itemOffered: {
@type: "Product",
name: "Cake1",
image: "https://www.example.com/images/product1.jpg",
description: "Description of cake 1",
sku: "sku1",
manufacturer: "Manufacturer 1",
brand: "Brand 1",
offers: {
@type: "Offer",
price: "9.99",
priceCurrency: "USD",
availability: "https://schema.org/InStock"
}
}
}, {
@type: "Offer",
itemOffered: {
@type: "Product",
name: "Product 2",
image: "https://www.example.com/images/product2.jpg",
description: "Description of product 2",
sku: "sku2",
manufacturer: "Manufacturer 2",
brand: "Brand 2",
offers: {
@type: "Offer",
price: "199.99",
priceCurrency: "USD",
availability: "https://schema.org/InStock"
}
}
}]
}
</script>
once you’ve done your own code, you can check it using the schema testing sheet – https://docs.google.com/spreadsheets/d/1dDqJ9_qrTVoJOZRxieJDp9XE3Q1TCq4ixNVudVtgp2M/edit#gid=0
Here’s another example:
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "OfferCatalog",
"name": "Competition Tennis Balls",
"description": "High-quality competition tennis balls for professional and amateur players.",
"url": "https://www.example.com/tennis-la/balls/competition-tennis-balls.html",
"itemListElement": [
{
"@type": "Offer",
"itemOffered": {
"@type": "Product",
"name": "Pro Tournament Tennis Ball",
"image": "https://www.example.com/images/pro_tournament_tennis_ball.jpg",
"description": "Premium quality tennis ball designed for professional tournaments.",
"brand": "example Pro",
"sku": "NWPRO123",
"offers": {
"@type": "Offer",
"priceCurrency": "USD",
"price": "20.00",
"availability": "http://schema.org/InStock",
"url": "https://www.example.com/pro-tournament-tennis-ball.html"
}
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Product",
"name": "Championship Level Tennis Ball",
"image": "https://www.example.com/images/championship_level_tennis_ball.jpg",
"description": "High-performance tennis ball suitable for championship level play.",
"brand": "Example La",
"sku": "NWCHAMP456",
"offers": {
"@type": "Offer",
"priceCurrency": "USD",
"price": "15.00",
"availability": "http://schema.org/InStock",
"url": "https://www.example.com/championship-level-tennis-ball.html"
}
}
}
]
}
</script>
Instead of Offercatalog, you may want to consider using CollectionPage schema…
Here’s an example of CollectionPage Schema for an eCommerce category page:
<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>
More info on CollectionPage Schema for eCommerce in my other blog post here.