البيانات المنظَّمة الخاصة بخيارات المنتجات (ProductGroup وProduct)

إنّ العديد من أنواع المنتجات، كالملابس والأحذية والأجهزة الإلكترونية والأمتعة، يتوفر للشراء بخيارات مختلفة (مثلاً بمقاسات أو ألوان أو مواد أساسية أو تصاميم مختلفة). لمساعدة Google في التعرّف بشكل أفضل على المنتجات التي تشكّل خيارات مختلفة من المنتج الأساسي نفسه، استخدِم الفئة ProductGroup مع السمات variesBy وhasVariant وproductGroupID المرتبطة بها لتجميع خيارات المنتج نفسه معًا، واستخدِم أيضًا بيانات Product المنظَّمة.

تتيح لك ProductGroup أيضًا تحديد سمات المنتج المشتركة بين جميع خيارات المنتج، مثل العلامة التجارية ومعلومات المراجعات، بالإضافة إلى السمات المحدّدة لكل من خيارات المنتج، ما يمكنه المساهمة في الحدّ من تكرار المعلومات.

كيفية إضافة البيانات المنظَّمة

البيانات المنظَّمة هي تنسيق موحّد لتقديم معلومات عن صفحة محدّدة وتصنيف محتواها. إذا كنت لا تزال مبتدئًا في مجال البيانات المنظَّمة، يمكنك الاطّلاع على المزيد من المعلومات حول آلية عمل البيانات المنظَّمة.

إليك نظرة عامة حول كيفية إنشاء بيانات منظَّمة واختبارها وإصدارها.

  1. أضِف السمات المطلوبة. استنادًا إلى التنسيق الذي تستخدمه، يمكنك معرفة مكان إدراج البيانات المنظَّمة في الصفحة.
  2. اتّبِع الإرشادات.
  3. تحقَّق من صحة الرمز باستخدام اختبار النتائج الغنية بصريًا، وأصلِح أي أخطاء ملحّة. ننصحك أيضًا بحلّ أي مشاكل غير ملحّة قد ترصدها الأداة لأنّ ذلك قد يساعدك على تحسين جودة بياناتك المنظَّمة (ولكن هذا الإجراء ليس ضروريًا لتكون بياناتك مؤهّلة للظهور ضمن النتائج الغنية بصريًا).
  4. انشر بعض الصفحات التي تتضمّن بياناتك المنظَّمة واستخدِم أداة فحص عنوان URL لاختبار الطريقة التي يرى بها محرّك بحث Google الصفحة. تأكَّد من إمكانية وصول محرّك بحث Google إلى صفحتك ومن عدم حظرها باستخدام ملف robots.txt أو علامة noindex أو متطلبات تسجيل الدخول. إذا بدت الصفحة جيدة، يمكنك أن تطلب من محرّك بحث Google إعادة الزحف إلى عناوين URL الخاصة بك.
  5. لإعلام محرّك بحث Google بأي تغييرات لاحقة، ننصحك بإرسال خريطة الموقع. يمكنك برمجة هذا الإجراء باستخدام Search Console Sitemap API.

أمثلة

بشكل عام، تستخدم مواقع التجارة الإلكترونية أسلوبَين أساسيَّين في التصميم لخيارات المنتجات. يوضّح هذا القسم كيفية إعداد ترميز خيارات المنتجات، استنادًا إلى أسلوب التصميم المستخدَم في موقعك الإلكتروني:

  • صفحة واحدة، تكون فيها جميع خيارات المنتج قابلة للاختيار على الصفحة نفسها بدون إعادة تحميل الصفحة (عادةً من خلال مَعلمات طلب البحث)
  • عدة صفحات، حيث يمكن الوصول إلى الخيارات المختلفة من المنتج نفسه من خلال صفحات مختلفة

موقع إلكتروني من صفحة واحدة

