2015-09-14 34 views
11

mam problem: Structured Narzędzie danych Testowanie Google daje mi błąd:Właściwość "position" wymagana dla ItemList z pozycjami listy produktów?

Tag position doesn't exist. It's required.

Tag position doesn't exist

dodaję go do znaczników. Niż otrzymuję ten błąd:

Position property is not valid for an object of type Product

Position property is not valid for an object of type Product

Tu jest mój znaczników:

<table id="sale_table" itemscope="" itemtype="http://schema.org/ItemList"> 
    <tbody> 
      <tr itemprop="itemListElement" itemscope="" itemtype="http://schema.org/Product"> 
       <td class="sale_art_td" itemprop="productID">10496278</td> 
       <td class="sale_brand_td" itemprop="brand"><span itemprop="name ">--</span></td> 
       <td class="sale_name_td" itemprop="name">10496278/Крышка трамблера Daewoo Nexia,Espero DD</td> 
       <td class="sale_am_td">1.00</td> 
       <td class="sale_price_td" itemprop="offers" itemscope="" itemtype="http://schema.org/Offer"><meta itemprop="priceCurrency" content="RUR"><span itemprop="price">341.50</span></td> 
       <td class="sale_buy_td"><a href="javascript:void(0);" class="sale_buy_link" data-id="63455914" data-query="10496278">Купить</a><!--<img src="/upload/badge/sale_cart.png" />--></td> 
       <td class="hidden"> 
        <meta itemprop="url" content="/partsearch/?q=10496278"> 
             <span itemprop="description">Распродажа: 10496278/Крышка трамблера Daewoo Nexia,Espero DD по цене 341.50</span> 
       </td> 
      </tr> 
        <tr itemprop="itemListElement" itemscope="" itemtype="http://schema.org/Product"> 
       <td class="sale_art_td" itemprop="productID">76202sx0a12</td> 
       <td class="sale_brand_td" itemprop="brand"><span itemprop="name ">HONDA</span></td> 
       <td class="sale_name_td" itemprop="name">76202SX0A12</td> 
       <td class="sale_am_td">1.00</td> 
       <td class="sale_price_td" itemprop="offers" itemscope="" itemtype="http://schema.org/Offer"><meta itemprop="priceCurrency" content="RUR"><span itemprop="price">704.00</span></td> 
       <td class="sale_buy_td"><a href="javascript:void(0);" class="sale_buy_link" data-id="63456060" data-query="76202sx0a12">Купить</a><!--<img src="/upload/badge/sale_cart.png" />--></td> 
       <td class="hidden"> 
        <meta itemprop="url" content="/partsearch/?q=76202sx0a12"> 
             <span itemprop="description">Распродажа: 76202SX0A12 по цене 704.00</span> 
       </td> 
      </tr> 
    </tbody> 
</table> 
+0

To już rok, a my nadal nie wiem co to jest. – OdraEncoded

Odpowiedz

2

To nie jest błąd w kodzie. Oznacza to tylko, że Google nie wyświetli określonego Rich Snippet (lub podobnej funkcji), chyba że podasz tę właściwość.

Jednak position property nie jest zdefiniowany dla Product type, więc nie ma to żadnego sensu.

Wygląda na to, że jest to nowa funkcja danych strukturalnych od Google, która nie jest jeszcze udokumentowana, ponieważ zawiera link do strony 404: List Page Carousels. Może to praca w toku i nie chcieli jeszcze publikować czeku w swoim narzędziu testowym.

Po prostu zignorowałem to na razie.

+0

Słowo "wymagane", co mnie dezorientuje =) – murrometz

3

myślę, że to jest błąd realizacja na stronie Google spowodowane przez brak wyraźnej dokumentacji:

https://schema.org/itemListElement wyraźnie stwierdza

Existing entities are best for a simple, unordered list of existing things in your data. ListItem is used with ordered lists when you want to provide additional context about the element in that list or when the same item might be in different places in different lists.

Note: The order of elements in your mark-up is not sufficient for indicating the order or elements. Use ListItem with a 'position' property in such cases.

Jednocześnie to mówi Wartości oczekiwane jest jednym z tych typów to:

  • Listematum
  • Tekst
  • Thing

=> Oznacza to dorozumiany, że element pozycja mogą być wymagane tylko dla posortowanych list, który z kolei popyt, że element Thing jest zawarty wewnątrz listitem elementu , który oferuje itemprop pozycja.

Oznacza to również dorozumiany że jeśli ItemListElement jest Tekst lub Thing, lista powinna być uważana nieuporządkowana.

Jest to jedyny sposób, w jaki dokumentacja ma sens. Zakładam, że brakowało niejawnego połączenia.

Sądzę więc, że odpowiednie działania jest to zgłosić do Structured danych narzędzi testowania i żyć z ostrzeżeniami na razie lub gniazdem Produktu wewnątrz listitem elementu jako obejście.

+1

Sam próbowałem obejścia problemu, ale to nie działa: - Jeśli zagnieżdżę produkt wewnątrz elementu ListItem, WMT narzeka na zły obiekt Typ - Jeśli Używam _Thing_ it complains _ Właściwość xyz nie jest rozpoznawana przez Google dla obiektu typu Thing_. - To samo się stanie, jeśli spróbuję _additionalType: \t http://schema.org/Product_ z elementem _ListItem_ lub _Thing_. ==> Nie mogę znaleźć prawidłowego kodowania dla listy _Product. –

+0

Mam ten sam problem. Ale nie jestem pewien, czy jest to błąd w narzędziu do testowania czy coś innego. Jeśli jest to błąd, to czy Google go naprawi? Widzę, że ten post ma ponad rok, ale wciąż jest tam błąd. – Majid

+0

2017 i nadal nie jest naprawiony ... – SublymeRick

1

spróbować

'@type': 'ListItem', 
'position': 1, 
'item':{ 
    '@type': 'Product', 
... product props 
} 
1

Z mojego testowania malefique jest na właściwym rozwiązaniem.

Ten kod pełni potwierdza pomocą Structured Data testing tool:

{ 
    "@context": "http://schema.org", 
    "@type": "ItemList", 
    "itemListOrder": "http://schema.org/ItemListOrderDescending", 
    "itemListElement": [ 
     { 
      "@type": "ListItem", 
      "position": 1, 
      "item": { 
       "@type": "Product", 
       "name": "My product", 
       "url": "www.example.com", 
       "offers": { 
        "@type": "Offer", 
        "availability": "http://schema.org/InStock", 
        "price": "100.00", 
        "priceCurrency": "AUD" 
       } 
      } 
     } 
    ] 
}