I would like to add Schema.org Product information on my website (using Mirodata), but I would like to offer different sizes of the same product and provide different prices for each of them. I have one page per product at the moment, but I am very interested in setting up some sort of summary page so I am trying to avoid repeating the same thing over and over, and would definitely not like to hide anything with CSS.

I have read about the Offer type but I am certainly clueless as to what field(s) could be used for this purpose.

So, how could I provide different offers for different sizes of the same product while making it clear what each size costs?

2 Answers 2


If you want to provide the different sizes as structured data, you have to use a separate Product item for each size.

Size-related properties for Product (as of v2.1) are depth, height, and width. Any other type of size would have to be specified with additionalProperty.

Each Product would reference the corresponding Offer item(s) with offers.

How to avoid repeating values that are the same for the differently sized products?

(for example, if each Product has the same description value)

  • JSON-LD: there’s nothing you could use, you have to repeat the data
  • Microdata: you could use the itemref attribute
  • RDFa: you could use the property copying mechanism

Note that this affects only your markup. After parsing, it’s the same data as if you would have repeated it.

  • I think the itemref attribute might work just fine. I'll see if I can get this working. Thanks!
    – Juanpi
    Oct 11, 2015 at 2:08
  • @Juanpi: If you have problems implementing it, you could ask for help on Stack Overflow. And if you got this working, you could ask for a review of your markup on Code Review :)
    – unor
    Oct 11, 2015 at 2:16

The single way to accomplish it on the one URL (and all other described circumstances) is to use AggregateOffer. The Shema is:

` → AggregateOffer (highPrice == price 1; lowPrice == price 2, offerCount == 2)
    → offers
      → Offer 1 (price 1)
              → Product 1 (color 1)
    → offers
      → Offer 2 (price 2)
              → Product 2 (color 2)`

In other case you would have more then one Offer per URL, which isn't standard conform.

You COULD accomplish it on another way, if your products would have the same price, but with different prices, this is the only kind.

I wouldn't recommend to use itemref, because while you would get the relation between product and offer done, the standard to have a single product/offer pro URL would be still violated.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.