ব্যবহারকারীদের পিকআপ এবং ডেলিভারির খাবারের অর্ডার আগে থেকে শিডিউল করার জন্য আপনি আপনার পরিপূর্ণতায় সহায়তা যোগ করতে পারেন। এই সমর্থনটি পূরণ করার আগে, একটি পরিষেবা ইনভেন্টরি ফিড তৈরি করুন যা ব্যবহারকারীদের আগাম অর্ডার দেওয়ার সময় নির্দিষ্ট করে, যেমন ইনভেন্টরি ফিড স্কিমা ( AdvanceServiceDeliveryHoursSpecification
) এ বর্ণনা করা হয়েছে।
অগ্রিম অর্ডার স্লট
Google একটি রেস্তোরাঁ বা পরিষেবার পরিপূর্ণতার সময়ের উপর ভিত্তি করে ( AdvanceServiceDeliveryHoursSpecification
এ সংজ্ঞায়িত করা হয়েছে) এর উপর ভিত্তি করে 15 মিনিটের বৃদ্ধির মধ্যে অগ্রিম অর্ডার স্লট প্রস্তাব করে।
প্রস্তাবিত অর্ডার সামনের স্লটগুলি পুনরুদ্ধার করতে, চেকআউটের সময় FoodCartExtension
অবজেক্টের fulfillmentPreference
ক্ষেত্র থেকে নিম্নলিখিত মানগুলি ব্যবহার করুন:
-
PickupInfo.pickupTimeIso8601
-
DeliveryInfo.deliveryTimeIso8601
চেকআউট এ অগ্রিম আদেশ বাস্তবায়ন
ব্যবহারকারীরা যখন অর্ডার দেওয়ার চেষ্টা করেন তখন চেকআউটের সময় আপনি আপনার পূর্ণতার প্রতিক্রিয়া বাস্তবায়ন করতে পারেন এমন সম্ভাব্য উপায়গুলি নীচের সারণীতে রয়েছে।
দৃশ্যকল্প | পরিপূর্ণ আচরণ |
---|---|
অনুরোধকৃত স্লটের জন্য অগ্রিম আদেশ পূরণ করা যেতে পারে। | একই স্লট সহ একটি ProposedOrder তৈরি করে P0M ("যত তাড়াতাড়ি সম্ভব") বা FUTURE_SLOT কার্ট গ্রহণ করুন৷ একটি স্লট গ্রহণ করে চেকআউট প্রতিক্রিয়ার উদাহরণের জন্য, এই কোড স্নিপেটটি দেখুন। |
অনুরোধকৃত স্লটের জন্য অগ্রিম আদেশ পূরণ করা যাবে না। | আপনার পূর্ণতা নিম্নলিখিত করা উচিত:
বিকল্প স্লট প্রস্তাব করে চেকআউট প্রতিক্রিয়ার উদাহরণের জন্য, এই কোড স্নিপেটটি দেখুন। |
অর্ডার পূরণের জন্য বিকল্প স্লট
চেকআউটের সময়, Google দ্বারা প্রস্তাবিত অর্ডার সামনের স্লটগুলি উপযুক্ত না হলে, আপনার পূর্ণতা CheckoutResponseMessage
অবজেক্ট ব্যবহার করে বিকল্পগুলির পরামর্শ দিতে পারে৷
বিকল্প অগ্রিম অর্ডার স্লট নির্দিষ্ট করতে, একটি FoodErrorExtension
দিয়ে চেকআউট অনুরোধে সাড়া দিন এবং নিম্নলিখিত মানগুলি সেট করুন:
-
foodOrderErrors
প্যারামিটারে, ত্রুটির ধরন নির্দিষ্ট করুন (যেমনUNAVAILABLE_SLOT
,NO_CAPACITY
, বাCLOSED
)। -
correctedProposedOrder
প্যারামিটারে,availableFulfillmentOptions
এর মাধ্যমে বিকল্পP0M
বাFUTURE_SLOT
মান প্রদান করুন।
বিকল্প স্লটগুলি অর্ডার প্লেসমেন্টের সময় থেকে পরবর্তী 7 দিনের জন্য হওয়া উচিত এবং ব্যবহারকারীর অনুরোধ করা কার্টটি পূরণ করা যেতে পারে এমন সমস্ত স্লট অন্তর্ভুক্ত করা উচিত।
উদাহরণস্বরূপ, বলুন যে লাঞ্চ স্পেশালগুলি শুধুমাত্র সোমবার থেকে শুক্রবার সকাল 11 AM থেকে 1 PM পর্যন্ত উপলব্ধ। ব্যবহারকারী তখন তাদের কার্টে লাঞ্চ স্পেশাল যোগ করার চেষ্টা করে কিন্তু তাদের নির্বাচিত স্লট পাওয়া যায় না। এই ক্ষেত্রে, আপনার পূর্ণতা কার্টে মধ্যাহ্নভোজের বিশেষগুলি বজায় রাখা উচিত এবং পরবর্তী 7 দিনের জন্য শুধুমাত্র 11 AM থেকে 1 PM স্লটগুলি ফেরত দিতে হবে
আপনার প্রতিক্রিয়াতে আপনার correctedProposedOrder.Cart.fulfillmentPreference
বস্তুটি বাদ দেওয়া উচিত।
যদি কোনও উপলব্ধ স্লট না থাকে, বা যদি রেস্তোরাঁ বা পরিষেবা অগ্রিম আদেশ সমর্থন না করে, তাহলে আপনাকে একটি correctedProposedOrder
প্রদান করতে হবে না।
যখন রেস্তোরাঁ বা পরিষেবা প্রি-অর্ডার নেওয়ার জন্য উপলব্ধ থাকে তখন চেকআউট অনুরোধ এবং অগ্রিম অর্ডারের জন্য প্রতিক্রিয়া প্রবাহের সময় আপনার পূরণ এবং Google-এর মধ্যে JSON বার্তাগুলির জন্য নীচের উদাহরণগুলি দেখুন।
উদাহরণ: ডেলিভারি স্লট সহ CheckoutRequest
নীচের স্নিপেট একটি অগ্রিম অর্ডার ডেলিভারি স্লট সহ একটি চেকআউট অনুরোধের একটি উদাহরণ দেখায়৷
{
"inputs": [
{
"intent": "actions.foodordering.intent.CHECKOUT",
"arguments": [
{
"extension": {
"@type": "type.googleapis.com/google.actions.v2.orders.Cart",
"merchant": {
"id": "https://www.exampleprovider.com/merchant/id1",
"name": "Cucina Venti"
},
"lineItems": [
{
"name": "Sizzling Prawns Dinner",
"type": "REGULAR",
"id": "sample_item_offer_id_1",
"offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
"quantity": 1,
"price": {
"type": "ESTIMATE",
"amount": {
"currencyCode": "USD",
"units": "16",
"nanos": 750000000
}
},
}
],
"extension": {
"@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
"fulfillmentPreference": {
"fulfillmentInfo": {
"delivery": {
// Deliver at 6:30PM.
"deliveryTimeIso8601": "2017-12-14T18:30:00-07:00"
}
}
},
"location": {
...
}
}
}
}
]
}
]
}
উদাহরণ: CheckoutResponse স্লট গ্রহণ করে
নীচের স্নিপেটটি একটি চেকআউট প্রতিক্রিয়ার একটি উদাহরণ দেখায় যেখানে আপনার পূর্ণতা প্রস্তাবিত অগ্রিম অর্ডার স্লটগুলি গ্রহণ করে৷
{
"expectUserResponse": false,
"finalResponse": {
"richResponse": {
"items": [
{
"structuredResponse": {
"checkoutResponse": {
"proposedOrder": {
"id": "sample_proposed_order_id_1",
"cart": {
"merchant": {
"id": "https://www.exampleprovider.com/merchant/id1",
"name": "Falafel Bite"
},
"lineItems": [
{
"name": "Sizzling Prawns Dinner",
"type": "REGULAR",
"id": "sample_item_offer_id_1",
"offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
"quantity": 1,
"price": {
"type": "ESTIMATE",
"amount": {
"currencyCode": "USD",
"units": "16",
"nanos": 750000000
}
},
}
],
"extension": {
"@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
"fulfillmentPreference": {
"fulfillmentInfo": {
"delivery": {
// Same as the time in the request.
"deliveryTimeIso8601": "2017-12-14T18:30:00-07:00"
}
}
},
"location": {
...
}
}
},
"totalPrice": {
"type": "ESTIMATE",
"amount": {
// Represents $16.75
"currencyCode": "USD",
"units": "16",
"nanos": 750000000
}
},
"extension": {
"@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
// Send whole proposed order back.
"availableFulfillmentOptions": [
"fulfillmentInfo": {
"delivery": {
// Same as the time in the request.
"deliveryTimeIso8601": "2017-12-14T18:30:00-07:00"
}
}
]
}
},
"paymentOptions": {
...
}
}
}
}
]
}
}
}
উদাহরণ: বিকল্প স্লট সহ CheckoutResponse
নীচের স্নিপেটটি একটি চেকআউট প্রতিক্রিয়ার একটি উদাহরণ দেখায় যেখানে আপনার পূর্ণতা বিকল্প অগ্রিম অর্ডার স্লট প্রস্তাব করে। মনে রাখবেন যে আপনার প্রতিক্রিয়াতে correctedProposedOrder.Cart.fulfillmentPreference
বস্তুটি বাদ দেওয়া উচিত।
{
"expectUserResponse": false,
"finalResponse": {
"richResponse": {
"items": [
{
"structuredResponse": {
"error": {
"@type": "type.googleapis.com/google.actions.v2.orders.FoodErrorExtension",
"foodOrderErrors": [
{
"error": "UNAVAILABLE_SLOT", // Cart level error
"description": "The restaurant is closed."
}
],
"correctedProposedOrder": {
// Send whole original cart back,
// without the fulfillmentPreference.
"cart": {
...
},
"otherItems": {
...
},
"totalPrice": {
...
},
"extension": {
"@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderExtension",
"availableFulfillmentOptions": [
"fulfillmentInfo": {
"delivery": {
"deliveryTimeIso8601": "2017-12-14T19:00:00-07:00"
}
},
"fulfillmentInfo": {
"delivery": {
"deliveryTimeIso8601": "2017-12-14T19:30:00-07:00"
}
},
"fulfillmentInfo": {
"delivery": {
"deliveryTimeIso8601": "2017-12-14T20:00:00-07:00"
}
}
]
}
},
"paymentOptions": {
...
}
}
}
}
]
}
}
}
সাবমিট অর্ডারে অগ্রিম আদেশ বাস্তবায়ন করুন
অর্ডার জমা দেওয়ার সময়, যদি অগ্রিম অর্ডার স্লটগুলির সাথে কোনও সমস্যা হয়, তাহলে আপনার SubmitOrderResponseMessage
কারণ (যেমন UNAVAILABLE_SLOT
বা UNKNOWN
) RejectionInfo
অবজেক্টে অন্তর্ভুক্ত করা উচিত।
প্রদানকারীর দ্বারা অর্ডার গৃহীত হলে OrderState
অবজেক্টে CREATED
থেকে CONFIRMED
অর্ডারের অবস্থা আপডেট করুন। ব্যবহারকারীকে আপনার নিশ্চিতকরণ ইমেলে নির্বাচিত সময় স্লট অন্তর্ভুক্ত করুন।
যদি আপনার পূর্ণতা পরে রেস্টুরেন্টে অর্ডার পাঠায়, তাহলে অ্যাসিঙ্ক্রোনাস অর্ডার আপডেট অ্যাকশন ব্যবহার করে Google-কে একটি আপডেট পাঠান।
আপনার পূরণের সাবমিট অর্ডার প্রতিক্রিয়া বা পরবর্তী অ্যাসিঙ্ক্রোনাস অর্ডার আপডেটের OrderUpdate
অবজেক্টে, নিম্নরূপ সেট করা মান সহ একটি estimatedFulfillmentTimeIso8601
অন্তর্ভুক্ত করুন:
- যখন অর্ডার স্ট্যাটাস
CREATED
বাCONFIRMED
হয়, ব্যবহারকারী তাদের অগ্রিম অর্ডারের জন্য নির্ধারিত ডেলিভারি বা পিকআপ সময়ের মান সেট করুন। - যখন রেস্তোরাঁ বা পরিষেবা থেকে আরও সঠিক আনুমানিক ডেলিভারি সময় থাকে, তখন ডেলিভারি বা পিকআপ সময়ের জন্য আনুমানিক সময়ের মান সেট করুন।
উদাহরণ: ডেলিভারি স্লট সহ SubmitOrderRequest
নীচের স্নিপেটটি একটি জমা অর্ডার অনুরোধের একটি উদাহরণ দেখায় যা ব্যবহারকারীর নির্বাচিত অগ্রিম অর্ডার স্লট নির্দেশ করে৷
{
"inputs": [
{
"intent": "actions.intent.TRANSACTION_DECISION",
"arguments": [
{
"transactionDecisionValue": {
"order": {
"finalOrder": {
"cart": {
"notes": "Guest prefers their food to be hot when it is delivered.",
"merchant": {
"id": "https://www.exampleprovider.com/merchant/id1",
"name": "Cucina Venti"
},
"lineItems": [
{
"name": "Sizzling Prawns Dinner",
"type": "REGULAR",
"id": "sample_item_offer_id_1",
"offerId": "https://www.exampleprovider.com/menu/item/offer/id1",
"quantity": 1,
"price": {
"type": "ESTIMATE",
"amount": {
"currencyCode": "USD",
"units": "16",
"nanos": 750000000
}
}
}
],
"extension": {
"@type": "type.googleapis.com/google.actions.v2.orders.FoodCartExtension",
"fulfillmentPreference": {
"fulfillmentInfo": {
"delivery": {
"deliveryTimeIso8601": "2017-12-14T18:30:00-07:00"
}
}
}
"contact": {
...
}
}
},
"totalPrice": {
"type": "ESTIMATE",
"amount": {
"currencyCode": "USD",
"units": "16",
"nanos": 750000000
}
},
"id": "sample_final_order_id",
"extension": {
// Send whole proposed order back.
"availableFulfillmentOptions": [
"fulfillmentInfo": {
"delivery": {
"deliveryTimeIso8601": "2017-12-14T18:30:00-07:00"
}
]
}
},
"googleOrderId": "sample_google_order_id",
"orderDate": "2017-07-17T12:00:00Z",
"paymentInfo": {
...
}
}
}
}
]
}
]
}
উদাহরণ: SubmitOrderResponse অর্ডার গ্রহণ করা
নীচের স্নিপেটটি একটি জমা অর্ডার প্রতিক্রিয়ার একটি উদাহরণ দেখায় যেখানে আপনার পূর্ণতা নিশ্চিত করে যে এটি ব্যবহারকারীর অগ্রিম আদেশ গ্রহণ করেছে৷
{
"expectUserResponse": false,
"finalResponse": {
"richResponse": {
"items": [
{
"structuredResponse": {
"orderUpdate": {
"actionOrderId": "sample_action_order_id",
"orderState": {
"state": "CREATED",
"label": "Order placed"
},
"receipt": {
"userVisibleOrderId": "userVisibleId1234"
},
"updateTime": "2017-07-17T12:00:00Z",
"orderManagementActions": [
...
],
"infoExtension": {
"@type": "type.googleapis.com/google.actions.v2.orders.FoodOrderUpdateExtension",
// Same as the user selected time.
"estimatedFulfillmentTimeIso8601": "2017-12-14T18:30:00-07:00"
}
}
}
}
]
}
}
}
উদাহরণ: স্লটের অনুপলব্ধতার কারণে SubmitOrderResponse অর্ডারটি প্রত্যাখ্যান করছে
নীচের স্নিপেটটি একটি সাবমিট অর্ডার প্রতিক্রিয়ার একটি উদাহরণ দেখায় যেখানে অনুপলব্ধ স্লটের কারণে আপনার পূর্ণতা একজন ব্যবহারকারীর অগ্রিম আদেশকে অস্বীকার করে৷
{
"expectUserResponse": false,
"finalResponse": {
"richResponse": {
"items": [
{
"structuredResponse": {
"orderUpdate": {
"actionOrderId": "sample_action_order_id",
"orderState": {
"state": "REJECTED",
"label": "Unavailable slot"
},
"rejectionInfo": {
// Note that this UNAVAILABLE_SLOT is different from the enum
// with the same name proposed for FoodOrderError.
"state": "UNAVAILABLE_SLOT",
"label": "Unavailable slot"
},
"updateTime": "2017-07-17T12:00:00Z",
"orderManagementActions": [
...
]
}
}
}
]
}
}
}
অগ্রিম আদেশ উদাহরণ
AdvanceServiceDeliveryHoursSpecification
প্রকারটি ডেলিভারি বা পিকআপের সময় নির্দিষ্ট করতে ব্যবহার করা যেতে পারে যাতে ব্যবহারকারীরা তাদের অর্ডার আগে থেকে নির্ধারণ করতে পারে।
দ্রষ্টব্য: পরিষেবা পূরণের জন্য আপনাকে অবশ্যই দুটি পৃথক সময় নির্দিষ্ট করতে হবে: অর্ডারিং উইন্ডো যা নির্দিষ্ট করে যে ব্যবহারকারীরা কখন একটি অর্ডার দিতে পারবেন এবং পূর্ণতা উইন্ডো যা নির্দিষ্ট করে কখন অর্ডারটি পূরণ হবে৷
অবজেক্ট সংজ্ঞায়িত করে যখন ব্যবহারকারী অর্ডার দিতে পারে। এর চাইল্ড পূর্ণতার সময় ( OpeningHoursSpecification
বা ServiceDeliveryHoursSpecification
) কখন অর্ডারটি পূরণ করা যাবে তা নির্ধারণ করে।AdvanceServiceDeliveryHoursSpecification
নিম্নলিখিত উদাহরণটি 15 মিনিটের পরিষেবা ব্যবধান সহ অগ্রিম অর্ডার গ্রহণের জন্য একটি পরিষেবার ঘন্টা সংজ্ঞায়িত করে৷
{ "hoursAvailable": [ { "@type": "OpeningHoursSpecification", "opens": "T00:00:00", // Ordering available 24 hours "closes": "T23:59:59", "deliveryHours": [ { "@type": "ServiceDeliveryHoursSpecification", "opens": "T09:00:00", // ASAP orders b/w 9am and 8:59:59pm "closes": "T21:00:00", "deliveryLeadTime": { "value": "60", "unitCode": "MIN" } }, { "@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" } } ] } ] }
নিম্নলিখিত উদাহরণটি দেখায় যে আপনি কীভাবে নির্দিষ্ট করতে পারেন যে পরিষেবাটি ক্রিসমাসের দিনে একই দিনের অর্ডারগুলির জন্য খোলা থাকে কিন্তু সেই দিনের জন্য নির্ধারিত উন্নত অর্ডারগুলির জন্য বন্ধ থাকে৷ এই উদাহরণ নিম্নলিখিত পরিস্থিতিতে সমর্থন করে:
- ব্যবহারকারীরা একই দিনে ডেলিভারির জন্য 25 ডিসেম্বর একটি অর্ডার করতে পারেন ।
- ব্যবহারকারীরা ডিসেম্বর 25 তারিখে 27 ডিসেম্বরের জন্য নির্ধারিত ডেলিভারির জন্য একটি অগ্রিম অর্ডার করতে পারেন ।
- 25 ডিসেম্বর নির্ধারিত ডেলিভারির জন্য ব্যবহারকারীরা 22শে ডিসেম্বর অগ্রিম অর্ডার করতে পারবেন না ।
{ "specialOpeningHoursSpecification": { "@type": "AdvanceServiceDeliveryHoursSpecification", "validFrom": "2018-12-25T00:00:00-07:00", "validThrough": "2018-12-26T00:00:00-07:00", "opens": "T00:00:00", // No advance ordering "closes": "T00:00:00" } }
নিম্নলিখিত উদাহরণটি দেখায় যে আপনি কীভাবে নির্দিষ্ট করতে পারেন যে পরিষেবাটি একই দিনের অর্ডারের জন্য বা ক্রিসমাসের দিনের জন্য নির্ধারিত অগ্রিম অর্ডারগুলির জন্য বন্ধ, কিন্তু পরবর্তী দিনের জন্য নির্ধারিত অগ্রিম অর্ডারগুলির জন্য খোলা৷ এই উদাহরণ নিম্নলিখিত পরিস্থিতিতে সমর্থন করে:
- ব্যবহারকারীরা 25 ডিসেম্বর একই দিনে ডেলিভারির জন্য অর্ডার করতে পারবেন না ।
- ব্যবহারকারীরা ডিসেম্বর 25 তারিখে 27 ডিসেম্বরের জন্য নির্ধারিত ডেলিভারির জন্য একটি অগ্রিম অর্ডার করতে পারেন ।
- 25 ডিসেম্বর নির্ধারিত ডেলিভারির জন্য ব্যবহারকারীরা 22শে ডিসেম্বর অগ্রিম অর্ডার করতে পারবেন না ।
{ "specialOpeningHoursSpecification": [ { "@type": "ServiceDeliveryHoursSpecification", "validFrom": "2018-12-25T00:00:00-07:00", "validThrough": "2018-12-26T00:00:00-07:00", "opens": "T00:00:00", // No ASAP ordering on Christmas "closes": "T00:00:00" }, { "@type": "AdvanceServiceDeliveryHoursSpecification", "validFrom": "2018-12-25T00:00:00-07:00", "validThrough": "2018-12-26T00:00:00-07:00", "opens": "T00:00:00", // Orders cannot be scheduled for Christmas "closes": "T00:00:00" } ] }
নিম্নলিখিত নমুনা পরিষেবাটি 24x7 অর্ডার গ্রহণ করে এবং সপ্তাহের দিনগুলিতে সকাল 10 AM-2:59:59 পর্যন্ত বিতরণ করে:
... { "@type": "OpeningHoursSpecification", "opens": "T00:00:00", "closes": "T23:59:59", "deliveryHours": { "@type": "AdvanceServiceDeliveryHoursSpecification", "opens": "T10:00:00", // Delivery starts at 10:00AM "closes": "T15:00:00", // Delivery ends at 3:00PM. Delivery from 10AM-2:59:59PM. "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "serviceTimeInterval": "PT15M", // in slots spaced 15 minutes apart "advanceBookingRequirement": { "minValue": 60, // The slot should be at least 60 mins away "maxValue": 8640, // but not more than 6 days away "unitCode": "MIN" } } } ...
নিম্নলিখিত নমুনা পরিষেবা প্রতিদিন সকাল 8 AM-4:59:59PM পর্যন্ত অর্ডার গ্রহণ করে এবং গ্রাহকরা হয় এক ঘন্টার মধ্যে একটি ডেলিভারি বেছে নিতে পারেন, অথবা স্লটগুলির মধ্যে একটি বেছে নিতে পারেন:
... { "@type": "OpeningHoursSpecification", "opens": "T08:00:00", // Ordering opens at 8:00AM "closes": "T17:00:00", // Ordering closes at 5:00PM, last order at 4:59:59PM "deliveryHours": [ { "@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" } }, { "@type": "AdvanceServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "serviceTimeInterval": "PT15M", // in slots spaced 15 minutes apart "advanceBookingRequirement": { "minValue": 90, // The slot should be at least 90 mins away "maxValue": 8640, // but not more than 6 days away "unitCode": "MIN" } } ] } ...
নিম্নলিখিত নমুনা এমন একটি কেস দেখায় যেখানে দোকানটি সপ্তাহের দিনগুলিতে সকাল 8 AM-4:59:59 PM কিন্তু সপ্তাহান্তে 8 AM-6:59 PM পর্যন্ত খোলে৷ অর্ডার 24x7 গ্রহণ করা হয় না.
... { // On weekdays, ordering open from 8AM-4:59:59PM. "@type": "OpeningHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "deliveryHours": [ { // Fulfillment between 8AM-4:59:59PM on weekdays. "@type": "AdvanceServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "serviceTimeInterval": "PT15M", "advanceBookingRequirement": { "minValue": 60, "maxValue": 8640, "unitCode": "MIN" } }, { // Fulfillment between 8AM-6:59:59PM on weekends (even for orders placed on a // weekday). "@type": "AdvanceServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T19:00:00", "dayOfWeek": [ "Saturday", "Sunday" ], "serviceTimeInterval": "PT15M", "advanceBookingRequirement": { "minValue": 60, "maxValue": 8640, "unitCode": "MIN" } } ] }, { // On weekends, one can place orders upto 6:59:59PM. "@type": "OpeningHoursSpecification", "opens": "T08:00:00", "closes": "T19:00:00", "dayOfWeek": [ "Saturday", "Sunday" ], "deliveryHours": [ { // But fulfillment on weekdays is only till 4:59:59PM. "@type": "AdvanceServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T17:00:00", "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "serviceTimeInterval": "PT15M", "advanceBookingRequirement": { "minValue": 60, "maxValue": 8640, "unitCode": "MIN" } }, { // Fulfillment on weekends is till 6:59:59PM. "@type": "AdvanceServiceDeliveryHoursSpecification", "opens": "T08:00:00", "closes": "T19:00:00", "dayOfWeek": [ "Saturday", "Sunday" ], "serviceTimeInterval": "PT15M", "advanceBookingRequirement": { "minValue": 60, "maxValue": 8640, "unitCode": "MIN" } } ] } ...