تستخدم الأمثلة على المواقع الإلكترونية ذات الصفحة الواحدة موقعًا إلكترونيًا مع افتراض ما يلي:

  • عندما لا يتم تحديد أي خيارات منتج، يتم عرض صفحة المنتج الأساسي على عنوان URL التالي: https://www.example.com/coat
  • يتم عرض الصفحة نفسها مع خيار محدّد للمنتج تم اختياره مسبقًا باستخدام أحد عناوين URL التالية:
    • https://www.example.com/coat?size=small&color=green
    • https://www.example.com/coat?size=small&color=lightblue
    • https://www.example.com/coat?size=large&color=lightblue
  • عندما يحدّد المستخدم خيارًا آخر للمنتج على الصفحة (باستخدام قائمتين منسدلتين للّون والمقاس)، تتغيّر الصورة والسعر ومعلومات التوفّر ديناميكيًا على الصفحة بدون إعادة تحميل الصفحة. ولا يتغيّر الترميز على الصفحة ديناميكيًا عندما يحدّد المستخدم خيارات مختلفة للمنتج.

مثال على صفحة واحدة: خيارات المنتج مدمَجة ضمن ProductGroup

في هذا المثال، تم دمج خيارات المنتج ضمن كيان ProductGroup ذي المستوى الأعلى باستخدام السمة hasVariant:

  • تتوفّر عناوين URL مستقلة لكل من ProductGroup وكيانات Offer الثلاثة (ضمن سمات Product). كان من الممكن أيضًا توفير عناوين URL ضمن Product بدلاً من ذلك.
  • تم تحديد عنوان ووصف مشترَكَين على مستوى السمة ProductGroup. وتم تحديد عناوين وأوصاف خيارات المنتج على مستوى السمة Product.
  • تم أيضًا تحديد السمات الأخرى المشتركة بين خيارات المنتج (مثل العلامة التجارية والتصميم والمادة الأساسية ومعلومات الجمهور) على مستوى السمة ProductGroup.
  • تحدّد السمة ProductGroup المواصفات المعرِّفة لخيارات المنتج باستخدام السمة variesBy.
  • تحدّد السمة ProductGroup رمز التخزين التعريفي الرئيسي باستخدام السمة productGroupID (ولا حاجة إلى تكرارها ضمن سمات Product باستخدام inProductGroupWithID).

ننصح باستخدام هذا الأسلوب لأنّه التمثيل الأكثر اختصارًا وملاءمةً لمجموعة منتجات والخيارات ضمنها.


<html>
  <head>
    <title>Wool winter coat</title>
    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org/",
        "@type": "ProductGroup",
        "name": "Wool winter coat",
        "description": "Wool coat, new for the coming winter season",
        "url": "https://www.example.com/coat",
        "brand": {
          "@type": "Brand",
          "name": "Good brand"
        },
        "audience": {
          "@type": "PeopleAudience",
          "suggestedGender": "unisex",
          "suggestedAge": {
            "@type": "QuantitativeValue",
            "minValue": 13,
            "unitCode": "ANN"
          }
        },
        "productGroupID": "44E01",
        "pattern": "striped",
        "material": "wool",
        "variesBy": [
          "https://schema.org/size",
          "https://schema.org/color"
        ],
        "hasVariant": [
          {
            "@type": "Product",
            "sku": "44E01-M11000",
            "gtin14": "98766051104214",
            "image": "https://www.example.com/coat_small_green.jpg",
            "name": "Small green coat",
            "description": "Small wool green coat for the winter season",
            "color": "Green",
            "size": "small",
            "offers": {
              "@type": "Offer",
              "url": "https://www.example.com/coat?size=small&color=green",
              "priceCurrency": "USD",
              "price": 39.99,
              "itemCondition": "https://schema.org/NewCondition",
              "availability": "https://schema.org/InStock",
              "shippingDetails": { "@id": "#shipping_policy" },
              "hasMerchantReturnPolicy": { "@id": "#return_policy" }
            }
          },
          {
            "@type": "Product",
            "sku": "44E01-K11000",
            "gtin14": "98766051104207",
            "image": "https://www.example.com/coat_small_lightblue.jpg",
            "name": "Small light blue coat",
            "description": "Small wool light blue coat for the winter season",
            "color": "light blue",
            "size": "small",
            "offers": {
              "@type": "Offer",
              "url": "https://www.example.com/coat?size=small&color=lightblue",
              "priceCurrency": "USD",
              "price": 39.99,
              "itemCondition": "https://schema.org/NewCondition",
              "availability": "https://schema.org/InStock",
              "shippingDetails": { "@id": "#shipping_policy" },
              "hasMerchantReturnPolicy": { "@id": "#return_policy" }
            }
          },
          {
            "@type": "Product",
            "sku": "44E01-X1100000",
            "gtin14": "98766051104399",
            "image": "https://www.example.com/coat_large_lightblue.jpg",
            "name": "Large light blue coat",
            "description": "Large wool light blue coat for the winter season",
            "color": "light blue",
            "size": "large",
            "offers": {
              "@type": "Offer",
              "url": "https://www.example.com/coat?size=large&color=lightblue",
              "priceCurrency": "USD",
              "price": 49.99,
              "itemCondition": "https://schema.org/NewCondition",
              "availability": "https://schema.org/BackOrder",
              "shippingDetails": { "@id": "#shipping_policy" },
              "hasMerchantReturnPolicy": { "@id": "#return_policy" }
            }
          }
        ]
      },
      {
        "@context": "https://schema.org/",
        "@type": "OfferShippingDetails",
        "@id": "#shipping_policy",
        "shippingRate": {
          "@type": "MonetaryAmount",
          "value": 2.99,
          "currency": "USD"
        },
        "shippingDestination": {
          "@type": "DefinedRegion",
          "addressCountry": "US"
        },
        "deliveryTime": {
          "@type": "ShippingDeliveryTime",
          "handlingTime": {
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 1,
            "unitCode": "DAY"
          },
          "transitTime": {
            "@type": "QuantitativeValue",
            "minValue": 1,
            "maxValue": 5,
            "unitCode": "DAY"
          }
        }
      },
      {
        "@context": "http://schema.org/",
        "@type": "MerchantReturnPolicy",
        "@id": "#return_policy",
        "applicableCountry": "US",
        "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
        "merchantReturnDays": 60,
        "returnMethod": "https://schema.org/ReturnByMail",
        "returnFees": "https://schema.org/FreeReturn"
      }
    ]
    </script>
  </head>
  <body>
  </body>
