फ़ीड में उपलब्धता को व्यवस्थित करना

खरीदारी के लिए उपलब्धता का फ़ॉर्मैट चुनना

उपलब्धता के डेटा की जानकारी देने के दो तरीके हैं: (1) Spots ओपन या (2) दोहराव. अपने सभी व्यापारियों/कंपनियों और सेवाओं के लिए, सिर्फ़ एक तरीका चुनें. तरीका चुनने के बाद, आपको पूरे इंटिग्रेशन (फ़ीड, बुकिंग सर्वर, और रीयल-टाइम अपडेट) के लिए उसी तरीके का इस्तेमाल करना होगा.

यह तय करने के लिए कि उपलब्धता का कौनसा फ़ॉर्मैट ज़्यादा सही है, इस गाइड का इस्तेमाल करें:

  • आपके सिस्टम में, क्या उपलब्धता को अश्लील स्लॉट के तौर पर सेव किया जाता है, जैसे कि सुबह 8:00 बजे से सुबह 8:30 बजे तक?
    • Spots Open का इस्तेमाल करें
  • क्या आपके सिस्टम में, खरीदारी के लिए उपलब्धता को बार-बार इस्तेमाल किए जाने वाले फ़ॉर्मैट में स्टोर किया जाता है. इसका मतलब है कि व्यापारियों/कंपनियों/कारोबारियों के पास ऐसी सेवाएं होती हैं जो बार-बार और कभी-कभी मिलती हैं? उदाहरण के लिए, स्लॉट को हर 15 मिनट में सुबह 9:00 बजे से शाम 5:00 बजे तक दोहराया जाता है. हर 15 मिनट के बाद, सिर्फ़ एक सीट उपलब्ध होती है.
  • क्या आपके व्यापारियों/कंपनियों/कारोबारियों की सेवाओं के लिए, एक बार में एक से ज़्यादा ओपन स्पॉट तय किए जा सकते हैं? उदाहरण के लिए, किसी क्लास के लिए 30 खुली जगहें
    • Spots Open का इस्तेमाल करें
  • क्या इनमें से कोई विकल्प लागू नहीं होता?
    • Spots Open का इस्तेमाल करें
    • ध्यान दें: बार-बार लागू होने की सुविधा का इस्तेमाल करना ज़्यादा असरदार है और इससे फ़ीड का साइज़ छोटा हो सकता है. हालांकि, अगर आपका डेटा मॉडल मूल रूप से, बार-बार होने वाले कन्वर्ज़न के साथ काम नहीं करता, तो हमारा सुझाव है कि आप बार-बार होने वाले फ़ंक्शन का इस्तेमाल न करें. आपको हर रीयल टाइम अपडेट के लिए, बार-बार होने वाले स्लॉट का फिर से हिसाब लगाना होगा.

    खुले हुए धब्बे

    पैरामीटर की परिभाषाएं:

    • spot_open: इस उपलब्धता एंट्री के लिए फ़िलहाल उपलब्ध स्पॉट की संख्या.
    • spot_total: इस कॉन्फ़िगरेशन के लिए व्यापारी/कंपनी/कारोबारी के पास मौजूद स्पॉट की कुल संख्या. इसमें वे स्पॉट भी शामिल हैं जो उपलब्ध नहीं हैं.

    Spots Open तरीका, साफ़ तौर पर हर स्लॉट की उपलब्धता के बारे में बताता है. साथ ही, इस तरीके से एक ही सेवा के लिए एक से ज़्यादा स्पॉट होने के मॉडल की सुविधा मिलती है. सेवा की क्षमता को डिजिटल तौर पर दिखाने के लिए, ये दोनों पैरामीटर एक साथ काम करते हैं.

    बुकिंग होने पर, रीयल टाइम अपडेट से spot_open की संख्या 1 तक कम हो जानी चाहिए (Spot_total की संख्या में कोई बदलाव नहीं होना चाहिए). Spot_open = 0 होने पर, स्लॉट नहीं दिखना चाहिए.

    सेवाओं के उदाहरण

    योग की क्लास या ब्यूटी सलोन में ये फ़्लोर प्लान होते हैं और कोई ऐक्टिव बुकिंग नहीं होती

    पहली इमेज: बिना चालू बुकिंग वाला फ़्लोर प्लान

    इन व्यापारियों/कंपनियों/कारोबारियों के पास दो स्लॉट के लिए उपलब्धता फ़ीड कुछ इस तरह दिखेगी:

    JSON

        {
          "availability": [
                {
                  "spots_total": 6,
                  "spots_open": 6,
                  "duration_sec": 3600,
                  "service_id": "1001",
                  "start_sec": 1535817600, # Sept 1, 2018 4:00:00 PM GMT
                  "merchant_id": "1001"
                },
                {
                  "spots_total": 6,
                  "spots_open": 6,
                  "duration_sec": 3600,
                  "service_id": "1001",
                  "start_sec": 1535832000, # Sept 1, 2018 8:00:00 PM GMT
                  "merchant_id": "1001",
                }
              ]
        }
        

    बुकिंग वाली सेवाओं का उदाहरण

    दूसरी इमेज: एक फ़्लोर प्लान, जिसमें एक ही बुकिंग चालू है

    अब एक उपयोगकर्ता कोई एक जगह बुक करता है. बुकिंग होने पर, उपलब्धता की जानकारी अपडेट करने के लिए, रीयल टाइम में एक अपडेट जारी किया जाता है. हर दिन के लिए अगले दिन के उपलब्धता फ़ीड में, यह बुकिंग दिखनी चाहिए. ऐसे व्यापारियों/कंपनियों/कारोबारियों के लिए उपलब्धता फ़ीड की वैल्यू में, 1 सितंबर, 2018 को शाम 4:00:00 बजे जीएमटी स्लॉट के लिए, spot_open डालने की सेटिंग 1 तक कम हो जाएगी. 1 सितंबर, 2018 की रात 8:00:00 बजे जीएमटी स्लॉट में कोई बदलाव नहीं हुआ है.

    बुकिंग के साथ फ़ीड स्निपेट

    JSON

        {
          "availability": [
                {
                  "spots_total": 6,
                  "spots_open": 5,
                  "duration_sec": 3600,
                  "service_id": "1001",
                  "start_sec": 1535817600, # Sept 1, 2018 4:00:00 PM GMT
                  "merchant_id": "1001"
                },
                {
                  "spots_total": 6,
                  "spots_open": 6,
                  "duration_sec": 3600,
                  "service_id": "1001",
                  "start_sec": 1535832000, # Sept 1, 2018 8:00:00 PM GMT
                  "merchant_id": "1001",
                }
              ]
    }
        

    बार-बार होने वाला

    पैरामीटर की परिभाषाएं

    • बार-बार: उपलब्धता के स्लॉट का लगातार दोहराव का समय.
    • दोहराए जाने वाले_till_sec: पिछले स्लॉट के खत्म होने के समय का यूटीसी टाइमस्टैंप, जब तक उपलब्धता को दोहराया जाता है.
    • दोहराना_हर_sec: एक के बाद एक कई उपलब्ध स्लॉट के बीच सेकंड की संख्या. उदाहरण के लिए, अगर बार-बार होने वाली हर चीज़ = 1800 (30 मिनट) है और start_sec सुबह 9:00 बजे शुरू होता है, तो स्लॉट हर 30 मिनट में सुबह 9:00 बजे, 9:30 बजे, 10:00 बजे वगैरह दोहराए जाएंगे.
      • ध्यान दें: spot_open और spot_total के बारे में बताने की ज़रूरत नहीं है. अगर शेड्यूल_exception न हो, तब तक इन दोनों को 1 माना जाएगा

    बार-बार होने वाले तरीके से यह पता चलता है कि समय-समय पर मिलने वाली सेवाओं की उपलब्धता हर दिन के हिसाब से तय होती है. उदाहरण के लिए, ऐसी सेवा जो हर दिन सुबह 9:00 बजे से शाम 5:00 बजे तक हर 30 मिनट में उपलब्ध होती है. बार-बार होने की सुविधा में, आपको यह तय करना होता है कि स्लॉट कितनी देर तक चलेगा, स्लॉट दिन में पहली बार कब दिखेगा, उस स्लॉट को कितनी बार दोहराया जाना चाहिए, और उसी दिन उसे कब दोहराना बंद करना चाहिए. ध्यान दें: आपको हर दिन के लिए, बार-बार होने वाले स्लॉट का एक नया सेट अलग से तय करना होगा. अगर कोई स्लॉट पहले ही उस समयसीमा में बुक कर दिया गया है, तो आपको शेड्यूल के लिए एक अपवाद के तौर पर बताना होगा. उदाहरण के लिए, सुबह 9 बजे से रात 9 बजे तक, हर आधे घंटे में सुबह 11:00 बजे से 11:30 बजे तक को छोड़कर, हर आधे घंटे में यह प्रक्रिया दोहराएं. हर सेवा के लिए बार-बार होने और शेड्यूल करने के अपवाद अलग-अलग होंगे.

    सेवाओं के उदाहरण

    ब्यूटी पार्लर में ये फ़्लोर प्लान हैं और कोई ऐक्टिव बुकिंग नहीं है

    तीसरी इमेज: ऐसे फ़्लोर प्लान जिनमें कोई चालू बुकिंग नहीं है. मान लें कि हर सेवा के लिए सिर्फ़ एक स्पॉट खुला है (उदाहरण के लिए, सीमा हर 30 मिनट में हेयरकट सेवाएं देती हैं, लेकिन एक बार में सिर्फ़ एक ग्राहक के साथ शामिल हो सकती हैं.)

    इन व्यापारियों/कंपनियों/कारोबारियों के एक स्लॉट के लिए, उपलब्धता फ़ीड कुछ ऐसा दिखेगा:

    फ़ीड स्निपेट:

    JSON

        {
        "availability": [
              {
                "merchant_id": "1001",
                "service_id": "1001",  # haircut
                "start_sec": 1493888400, # May 4, 2017 9:00:00 AM GMT
                "duration_sec": 1800,
                "recurrence": {
                  "repeat_every_sec": 1800,
                  "repeat_until_sec": 1493915400 # May 4, 2017 4:30:00 PM GMT
                }
              }
            ]
        }
        

    बुकिंग वाली सेवाओं का उदाहरण

    चौथी इमेज: ऐसे फ़्लोर प्लान जिनमें एक बुकिंग चालू है. मान लें कि हर सेवा के लिए सिर्फ़ एक स्पॉट खुला है (उदाहरण के लिए, सीमा हर 30 मिनट में हेयरकट सेवाएं देती हैं, लेकिन एक बार में सिर्फ़ एक ग्राहक के साथ शामिल हो सकती हैं.)

    अब मान लीजिए कि एक उपयोगकर्ता दोपहर 12:30 बजे सीमा के साथ हेयरकट के लिए बुकिंग करता है. जब बुकिंग होती है, तो उपलब्धता की जानकारी को अपडेट करने के लिए, रीयल टाइम में एक अपडेट जारी किया जाता है. रोज़ के अगले उपलब्धता फ़ीड में, यह बुकिंग दिखनी चाहिए. ऐसे व्यापारियों/कंपनियों/कारोबारियों के लिए, उपलब्धता फ़ीड में दोपहर 12:30 से दोपहर 1:00 बजे तक, शेड्यूल करने से जुड़े अपवाद होंगे. हालांकि, ऐसा सिर्फ़ 30 मिनट की सेवा के लिए होगा.

    बुकिंग के साथ फ़ीड स्निपेट:

    JSON

        {
          "availability": [
                {
                  "merchant_id": "1001",
                  "service_id": "1001",
                  "start_sec": 1493888400, # May 4, 2017 9:00:00 AM GMT
                  "duration_sec": 1800,
                  "recurrence": {
                    "repeat_every_sec": 1800,
                    "repeat_until_sec": 1493915400 # May 4, 2017 4:30:00 PM GMT
                  },
                  "schedule_exception": [
                    {
                      "time_range": {
                        "begin_sec": 1493901000, # May 4, 2017 12:30:00 PM GMT
                        "end_sec": 1493902800 # May 4, 2017 1:00:00 PM GMT
                      }
                    }
                  ],
                }
              ]
        }