0

I'm trying to indicate multiple related products on a product page using schema.org microdata. But the child products are orphaned because they are not contained in the parent div. I tried using itemref but I must be using it incorrectly or it must be the wrong solution.

ALSO, I cannot easily create a wrapper div or use the body element to create the parent. My ideal solution would be one that leaves the page structure as-is, and somehow links the "child product" divs to the parent. I thought itemref would do that, but it doesn't appear to be working.

Here is example HTML.

<div id="main-product" itemscope itemtype="http://schema.org/Product">

  <div class="product-name">
      <h1 itemprop="name">Main Product</h1>
  </div>
</div>
<!-- END main-product div -->
<!-- START related-products div -->
<div class="related-products">
<ol class="products-list" id="related-products-list">
  <li class="item">
    <div class="product" itemprop="isRelatedTo" itemscope itemtype="http://schema.org/Product" itemref="main-product">
      <p class="product-name"><a itemprop="url" href="/some_product1.php"><span itemprop="name">Some Product 1</span></a></p>                
    </div>
  </li>
  <li class="item">
    <div class="product" itemprop="isRelatedTo" itemscope itemtype="http://schema.org/Product" itemref="main-product">
      <p class="product-name"><a itemprop="url" href="/some_product2.php"><span itemprop="name">Some Product 2</span></a></p>                
    </div>
   </li>
</ol>
</div>

The above HTML is simplified, but similar in structure to what's on my site and gives similar errors when submitted to validators.

E.g. http://webmaster.yandex.com/microtest.xml

Gives:

microdata
ERROR: unable to determine affiliation of these fields. There are two possible reasons: this fields are incorrectly placed or an orphan itemprop attribute is indicated
itemType = orphans
isrelatedto
product
itemType = http://schema.org/Product
url
href = /some_product1.php
text = Some Product 1
name = Some Product 1
isrelatedto
product
itemType = http://schema.org/Product
url
href = /some_product2.php
text = Some Product 2
name = Some Product 2

product
itemType = http://schema.org/Product
name = Main Product

The Google validator does not seem to show any errors, but the child products are not related to the parent product.

Buttle Butkus
  • 9,206
  • 13
  • 79
  • 120

1 Answers1

1

You don’t use itemref correctly.

You’d have to specify itemref on the main product instead of the related products:

<div itemref="product-1 product-2" itemscope itemtype="http://schema.org/Product">
  <span itemprop="name">Product</span>
</div>

<div id="product-1" itemprop="isRelatedTo" itemscope itemtype="http://schema.org/Product">
  <span itemprop="name">Product 1</span>
</div>

<div id="product-2" itemprop="isRelatedTo" itemscope itemtype="http://schema.org/Product">
  <span itemprop="name">Product 2</span>
</div>
Community
  • 1
  • 1
unor
  • 92,415
  • 26
  • 211
  • 360
  • I just don't understand why it is so hard to link elements like this just because they aren't contained in child DOM elements. It works perfectly otherwise. – Buttle Butkus Jan 27 '14 at 02:55