</html>

مثال على صفحة واحدة: خيارات المنتج منفصلة عن ProductGroup

هذه البنية شبيهة بالمثال السابق، إلا أنّه يتم تحديد خيارات المنتج بشكل منفصل عن السمة ProductGroup (أي لا تكون مضمَّنة فيها). قد يكون هذا الأسلوب أسهل بالنسبة إلى بعض أنظمة إدارة المحتوى (CMS) من ناحية إنشاء الخيارات.

<html>
  <head>
    <title>Wool winter coat</title>
    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org",
        "@type": "ProductGroup",
        "@id": "#coat_parent",
        "name": "Wool winter coat",
        "description": "Wool coat, new for the coming winter season",
        "url": "https://www.example.com/coat",
        ... // Other ProductGroup-level properties
        "brand": {
          "@type": "Brand",
          "name": "Good brand"
        },
        "productGroupID": "44E01",
        "variesBy": [
          "https://schema.org/size",
          "https://schema.org/color"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Product",
        "isVariantOf": { "@id": "#coat_parent" },
        "name": "Small green coat",
        "description": "Small wool green coat for the winter season",
        ... // Other Product-level properties
        "offers": {
          "@type": "Offer",
          "url": "https://www.example.com/coat?size=small&color=green",
          "price": 39.99
          ... // Other offer-level properties
        }
      },
      {
        "@context": "https://schema.org",
        "@type": "Product",
        "isVariantOf": { "@id": "#coat_parent" },
        "name": "Small dark blue coat",
        "description": "Small wool light blue coat for the winter season",
        ... // Other Product-level properties
        "offers": {
          "@type": "Offer",
          "url": "https://www.example.com/coat?size=small&color=lightblue",
          "price": 39.99
          ... // Other offer-level properties
        }
      },
      {
        "@context": "https://schema.org",
        "@type": "Product",
        "isVariantOf": { "@id": "#coat_parent" },
        "name": "Large dark blue coat",
        "description": "Large wool light blue coat for the winter season",
        ... // Other Product-level properties
        "offers": {
          "@type": "Offer",
          "url": "https://www.example.com/coat?size=large&color=lightblue",
          "price": 49.99
          ... // Other offer-level properties
        }
      }
    ]
    </script>
  </head>
  <body>
  </body>
</html>

موقع إلكتروني من عدة صفحات

