v1 অর্ডার এগিয়ে বৈশিষ্ট্য

ব্যবহারকারীদের পিকআপ এবং ডেলিভারির খাবারের অর্ডার আগে থেকে শিডিউল করার জন্য আপনি আপনার পরিপূর্ণতায় সহায়তা যোগ করতে পারেন। এই সমর্থনটি পূরণ করার আগে, একটি পরিষেবা ইনভেন্টরি ফিড তৈরি করুন যা ব্যবহারকারীদের আগাম অর্ডার দেওয়ার সময় নির্দিষ্ট করে, যেমন ইনভেন্টরি ফিড স্কিমা ( AdvanceServiceDeliveryHoursSpecification ) এ বর্ণনা করা হয়েছে।

অগ্রিম অর্ডার স্লট

Google একটি রেস্তোরাঁ বা পরিষেবার পরিপূর্ণতার সময়ের উপর ভিত্তি করে ( AdvanceServiceDeliveryHoursSpecification এ সংজ্ঞায়িত করা হয়েছে) এর উপর ভিত্তি করে 15 মিনিটের বৃদ্ধির মধ্যে অগ্রিম অর্ডার স্লট প্রস্তাব করে।

প্রস্তাবিত অর্ডার সামনের স্লটগুলি পুনরুদ্ধার করতে, চেকআউটের সময় FoodCartExtension অবজেক্টের fulfillmentPreference ক্ষেত্র থেকে নিম্নলিখিত মানগুলি ব্যবহার করুন:

  • PickupInfo.pickupTimeIso8601
  • DeliveryInfo.deliveryTimeIso8601

চেকআউট এ অগ্রিম আদেশ বাস্তবায়ন

ব্যবহারকারীরা যখন অর্ডার দেওয়ার চেষ্টা করেন তখন চেকআউটের সময় আপনি আপনার পূর্ণতার প্রতিক্রিয়া বাস্তবায়ন করতে পারেন এমন সম্ভাব্য উপায়গুলি নীচের সারণীতে রয়েছে।

দৃশ্যকল্প পরিপূর্ণ আচরণ
অনুরোধকৃত স্লটের জন্য অগ্রিম আদেশ পূরণ করা যেতে পারে। একই স্লট সহ একটি ProposedOrder তৈরি করে P0M ("যত তাড়াতাড়ি সম্ভব") বা FUTURE_SLOT কার্ট গ্রহণ করুন৷ একটি স্লট গ্রহণ করে চেকআউট প্রতিক্রিয়ার উদাহরণের জন্য, এই কোড স্নিপেটটি দেখুন।
অনুরোধকৃত স্লটের জন্য অগ্রিম আদেশ পূরণ করা যাবে না। আপনার পূর্ণতা নিম্নলিখিত করা উচিত:
  1. অনুরোধ করা P0M বা FUTURE_SLOT কার্ট প্রত্যাখ্যান করুন, এবং কেন অর্ডারটি FoodErrorExtension অবজেক্টে পূরণ করা যাবে না তার কারণ নির্দেশ করুন।
    • যদি ক্ষমতার কারণে অর্ডারটি পূরণ করা না যায়, তাহলে NO_CAPACITY ধরনের ত্রুটির একটি FoodOrderError উল্লেখ করুন।
    • রেস্তোরাঁটি বন্ধ থাকার কারণে যদি অর্ডারটি পূরণ করা না যায়, তাহলে একটি FoodOrderError এরর প্রকার CLOSED উল্লেখ করুন।
    • যদি অন্য কোনো কারণে অর্ডারটি পূরণ করা না যায়, তাহলে UNAVAILABLE_SLOT ধরনের ত্রুটির একটি FoodOrderError উল্লেখ করুন।
  2. সম্ভব হলে, correctedProposedOrder অর্ডারে বিকল্প P0M বা FUTURE_SLOT মান প্রদান করুন। এই মানগুলি বর্তমান সময় থেকে শুরু করে পরবর্তী 7 দিনের জন্য সমস্ত বৈধ পূর্ণতা স্লট হওয়া উচিত। যখনই প্রযোজ্য তখন P0M স্লট অন্তর্ভুক্ত করুন।

বিকল্প স্লট প্রস্তাব করে চেকআউট প্রতিক্রিয়ার উদাহরণের জন্য, এই কোড স্নিপেটটি দেখুন।

অর্ডার পূরণের জন্য বিকল্প স্লট

চেকআউটের সময়, Google দ্বারা প্রস্তাবিত অর্ডার সামনের স্লটগুলি উপযুক্ত না হলে, আপনার পূর্ণতা CheckoutResponseMessage অবজেক্ট ব্যবহার করে বিকল্পগুলির পরামর্শ দিতে পারে৷

বিকল্প অগ্রিম অর্ডার স্লট নির্দিষ্ট করতে, একটি FoodErrorExtension দিয়ে চেকআউট অনুরোধে সাড়া দিন এবং নিম্নলিখিত মানগুলি সেট করুন:

  1. foodOrderErrors প্যারামিটারে, ত্রুটির ধরন নির্দিষ্ট করুন (যেমন UNAVAILABLE_SLOT , NO_CAPACITY , বা CLOSED )।
  2. 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"
      }
    }
  ]
}
...