تستند خلاصات كتالوجات المأكولات إلى كيانات DataFeed
على schema.org. تتكون خلاصة كتالوج الطعام من تفاصيل منطقة المطعم مثل عنوان المطعم وقائمة الطعام والموقع، بالإضافة إلى تفاصيل خدمة المطعم مثل رسوم التوصيل ومناطق التوصيل والعناصر الأخرى على النحو المحدّد أدناه.
تحتوي السمة DataFeed
على مجموعة من العناصر، ويمثّل كل عنصر عنصرًا واحدًا يتم التعبير عنه في مفردات schema.org. يمكنك استخدام النوع DataFeed
لنشر كل بياناتك المنظَّمة بتنسيق JSON-LD.
للحصول على معلومات عن كيفية استخدام هذه المواصفات لإنشاء خلاصاتك، يمكنك الاطّلاع على المقالة نظرة عامة على دمج المستودع.
تنسيقات التاريخ والوقت
يستند الترميز DateTime
إلى نوع schema.org،
ويجب أن يتّبع تنسيق ISO 8601، ما لم يُذكر خلاف ذلك، ويتضمن التاريخ والوقت والمنطقة الزمنية. استخدم البنية التالية لـ DateTime
:
// DateTime format: YYYY-MM-DDTHH:MM:SS[∓HH:MM|Z]
مثال:
2017-05-01T06:30:00-07:00 // UTC minus 7 hours
2017-05-01T06:30:00Z // UTC time zone. The optional "Z" suffix represents the UTC time zone.
Time
هو التوقيت المحلي للمنطقة الزمنية لمطعم أو خدمة معيّنة، ويستند أيضًا إلى نوع schema.org، ويجب أيضًا اتّباع تنسيق ISO 8601. يستخدم الوقت الصيغة التالية:
// Time format: THH:MM:SS
مثال:
T08:08:00 // 8:08 AM
عليك مراعاة ما يلي عند تحديد DateTime
أو Time
:
- وتكون البادئة "T" قبل الوقت جزءًا من التنسيق وهي مطلوبة.
- يجب تحديد المنطقة الزمنية لـ
DATETIME
. وهي ليست مطلوبة للسمةTIME
. - يجب تحديد الوقت بالتوقيت المحلي للمطعم أو الخدمة.
ظرف
يجب أن يتضمّن رمز البدء لأي خلاصة لكتالوج الطعام قسم "مغلف".
"المغلف" هو بنية المستوى الأعلى لكل خلاصة، ويجب أن يكون DataFeed
مع السمات التالية:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@context |
عنوان URL | مطلوبة | السياق قيد الاستخدام، ويكون عادةً "http://schema.googleapis.com". |
@type |
النص | مطلوبة | وتكون دائمًا "DataFeed" (خلاصة البيانات). |
dateModified |
DateTime |
مطلوبة |
تمثّل هذه السمة آخر تعديل التاريخ والوقت بتنسيق ISO_OFFSET_DATE_TIME تم تعديل العناصر فيه في هذه الخلاصة. في حال عدم توفّر هذا الحقل، يُفترض أن يكون وقت التحديث هو الوقت الذي يتم فيه استلام الرسالة الفورية (أو يتم الزحف إليها) على خوادم Google. ننصحك بشدة بتنفيذ هذا الإجراء إذا كنت تستخدم وظيفتَي الدفع والزحف معًا. ويجب تحديد هذا الطابع الزمني باستخدام منطقة زمنية ودقة بالمللي ثانية، على سبيل المثال "2016-12-28T06:30:00:123-07:00". في الخلاصات المجمّعة، يتم تحديد
إصدارات الكيان
من خلال الحقل |
dataFeedElement |
مصفوفة Menu أو
Restaurant
أو Service |
مطلوبة | يشكّل عنصر واحد أو أكثر جزءًا من هذه الخلاصة. انظر أدناه للاطّلاع على التفاصيل. |
يوضح المثال التالي المغلف:
مثال
{ "@context": "http://schema.googleapis.com", "dateModified": "2016-12-28T06:30:00:123-07:00", "@type": "DataFeed", "dataFeedElement": [ /* All items that are part of this feed go here */ ] }
AdditiveDetails
لاستخدام هذا النوع، أضِف السياق gs1:
"@context": ["http://gs1.org/voc/", "http://schema.org"]
بعد ذلك، أضِف FoodBeverageTobaccoProduct
إلى نوع MenuItem
أو MenuItemOption
المناسب.
يوضّح الجدول التالي سمات النوع AdditiveDetails
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | ويكون دائمًا "AdditiveDetails". |
additiveName |
النص | اختياري | اسم المضاف. |
additiveLevelOfContainment |
النص | اختياري | رمز الاحتواء لكل
gs1:LevelOfContainmentCode.
على سبيل المثال، http://gs1.org/voc/LevelOfContainmentCode-CONTAINS
أو http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM أو
http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN . |
يوضّح المثال التالي استخدام النوع AdditiveDetails
:
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/8", "name": "Energy Drink", "description": "A 0.25l can of energy drink.", "offers": { "@type": "Offer", "sku": "offer-energy-drink", "price": "3.49", "priceCurrency": "USD" }, "additive": [ { "@type": "AdditiveDetails", "additiveName": "caffeine", "additiveLevelOfContainment": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" }, { "@type": "AdditiveDetails", "additiveName": "phosphate", "additiveLevelOfContainment": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" } ] },
AddOnMenuItem
صنف طعام أو مشروب مُدرَج في عنصر قائمة إضافي في MenuItem
يعرض الجدول التالي سمات النوع AddOnMenuItem
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | ويكون دائمًا هو "AddOnالقائمةItem". |
@id |
عنوان URL | مطلوبة | معرّف فريد لعنصر قائمة الإضافة |
name |
النص | مطلوبة | نص يحدِّد AddOnالقائمةItem عند تصفّح المستخدم للقائمة. |
description |
النص | اختياري | وصف عنصر قائمة الإضافة |
image |
عنوان URL | اختياري |
صورة عنصر قائمة الإضافة التي تتوافق مع الإرشادات التالية:
|
offers |
مصفوفة Offer |
مطلوب* |
عرض واحد أو أكثر لتقديم عنصر AddOnالقائمة هذا. يصف هذا الحقل متى وسعر العنصر الإضافي AddOnالقائمة.
يجب أن يكون عرض واحد فقط صالحًا في كل مرة. يمكنك تقديم
العديد من العروض الصالحة إذا تغيّر السعر أو مدى التوفّر استنادًا إلى
الوقت من اليوم. عندما تختلف الإضافة أو السلعة من خلال سمة أساسية
أو صيغة مختلفة لعنصر الإضافة نفسه (مثل البطاطا المقلية الصغيرة والمتوسطة والكبيرة
كإضافة)، يمكنك استخدام السمة القيمة التلقائية للسمة يتم استخدام سمات
|
hasMenuItemOptions |
مصفوفة MenuItemOption |
مطلوب* |
مصفوفة من السمات الأساسية التي تصف استخدامًا مختلفًا لعنصر الإضافة نفسه (مثل البطاطس المقلية الصغيرة والمتوسطة والكبيرة كإضافة)، وذلك لعنصر القائمة هذا. يمكنك استخدام الخيارات لتحديد صِيغ مختلفة متاحة لعنصر القائمة هذا من خلال الإضافة. وهناك سيناريوهان يمكن أن يحدث فيهما ذلك:
|
suitableForDiet |
مصفوفة RestrictedDiet |
اختياري | يتوافق الطبق مع النظام الغذائي الموضَّح (مثل "GlutenFreeDiet" أو "VeganDiet"). هذه قائمة معدّة من القيم المحتمَلة. |
nutrition |
NutritionInformation |
اختياري | تمثّل هذه السمة معلومات غذائية عن الطبق، لا سيّما السعرات الحرارية. |
menuAddOn |
مصفوفة AddOnMenuSection |
اختياري | يمكن أن يشتمل AddOnقائمةItem على قسم قائمة يتكوّن من العناصر المسموح بها والتي يمكن إضافتها كإضافة. |
يوضّح المثال التالي AddOnMenuItem
:
مثال 1
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
مثال 2
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small-pepperoni-pizza", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large-pepperoni-pizza", "price": "20.00", "priceCurrency": "USD" } } ], "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Choice of toppings", "@id": "https://www.example.com/1089/addon/1", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Shrimp", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Small" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-left-small", "price": "1.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_LEFT" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Large" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-left-large", "price": "2.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Small" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-whole-small", "price": "1.50", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": [ { "@type": "PropertyValue", "name": "PIZZA_SIDE", "value": "PIZZA_SIDE_WHOLE" // Values are predefined for pizza side. }, { "@type": "PropertyValue", "name": "APPLICABLE_ITEM_OPTION", "value": "Large" // Value should be same as mentioned in item's options. } ], "offers": { "@type": "Offer", "sku": "offer-topping-shrimp-whole-large", "price": "2.50", "priceCurrency": "USD" } } ] } ] } ] }
AddOnMenuSection
مجموعة فرعية من عناصر الطعام أو المشروبات كقسم قائمة إضافي لعنصر القائمة.
يعرض الجدول التالي سمات النوع AddOnMenuSection
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | ويكون هذا دائمًا "AddOnListSection". |
@id |
عنوان URL | مطلوبة | المعرّف الفريد لقسم القائمة |
name |
النص | مطلوبة | نص يمكن أن يتعرّف على AddOnListSection في أثناء تصفّح المستخدم للقائمة. |
description |
النص | اختياري | تمثّل هذه السمة وصف قسم القائمة. |
eligibleQuantity |
QuantitativeValue |
اختياري | تشير هذه السمة إلى عدد العناصر المسموح باستخدامها كإضافة لقسم القائمة هذا. يمكنك استخدام هذا الحقل لفرض قيود على عدد الإضافات، مثل الحد الأدنى والأقصى لعدد الإضافات التي يمكنك اختيارها للبيتزا. |
image |
عنوان URL | اختياري | صورة قسم القائمة |
hasMenuItem |
مصفوفة AddOnMenuItem |
مطلوب* | عناصر قائمة الوظائف الإضافية الموجودة في AddOn Menusection. |
offers |
مصفوفة Offer |
اختياري |
استخدِم تعرض القائمة أدناه سمات
|
hasMenuSection |
مصفوفة AddOnMenuSection |
مطلوب* | التجميع المنطقي لقائمة الإضافات (مثل العشاء أو المقبلات أو أطباق السمك) |
defaultOption |
مصفوفة AddOnMenuItem |
اختياري |
عناصر قائمة الإضافات التي سيتم اختيارها تلقائيًا للمستخدمين في يجب أن تتوفر عناصر لا يمكن أن يتجاوز عدد |
numberOfFreeAddOns |
العدد | اختياري | يشير إلى عدد الإضافات التي يمكن للمستخدم اختيارها بدون أي رسوم. |
تتضمّن الأمثلة التالية كائنات AddOnMenuSection
:
مثال 1
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
مثال 2
"menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } }
مثال 3
يحتوي أحد أصناف القائمة "ساندويتش الجبن" على "خيار الجبنة" AddOnMenuSection
مع اختيار "السويسري" و "موزاريلا" مسبقًا
كإعداد تلقائي.
{ "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "defaultOption": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a" }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b" } ], "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozzarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] }
AdvanceServiceDeliveryHoursSpecification
يمثل ساعات التنفيذ للمستخدمين لجدولة الطلبات المسبقة للتوصيل والتصدير.
عادةً ما تكون قيمة opens
أقل من قيمة closes
. وتسري الإرشادات التالية على استخدام السمتَين opens
وcloses
:
- السمتان
opens
وcloses
اختياريتان للسمةAdvanceServiceDeliveryHoursSpecification
، ولكنّنا ننصحك بتضمينهما بشدة. - يجب تحديد الوقت بالتوقيت المحلي للخدمة. لا تُدرِج منطقة زمنية في القيمة
opens
أوcloses
. ويتم تجاهل المناطق الزمنية المحدّدة. - إذا لم يتم تحديد
opens
وcloses
بشكل صريح، نفترض أنّ الطلب المسبق متاح في جميع الأيام وفي جميع الأوقات. - إذا كان
opens
وcloses
متطابقَين، نفترض أنّ الطلب المسبق غير متاح. - وإذا كانت قيمة السمة
opens
أكبر منcloses
، يتم تفسير ساعة الإغلاق على أنّها في اليوم التالي. على سبيل المثال، إذا تم ضبط ساعة الفتح على 1 يناير الساعة 5 مساءً وساعة الإغلاق هي 2 صباحًا، سيتم تفسير المطعم على أنّه يغلق في 2 يناير الساعة 2 صباحًا. - يشير
opens
وcloses
إلى الخانة الزمنية المستقبلية.closes
حصرية. على سبيل المثال، إذا كانت مدّةopens
هي 10 صباحًا وcloses
4 مساءً وتبلغ مدّةserviceTimeInterval
15 دقيقة، ستبدأ خانة الوقت الأولى في الساعة 10 صباحًا وآخر خانة الوقت تبدأ في الساعة 3:45 بعد الظهر.
ويوضّح الجدول التالي سمات النوع AdvanceServiceDeliveryHoursSpecification
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | ويكون دائمًا خيار "AdvanceServiceDeliveryHoursSpecification". |
validFrom |
DateTime |
الجملة الشرطية |
تمثّل هذه السمة تاريخ البدء الذي يمكن من خلاله توصيل الطلبات المسبقة المقدّمة للمستخدمين. على سبيل المثال، "2017-05-01T00:00:00-07:00". إذا لم يتم ضبط هذه السمة، سيُفترض أنّها صالحة كل يوم.
يجب أن تكون السمتان إذا تم تحديد هذا النوع على أنّه
لمزيد من المعلومات، يُرجى الاطّلاع على تنسيقات التاريخ والوقت. |
validThrough |
DateTime |
اختياري |
تاريخ الانتهاء الذي يتعذّر بعده تنفيذ الطلبات المسبقة المقدّمة للمستخدمين على سبيل المثال، "2018-12-01T00:00:00-07:00". إذا لم يتم ضبط هذه السمة، سيُفترض أنّها صالحة كل يوم.
يجب أن تكون السمتان إذا تم تحديد هذا النوع على أنّه
موعد لمزيد من المعلومات، راجِع تنسيقات التاريخ والوقت. |
opens |
Time |
اختياري |
ينطبق هذا الإعداد على خانات التوصيل أو التصدير. تمثّل هذه السمة الوقت المحدّد من اليوم الذي يمكن من خلاله توصيل الطلبات المسبقة التي يجريها المستخدمون. مثلاً، تكون الساعة 6:30 صباحًا على النحو التالي: "T06:30:00". يجب تحديد الوقت بالتوقيت المحلي للخدمة. لا تضمِّن منطقة زمنية في القيمة لمزيد من المعلومات، راجِع تنسيقات التاريخ والوقت. |
closes |
Time |
اختياري |
ينطبق هذا الإعداد على خانات التوصيل أو التصدير. تمثّل هذه السمة الوقت المحدّد من اليوم الذي يتعذّر بعده تنفيذ الطلبات المسبقة الخاصة بالمستخدمين. مثلاً، يتم تحديد الساعة 9:00 مساءً على النحو التالي: "T21:00:00".
إنّ توقيت يجب تحديد الوقت بالتوقيت المحلي للخدمة. لا تضمِّن منطقة زمنية في القيمة لمزيد من المعلومات، راجِع تنسيقات التاريخ والوقت. |
dayOfWeek |
مصفوفة DayOfWeek |
اختياري |
تتوفّر أيام الأسبوع التي تسبق ساعات التسليم. والقيم الصالحة هي:
إذا لم تحدّد أي أيام من الأسبوع، سيتم تطبيق
|
serviceTimeInterval |
Duration |
مطلوبة |
الفاصل بين مرتين متتاليتين للخدمة. على سبيل المثال: إذا كانت قيمة السمة يجب تحديد |
advanceBookingRequirement |
QuantitativeValue |
مطلوبة |
تمثّل هذه السمة عدد الدقائق من وقت الطلب الذي يمكن خلالها توصيل الطلب المُسبَق. يجب ضبط قيمتَي على سبيل المثال، إذا كان الطلب المقدّم بحاجة إلى 60 دقيقة على الأقل لتنفيذه
وتم حظر توصيله بعد أكثر من يومَين،
تكون قيمة |
يوضح المثال التالي استخدام النوع
AdvanceServiceDeliveryHoursSpecification
:
مثال 1
{ "@type": "AdvanceServiceDeliveryHoursSpecification", "opens": "T10:00:00", // Delivery between 10AM and 7:59:59PM "closes": "T20:00:00", "serviceTimeInterval": "PT15M", // in slots spaced 15 minutes apart (ISO8601) "advanceBookingRequirement": { "minValue": 60, // The slot should be at least 60 mins away "maxValue": 8640, // but not more than 6 days away "unitCode": "MIN" } }
AllergenDetails
لاستخدام هذا النوع، أضِف السياق gs1:
"@context": ["http://gs1.org/voc/", "http://schema.org"]
بعد ذلك، أضِف FoodBeverageTobaccoProduct
إلى نوع MenuItem
أو MenuItemOption
المناسب.
يوضّح الجدول التالي سمات النوع AllergenDetails
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | دائمًا ما يكون العنوان "AllergenDetails". |
allergenType |
النص | اختياري | نوع مسبب الحساسية وفقًا لكل
gs1:AllergenTypeCode
. مثلاً: http://gs1.org/voc/AllergenTypeCode-PEANUTS
|
allergenLevelOfContainmentCode |
النص | اختياري | رمز الاحتواء لكل
gs1:LevelOfContainmentCode.
على سبيل المثال، http://gs1.org/voc/LevelOfContainmentCode-CONTAINS
أو http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM أو
http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN .
|
يوضّح المثال التالي استخدام النوع AllergenDetails
:
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/6", "name": "Strawberry joghurt drink", "description": "A 0.5l bottle of strawberry joghurt drink.", "offers": { "@type": "Offer", "sku": "offer-joghurt-drink", "price": "2.49", "priceCurrency": "USD" }, "hasAllergen": [ { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-GLUTEN", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-FREE_FROM" }, { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" } ] },
DeliveryChargeSpecification
ويوضّح الجدول التالي سمات النوع DeliveryChargeSpecification
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | ويجب أن يكون دائمًا اسم "DeliveryChargeSpecification". |
@id |
عنوان URL | اختياري | معرّف لمواصفات رسوم التسليم |
price |
العدد | مطلوبة | تمثل هذه الخاصية التكلفة الإجمالية للتوصيل كقيمة عددية فقط. استخدِم السمة priceCurrency للدلالة على نوع العملة بدلاً من رموز العملات. على سبيل المثال، "6.00"، بدون رمز
العملة. |
priceCurrency |
النص | مطلوبة | تمثّل هذه السمة رمز العملة بالتنسيق ISO 4217 المكوَّن من 3 أحرف. على سبيل المثال، "SAR". |
eligibleTransactionVolume |
PriceSpecification |
اختياري | حجم المعاملات في الوحدة النقدية التي تكون مواصفات رسوم التسليم هذه صالحة لها. على سبيل المثال، للإشارة إلى حدّ أدنى من حجم الشراء أو للإشارة إلى أنّ الشحن متاح بدون رسوم إضافية يتخطّى حجم طلب معيّن. |
eligibleQuantity |
QuantitativeValue |
اختياري | الفاصل الزمني ووحدة قياس طلبات الكميات التي تكون رسوم التسليم صالحة لها. ويتيح لك ذلك، على سبيل المثال، تحديد أنّ رسوم شحن معيّنة صالحة لكمية محدّدة فقط. |
eligibleRegion |
مصفوفة GeoShape أو
Place أو
GeoCircle |
اختياري | المكان، أو GeoShape/GeoCircle للمنطقة أو المناطق الجغرافية السياسية التي تكون مواصفات رسوم العرض أو التسليم فيها صالحة. لا تستخدِم هذه السمة إلا إذا كانت رسوم التوصيل تختلف حسب المنطقة. |
validFrom |
DateTime |
اختياري | التاريخ والوقت (بما في ذلك المنطقة الزمنية) الذي تصبح فيه رسوم التسليم المحدّدة صالحة. على سبيل المثال، "2017-05-01T06:30:00-07:00". للحصول على مزيد من المعلومات، يمكنك الاطّلاع على تنسيقات التاريخ والوقت. |
validThrough |
DateTime |
اختياري | التاريخ والوقت (بما في ذلك المنطقة الزمنية) اللذَين لا تكون رسوم التسليم
المحدّدة بعدهما صالحة. على سبيل المثال، "2017-05-01T06:30:00-07:00".
يكون الوقت في validThrough حصريًا: على سبيل المثال، إذا كان الوقت مضبوطًا على 6 مساءً، يكون الوقت صالحًا حتى 5:59:59 مساءً.
لمزيد من المعلومات، راجِع تنسيقات التاريخ والوقت. |
تعرض الأمثلة التالية عناصر DeliveryChargeSpecification
:
مثال 1
"offers": { "@type":"Offer", "priceSpecification":[ { "@type": "DeliveryChargeSpecification", "price": "5.0", "priceCurrency": "USD" } ] }
مثال 2
"priceSpecification": [ { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/defaultdeliveryfee/foo", "price": "10.0", "priceCurrency": "USD", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/deliveryfee/foo/1", "price": "20.0", "priceCurrency": "USD", "validFrom":"T18:00:00", // Valid from 6:00PM "validThrough":"T22:00:00", // Valid to 9:59:59PM "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } } ]
مثال 3
"priceSpecification": [{ "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1", "price": "8.00", // Charges $8 for area5 "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", "priceCurrency": "USD" }, "eligibleRegion": [ // area5 { "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" } ] }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee", "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge) "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" } } ]
بالإضافة إلى "@type": ["DeliveryChargeSpecification"]
، يمكن تمديد الكائن باستخدام
UnitPriceSpecification:
"@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"]
يوفّر الامتداد خاصيتَين إضافيتَين مطلوبتَين لرسوم التسليم التي يتم احتسابها بالنسب المئوية.
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
referenceQuantity |
QuantitativeValue |
مطلوبة | الكمية المرجعية التي ينطبق عليها سعر معيّن على سبيل المثال، إذا كانت قيمة referenceQuantity للسمة 10 مع قيمة unitCode للقيمة P1، هي% 10 من قيمة طلب الشراء. لا يمكن استخدام سوى unitCode "P1"
في الوقت الحالي. |
basePrice |
العدد | اختياري | الرسوم الأساسية بالإضافة إلى referenceQuantity . على سبيل المثال، إذا كانت قيمة referenceQuantity من 10 مع unitCode للقيمة "P1" وbasePrice من 5 بالدولار الأمريكي، تكون النتيجة 5 دولار أمريكي + 10% من قيمة طلب الشراء. القيمة التلقائية هي 0. |
أمثلة على رسوم التسليم
تسمح لك Google بتحديد مجموعة متنوعة من الرسوم للمستخدمين مقدمًا باستخدام Offer.PriceSpecification
لكيان الخدمة.
تجدر الإشارة إلى أنّ وضع الطلب التام بين الأطراف يتيح حاليًا استخدام نوع
DeliveryChargeSpecification
واحد فقط. يجب أن تجمع كل أنواع الرسوم في
DeliveryChargeSpecification
واحدة.
راجِع أمثلة على خلاصات الخدمة لمعرفة كيفية تحديد رسوم التسليم استنادًا إلى المنطقة والمسافة وقيمة طلب الشراء.
إذا لم تكن هناك أي رسوم، يتم حذف السمة Offer.PriceSpecification
.
- المثال 1: رسوم التسليم هي 5% من الإجمالي الفرعي لسلة التسوّق
- المثال 2: رسوم التسليم هي 5 دولار أمريكي
- المثال 3: رسوم التسليم هي 5 دولار أمريكي +% 10 من الإجمالي الفرعي لسلة التسوّق
- المثال 4: رسوم التسليم 5 دولار أمريكي ورسوم الحقائب 0.1 دولار
- المثال 5: رسوم التسليم هي 5% ورسوم الراحة هي 2% من الإجمالي الفرعي لسلة التسوق.
- المثال 6: تبلغ رسوم التسليم 5 دولار أمريكي ودولار أمريكي واحد لكل مسافة إضافية تبلغ كيلومتر واحد.
مثال 1
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
مثال 2
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
مثال 3
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "10.00", // 10% "unitCode": "P1", // P1 == % }, "priceCurrency": "USD", "basePrice": "5.00" // User always pays $5 in addition to 10% } ]
مثال 4
priceSpecification [ { "@type": ["DeliveryChargeSpecification"], "priceCurrency": "USD", "price": "5.10" //$5 + $0.1 }
المثال الخامس
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "7.00", // 5% + 2% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" }, ]
مثال 6
priceSpecification [ { "@type": ["DeliveryChargeSpecification", "UnitPriceSpecification"], "basePrice": 5.00, // User always pays $5 "price": 1.00, // An additional $1.00 is added per 1km "priceCurrency": "USD", "referenceQuantity": { "@type": "QuantitativeValue", "unitCode": "MTR", // MTR == meter "value": "1000.0" // 1km } } ]
GeoCircle
يوضّح الجدول التالي سمات النوع GeoCircle
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | وهي دائمًا "GeoCircle". |
geoMidpoint |
GeoCoordinates |
مطلوبة | تشير هذه السمة إلى الرمز GeoCoordinates في منتصف
GeoCircle . |
geoRadius |
العدد | مطلوبة | يشير إلى نصف القطر التقريبي (بالمتر) لجهاز
GeoCircle . |
يعرض المثال التالي عنصر GeoCircle
:
مثال
{ "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" }
GeoCoordinates
يوضّح الجدول التالي سمات النوع GeoCoordinates
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | وهذا هو دائمًا "GeoCoordinates". |
latitude |
العدد | مطلوبة |
خط العرض بالدرجات. تقتصر القيم على النطاق الذي يتراوح بين -90 و90، بشكل شامل. إذا كانت القيمة المحددة أقل من -90، يتم ضبطها على -90، وإذا كانت القيمة أكبر من 90، يتم ضبطها على 90. يجب ألا تقل الدقة عن 5 خانات عشرية. |
longitude |
العدد | مطلوبة |
خط الطول بالدرجات. ويتم لفّ القيم التي تقع خارج النطاق الذي يتراوح بين -180 و180 بحيث تندرج ضمن النطاق. على سبيل المثال، يتم تحويل القيمة -190 إلى 170. يتم تحويل القيمة 190 إلى -170. ويعكس ذلك التفاف خطوط الطول حول العالم. يجب ألا تقل الدقة عن 5 خانات عشرية. |
يعرض المثال التالي عنصر GeoCoordinates
:
مثال
"geo": { "@type": "GeoCoordinates", "latitude": "35.7392607", "longitude": "-120.3895522" }
GeoShape
يوضّح الجدول التالي سمات النوع GeoShape
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | يكون هذا دائمًا "GeoShape". |
polygon |
مصفوفة نص | مطلوبة |
مضلّع أو مضلّع متعدد المضلعات كسلسلة من ثلاث نقاط أو أكثر مفصولة بمسافات. من المستحسن أن تكون النقطتان الأولى والأخيرة متطابقتَين، ولكنّ ذلك ليس إلزاميًا. تُحدَّد كل نقطة في المضلّع أو المضلّع المتعدد بنقطة خط عرض متبوعة بنقطة خط طول. ويجب أيضًا تحديد النقاط في اتجاه عكس عقارب الساعة. في معظم الحالات، سيكون لديك مضلّع واحد. وبالنسبة إلى حالات الاستخدام الأكثر تعقيدًا، يمكنك الاطّلاع على مستندات منطقة خدمة التوصيل. |
تعرض الأمثلة التالية عناصر GeoShape
:
مثال 1
![](https://developers.google.cn/static/actions-center/verticals/ordering/images/geoshape_ex1.png?authuser=6&hl=ar)
{ "@type": "GeoShape", // area4 // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619" },
مثال 2
![](https://developers.google.cn/static/actions-center/verticals/ordering/images/geoshape_ex2.png?authuser=6&hl=ar)
{ "@type": "GeoShape", // A service area with a hole. // Specify latitude first (i.e., lat long lat long ...) "polygon": [ “37.771535 -122.506881 37.764289 -122.506669 37.766497 -122.453058”, “37.791707 -122.447987 37.746676 -122.449433 37.736150 -122.505944 37.780924 -122.509729”] },
مثال 3
![](https://developers.google.cn/static/actions-center/verticals/ordering/images/geoshape_ex3.png?authuser=6&hl=ar)
{ "@type": "Service", "@id": "http://www.provider.com/service/1", "areaServed": [ { "@type": "GeoShape", // Richmond District delivery area. // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.785847 -122.484851 37.772757 -122.483983 37.774442 -122.458563 37.786876 -122.459474" }, { "@type": "GeoShape", // Haight-Ashbury delivery area. // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.774804 -122.454774 37.766224 -122.452881 37.769087 -122.436043 37.773087 -122.437417" } ], ... },
القائمة
يعرض الجدول التالي سمات النوع Menu
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | يكون دائمًا خيار "القائمة". |
@id |
عنوان URL | مطلوبة | المعرّف الفريد للقائمة. |
name |
النص | اختياري | نصّ يمكنه التعرّف على Menu أثناء تصفّح المستخدِم للقائمة. |
description |
النص | اختياري | وصف القائمة |
disclaimer |
MenuDisclaimer |
اختياري | إخلاء المسؤولية عن القائمة على سبيل المثال، الإفصاح عن المعلومات الغذائية والإفصاح عن مسببات الحساسية. |
hasMenuSection |
كائن واحد أو مصفوفة من MenuSection |
اختياري | التجميع المنطقي لقائمة الطعام (مثل وجبة العشاء أو المقبلات أو أطباق السمك) |
hasMenuItem |
كائن واحد أو مصفوفة من MenuItem |
اختياري | كائنات MenuItem المضمّنة في Menu ،
عادةً عندما لا يتم تقسيم Menu فرعيًا على
MenuSections . |
inLanguage |
النص | اختياري | لغة محتوى القائمة، كرمز لغة من معيار ITF BCP 47 على سبيل المثال، "en-US". |
توضِّح الأمثلة التالية استخدام النوع Menu
:
مثال 1
{ "@type": "Menu", "@id": "http://www.provider.com/somerestaurant/menu/1", "hasMenuSection": { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/1", "name": "Tacos", "description": "Tacos inspired by India cuisine.", "offers": { "@type": "Offer", "availabilityStarts": "T08:00:00", // Starts at 8:00AM "availabilityEnds": "T22:00:00" // Ends at 10:00PM. Available 8AM-9:59:59PM }, "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/1", "name": "Aloo Gobi Taco", "description": "Mexico City-style street corn tortilla taco filled with a flavorful mixture of mildly south Indian spiced cauliflower, potato, tomato, onions and bell peppers.", "offers": { "@type": "Offer", "sku": "offer-aloo-gobi-taco", "price": "3.50", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "calories": "170 Cal", "fatContent": "3 g", "fiberContent": "2 g", "proteinContent": "4 g" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }, "inLanguage": "English" }
مثال 2
يعرض هذا المثال hasMenuItem
كمصفوفة.
{ "@type": "Menu", "@id": "http://www.provider.com/somerestaurant/menu/1", "name": "Dine-In Menu", "description": "Menu for in-restaurant dining only.", "hasMenuSection": [ { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/1", "name": "Main", "description": "Main course", "image": "http://www.provider.com/somerestaurant/main_dishes.jpg", "hasMenuItem": [ { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/1", "name": "Pizza", "description": "Pizza", "offers": { "@type": "Offer", "sku": "offer-pizza", "price": "7.49", "priceCurrency": "USD", "availabilityStarts": "T08:00:00", // Starts at 8:00AM "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM } }, { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/2", "name": "Pasta", "description": "Pasta", "offers": [ { "@type": "Offer", "sku": "offer-pasta-lunch", "price": "7.49", "priceCurrency": "USD", "availabilityStarts": "T08:00:00", // Starts at 8:00AM "availabilityEnds": "T18:00:00" // Ends at 6:00PM, last order at 5:59:59PM }, { "@type": "Offer", "sku": "offer-pasta-dinner", "price": "10.49", "priceCurrency": "USD", "availabilityStarts": "T18:00:00", // Starts at 6:00PM "availabilityEnds": "T21:00:00" // Ends at 9:00PM, last order at 8:59:59PM } ] } ] }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/2", "name": "Soups & Salads", "description": "Salads and a few choices of soup", "image": "https://www.provider.com/somerestaurant/soup_and_salad_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/3", "name": "Pea Soup", "description": "Creamy pea soup topped with melted cheese and sourdough croutons.", "offers": { "@type": "Offer", "sku": "offer-pea-soup", "price": "3.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } } ] }
مثال 3
يعرض هذا المثال hasMenuSection
كمصفوفة.
{ "@type": "Menu", "@id": "http://www.provider.com/somerestaurant/menu/1", "name": "Dine-In Menu", "description": "Menu for in-restaurant dining only.", "hasMenuSection": [ { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/1", "name": "Dinner", "description": "Dinner dishes", "hasMenuSection": [ { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/2", "name": "Starters", "description": "Appetizers and such", "image": "https://www.provider.com/somerestaurant/starter_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/1", "name": "Potato Skins", "description": "Small serving of stuffed potato skins.", "offers": { "@type": "Offer", "sku": "offer-potato-skins", "price": "7.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/3", "name": "Soups & Salads", "description": "Salads and a few choices of soup", "image": "https://thisisarestaurant.com/soup_and_salad_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/2", "name": "Pea Soup", "description": "Creamy pea soup topped with melted cheese and sourdough croutons.", "offers": { "@type": "Offer", "sku": "offer-pea-soup", "price": "3.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/4", "name": "Steak", "description": "Steak Dishes", "image": "https://steak.com/steak_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/3", "name": "Sirloin", "description": "Sirloin steak dish.", "offers": { "@type": "Offer", "sku": "offer-sirloin-steak", "price": "15.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } } ] }, { "@type": "MenuSection", "@id": "http://www.provider.com/somerestaurant/menusection/5", "name": "Desserts", "description": "Dessert dishes.", "image": "http://www.provider.com/somerestaurant/dessert_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/somerestaurant/menuitem/4", "name": "Chocolate Pie", "description": "A slice of chocolate pie.", "offers": { "@type": "Offer", "sku": "offer-chocolate-pie", "price": "3.49", "priceCurrency": "USD" } } } ] }
للاطّلاع على مزيد من الأمثلة حول كيانات Menu
، يُرجى الاطّلاع على
أمثلة على المطاعم وخلاصات القوائم.
MenuDisclaimer
يعرض الجدول التالي سمات النوع MenuDisclaimer
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | ويكون دائمًا خيار "إخلاء المسؤولية عن القائمة". |
@id |
عنوان URL | مطلوبة | معرّف فريد لبيان إخلاء المسؤولية للقائمة |
text |
النص | مطلوبة | نص بيان إخلاء المسؤولية. على سبيل المثال، "متوسط استهلاك الطاقة اليومي للبالغين هو 8,700 كيلوجول". |
url |
عنوان URL | اختياري | عنوان URL يشير إلى صفحة تقدّم المزيد من التفاصيل حول بيان إخلاء المسؤولية |
يوضّح المثال التالي استخدام النوع MenuDisclaimer
:
مثال
{ "@type": "Menu", "@id": "menu_1", "disclaimer": { "@type": "MenuDisclaimer", "@id": "menu_1_disclaimer_1", "text": "The average adult daily energy intake is 8700 kJ", "url": "https://partner.domain.com/menu/provider/disclaimer/more-info.html" } }
MenuItem
عنصر في القائمة لتمثيل العنصر في القائمة يعرض الجدول التالي خصائص النوع MenuItem
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | يكون هذا العنوان دائمًا "قائمة العناصر". |
@id |
عنوان URL | مطلوبة | المعرّف الفريد لعنصر القائمة |
name |
النص | مطلوبة | نص يمكن من خلاله التعرّف على MenuItem عندما يتصفّح المستخدم
القائمة. |
description |
النص | اختياري | تمثّل هذه السمة وصف الصنف في القائمة. |
image |
عنوان URL | اختياري |
صورة صنف في القائمة اتّبِع الإرشادات التالية المتعلّقة بالصور:
|
menuAddOn |
مصفوفة AddOnMenuSection |
اختياري | العناصر المتوفّرة في قسم القائمة التي يمكن إضافتها كإضافات إلى عنصر القائمة. |
offers |
مصفوفة Offer |
مطلوب* |
يتوفّر عرض واحد أو أكثر لتقديم هذه تعرض البيانات أدناه سمات
|
hasMenuItemOptions |
مصفوفة MenuItemOption |
مطلوبة | قائمة الخيارات/الشكل الأساسي لعنصر القائمة هذا. ويجب استخدام الخيارات لتحديد الصيغ الأساسية المختلفة المتاحة للسلعة، على سبيل المثال صغير ومتوسط وكبير. |
suitableForDiet |
مصفوفة RestrictedDiet |
اختياري | يتوافق الطبق مع القيود الغذائية الموضّحة (مثل "http://schema.org/GlutenFreeDiet" أو "http://schema.org/VeganDiet". هذه قائمة بعدد من القيم المحتمَلة. |
nutrition |
NutritionInformation |
اختياري | المعلومات الغذائية للطبق، لا سيما السعرات الحرارية. |
hasAllergen |
AllergenDetails |
اختياري | مسببات الحساسية للطبق لكل gs1:AllergenDetails .
أضِف سياق gs1 لاستخدام هذه السمة: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
وأضِف السمة FoodBeverageTobaccoProduct إلى نوع
MenuItem . |
additive |
مصفوفة AdditiveDetails |
اختياري | إضافات الطبق حسب gs1:AdditiveDetails .
هذه قائمة معدودة من القيم المحتملة. أضِف سياق gs1 لاستخدام هذه السمة: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
وأضِف السمة FoodBeverageTobaccoProduct إلى نوع
MenuItem . |
packaging |
PackagingDetails |
اختياري | معلومات التعبئة وإعادة التدوير الخاصة بعنصر MenuItem هذا لكل
gs1:PackagingDetails
أضِف سياق gs1 لاستخدام هذه السمة: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
وأضِف السمة FoodBeverageTobaccoProduct إلى نوع
MenuItem .
|
تعرض الأمثلة التالية عناصر MenuItem
:
مثال 1
"hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/bar/menuitem/1", "name": "Potato Skins", "description": "Small serving of stuffed potato skins.", "offers": { "@type": "Offer", "sku": "offer-potato-skins", "price": "7.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" }
مثال 2
"hasMenuItem": [ { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Veg Grill Burrito", "offers": { "@type": "Offer", "sku": "offer-veg-grill-burrito", "price": "12.99", "priceCurrency": "USD" }, "menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } } }, { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170018", "name": "Chicken Taco", "offers": { "@type": "Offer", "sku": "offer-chicken-taco", "price": "6.99", "priceCurrency": "USD" } } ]
مثال 3
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Meat Combo", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Plate", "offers": { "@type": "Offer", "sku": "offer-meat-combo-plate", "price": "12.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Plate", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 3 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Sandwich" }, "offers": { "@type": "Offer", "sku": "offer-meat-combo-sandwich", "price": "10.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Sandwich", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } ] }
مثال 4
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Medium" }, "offers": { "@type": "Offer", "sku": "offer-medium", "price": "15.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large", "price": "20.00", "priceCurrency": "USD" } } ] }
المثال الخامس
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/9", "name": "Ice Coffee", "offers": { "@type": "Offer", "sku": "offer-ice-coffee", "price": "3.99", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "description": "Contains preservatives and artificial flavor" }, "hasAllergen": [ { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-LACTOSE", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" }, { "@type": "AllergenDetails", "allergenType": "http://gs1.org/voc/AllergenTypeCode-PEANUTS", "allergenLevelOfContainmentCode": "http://gs1.org/voc/LevelOfContainmentCode-MAY_CONTAIN" } ], "additive": [ { "@type": "AdditiveDetails", "additiveName": "caffeine", "additiveLevelOfContainment": "http://gs1.org/voc/LevelOfContainmentCode-CONTAINS" } ], "packaging": { "@type": "PackagingDetails", "packagingRecyclingProcessType" : "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE", "hasReturnablePackageDeposit": { "@type": "ReturnablePackageDepositDetails", "returnablePackageDepositAmount": { "@type": "http://gs1.org/voc/PriceSpecification", "http://gs1.org/voc/price": "0.10", "http://gs1.org/voc/priceCurrency": "USD" } } } }
للاطّلاع على مزيد من الأمثلة حول كيانات "MenuItem
"، يُرجى الاطّلاع على أمثلة على المطاعم وخلاصات القوائم.
MenuItemOption
هو خيار لتمثيل الخيارات التي سيُطلَب من المستخدم إجراؤها عند اختيار طبق أو طبق مختلط. يجب على المستخدم تحديد خيار، وإلا سيعتبر الطلب غير صالح. على سبيل المثال، اختيار صغير أو متوسط أو كبير في حالة البيتزا.
للاطّلاع على نماذج لحالات استخدام MenuItemOption
، راجِع دليلنا حول
التخصيص باستخدام MenuItemOption
.
يعرض الجدول التالي سمات النوع MenuItemOption
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | ويكون دائمًا خيار "قائمة العناصر" ( MenuItemOption) |
value |
PropertyValue |
مطلوبة | PropertyValue يحتوي على زوج من الاسم/القيمة يمثّل
الخيار. |
offers |
مصفوفة Offer |
مطلوبة |
يتوفّر عرض واحد أو أكثر لتقديم هذا
تعرض البيانات أدناه سمات
|
menuAddOn |
Array of |
اختياري | قسم القائمة للعناصر المسموح بها التي يمكن إضافتها كإضافة. وتُستخدَم هذه الطريقة فقط إذا كانت الإضافات خاصة بخيار معيّن في القائمة. في الحالات الأخرى، يمكنك تقديم إضافات باستخدام السمة MenuItem .menuAddOn.
|
suitableForDiet |
مصفوفة RestrictedDiet |
اختياري | قائمة تعداد تشير إلى الأنظمة الغذائية التي يلتزم فيها هذا الطبق بالأنظمة الغذائية الموضّحة (مثل "http://schema.org/GlutenFreeDiet" أو "http://schema.org/VeganDiet"). |
nutrition |
NutritionInformation |
اختياري | المعلومات الغذائية للطبق، لا سيما السعرات الحرارية. |
hasAllergen |
AllergenDetails |
اختياري | مسببات الحساسية للطبق لكل gs1:AllergenDetails .
أضِف سياق gs1 لاستخدام هذه السمة: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
وأضِف السمة FoodBeverageTobaccoProduct إلى نوع
MenuItemOption .
|
additive |
مصفوفة AdditiveDetails |
اختياري | إضافات الطبق حسب gs1:AdditiveDetails .
هذه قائمة معدودة من القيم المحتملة. أضِف سياق gs1 لاستخدام هذه السمة: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
وأضِف السمة FoodBeverageTobaccoProduct إلى نوع
MenuItemOption .
|
packaging |
PackagingDetails |
اختياري | معلومات التغليف وإعادة التدوير لهذا العنصر في القائمة
gs1:PackagingDetails
أضِف السياق gs1 لاستخدام هذه السمة: "@context": ["http://gs1.org/voc/", "http://schema.org"] .
وأضِف السمة FoodBeverageTobaccoProduct إلى نوع
MenuItemOption .
|
يعرض المثال التالي عناصر MenuItemOption
:
مثال 1
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Pepperoni Pizza", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Small" }, "offers": { "@type": "Offer", "sku": "offer-small", "price": "10.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Medium" }, "offers": { "@type": "Offer", "sku": "offer-medium", "price": "15.00", "priceCurrency": "USD" } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "SIZE", "value": "Large" }, "offers": { "@type": "Offer", "sku": "offer-large", "price": "20.00", "priceCurrency": "USD" } } ] }
مثال 2
{ "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Meat Combo", "hasMenuItemOptions": [ { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Plate", "offers": { "@type": "Offer", "sku": "offer-meat-combo-plate", "price": "12.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Plate", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 3 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } }, { "@type": "MenuItemOption", "value": { "@type": "PropertyValue", "name": "OPTION", "value": "Sandwich" }, "offers": { "@type": "Offer", "sku": "offer-meat-combo-sandwich", "price": "10.00", "priceCurrency": "USD" }, "menuAddOn": [ { "@type": "AddOnMenuSection", "name": "Toppings for Sandwich", "@id": "https://www.example.com/1089/addon/1", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 }, "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/1/a", "name": "Hummus", "offers": { "@type": "Offer", "sku": "offer-meat-combo-topping-hummus", "price": "1.00", "priceCurrency": "USD" } } // -- Other Items -- ] } ] } ] }
MenuSection
قسم القائمة لتمثيل قسم معين في القائمة. يعرض الجدول التالي سمات النوع MenuSection
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | يكون دائمًا قسم "قائمة الطعام" ( Menusection). |
@id |
عنوان URL | مطلوبة | المعرّف الفريد لقسم القائمة |
name |
النص | مطلوبة | نص يمكن من خلاله التعرّف على MenuSection عندما يتصفّح المستخدم
القائمة. |
description |
النص | اختياري | تمثّل هذه السمة وصف قسم القائمة. |
hasMenuSection |
مصفوفة MenuSection |
اختياري | التجميع الفرعي المنطقي للدالة MenuSection . على سبيل المثال، يمكن أن يتضمّن قسم
قائمة العشاء عدة أقسام قوائم فرعية، مثل "أطباق
دواجن" أو "أطباق نباتية". |
hasMenuItem |
مصفوفة MenuItem |
اختياري | عناصر القائمة الموجودة في MenuSection . |
offers |
مصفوفة Offer |
اختياري |
استخدِم تعرض القائمة التالية سمات
|
image |
عنوان URL | اختياري | صورة قسم القائمة |
تعرض الأمثلة التالية كيانات MenuSection
:
مثال 1
{ "@type": "MenuSection", "@id": "http://www.provider.com/bar/menusection/4", "name": "Steak", "description": "Steak Dishes", "image": "https://steak.com/steak_dishes.jpg", "hasMenuItem": { "@type": "MenuItem", "@id": "http://www.provider.com/bar/menuitem/3", "name": "Sirloin", "description": "Sirloin steak dish.", "offers": { "@type": "Offer", "sku": "offer-sirloin-steak", "price": "15.49", "priceCurrency": "USD" }, "suitableForDiet": "http://schema.org/GlutenFreeDiet" } }
مثال 2
"hasMenuSection": [ { "@type": "MenuSection", "@id": "https://www.example.com/1089/categorization/25114480", "name": "Main Items", "hasMenuItem": [ { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170067", "name": "Veg Grill Burrito", "offers": { "@type": "Offer", "sku": "offer-veg-grill-burrito", "price": "12.99", "priceCurrency": "USD" }, "menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } } }, { "@type": "MenuItem", "@id": "https://www.example.com/1089/product/170018", "name": "Chicken Taco", "offers": { "@type": "Offer", "sku": "offer-chicken-taco", "price": "6.99", "priceCurrency": "USD" } } ] }, { "@type": "AddOnMenuSection", "@id": "https://www.example.com/1089/addon/1", "name": "AddOnCheese", "hasMenuItem": [ { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Swiss", "offers": { "@type": "Offer", "sku": "offer-swiss", "price": "2.99", "priceCurrency": "USD" } }, { "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/b", "name": "Mozarella", "offers": { "@type": "Offer", "sku": "offer-mozzarella", "price": "1.99", "priceCurrency": "USD" } } ] } ]
للاطّلاع على مزيد من الأمثلة حول كيانات MenuSection
، يُرجى الاطّلاع على
أمثلة على المطاعم وخلاصات القوائم.
NutritionInformation
ويوضّح الجدول التالي خصائص النوع NutritionInformation
. تكون وحدات القياس حسّاسة لحالة الأحرف. على سبيل المثال، يتم قبول "Cal"،
ولكن "cal" غير مقبول.
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | وهذه القيمة دائمًا هي "Nutrition Information". |
description |
النص | اختياري | معلومات التغذية في نص حر. على سبيل المثال، "يحتوي على مواد حافظة". |
calories |
النص | اختياري |
عدد السعرات الحرارية في السعرات الحرارية أو kcal أو kJ باستخدام التنسيق التالي: number Cal_kcal_OR_kJ على سبيل المثال، "240 سعر حراري". |
carbohydrateContent |
النص | اختياري |
كمية الكربوهيدرات، عادةً بالجرام، بالتنسيق التالي: number g_OR_mg على سبيل المثال، "7 غرام". |
cholesterolContent |
النص | اختياري |
مقدار الكوليسترول بالمليغرام عادةً باستخدام التنسيق التالي: number g_OR_mg على سبيل المثال، "12 مليغرام". |
fatContent |
النص | اختياري |
مقدار الدهون، عادةً بالجرام، باستخدام الصيغة التالية: number g_OR_mg على سبيل المثال، "42 غرام". |
fiberContent |
النص | اختياري |
عدد الغرام أو المليغرام من الألياف باستخدام التنسيق التالي: number g_OR_mg |
proteinContent |
النص | اختياري |
عدد الغرام أو المليغرام من البروتين، بالتنسيق التالي: number g_OR_mg |
saturatedFatContent |
النص | اختياري |
عدد الغرام أو المليغرام من الدهون المشبَّعة، باستخدام الصيغة التالية: number g_OR_mg |
servingSize |
النص | اختياري | تمثّل هذه السمة حجم الوجبة بالملتر أو لتر أو غرام أو كيلوغرام، من حيث عدد الحجم أو الكتلة. |
sodiumContent |
النص | اختياري |
عدد مليغرام أو غرام من الصوديوم، بالتنسيق التالي: number g_OR_mg |
sugarContent |
النص | اختياري |
عدد الغرام أو الملغ من السكر باستخدام الصيغة التالية: number g_OR_mg |
transFatContent |
النص | اختياري |
عدد الغرام أو المليغرام من الدهون المتحوّلة، بالتنسيق التالي: number g_OR_mg |
unsaturatedFatContent |
النص | اختياري |
كمية الدهون غير المشبَّعة، عادةً ما تكون بالجرام، بالتنسيق التالي: number g_OR_mg |
تعرض الأمثلة التالية عنصرًا NutritionInformation
:
مثال 1
"nutrition": { "@type": "NutritionInformation", "calories": "170 Cal", "fatContent": "3 g", "fiberContent": "2 g", "proteinContent": "4 g" },
مثال 2
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/7", "name": "Peach Ice Tea", "description": "A 0.5l bottle of peach ice tea.", "offers": { "@type": "Offer", "sku": "offer-peach-ice-tea", "price": "2.49", "priceCurrency": "USD" }, "nutrition": { "@type": "NutritionInformation", "description": "Contains preservatives and artificial flavor" } },
العرض الترويجي
عرض لصنف في قائمة الطعام ويوضّح الجدول التالي سمات النوع Offer
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | ويمثل هذا دائمًا "عرض". |
sku |
النص | الجملة الشرطية |
المعرّف الفريد للعرض الترويجي يمكن أن تكون أي قيمة نصية فريدة
ضمن لا يتم استخدام هذه السمة إلا في أنواع العروض التالية:
|
price |
النص | الجملة الشرطية |
تمثّل هذه السمة سعر السلعة المعروضة. على سبيل المثال، "6.00" بدون رمز العملة. هذه السمة مطلوبة فقط في أنواع العروض التالية:
ولا يتم استخدامه في أنواع العروض التالية:
|
priceCurrency |
النص | الجملة الشرطية |
تمثّل هذه السمة العملة (بتنسيق ISO 4217 المكوَّن من 3 أحرف) للسعر أو المكوّن للسعر عند إرفاقها بسمة priceSpecification وأنواعها الفرعية. هذه السمة مطلوبة فقط في أنواع العروض التالية:
ولا يتم استخدامه في أنواع العروض التالية:
|
availabilityStarts |
DateTime أو Time |
اختياري | التاريخ والوقت أو الوقت الذي يصبح فيه العرض متاحًا فقط على سبيل المثال، إذا كان يتم تقديم الفطائر المحلّاة بدءًا من الساعة 7:00 صباحًا، يمكن أن تبدو قيمة هذا الحقل على النحو التالي: "2017-05-01T07:00:00-07:00". لمزيد من المعلومات، راجِع تنسيقات التاريخ والوقت. |
availabilityEnds |
DateTime أو Time |
اختياري | التاريخ والوقت أو الوقت الذي يكون فيه العرض غير متوفّر هذه الفترة حصرية. على سبيل المثال، إذا كان مدى توفّر الفطائر المحلّاة ينتهي في الساعة 10 صباحًا، يمكن تقديم آخر فطيرة كيك في الساعة 9:59:59 صباحًا. ويمكن أن تبدو قيمة هذا الحقل على النحو التالي: "2017-05-01T10:00:00-07:00". لمزيد من المعلومات، راجِع تنسيقات التاريخ والوقت. |
availableDay |
مصفوفة DayOfWeek | اختياري |
أيام الأسبوع التي يتوفّر فيها هذا العنصر القيم الصالحة هي:
وإذا كان مدى التوفّر مختلفًا في أيام مختلفة من الأسبوع،
استخدِم أكثر من عنصر |
validFrom |
DateTime |
اختياري |
التاريخ والوقت (بما في ذلك المنطقة الزمنية) الذي يكون فيه السعر المحدّد صالحًا. على سبيل المثال، تبلغ تكلفة المعكرونة 8 دولار أمريكي خلال وجبة الغداء و10 دولار أمريكي في العشاء. لمزيد من المعلومات، راجِع تنسيقات التاريخ والوقت. يمكن استخدام هذه السمة في أنواع العروض التالية:
لا يتم استخدام هذه السمة في أنواع العروض التالية:
|
validThrough |
DateTime |
اختياري | التاريخ والوقت (بما في ذلك المنطقة الزمنية) اللذين يصبح بهما السعر المحدّد غير صالح. على سبيل المثال، تبلغ تكلفة المعكرونة 8 دولار أمريكي خلال الغداء و10 دولار أمريكي على العشاء. يكون الوقت في يمكن استخدام هذه السمة في أنواع العروض التالية:
لا يتم استخدام هذه السمة في أنواع العروض التالية.
|
eligibleQuantity |
QuantitativeValue | اختياري |
تمثّل هذه السمة الكميات التي يمكن طلبها من أجل شراء هذه السلعة. على سبيل المثال، قد يطلب المطعم خدمة توصيل 10 بيتزا على الأقل. هذه القيمة اختيارية. حسب الإعدادات التلقائية، لا يوجد حد أقصى لهذا الحدّ، ولكن يمكن للمطعم تحديد حدّ أقصى. لا تسري الحدود الدنيا المسموح بها إلا عندما يختار المستخدم العنصر. يمكن استخدام هذه السمة في أنواع العروض التالية:
لا يتم استخدام هذه السمة في أنواع العروض التالية.
|
aggregateRating |
AggregateRating | اختياري |
تمثّل هذه السمة التقييم العام استنادًا إلى مجموعة من المراجعات أو التقييمات الخاصة بالعنصر. يمكن استخدام هذه السمة في أنواع العروض التالية:
لا يتم استخدام هذه السمة في الأنواع التالية.
|
inventoryLevel |
QuantitativeValue | اختياري |
مستوى المستودع التقريبي الحالي للسلعة أو السلع. يمكن استخدام هذه السمة في أنواع العروض التالية:
لا يتم استخدام هذه السمة في أنواع العروض التالية:
|
priceSpecification |
مصفوفة DeliveryChargeSpecification أو مصفوفة PaymentChargeSpecification | اختياري |
وعند استخدامها في السمة يمكن استخدام هذه السمة في أنواع العروض التالية:
لا يتم استخدام هذه السمة في أنواع العروض التالية:
|
offeredBy |
مصفوفة من أرقام تعريف Restaurant |
اختياري | يمثّل هذا النوع المطاعم التي تُقدَّم فيها
إذا لم يتم تحديد ذلك، سيتم تقديم يمكن استخدام هذه السمة في أنواع العروض التالية:
لا يتم استخدام هذه السمة في أنواع العروض التالية:
|
applicableFulfillmentMethod |
مصفوفة نص | اختياري | يمثّل نوع الخدمة التي يتم تقديم في حال عدم تحديد قيمة هذه السمة، سيتم توصيل قيمة " يمكن استخدام هذه السمة في أنواع العروض التالية:
لا يتم استخدام هذه السمة في أنواع العروض التالية:
|
@id |
عنوان URL | منهي العمل به | المعرّف الفريد للعرض الترويجي تم إيقافها نهائيًا اعتبارًا من 25/4/19، ويمكنك استبدالها بـ
sku كما هو موضّح أعلاه.
|
تعرض الأمثلة التالية عناصر Offer
:
مثال 1
يوضّح المثال التالي عرضًا بسيطًا:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/139/offer", "price": "10", "priceCurrency": "USD" }
مثال 2
يوضّح المثال التالي مدى توفّر العرض من الساعة 8 إلى 10 صباحًا في عطلات نهاية الأسبوع:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/140/offer", "price": "10", "priceCurrency": "USD", "availabilityStarts": "T08:00:00-07:00", // Only available from 8-9:59:59 AM "availabilityEnds": "T10:00:00-07:00", "availableDay": ["Saturday", "Sunday"] // Only on weekends. }
مثال 3
يوضّح المثال التالي مدى التوفّر من الساعة 9:10:59:59 صباحًا أيام الاثنين والأربعاء والجمعة، من الساعة 8 إلى 11:59:59 صباحًا أيام الثلاثاء والخميس:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/140/offer", "price": "10", "priceCurrency": "USD", "availabilityStarts": "T09:00:00-07:00", "availabilityEnds": "T11:00:00-07:00", "availableDay": ["Monday", "Wednesday", "Friday"] }, { "@type": "Offer", "@id": "https://www.provider.com/menu/74962/141/offer", "price": "10", "priceCurrency": "USD", "availabilityStarts": "T08:00:00-07:00", "availabilityEnds": "T12:00:00-07:00", "availableDay": ["Tuesday", "Thursday"] }
مثال 4
يوضّح المثال التالي مجموعة الكمية المؤهّلة لعنصر قائمة الإضافة لكي يتمكن المستخدم من طلب جزأين كحد أقصى من هذا العنصر:
{ "@type": "AddOnMenuItem", "@id": "https://www.example.com/1089/addon/a", "name": "Ranch", "offers": { "@type": "Offer", "@id": "https://www.example.com/1089/addon/a/offer", "price": "2.99", "priceCurrency": "USD" "eligibleQuantity": { "@type": "QuantitativeValue", "maxValue": 2 } } }
المثال الخامس
يوضّح المثال التالي عرض توصيل في موقع جغرافي محدّد:
{ "@type": "Offer", "@id": "https://www.provider.com/menu/74962/139/offer", "price": "10", "priceCurrency": "USD", "applicableFulfillmentMethods": ["DELIVERY"], "offeredBy": [ { "@type": "Restaurant", "@id": "https://www.provider.com/location/1", } ] }
OpeningHoursSpecification
تحدّد هذه السمة الأوقات التي تتوفّر فيها الخدمات. عادةً ما تكون قيمة opens
أقل من قيمة closes
. وتسري الإرشادات التالية على استخدام السمتَين
opens
وcloses
:
- السمتان
opens
وcloses
اختياريتان، ولكن يُنصح باستخدامهما بشدة للإشارة إلى الحالات التي يكون فيها الطلب متاحًا. أفضل ممارسة لتحديد ساعات العمل المتاحة هي تضمين مصفوفةdeliveryHours
تحتوي علىServiceDeliveryHoursSpecification
مع السمتينopens
وcloses
. يمكنك بعد ذلك تضمين عنصرAdvanceServiceDeliveryHoursSpecification
فيdeliveryHours
مع السمتَينopens
وcloses
الخاصتَين به، إذا أردت عرض فترة محدودة أكثر للطلب المُسبَق. - إذا لم يتم تحديد
opens
وcloses
بشكل صريح، نفترض أنّ خدمة الطلب متوفّرة كل يوم في جميع الأوقات. - يجب تحديد الوقت بالتوقيت المحلي للخدمة. لا تُدرِج منطقة زمنية في القيمة
opens
أوcloses
. في حال تحديد منطقة زمنية، يتجاهل محرّك بحث Google هذه المعلومات. - إذا كان
opens
وcloses
متطابقَين، نفترض أنّ المطعم مفتوح لمدة 0 دقيقة. - وإذا كانت قيمة السمة
opens
أكبر منcloses
، يتم تفسير ساعة الإغلاق على أنّها في اليوم التالي. على سبيل المثال، إذا تم ضبط ساعة الفتح على 1 يناير الساعة 5 مساءً وساعة الإغلاق 2 صباحًا، سيتم تفسير المطعم على أنّه مغلق في 2 يناير الساعة 2 صباحًا. - موعد
closes
حصري. لذلك، إذا تم ضبط أوقات فتح وإغلاق نافذة الطلب هذه على الساعة 10 صباحًا و4 مساءً، على التوالي، يكون الطلب الأخير هو 3:59:59 مساءً.
ويوضّح الجدول التالي خصائص النوع OpeningHoursSpecification
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | ويمثل هذا دائمًا "OpeningHoursSpecification". |
@id |
عنوان URL | اختياري | معرِّف OpeningHoursSpecification . |
dayOfWeek |
مصفوفة DayOfWeek |
اختياري |
اليوم من الأسبوع الذي تسري فيه ساعات العمل هذه. والقيم المقبولة هي "الاثنين" و"الثلاثاء" و"الأربعاء" و"الخميس" و"الجمعة" و"السبت" و "الأحد". مثال: "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ] إذا لم تحدّد أي أيام من الأسبوع، سيتم تطبيق
|
opens |
Time |
اختياري |
عند استخدامها في مواصفات وعند استخدامها في مواصفات يجب تحديد الوقت بالتوقيت المحلي للخدمة. لا تضمِّن منطقة زمنية في القيمة لمزيد من المعلومات، راجِع تنسيقات التاريخ والوقت. |
closes |
Time |
اختياري |
وعند استخدامها في مواصفات يجب تحديد الوقت بالتوقيت المحلي للخدمة. لا تضمِّن منطقة زمنية في القيمة لمزيد من المعلومات، راجِع تنسيقات التاريخ والوقت. |
validFrom |
DateTime |
اختياري |
وعند استخدامها في مواصفات على سبيل المثال، إذا كانت الساعات المحدّدة تنطبق على كل العام 2017، اضبط
وعند استخدامها في مواصفات إذا لم يتم تحديد هذه السمة في خلاصتك، يَفترض محرّك بحث Google أنّ المطعم أو الخدمة متاحان يوميًا. بالإضافة إلى التاريخ، يجب إدخال أجزاء الوقت والمنطقة الزمنية من القيمة. بالنسبة إلى المنطقة الزمنية، استخدِم المنطقة الزمنية للمطعم أو الخدمة. لمزيد من المعلومات، راجِع تنسيقات التاريخ والوقت. |
validThrough |
DateTime |
اختياري |
عند استخدامها في على سبيل المثال، إذا كانت الساعات المحدّدة تنطبق على كل العام 2017، اضبط
وعند استخدامها في مواصفات إذا لم يتم تحديد هذه السمة في خلاصتك، يَفترض محرّك بحث Google أنّ المطعم أو الخدمة متاحان يوميًا. بالإضافة إلى التاريخ، يجب إدخال أجزاء الوقت والمنطقة الزمنية في DateTime. بالنسبة إلى المنطقة الزمنية، استخدِم المنطقة الزمنية للمطعم أو الخدمة. موعد لمزيد من المعلومات، راجِع تنسيقات التاريخ والوقت. |
deliveryHours |
مصفوفة ServiceDeliveryHoursSpecification أو مصفوفة
AdvanceServiceDeliveryHoursSpecification |
الجملة الشرطية |
تمثّل هذه السمة مواصفات وقت التوصيل أو طلب الوجبات الجاهزة لتناولها خارج المطعم. ويجب استخدام هذه المَعلمة ما لم يكن المطعم مغلقًا (ما يعني
ضبط
|
تعرض الأمثلة التالية عناصر OpeningHoursSpecification
:
مثال 1
// Ordering times for Monday through Friday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T12:00:00", // Advance ordering begins at noon "closes": "T23:59:59", // Advance ordering ends at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T10:00:00", // ASAP ordering begins at 10AM "closes": "T14:00:00", // ASAP ordering ends at 2PM "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] },
مثال 2
// Ordering times for Saturday and Sunday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { // In this case advance orders are unavailable on Saturday and Sunday "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday", "Sunday" ], "opens": "T12:00:00", // ASAP orders start at noon "closes": "T23:59:59", // ASAP orders end at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] }
مثال 3
"hoursAvailable": { "@type": "OpeningHoursSpecification", "validFrom": "2016-02-01T00:00:00-07:00", "validThrough": "2016-03-01T00:00:00-07:00", "opens": "T08:00:00", // Ordering begins at 8:00AM and ends at 6:00PM. // ASAP and and advance orders are restricted to this // time frame since the user won't be able to place // orders outside of this window. "closes": "T18:00:00", "deliveryHours": { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" } } },
مثال 4
// List hours available for 2017 and 2018 "hoursAvailable": [ { "@type": "OpeningHoursSpecification", // Array containing advance order hours for each day "deliveryHours": [ { // Open 10:00AM to 9:29:59PM on Mondays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Tuesdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Tuesday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Wednesdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Wednesday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 9:29:59PM on Thursdays "@type": "AdvanceServiceDeliveryHoursSpecification", "dayOfWeek": [ "Thursday" ], "opens": "T10:00:00", "closes": "T21:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 11:29:59PM on Fridays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Friday" ], "opens": "T10:00:00", "closes": "T23:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 10:00AM to 11:29:59PM on Saturdays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday" ], "opens": "T10:00:00", "closes": "T23:30:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { // Open 11:00AM to 6:59:59PM on Sundays "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Sunday" ], "opens": "T11:00:00", "closes": "T19:00:00", "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] } ],
PackagingDetails
أضِف سياق gs1 لاستخدام هذا النوع: "@context": ["http://gs1.org/voc/", "http://schema.org"]
.
وأضِف FoodBeverageTobaccoProduct
إلى نوع MenuItem
أو MenuItemOption
.
يوضّح الجدول التالي سمات النوع PackagingDetails
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | ويمثل هذا دائمًا "PackagingDetails". |
packagingRecyclingProcessType |
النص | اختياري | نوع عملية إعادة تدوير التغليف وفقًا لـ
gs1:PackagingRecyclingProcessTypeCode. على سبيل المثال
http://gs1.org/voc/PackagingRecyclingProcessTypeCode-RECYCLABLE
أو http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE
|
hasReturnablePackageDeposit |
ReturnablePackageDepositDetails |
اختياري | تفاصيل إيداع الطرد القابل للإرجاع حسب gs1:ReturnablePackageDepositDetails على سبيل المثال، قد يتم إيداع طرود يمكن إرجاعها من الزجاجات والعلبات. |
يوضّح المثال التالي استخدام النوع PackagingDetails
:
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/5", "name": "Sparkling Water", "description": "A 0.5l bottle of sparking water.", "offers": { "@type": "Offer", "sku": "offer-sparkling-water", "price": "1.49", "priceCurrency": "USD" }, "packaging": { "@type": "PackagingDetails", "packagingRecyclingProcessType" : "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE", "hasReturnablePackageDeposit": { "@type": "ReturnablePackageDepositDetails", "returnablePackageDepositAmount": { "@type": "http://gs1.org/voc/PriceSpecification", "http://gs1.org/voc/price": "0.05", "http://gs1.org/voc/priceCurrency": "USD" } } } },
PaymentChargeSpecification
ويوضّح الجدول التالي خصائص النوع PaymentChargeSpecification
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | ويمثل هذا دائمًا "PaymentChargeSpecification". |
@id |
عنوان URL | اختياري | معرِّف PaymentChargeSpecification . |
price |
العدد | مطلوبة | إجمالي مبلغ الرسوم على سبيل المثال، "6.00"، بدون رمز العملة. |
priceCurrency |
النص | مطلوبة | تمثّل هذه السمة رمز العملة بالتنسيق ISO 4217 المكوَّن من 3 أحرف للسعر. على سبيل المثال، "USD". |
eligibleTransactionVolume |
PriceSpecification |
اختياري | حجم المعاملات في وحدة نقدية تكون مواصفات رسوم الدفع هذه صالحة لها، مثل الإشارة إلى الحدّ الأدنى لحجم الشراء. |
eligibleQuantity |
QuantitativeValue |
اختياري | كميات الطلبات التي تكون رسوم الدفع صالحة لها. على سبيل المثال، يمكنك استخدام هذه السمة لطلب الحدّ الأدنى من عدد السلع في الطلب. |
validFrom |
DateTime |
اختياري | التاريخ والوقت (بما في ذلك المنطقة الزمنية) عندما تصبح رسوم الدفع المحدّدة صالحة. على سبيل المثال، "2017-05-01T07:00:00-07:00". للحصول على مزيد من المعلومات، يمكنك الاطّلاع على تنسيقات التاريخ والوقت. |
validThrough |
DateTime |
اختياري | التاريخ والوقت (بما في ذلك المنطقة الزمنية) عندما تكون رسوم الدفع المحدّدة غير صالحة على سبيل المثال، "2017-05-01T07:30:00-07:00".
يكون الوقت في validThrough حصريًا: على سبيل المثال، إذا كان الوقت مضبوطًا على 6 مساءً، يكون الوقت صالحًا حتى 5:59:59 مساءً.
لمزيد من المعلومات، راجِع تنسيقات التاريخ والوقت. |
يوضح المثال التالي عنصر PaymentChargeSpecification:
مثال
"priceSpecification": [{ "@type": "PaymentChargeSpecification", "@id": "http://www.provider.com/paymentCharge/bar", "priceCurrency": "USD", "price": "6.00", // Charges $6 for processing fee "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 2 // Minimum of two items required } }]
بالإضافة إلى "@type": ["PaymentChargeSpecification"]
، يمكن تمديد العنصر باستخدام UnitPriceSpecification
("@type": ["PaymentChargeSpecification", "UnitPriceSpecification"]
).
يمنحك الإضافة خاصيتين إضافيتين مطلوبتين لرسوم الخدمة
يتم حسابهما بالنسب المئوية.
سمة | النوع | ضرورة | الوصف |
referenceQuantity |
QuantitativeValue |
مطلوبة | الكمية المرجعية التي ينطبق عليها سعر معيّن على سبيل المثال، إذا كانت قيمة referenceQuantity للسمة 10 مع قيمة unitCode للقيمة P1، هي% 10 من قيمة طلب الشراء. لا يتوافق سوى unitCode من النوع "P1"
في الوقت الحالي. |
basePrice |
العدد | اختياري | الرسوم الأساسية بالإضافة إلى referenceQuantity . على سبيل المثال، إذا كانت قيمة referenceQuantity من 10 مع unitCode للقيمة "P1" وbasePrice من 5 بالدولار الأمريكي، تكون النتيجة 5 دولار أمريكي + 10% من قيمة طلب الشراء. القيمة التلقائية هي 0. |
أمثلة على رسوم الطعام السفري
تسمح لك Google بتحديد مجموعة متنوعة من الرسوم للمستخدمين مقدمًا باستخدام Offer.PriceSpecification
لكيان الخدمة.
تجدر الإشارة إلى أنّنا نتيح حاليًا استخدام سمة PaymentChargeSpecification
واحدة فقط. دمج
كل أنواع الرسوم في PaymentChargeSpecification
واحدة
إذا لم تكن هناك أي رسوم، يتم حذف السمة Offer.PriceSpecification
.
- المثال 1: رسوم الخدمة هي 5% من الإجمالي الفرعي لسلة التسوّق
- المثال 2: رسوم الخدمة هي 5 دولار أمريكي
- المثال 3: رسوم الحقائب هي 0.1 دولار أمريكي ورسوم الخدمة تبلغ 5% من الإجمالي الفرعي لسلة التسوق
- المثال 4: رسوم الحقائب 0.1 دولار أمريكي ورسوم الخدمة 1 دولار أمريكي
- المثال 5: رسوم الخدمة هي 5% والنصيحة المطلوبة هي 10% من الإجمالي الفرعي لسلة التسوق
مثال 1
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
مثال 2
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "5.00" } ]
مثال 3
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "5.00", // 5% "unitCode": "P1", // P1 == % }, "priceCurrency": "USD", "basePrice": "0.10" // Bag fee $0.1 } ]
مثال 4
priceSpecification [ { "@type": ["PaymentChargeSpecification"], "priceCurrency": "USD", "price": "1.10" //$1 + $0.1 } ]
المثال الخامس
priceSpecification [ { "@type": ["PaymentChargeSpecification", "UnitPriceSpecification"], "referenceQuantity": { "@type": "QuantitativeValue", "value": "15.00", // 5% + 10% "unitCode": "P1" // P1 == % }, "priceCurrency": "USD" } ]
مكان
يوضّح الجدول التالي سمات النوع Place
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | وهو دائمًا "المكان". |
address |
PostalAddress |
مطلوبة | عنوان مكان |
يوضح المثال التالي عنصر المكان:
مثال
{ "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } },
PostalAddress
يوضّح الجدول التالي سمات النوع PostalAddress
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | يكون العنوان دائمًا "PostalAddress". |
addressLocality |
النص | مطلوب* | تمثّل هذه السمة المنطقة المحلية أو المدينة. على سبيل المثال، "القاهرة". |
addressRegion |
النص | مطلوب* | المنطقة أو الولاية. على سبيل المثال، "CA". |
postalCode |
النص | مطلوب* | تمثّل هذه السمة الرمز البريدي. على سبيل المثال، "94102". |
streetAddress |
النص | اختياري | تمثّل هذه السمة عنوان الشارع. على سبيل المثال، "1600 Amphitheatre Pkwy". |
addressCountry |
النص | مطلوبة | رمز البلد المكوّن من حرفين وفقًا لمعيار ISO 3166-1 alpha-2 . على سبيل المثال، "US". |
ويمكن لمقدّمي خدمات التوصيل إدراج هذه السمات لتحديد Service.areaServed
حيث يتم تقديم الخدمة.
عند استخدامها في Restaurant.address
، تكون جميع السمات المدرَجة في PostalAddress
مطلوبة.
يعرض المثال التالي عنصر PostalAddress
:
مثال
"address": { "@type": "PostalAddress", "streetAddress": "12345 Bar Avenue", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94124", "addressCountry": "US" },
PriceSpecification
ويوضّح الجدول التالي خصائص النوع PriceSpecification
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | يكون التنسيق دائمًا "PriceSpecification". |
@id |
عنوان URL | اختياري | معرِّف PriceSpecification . |
minPrice |
العدد | اختياري | تمثّل هذه السمة أقل سعر إذا كان السعر ضمن نطاق معيّن. |
maxPrice |
العدد | اختياري | تمثّل هذه السمة أعلى سعر إذا كان السعر ضمن نطاق معيّن. |
priceCurrency |
النص | مطلوبة | تمثّل هذه السمة رمز العملة بالتنسيق ISO 4217 المكوَّن من 3 أحرف للسعر. على سبيل المثال، "USD". |
eligibleQuantity |
QuantitativeValue |
اختياري | كميات الطلبات التي تكون مواصفات سعرها صالحة. على سبيل المثال، قد يكون السعر دولارين أمريكيَين لكل جنيه أو سلعتَين مقابل دولار أمريكي. |
يعرض المثال التالي عنصر PriceSpecification
:
مثال 1
"eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" }
PropertyValue
يُستخدَم زوج قيمة السمة لوصف الخيارات في MenuItemOption
.
يعرض الجدول التالي سمات النوع PropertyValue
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | وتكون هذه القيمة دائمًا "PropertyValue". |
name |
النص | مطلوبة |
اسم الخيار أو نوعه فيما يلي أسماء صالحة عند استخدامها في
الأسماء الصالحة عند استخدامها في
|
value |
النص | مطلوبة |
قيمة الخيار يمكن أن تكون القيم أي سلسلة ويتمّ عرضها كما هي. وفي ما يلي القيم الصالحة:
|
QuantitativeValue
يوضّح الجدول التالي سمات النوع QuantitativeValue
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | وهي دائمًا "QuantitativeValue". |
value |
العدد | اختياري | قيمة القيمة الكمية أو عقدة قيمة الخاصية. |
unitCode |
نص أو عنوان URL | اختياري |
تمثّل هذه السمة وحدة القياس باعتبارها رمزًا مشتركًا لمنظمة UN/CEFACT أو عنوان URL. ويمكن استخدام رموز أخرى غير الرمز المشترك UN/CEFACT Common Code مع بادئة متبوعة بنقطتين. |
maxValue |
العدد | اختياري | القيمة العليا لبعض الخصائص أو الخصائص. |
minValue |
العدد | اختياري | القيمة الأقل لبعض الخصائص أو الخصائص. |
توضِّح الأمثلة التالية استخدام النوع QuantitativeValue
:
مثال 1
"deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }
مثال 2
"menuAddOn": { "@type": "AddOnMenuSection", "name": "Cheese", "@id": "https://www.example.com/1089/addon/1", // Points to an AddOnMenuSection "eligibleQuantity": "@type": "QuantitativeValue", "minValue": 0, "maxValue": 2 // Maximum of 2 cheeses are allowed } }
مثال 3
"priceSpecification": [ { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/defaultdeliveryfee/foo", "price": "10.0", "priceCurrency": "USD", "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/deliveryfee/foo/1", "price": "20.0", "priceCurrency": "USD", "validFrom":"T18:00:00", // Valid from 6:00PM "validThrough":"T22:00:00", // Valid to 9:59:59PM "eligibleQuantity": { "@type": "QuantitativeValue", "minValue": 3 // Minimum of 3 items required for delivery } } ]
مطعم
يعرض الجدول التالي سمات النوع Restaurant
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | يكون هذا العنوان دائمًا "مطعم". |
@id |
عنوان URL | مطلوبة | معرّف فريد للمطعم أو مقدّم خدمة التوصيل. على سبيل المثال، "http://www.provider.com/326"، حيث يكون "326" هو المعرّف الفريد للمطعم. |
name |
النص | مطلوبة | نص يمكنه تحديد Restaurant أثناء عملية الطلب. |
url |
عنوان URL | مطلوبة | عنوان URL على نطاقك يمثّل المطعم. على سبيل المثال، "http://www.provider.com/someRestaurant". |
sameAs |
عنوان URL | اختياري | الموقع الإلكتروني الرسمي للمطعم. على سبيل المثال، "http://www.someمطاعم.com". |
email |
النص | اختياري | عنوان البريد الإلكتروني للتواصل مع المطعم. |
description |
النص | اختياري | وصف المطعم. |
telephone |
النص | مطلوبة |
رقم الهاتف بالتنسيق التالي: "[+][country_code][phone_#_with_area_code]" على سبيل المثال، " +16501234567". |
priceRange |
النص | اختياري | مجموعة من الأسعار على سبيل المثال، "$$" ($-Inexpensive, $$-معتدل، $$$-Expensive, $$$$-Very Expensive). |
logo |
URL | Optional | Logo of the restaurant in PNG, JPG, or GIF format. For example, "http://www.somerestaurant.com/logo.png". |
image |
URL | Optional | Image of the restaurant. |
servesCuisine |
Array of Text | Optional | Food types that are served at the restaurant. For example,
["sushi","Asian fusion"] . |
address |
PostalAddress |
Required* | Address of the restaurant. |
geo |
GeoCoordinates |
Optional* | Geographic coordinates of the restaurant. |
suitableForDiet |
Array of RestrictedDiet |
Optional | Dietary restrictions this restaurant accommodates (like kosher, vegan, or gluten-free diets). It is an enumerated list. |
aggregateRating |
AggregateRating |
Optional | Overall rating, based on a collection of reviews or ratings of the restaurant. |
additionalProperty |
Array of name value string pairs | Optional |
A restaurant imprint is a section of additional information about the restaurant, such as legal name, legal address, and registration number. This information can be formatted using "\n". For example |
The following examples show the usage of the Restaurant
type:
Example 1
{ "@type": "Restaurant", "@id": "http://www.provider.com/somerestaurant", "url": "www.provider.com/somerestaurant", "name": "Some Restaurant", "sameAs": "http://www.somerestaurant.com", "image": "http://www.somerestaurant.com/image-of-some-restaurant.jpg", "description": "This is the Some Restaurant located on 345 Spear St. San Francisco, 94105 CA. It serves Indian-Mexican fusion cuisine", "address": { "@type": "PostalAddress", "addressLocality": "San Francisco", "addressRegion": "CA", "postalCode": "94105", "streetAddress": "345 Spear St", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": "37.391115", "longitude": "-122.081099" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.4", "reviewCount": "89" }, "priceRange": "$$", "telephone": " +16501234567", // رمز البلد (+1) مطلوب "servesCuisine": [ "Indian-Mexican Fusion" ] },مثال 2
{ "@type": "Restaurant", "@id": "http://www.example.com/threebrotherstacos", "name": "Three Brothers Tacos", "address": { "@type": "PostalAddress", "addressLocality": "Mountain View", "addressRegion": "CA", "postalCode": "94041", "streetAddress": "123 Foo St", "addressCountry": "US" }, "additionalProperty": [ {"name": "imprint", "value": "Three Brothers Tacos\n123 FooSt\nMountain View\nCA 94041, United States\nemail: contact@threebrotherstacos.com\n\nCommercial Register: 123456789"} ] }للاطّلاع على مزيد من الأمثلة حول كيانات
Restaurant
، يُرجى الاطّلاع على أمثلة على المطاعم وخلاصات القوائم.
ReturnablePackageDepositDetails
لاستخدام هذا النوع، أضِف السياق gs1: "@context":
["http://gs1.org/voc/", "http://schema.org"]
بعد ذلك، أضِف
FoodBeverageTobaccoProduct
إلى نوعMenuItem
أوMenuItemOption
المناسب.ويوضّح الجدول التالي سمات النوع
ReturnablePackageDepositDetails
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | ويمثل هذا دائمًا "ReturnablePackageDepositDetails". |
returnablePackageDepositAmount |
gs1:PriceSpecification |
اختياري | مبلغ الإيداع لهذا العنصر وفقًا لـ gs1:PriceSpecification. على سبيل المثال، إيداع 0.25 دولار لكل علبة. |
يوضّح المثال التالي استخدام النوع ReturnablePackageDepositDetails
:
{ "@type": ["MenuItem", "FoodBeverageTobaccoProduct"], "@id": "http://www.example.com/bar/menuitem/5", "name": "Sparkling Water", "description": "A 0.5l bottle of sparking water.", "offers": { "@type": "Offer", "sku": "offer-sparkling-water", "price": "1.49", "priceCurrency": "USD" }, "packaging": { "@type": "PackagingDetails", "packagingRecyclingProcessType" : "http://gs1.org/voc/PackagingRecyclingProcessTypeCode-REUSABLE", "hasReturnablePackageDeposit": { "@type": "ReturnablePackageDepositDetails", "returnablePackageDepositAmount": { "@type": "http://gs1.org/voc/PriceSpecification", "http://gs1.org/voc/price": "0.05", "http://gs1.org/voc/priceCurrency": "USD" } } } },
خدمة
تصف تسليم إجراء الطلب الشامل من مطعم إلى موقع جغرافي من قبل مؤسسة التوصيل.
يوضّح الجدول التالي سمات النوع Service
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة |
نوع الخلاصة
|
@id |
عنوان URL | مطلوبة | معرّف خدمة توصيل الطلبات. على سبيل المثال، "http://www.provider.com/service/1". |
description |
النص | اختياري | وصف السلعة. |
serviceType |
النص | مطلوبة | نوع الخدمة المقدَّمة. القيم المحتملة هي "التسليم" أو "التصدير". |
provider |
Restaurant |
مطلوبة | مرجع إلى المعرّف الفريد للمطعم. على سبيل المثال، "http://www.provider.com/someRestaurant". |
areaServed |
مصفوفة GeoShape أو
Place أو
GeoCircle |
الجملة الشرطية | المنطقة الجغرافية التي يتم تقديم الخدمة فيها. يكون هذا الحقل اختياريًا
تلقائيًا، ولكنّه مطلوب في حال تم ضبط قيمة serviceType على "التسليم". |
hoursAvailable |
مصفوفة OpeningHoursSpecification |
مطلوبة | تمثّل هذه السمة ساعات عمل هذه الخدمة. |
specialOpeningHoursSpecification |
مصفوفة OpeningHoursSpecification أو
ServiceDeliveryHoursSpecification أو
AdvanceServiceDeliveryHoursSpecification |
اختياري |
الأوقات التي تلغي حدِّد النطاق الزمني الخاص باستخدام السمتَين |
offers |
مصفوفة Offer |
الجملة الشرطية |
تفاصيل حول عرض التوصيل لمطعم محدّد. يكون هذا
الحقل اختياريًا تلقائيًا، ولكنّه مطلوب في حال تم ضبط قيمة وتُعدّ السمة |
hasOfferCatalog |
[Menu ، OfferCatalog] |
مطلوبة |
تحدِّد هذه السمة قائمة لهذه الخدمة. يمكنك استخدام قائمة مختلفة لكل خدمة من خدماتك (مثل خدمة الطعام السفري وخدمة التوصيل وخدمة تقديم الطعام). يجب تحديد كل من "hasOfferCatalog": { "@type": ["Menu", "OfferCatalog"], "@id": "https://www.provider.com/restaurant/menu/1" } |
additionalProperty |
مصفوفة {name, value} | اختياري |
معلومات اختيارية بشأن إعدادات الخدمة. ويُتوقّع أن تكون العناصر
كائنًا يحتوي على المفتاح
اطّلِع على المرجع "additionalProperty": [{ "name": "disableOrderInstructions", "value": false }, { "name": "disableMenuItemSpecialInstructions", "value": false }, { "name": "disableTipWidget", "value": false }, { "name": "disablePromoWidget", "value": false }, { "name": "menuItemSpecialInstructionsMaxLength", "value": 256 }, { "name": "orderInstructionsMaxLength", "value": 256 }] |
potentialAction |
عنوان URL | اختياري |
يحتوي على عنوان URL لخدمة توصيل الطعام أو طلبه لتناوله خارج المطعم التي سيتم استخدامها أثناء الانتقال من تجربة طلب الطعام الشاملة إلى عملية إعادة التوجيه. على سبيل المثال، "potentialAction": { "url": "https://fopatestagent.com/ordering/Restaurant-1/delivery" } |
يوضح المثال التالي استخدام نوع الخدمة:
مثال
{ "@type": "Service", "@id": "http://www.provider.com/service/1", "serviceType": "DELIVERY", "provider": { "@type": "Restaurant", "@id": "http://www.provider.com/threebrotherstacos" }, "potentialAction": { "url": "https://foprovider.com/ordering/restaurant-1/delivery" }, "hoursAvailable": [ // Ordering times for Monday through Friday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { "@type": "AdvanceServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T12:00:00", // Advance ordering begins at noon "closes": "T23:59:59", // Advance ordering ends at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" }, { "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "T10:00:00", // ASAP ordering begins at 10AM "closes": "T14:00:00", // ASAP ordering ends at 2PM "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] }, // Ordering times for Saturday and Sunday { "@type": "OpeningHoursSpecification", "deliveryHours": [ { // In this case advance orders are unavailable on Saturday and Sunday "@type": "ServiceDeliveryHoursSpecification", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", "unitCode": "MIN" }, "dayOfWeek": [ "Saturday", "Sunday" ], "opens": "T12:00:00", // ASAP orders start at noon "closes": "T23:59:59", // ASAP orders end at midnight "validFrom": "2017-01-01T00:00:00-07:00", "validThrough": "2018-12-31T23:59:59-07:00" } ] } ], "hasOfferCatalog": { "@type": ["Menu", "OfferCatalog"], "@id": "https://www.provider.com/menu/1" }, "areaServed": [{ "@type": "GeoCircle", // area1 "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "42.362757", "longitude": "-71.087109" }, "geoRadius": "10000" }, { "@type": "Place", // area2 "address": { "@type": "PostalAddress", "postalCode": "94041", "addressCountry": "US" } }, { "@type": "GeoShape", // area3 // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.418128 -122.098167 37.382755 -122.118968 37.368551 -122.047978 37.400949 -122.048106 37.418128 -122.098167" }, { "@type": "GeoShape", // area4 // Specify latitude first (i.e., lat long lat long ...) "polygon": "37.806000 -122.425592 37.775849 -122.419043 37.795547 -122.394046 37.808747 -122.412619" }, { "@type": "GeoCircle", // area5 "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" } ], "offers": { "@type": "Offer", "priceSpecification": [{ "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/deliveryfee/1", "price": "8.00", // Charges $8 for area5 "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", "priceCurrency": "USD" }, "eligibleRegion": [ // area5 { "@type": "GeoCircle", "geoMidpoint": { "@type": "GeoCoordinates", "latitude": "37.7392607", "longitude": "-122.3895522" }, "geoRadius": "4505" } ] }, { "@type": "DeliveryChargeSpecification", "@id": "http://www.provider.com/threebrotherstacos/defaultdeliveryfee", "price": "6.00", // Charges $6 when delivered from Foo restaurant to area1, area2, area3 and area4 (Default charge) "priceCurrency": "USD", "eligibleTransactionVolume": { "@type": "PriceSpecification", "minPrice": "20.00", // Minimum order price for delivery is $20 "priceCurrency": "USD" } } ] } },
للاطّلاع على المزيد من الأمثلة على كيانات الخدمة، راجِع أمثلة على خلاصة الخدمة.
ServiceDeliveryHoursSpecification
يمثل ساعات التنفيذ للمستخدمين لجدولة طلبات التوصيل والطعام السفري في أقرب وقت ممكن.
عادةً ما تكون قيمة opens
أقل من قيمة closes
. وتسري الإرشادات التالية على استخدام السمتَين opens
وcloses
:
- السمتان
opens
وcloses
اختياريتان للسمتَينServiceDeliveryHoursSpecification
، ولكننا ننصحك بشدة بتضمينهما. - يجب تحديد الوقت بالتوقيت المحلي للخدمة. لا تُدرِج منطقة زمنية في القيمة
opens
أوcloses
. إذا تم تحديد منطقة زمنية، يتجاهل Google معلومات المنطقة الزمنية. - إذا لم يتم تحديد
opens
وcloses
بشكل صريح، نفترض أنّ الطلب في أقرب وقت ممكن متاح كل يوم وفي جميع الأوقات. - إذا كانت السمة
opens
وcloses
متطابقتَين، نفترض أنّ الطلب في أقرب وقت ممكن غير متوفّر. - وإذا كانت قيمة السمة
opens
أكبر منcloses
، يتم تفسير ساعة الإغلاق على أنّها في اليوم التالي. على سبيل المثال، إذا تم ضبط ساعة الفتح على 1 يناير الساعة 5 مساءً وساعة الإغلاق 2 صباحًا، سيتم تفسير المطعم على أنّه مغلق في 2 يناير الساعة 2 صباحًا.
ويوضّح الجدول التالي سمات النوع ServiceDeliveryHoursSpecification
:
الموقع | النوع | ضرورة | الوصف |
---|---|---|---|
@type |
النص | مطلوبة | وتكون هذه القيمة دائمًا "ServiceDeliveryHoursSpecification". |
validFrom |
DateTime |
اختياري |
التاريخ والوقت (بما في ذلك المنطقة الزمنية) الذي يمكن فيه توصيل طلبات المستخدمين في أقرب وقت ممكن على سبيل المثال، "2017-05-01T07:00:00-07:00". إذا لم يتم ضبط هذه السمة، يُفترض أنّها صالحة كل يوم. لمزيد من المعلومات، راجِع تنسيقات التاريخ والوقت. |
validThrough |
DateTime |
اختياري |
التاريخ والوقت (بما في ذلك المنطقة الزمنية) اللذَين يتعذّر بعدهما تنفيذ طلبات المستخدمين في أقرب وقت ممكن على سبيل المثال، "2017-05-01T07:00:00-07:00". إذا لم يتم ضبط هذه السمة، يُفترض أنّها صالحة كل يوم. موعد لمزيد من المعلومات، راجِع تنسيقات التاريخ والوقت. |
opens |
Time |
اختياري |
تمثّل هذه السمة الوقت الذي تبدأ فيه خدمة التوصيل حتى يتم توصيل طلبات المستخدمين في أقرب وقت ممكن. على سبيل المثال، "T10:30:00". يجب تحديد الوقت بالتوقيت المحلي للخدمة. لا تضمِّن منطقة زمنية في القيمة لمزيد من المعلومات، راجِع تنسيقات التاريخ والوقت. |
closes |
Time |
اختياري |
الوقت الذي لم تعُد فيه خدمة تسليم طلبات المستخدمين في أقرب وقت ممكن متوفرة. على سبيل المثال، "T23:59:59". موعد يجب تحديد الوقت بالتوقيت المحلي للخدمة. لا تضمِّن منطقة زمنية في القيمة لمزيد من المعلومات، راجِع تنسيقات التاريخ والوقت. |
dayOfWeek |
مصفوفة DayOfWeek |
اختياري |
أيام الأسبوع التي تتوفر فيها هذه الخدمة لطلبات المستخدمين في أقرب وقت ممكن. في ما يلي قيم صالحة:
إذا لم تحدّد أي أيام من الأسبوع، سيتم تطبيق
|
deliveryLeadTime |
QuantitativeValue |
اختياري | الوقت المقدَّر للتسليم بالدقائق بعد تقديم الطلب ننصحك بشدة بضبط هذه السمة. اضبط
الحقل value في QuantitativeValue على عدد
الدقائق، واضبط الحقل unitCode على "MIN". |
يعرض المثال التالي عنصر ServiceDeliveryHoursSpecification
:
مثال 1
{ "@type": "ServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "deliveryLeadTime": { "@type": "QuantitativeValue", "value": "60", // If no exact deliveryLeadTime, put a maximum time "unitCode": "MIN" } },
مثال 2
{ "@type": "ServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "deliveryLeadTime": { "@type": "QuantitativeValue", "minValue": "30", "maxValue": "50", "unitCode": "MIN" } }
عمليات التعداد
RestrictedDiet
يحتوي النوع RestrictedDiet
على القيم المحتملة التالية:
- http://schema.org/DiabeticDiet
- http://schema.org/GlutenFreeDiet
- http://schema.org/HalalDiet
- http://schema.org/HinduDiet
- http://schema.org/KosherDiet
- http://schema.org/LowCalorieDiet
- http://schema.org/LowFatDiet
- http://schema.org/LowLactoseDiet
- http://schema.org/LowSaltDiet
- http://schema.org/VeganDiet
- http://schema.org/VegetarianDiet
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2024-02-16 (حسب التوقيت العالمي المتفَّق عليه)