تستخدم الأمثلة على المواقع الإلكترونية ذات الصفحات المتعددة موقعًا إلكترونيًا مع افتراض ما يلي:

  • يتوفّر خياران للّون الأزرق الفاتح بالمقاسين &quot;صغير&quot; و&quot;كبير&quot; على عنوانَي URL التاليَين:
    • https://www.example.com/coat/lightblue?size=small
    • https://www.example.com/coat/lightblue?size=large
  • يتوفّر خيار اللون الأخضر بالمقاس &quot;صغير&quot; فقط على https://www.example.com/coat/green?size=small.
  • تتيح كلتا الصفحتين "الانتقال" إلى الصفحات الأخرى (أي أنّه تتم إعادة تحميل الصفحة) من خلال أداة اختيار للّون في واجهة المستخدم.
  • يقسّم الموقع الإلكتروني الترميز المكافئ من الأمثلة الخاصة بالصفحة الواحدة على الصفحتين المذكورتَين.

يُرجى الملاحظة أنّه لا يتوفّر تعريف ProductGroup على الصفحة الواحدة فقط التي تتم الإشارة إليها من صفحة أخرى. والسبب هو أنّ السمة ProductGroup يجب أن تشير إلى السمات المشتركة ضمن خيارات المنتج، مثل العلامة التجارية والمادة الأساسية والفئة العمريّة. وهذا يعني أيضًا أنّه يجب تكرار تعريف ProductGroup الكامل على كل صفحة من صفحات خيارات المنتج.

مثال على صفحات متعدّدة: خيارات المنتج مدمَجة ضمن ProductGroup

هذا المثال مكافئ للمثال الأول الخاص بالصفحة الواحدة، وقد تم فيه دمج سمات Product الخاصة بخيارات المنتج ضمن كيان ProductGroup ذي المستوى الأعلى باستخدام السمة hasVariant: وتم تكرار تعريف ProductGroup على كلتا الصفحتين. يُرجى ملاحظة ما يلي:

  • ما مِن عنوان URL أساسي للسمة ProductGroup، لأنّه لا يتوفر عنوان URL واحد يمثّل ProductGroup.
  • تتضمّن السمة ProductGroup في كل صفحة تعريفًا كاملاً لخيارات المنتج المتاحة على الصفحة، بالإضافة إلى خيار منتج يشمل السمة url فقط للربط بخيارات المنتج المتاحة على الصفحة الأخرى، ما يساعد Google في العثور على خيارات المنتج.

الصفحة 1: خيارات المنتج للّون الأزرق الفاتح

يعرض المثال التالي البيانات المنظَّمة على الصفحة الأولى الخاصة بخيارات المنتج للّون الأزرق الفاتح:

<html>
  <head>
    <title>Wool winter coat, light blue color</title>
    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org/",
        "@type": "ProductGroup",
        "name": "Wool winter coat",
        "description": "Wool coat, new for the coming winter season",
        ... // Other ProductGroup-level properties
        "brand": {
          "@type": "Brand",
          "name": "Good brand"
        },
        "productGroupID": "44E01",
        "variesBy": [
          "https://schema.org/size",
          "https://schema.org/color"
        ],
        "hasVariant": [
          {
            "@type": "Product",
            "name": "Small light blue coat",
            "description": "Small wool light blue coat for the winter season",
            ... // Other Product-level properties
            "offers": {
              "@type": "Offer",
              "url": "https://www.example.com/coat/lightblue?size=small",
              "price": 39.99
              ... // Other offer-level properties
            }
          },
          {
            "@type": "Product",
            "name": "Large light blue coat",
            "description": "Large wool light blue coat for the winter season",
            ... // Other Product-level properties
            "offers": {
              "@type": "Offer",
              "url": "https://www.example.com/coat/lightblue?size=large",
              "price": 49.99
              ... // Other offer-level properties
            }
          },
          { "url": "https://www.example.com/coat/green?size=small" }
        ]
      }
    ]
    </script>
  </head>
  <body>
  </body>
</html>

الصفحة 2: خيار المنتج للّون الأخضر

يعرض المثال التالي البيانات المنظَّمة على الصفحة الثانية الخاصة بخيار المنتج للّون الأخضر:

