Как правильно разметить продукт в рамках предложения в рамках продукта? - PullRequest
3 голосов
/ 07 ноября 2019

Я получаю сообщения об ошибках консоли поиска Google на страницах продукта для веб-сайта, который я обслуживаю, и не знаю, как их устранить. Я получаю ошибку:

Одно из предложений или обзор или aggregateRating . 1011 *

Это достаточно просто для нормального исправления, однако я путаюсь с тем, что я уже предоставляю данные offers в другой части json ld. Структура моего продукта json ld:

Product{
    Offers{
        Product {}
        Product {}
    }
}

Где вложенные продукты - это разные варианты одного и того же продукта. У меня нет отзывов или оценок на сайте, поэтому мне остается offers, чтобы устранить ошибку. Однако консоль поиска Google говорит, что каждый из вложенных продуктов должен иметь данные offers, несмотря на тот факт, что они уже содержатся в структуре предложений.

Похоже, что это выльется в бесконечный цикл:Я добавляю предложения к вариантам продукта с типом товара itemOffered, который затем потребует другое предложение и т. Д.

Как я могу организовать свои структурированные данные так, чтобы они поддерживали иерархию моего продукта -> варианты, а также доставляли удовольствиеGoogle Search Console и удаление ошибок, которые я вижу?

Вот полный JSON-файл, который вы можете напрямую скопировать / вставить в Инструмент тестирования структурированных данных , чтобы увидеть точную проблему. описание.

{
   "@context":"http://schema.org/",
   "@type":"Product",
   "name":"Stripe Knit Sweater",
   "url":"http://foobar.gov/product",
   "image":[
      "http://foobar.gov/product/image1"
   ],
   "description":"this is a description",
   "brand":{
      "@type":"Thing",
      "name":"My Store"
   },
   "offers":[
      {
         "@type":"Offer",
         "availability":"http://schema.org/InStock",
         "price":"64.0",
         "priceCurrency":"USD",
         "url":"http://foobar.gov/product/url",
         "itemOffered":{
            "@type":"Product",
            /*ERROR IS HERE! : One of offers or review or aggregateRating should be provided.*/
            "image":"http://foobar.gov/product/url",
            "name":"Small / Blue/Black/Cream Stripe",
            "weight":{
               "@type":"QuantitativeValue",
               "unitCode":"lb",
               "value":"0.0 lb"
            },
            "url":"http://foobar.gov/product/url"
         }
      },
      {
         "@type":"Offer",
         "availability":"http://schema.org/InStock",
         "price":"64.0",
         "priceCurrency":"USD",
         "url":"http://foobar.gov/product/url",
         "itemOffered":{
            "@type":"Product",
            /*ERROR IS HERE! : One of offers or review or aggregateRating should be provided.*/
            "image":"http://foobar.gov/product/url",
            "name":"Medium / Blue/Black/Cream Stripe",
            "weight":{
               "@type":"QuantitativeValue",
               "unitCode":"lb",
               "value":"0.0 lb"
            },
            "url":"http://foobar.gov/product/url"
         }
      }
   ]
}

1 Ответ

0 голосов
/ 15 ноября 2019

На основании вашего примера кажется, что каждый Offer является вариантом Product. Если это так, я не уверен, что вложение варианта Product в вариант будет необходимо. Насколько я могу судить из вашего примера, единственным вложенным Product уникальным свойством является weight, которое можно применить к Offer с помощью additionalProperty.

Если отправлено таким способом в инструмент, все будет проверено:

{
  "@context": "http://schema.org/",
  "@type": "Product",
  "name":"Stripe Knit Sweater",
  "url":"http://foobar.gov/product",
  "image":[
      "http://foobar.gov/product/image1"
  ],
  "description":"this is a description",
  "brand":{
      "@type":"Thing",
      "name":"My Store"
  },
  "offers": [
      {
          "@type": "Offer",
          "availability":"http://schema.org/InStock",
          "price":"64.0",
          "image":"http://foobar.gov/product/url",
          "name":"Small / Blue/Black/Cream Stripe",
          "priceCurrency":"USD",
          "url":"http://foobar.gov/product/url",
          "additionalProperty": {
              "@type": "PropertyValue",
              "name": "Weight",
              "unitCode": "1b",
              "value": "0.0lb"
          }
    },
    {
        "@type": "Offer",
        "availability":"http://schema.org/InStock",
        "price":"64.0",
        "image":"http://foobar.gov/product/url",
        "name":"Medium / Blue/Black/Cream Stripe",
        "priceCurrency":"USD",
        "url":"http://foobar.gov/product/url",
        "additionalProperty": {
            "@type": "PropertyValue",
            "name": "Weight",
            "unitCode": "1b",
            "value": "0.0lb"
        }  
    }]
}

Документация схемы Googles в Offer гласит, что itemOffered является рекомендуемым полем и чтоэто «типично продукт», но не обязательно. Также стоит отметить, что вопреки документации, инструмент не предупреждает вас, если itemOffered не существует в Offer

, хотя schema.org предоставляет itemsOffered какопция, к сожалению, нет примера с вложенными Product s.

Вложение Products или Services может иметь смысл в следующих сценариях:

  • (Продукт) Салонный пакет
    • (Предложение) Комбинация ногтей / массажа
      • (ItemOffered)
        • (Сервис) Полировка ногтей и массаж шеи

или:

  • (Товар) Свитер
    • (Предложение) Голубой свитер
      • (ItemOffered)
        • (Товар) Голубой свитер
          • (Предложение) Синий свитер на Amazon - 49 долларов США
          • (Предложение) Синий свитер на eBay - 39 долларов США
    • (Предложение) Красный свитер ...

В любом случае, я думаю, ожидание имеет смысл. В вашем случае я считаю, что исправление будет состоять в том, чтобы не использовать вложенные Product s только для описания Offer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...