OfferCatalog Schema Example for eCommerce Product-Listing / Category Page [2024]

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.

Leave a comment