<html>
  <head>
    <title>Wool winter coat, green color</title>
    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org/",
        "@type": "ProductGroup",
        "name": "Wool winter coat",
        "description": "Wool coat, new for the coming winter season",
        ... // Other ProductGroup-level properties
        "brand": {
          "@type": "Brand",
          "name": "Good brand"
        },
        "productGroupID": "44E01",
        "variesBy": [
          "https://schema.org/size",
          "https://schema.org/color"
        ],
        "hasVariant": [
          {
            "@type": "Product",
            "name": "Small green coat",
            "description": "Small wool green coat for the winter season",
            ... // Other Product-level properties
            "offers": {
              "@type": "Offer",
              "url": "https://www.example.com/coat/green?size=small",
              "price": 39.99
              ... // Other offer-level properties
            }
          },
          { "url": "https://www.example.com/coat/lightblue?size=small" },
          { "url": "https://www.example.com/coat/lightblue?size=large" }
        ]
      }
    ]
    </script>
  </head>
  <body>
  </body>
</html>

مثال على صفحات متعدّدة: خيارات المنتج منفصلة عن ProductGroup

هذه البنية شبيهة بالمثال السابق الخاص بالصفحات المتعدّدة، إلا أنّه يتم تحديد خيارات المنتج بشكل منفصل عن السمة ProductGroup (أي لا تكون مضمَّنة فيها). قد يكون هذا الأسلوب أسهل بالنسبة إلى بعض أنظمة إدارة المحتوى (CMS) من ناحية إنشاء الخيارات.

الصفحة 1: خيارات المنتج للّون الأزرق الفاتح

يعرض المثال التالي البيانات المنظَّمة على الصفحة الأولى الخاصة بخيارات المنتج للّون الأزرق الفاتح:


<html>
  <head>
    <title>Wool winter coat, lightblue color</title>
    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org/",
        "@type": "ProductGroup",
        "@id": "#coat_parent",
        "name": "Wool winter coat",
        "description": "Wool coat, new for the coming winter season",
        "brand": {
          "@type": "Brand",
          "name": "Good brand"
        },
        "audience": {
          "@type": "PeopleAudience",
          "suggestedGender": "unisex",
          "suggestedAge": {
            "@type": "QuantitativeValue",
            "minValue": 13,
            "unitCode": "ANN"
          }
        },
        "productGroupID": "44E01",
        "pattern": "striped",
        "material": "wool",
        "variesBy": [
          "https://schema.org/size",
          "https://schema.org/color"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Product",
        "isVariantOf": { "@id": "#coat_parent" },
        "sku": "44E01-K11000",
        "gtin14": "98766051104207",
        "image": "https://www.example.com/coat_lightblue.jpg",
        "name": "Small light blue coat",
        "description": "Small wool light blue coat for the winter season",
        "color": "light blue",
        "size": "small",
        "offers": {
          "@type": "Offer",
          "url": "https://www.example.com/coat/lightblue?size=small",
          "priceCurrency": "USD",
          "price": 39.99,
          "itemCondition": "https://schema.org/NewCondition",
          "availability": "https://schema.org/InStock",
          "shippingDetails": { "@id": "#shipping_policy" },
          "hasMerchantReturnPolicy": { "@id": "#return_policy" }
        }
      },
      {
        "@context": "https://schema.org",
        "@type": "Product",
        "isVariantOf": { "@id": "#coat_parent" },
        "sku": "44E01-X1100000",
        "gtin14": "98766051104399",
        "image": "https://www.example.com/coat_lightblue.jpg",
        "name": "Large light blue coat",
        "description": "Large wool light blue coat for the winter season",
        "color": "light blue",
        "size": "large",
        "offers": {
          "@type": "Offer",
          "url": "https://www.example.com/coat/lightblue?size=large",
          "priceCurrency": "USD",
          "price": 49.99,
          "itemCondition": "https://schema.org/NewCondition",
          "availability": "https://schema.org/BackOrder",
          "shippingDetails": { "@id": "#shipping_policy" },
          "hasMerchantReturnPolicy": { "@id": "#return_policy" }
        }
      },
      {
        "@context": "https://schema.org",
        "@type": "Product",
        "isVariantOf": { "@id": "#coat_parent" },
        "url": "https://www.example.com/coat/green?size=small"
      },
      {
        "@context": "https://schema.org/",
        "@type": "OfferShippingDetails",
        "@id": "#shipping_policy",
        "shippingRate": {
          "@type": "MonetaryAmount",
          "value": 2.99,
          "currency": "USD"
        },
        "shippingDestination": {
          "@type": "DefinedRegion",
          "addressCountry": "US"
        },
        "deliveryTime": {
          "@type": "ShippingDeliveryTime",
          "handlingTime": {
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 1,
            "unitCode": "DAY"
          },
          "transitTime": {
            "@type": "QuantitativeValue",
            "minValue": 1,
            "maxValue": 5,
            "unitCode": "DAY"
          }
        }
      },
      {
        "@context": "https://schema.org/",
        "@type": "MerchantReturnPolicy",
        "@id": "#return_policy",
        "applicableCountry": "US",
        "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
        "merchantReturnDays": 60,
        "returnMethod": "https://schema.org/ReturnByMail",
        "returnFees": "https://schema.org/FreeReturn"
      }
    ]
    </script>
  </head>
  <body>
  </body>
</html>

الصفحة 2: خيار المنتج للّون الأخضر

يعرض المثال التالي البيانات المنظَّمة على الصفحة الثانية الخاصة بخيار المنتج للّون الأخضر:


<html>
  <head>
    <title>Wool winter coat, green color</title>
    <script type="application/ld+json">
    [
      {
        "@context": "https://schema.org/",
        "@type": "ProductGroup",
        "@id": "#coat_parent",
        "name": "Wool winter coat",
        "description": "Wool coat, new for the coming winter season",
        "brand": {
          "@type": "Brand",
          "name": "Good brand"
        },
        "audience": {
          "@type": "PeopleAudience",
          "suggestedGender": "unisex",
          "suggestedAge": {
            "@type": "QuantitativeValue",
            "minValue": 13,
            "unitCode": "ANN"
          }
        },
        "productGroupID": "44E01",
        "pattern": "striped",
        "material": "wool",
        "variesBy": [
          "https://schema.org/size",
          "https://schema.org/color"
        ]
      },
      {
        "@context": "https://schema.org",
        "@type": "Product",
        "@id": "#small_green",
        "isVariantOf": { "@id": "#coat_parent" },
        "sku": "44E01-M11000",
        "gtin14": "98766051104214",
        "image": "https://www.example.com/coat_green.jpg",
        "name": "Small green coat",
        "description": "Small wool green coat for the winter season",
        "color": "green",
        "size": "small",
        "offers": {
          "@type": "Offer",
          "url": "https://www.example.com/coat/green?size=small",
          "priceCurrency": "USD",
          "price": 39.99,
          "itemCondition": "https://schema.org/NewCondition",
          "availability": "https://schema.org/InStock",
          "shippingDetails": { "@id": "#shipping_policy" },
          "hasMerchantReturnPolicy": { "@id": "#return_policy" }
        }
      },
      {
        "@context": "https://schema.org",
        "@type": "Product",
        "isVariantOf": { "@id": "#coat_parent" },
        "url": "https://www.example.com/coat/lightblue?size=small"
      },
      {
        "@context": "https://schema.org",
        "@type": "Product",
        "isVariantOf": { "@id": "#coat_parent" },
        "url": "https://www.example.com/coat/lightblue?size=large"
      },
      {
        "@context": "https://schema.org/",
        "@type": "OfferShippingDetails",
        "@id": "#shipping_policy",
        "shippingRate": {
          "@type": "MonetaryAmount",
          "value": "2.99",
          "currency": "USD"
        },
        "shippingDestination": {
          "@type": "DefinedRegion",
          "addressCountry": "US"
        },
        "deliveryTime": {
          "@type": "ShippingDeliveryTime",
          "handlingTime": {
            "@type": "QuantitativeValue",
            "minValue": 0,
            "maxValue": 1,
            "unitCode": "DAY"
          },
          "transitTime": {
            "@type": "QuantitativeValue",
            "minValue": 1,
            "maxValue": 5,
            "unitCode": "DAY"
          }
        }
      },
      {
        "@context": "https://schema.org/",
        "@type": "MerchantReturnPolicy",
        "@id": "#return_policy",
        "applicableCountry": "US",
        "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
        "merchantReturnDays": 60,
        "returnMethod": "https://schema.org/ReturnByMail",
        "returnFees": "https://schema.org/FreeReturn"
      }
    ]
    </script>
  </head>
  <body>
  </body>
</html>

الإرشادات

ليصبح ترميز خيارات المنتجات مؤهلاً للاستخدام في &quot;بحث Google&quot;، عليك اتّباع الإرشادات التالية:

الإرشادات الفنية

  • يجب أن يتوفّر لكل خيار منتج معرّف فريد في ترميز البيانات المنظّمة الخاص به (على سبيل المثال، باستخدام إحدى السمتين sku أو gtin).
  • يجب أن يتوفّر لكل مجموعة منتجات معرّف فريد في ترميز البيانات المنظّمة الخاص به يتم تحديده باستخدام السمة inProductGroupWithID في سمات Product الخاصة بخيارات المنتج، أو باستخدام السمة productGroupID في السمة ProductGroup.
  • احرِص على إضافة بيانات Product المنظَّمة بالإضافة إلى سمات خيارات المنتج باتّباع قائمة السمات المطلوبة لبيانات التاجر (أو مقتطفات المنتجات).
  • بالنسبة إلى المواقع الإلكترونية ذات الصفحة الواحدة، يجب أن يتوفّر عنوان URL أساسي واحد مستقل فقط لسمة ProductGroup الشاملة التي تنتمي إليها جميع خيارات المنتج. ويكون هذا العنوان عادةً هو الجزء الأساسي من عنوان URL الذي يؤدي إلى إحدى الصفحات بدون تحديد خيار المنتج مسبقًا، مثل: https://www.example.com/winter_coat.
  • بالنسبة إلى المواقع الإلكترونية ذات الصفحات المتعدّدة، يجب أن يتوفّر لكل صفحة ترميز كامل ومستقل للكيانات المعرَّفة على الصفحة (أي أنّ الكيانات غير المضمَّنة على الصفحة يجب ألّا تكون أساسية لفهم الترميز على تلك الصفحة بشكل كامل).
  • يجب أن تتوفّر في الموقع الإلكتروني إمكانية التحديد المسبق لكل خيار منتج بشكل مباشر من خلال عنوان URL مستقل (باستخدام مَعلمات طلب البحث لعنوان URL)، مثل https://www.example.com/winter_coat/size=small&color=green. ويتيح ذلك لمحرّك بحث Google الزحف إلى كل خيار منتج والتعرّف عليه. تشمل عملية التحديد المسبق لكل خيار منتج عرض المعلومات الصحيحة المتعلّقة بالصورة والسعر والتوفّر، بالإضافة إلى السماح للمستخدم بإضافة خيار المنتج إلى سلة التسوق.
  • إذا كنت تاجرًا تجري حسينات على المحتوى بهدف عرضه ضمن جميع أنواع نتائج التسوّق، ننصحك بوضع بيانات Product المنظّمة إلى محتوى HTML الأولي للحصول على أفضل النتائج.
  • بالنسبة إلى ترميز Product الذي تم إنشاؤه بواسطة JavaScript: عليك الانتباه إلى أنّ الترميز الذي يتم إنشاؤه ديناميكيًا قد يجعل عمليات زحف التسوّق أقل تكرارًا وأقل موثوقية، ما قد يشكل مشكلة في المحتوى السريع التغيّر، مثل توفّر المنتج وسعره. إذا كنت تستخدم JavaScript لإنشاء ترميز Product، تأكَّد مِن توفّر موارد حوسبة كافية في الخادم للتعامل مع عدد الزيارات المتزايد من Google.

تعريفات أنواع البيانات المنظّمة

يجب تضمين السمات المطلوبة لكي تصبح البيانات المنظَّمة مؤهَّلة للاستخدام في &quot;بحث Google&quot;. ويمكنك أيضًا تضمين السمات التي يُنصح بها لإضافة المزيد من المعلومات المتعلّقة بخيارات المنتجات، ما يؤدي إلى تحسين تجربة المستخدم.

ProductGroup

يتعرَّف Google على سمات ProductGroup التالية. يتوفّر تعريف ProductGroup الكامل على schema.org/ProductGroup. عند ترميز المحتوى الخاص بك باستخدام معلومات خيارات المنتجات، استخدِم السمات التالية الخاصة بالسمة ProductGroup.

السمات المطلوبة
name

Text

اسم ProductGroup (مثلاً، "معطف شتوي من الصوف"). احرِص على أن تكون أسماء خيارات المنتج في كل عنصر Product أكثر تفصيلاً (على سبيل المثال، "معطف شتوي من الصوف - أخضر، مقاس صغير")، استنادًا إلى السمات المعرِّفة لكل خيار منتج. راجِع المستندات المتعلّقة بالمنتجات لمزيد من التفاصيل.

السمات التي يُنصح بها
aggregateRating

AggregateRating

تشكّل سمة aggregateRating مدمَجة للسمة ProductGroup (التي تمثّل جميع خيارات المنتج)، إذا كان ذلك منطبقًا. اتّبِع إرشادات مقتطفات المراجعة وقائمة سمات AggregateRating المطلوبة وتلك التي يُنصح بها.

brand

Brand

تمثّل معلومات العلامة التجارية الخاصة بـ ProductGroup (تكون هي نفسها في جميع خيارات المنتج)، إذا كان ذلك منطبقًا. لمزيد من التفاصيل حول brand، راجِع المستندات المتعلّقة بالمنتجات.

brand.name

Brand

تمثّل اسم العلامة التجارية لـ ProductGroup (يكون الاسم هو نفسه في جميع خيارات المنتج). إذا كنت ستضيف العلامة التجارية على مستوى ProductGroup، لا تحتاج إلى إضافتها مجددًا على مستوى Product. لمزيد من التفاصيل حول brand، راجِع المستندات المتعلّقة بالمنتجات.

description

Text أو TextObject

تمثل هذه السمة وصف ProductGroup، مثلاً "معطف شتوي من الصوف للأجواء الباردة". احرص على أن يكون الوصف الخاص بخيار المنتج أكثر تفصيلاً، ومن المفترض أن يتضمّن كلمات معرِّفة لخيار المنتج (مثل اللون أو المقاس أو المادة الأساسية).

.
hasVariant

Product

هي سمة Product مدمَجة تشكّل أحد خيارات السمة ProductGroup، إذا كان ذلك منطبقًا. تشمل ProductGroup عادةً عدة سمات Product مدمَجة خاصة بخيارات المنتج.

بدلاً من ذلك، يمكن أن تشير سمة Product الخاصة بخيارات المنتج إلى ProductGroup الأساسية باستخدام السمة isVariantOf في السمة Product.

productGroupID

Text

تمثّل معرّف مجموعة المنتجات (يُعرف أيضًا باسم رمز التخزين التعريفي الرئيسي). يجب توفير هذا المعرّف للسمة ProductGroup، أو بدلاً من ذلك، يجب استخدام السمة inProductGroupWithID لخيارات المنتج في السمة ProductGroup. إذا وفّرت المعرّف لكل من السمة ProductGroup وسمات Product الخاصة بخيارات المنتج، يجب أن تكون القيمتان متطابقتَين.

review

Review

تمثّل سمة review مدمَجة لـ ProductGroup، إذا كان ذلك منطبقًا. اتّبِع إرشادات مقتطفات المراجعة وقائمة سمات المراجعة المطلوبة وتلك التي يُنصح بها.

url

URL

بالنسبة إلى المواقع الإلكترونية ذات الصفحة الواحدة فقط: تمثّل هذه السمة عنوان URL (بدون أدوات تحديد خيارات المنتج) حيث تقع السمة ProductGroup، إذا كان ذلك منطبقًا. لا تستخدم هذه السمة للمواقع الإلكترونية ذات الصفحات المتعدّدة.

variesBy

DefinedTerm

تمثّل هذه السمة جوانب الاختلاف في خيارات المنتج ضمن ProductGroup (مثل المقاس أو اللون)، إذا كان ذلك منطبقًا. أشِر إلى هذه السمات المعرِّفة لخيارات المنتجات من خلال عنوان URL الكامل الخاص بها على Schema.org (مثلاً https://schema.org/color). في ما يلي السمات المتوافقة:

  • https://schema.org/color
  • https://schema.org/size
  • https://schema.org/suggestedAge
  • https://schema.org/suggestedGender
  • https://schema.org/material
  • https://schema.org/pattern

تحديد المشاكل وحلّها

إذا كنت تواجه مشكلة في تطبيق البيانات المنظَّمة أو تصحيح الأخطاء فيها، إليك بعض المراجع التي قد تساعدك.