স্ট্রাকচার রিয়েল-টাইম আপডেট

রিয়েল-টাইম আপডেটের জন্য কেস ব্যবহার করুন

নিম্নলিখিত পরিস্থিতিতে রিয়েল-টাইম আপডেটগুলি সর্বদা জারি করা উচিত:

  • যখন একজন ব্যবহারকারী আপনার সিস্টেমে একটি রিজার্ভেশন বাতিল করে, এবং স্লটটি উপলব্ধ হয়ে যায়।
  • যখন একজন ব্যবহারকারী অ্যাকশন সেন্টারের মাধ্যমে রিজার্ভেশন বুক করেন এবং প্রাপ্যতা স্লট আর উপলব্ধ থাকে না।
  • যখন অ্যাকশন সেন্টারের মাধ্যমে করা কোনও রিজার্ভেশন আপনার পক্ষ থেকে বাতিল করা হয়, উদাহরণস্বরূপ, সরাসরি ব্যবসায়ীর দ্বারা। আপনাকে বুকিং এবং প্রাপ্যতা আপডেট করতে হবে কারণ আসল স্লটটি এখন আবার উপলব্ধ।

অতিরিক্তভাবে, যদি আপনি Availability Replace RTU বাস্তবায়ন করেন, তাহলে নিম্নলিখিত পরিস্থিতিতে রিয়েল-টাইম আপডেট জারি করা উচিত:

  • যখন একজন বণিক আপনার সিস্টেমে তাদের সময়সূচী (প্রাপ্যতা) পরিবর্তন করে।
  • যখন একজন ব্যবহারকারী আপনার সিস্টেমে একটি রিজার্ভেশন বুক করেন এবং প্রাপ্যতা স্লট আর উপলব্ধ থাকে না।
  • যদি আপনি CheckAvailability এর সাথে একটি লিগ্যাসি ইন্টিগ্রেশন ব্যবহার করেন, তাহলে যখন একটি বুকিং সার্ভার CheckAvailability কল ইনভেন্টরি ফেরত দেয় যা প্রকৃত ইনভেন্টরির সাথে মেলে না।

সমস্ত Maps Booking API কলের প্রয়োজন হয় না। নিম্নলিখিতগুলি বাধ্যতামূলক:

ইন্টিগ্রেশনের ধরণের উপর নির্ভর করে নিম্নলিখিতগুলিও উপলব্ধ বা প্রয়োজনীয় হতে পারে:

বুকিং RTU আপডেট করুন

যদি আপনার সিস্টেমে অ্যাকশন সেন্টার বুকিং-এ কোনও আপডেট করা হয় (যেমন বাতিল বা পরিবর্তিত), তাহলে একটি notification.partners.bookings.patch ( BookingNotification.UpdateBooking ) পাঠাতে হবে।

পরিবর্তনযোগ্য ক্ষেত্র

  • status
  • startTime
  • duration
  • partySize
  • paymentInformation.prepaymentStatus

বাতিলকরণের উদাহরণ

Request:
PATCH https://mapsbooking.googleapis.com/v1alpha/notification/partners/<PARTNER_ID>/bookings/<BOOKING_ID>?updateMask=status

Body:
{
  "name": "partners/<PARTNER_ID>/bookings/<BOOKING_ID>",
  "merchantId": "10001",
  "serviceId": "1001",
  "startTime": "2025-01-02T15:01:23.045123456Z",
  "duration": "3000s",
  "status": "CANCELED"
}

প্রাপ্যতা RTU প্রতিস্থাপন করুন

আপনার উপলব্ধতা আপডেট করার জন্য দুটি ধরণের প্রতিস্থাপন পদ্ধতি উপলব্ধ:

  • ব্যাচ রিপ্লেস ( InventoryUpdate.BatchServiceAvailability ): একাধিক মার্চেন্ট এবং পরিষেবার জন্য প্রাপ্যতা ডেটা সম্পূর্ণরূপে প্রতিস্থাপন করে।
    • দ্রষ্টব্য: এই ব্যাচ কলটি পারমাণবিকতার গ্যারান্টি দেয় না। শুধুমাত্র সফলভাবে আপডেট হওয়া প্রাপ্যতা স্লটগুলি ফেরত দেওয়া হবে।
  • একক প্রতিস্থাপন ( InventoryUpdate.ReplaceServiceAvailability ): একক বণিক এবং পরিষেবার জন্য উপলব্ধতা সম্পূর্ণরূপে প্রতিস্থাপন করে।

আরও বিস্তারিত জানার জন্য অনুগ্রহ করে নিম্নলিখিত রেফারেন্সটি ব্যবহার করুন।

রিয়েল-টাইম আপডেটগুলিতে ফিডের মাধ্যমে পাঠানো ডেটার মতো একই প্রাপ্যতা কাঠামো ব্যবহার করা উচিত । তাদের অবশ্যই নিম্নলিখিতগুলির মধ্যে একটি ব্যবহার করতে হবে:

  • spotsOpen
  • recurrence

কল করার জন্য একটি প্রতিস্থাপন পদ্ধতি নির্বাচন করা

কোন প্রতিস্থাপন পদ্ধতিটি বেশি উপযুক্ত তা নির্ধারণ করতে নিম্নলিখিত নির্দেশিকাটি ব্যবহার করুন:

  • একাধিক ব্যবসায়ী কি প্রভাবিত হচ্ছে? উদাহরণস্বরূপ, একটি অনুরোধে একাধিক ব্যবসায়ীর জন্য উপলব্ধতা প্রতিস্থাপন করুন।
  • আপনার সিস্টেম সময়ে সময়ে Google-এর সাথে সিঙ্ক্রোনাইজ করবে, শেষ আপডেটের পর থেকে সমস্ত প্রাপ্যতা পরিবর্তন পাঠিয়ে (প্রস্তাবিত নয়)।
    • ব্যাচ প্রতিস্থাপন
    • দ্রষ্টব্য: আমরা আশা করি আপনার পক্ষ থেকে আপডেট আসার ৫ মিনিটের মধ্যে ইনভেন্টরি RTU পাঠানো হবে। তাই আপনার কমপক্ষে প্রতি ৫ মিনিট অন্তর পরীক্ষা করে আপডেট পাঠানো উচিত।
  • এগুলোর কোনটিই প্রযোজ্য নয় নাকি আপনাকে শুধুমাত্র একজন ব্যবসায়ী এবং পরিষেবা আপডেট করতে হবে?
    • একক প্রতিস্থাপন
    • দ্রষ্টব্য: আপনি একটি ব্যাচ রিপ্লেস কল অনুকরণ করতে একাধিক একক প্রতিস্থাপন কল ব্যবহার করতে পারেন, তবে একটি একক ব্যাচ প্রতিস্থাপন কল ব্যবহার করা আরও কার্যকর হবে।

রিয়েল-টাইম আপডেট: স্পটস ওপেন ফর্ম্যাট

ফিড, বুকিং সার্ভার এবং রিয়েল-টাইম আপডেট জুড়ে একই ফর্ম্যাট ব্যবহার করা গুরুত্বপূর্ণ।

একটি spots_open ফিড স্নিপেট দেখতে এরকম:

ফিড স্নিপেট

   "availability": [
          {
            "merchant_id": "1001",
            "service_id": "12310",
            "spots_open": 2,
            "spots_total": 2,
            "start_sec": 1735831800, # January 02, 2025 15:30:00
            "duration_sec": 1800,
            "availabilityTag": "1000001"
          }
    ]

ইনভেন্টরি আপডেট API-এর জন্য, ৩:৩০ PM স্লট বুক করার সময় রিপ্লেস রিকোয়েস্ট বডি ফর্ম্যাট:

রিয়েল-টাইম আপডেট স্নিপেট প্রতিস্থাপন করুন

  {
    "extendedServiceAvailability": [
      {
        "merchantId": "1001",
        "serviceId": "12310",
        "startTimeRestrict": "2025-01-02T15:01:23.045123456Z",
        "endTimeRestrict": "2025-01-02T19:01:23.045123456Z",
        "availability": [
          {
            "startTime": "2025-01-02T15:30:00.00Z",
            "duration": "3600s",
            "spotsOpen": "1",
            "spotsTotal": "2",
            "availabilityTag": "1000001"
          }
        ]
      }
    ]
  }

যদি বিকাল ৩:৩০ টায় একটি নতুন স্লট বুক করা হয়, তাহলে পরবর্তী দৈনিক ফিডে আমরা কী আশা করব তার একটি উদাহরণ এখানে দেওয়া হল:

ফিড স্নিপেট

"availability": [
        {
          "merchant_id": "1001",
          "service_id": "12310",
          "spots_open": 1,
          "spots_total": 2,
          "start_sec": 1735831800, # January 02, 2025 15:30:00
          "duration_sec": 1800,
          "availabilityTag": "1000001"
        }
      ]

রিয়েল-টাইম আপডেট: পুনরাবৃত্তি বিন্যাস

ফিড, বুকিং সার্ভার এবং রিয়েল-টাইম আপডেট জুড়ে একই ফর্ম্যাট ব্যবহার করা গুরুত্বপূর্ণ।

পুনরাবৃত্তি ব্যবহার করে এমন একটি ফিড দেখতে এরকম দেখাচ্ছে:

ফিড স্নিপেট

  "availability": [
        {
          "merchant_id": "1001",
          "service_id": "12310",
          "spots_open": 1,
          "spots_total": 1,
          "start_sec": 1540890000, # October 30, 2018 9:00:00 AM
          "duration_sec": 1800,
          "recurrence": {
            "repeat_every_sec": 1800,
            "repeat_until_sec": 1540918800 # October 30, 2018 5:00:00 PM
          },
          "schedule_exception": [
            {
              "time_range": {
                "begin_sec": 1540902600, # October 30, 2018 12:30:00 PM
                "end_sec": 1540904400 # October 30, 2018 1:00:00 PM
              }
            }
          ],
        }
      ]

ইনভেন্টরি আপডেট API-এর জন্য, ৩:৩০ PM স্লট বুক করার সময় রিপ্লেস রিকোয়েস্ট বডি ফর্ম্যাটটি এরকম দেখাবে:

  {
    "extendedServiceAvailability": [
      {
        "merchantId": "1001",
        "serviceId": "12310",
        "startTimeRestrict": "2018-10-30T15:01:23.045123456Z",
        "endTimeRestrict": "2018-10-30T19:01:23.045123456Z",
        "availability": [
          {
            "startTime": "2018-10-30T15:30:00.00Z",
            "duration": "3600s",
            "spotsOpen": "1",
            "scheduleException": [
             {
                "timeRange": {
                  "startTime": "2018-10-30T12:30:00.00Z",
                  "endTime": "2018-10-30T13:00:00.00Z"
                }
              },
              {
                "timeRange": {
                  "startTime": "2018-10-30T15:30:00.00Z",
                  "endTime": "2018-10-30T16:00:00.00Z"
                }
              }
            ]
          }
        ]
      }
    ]
  }

পরবর্তী দৈনিক ফিডে কী আশা করা হচ্ছে তার একটি উদাহরণ এখানে দেওয়া হল। লক্ষ্য করুন যে এটি হল সেই মার্চেন্টের জন্য সম্পূর্ণ পরিষেবার উপলব্ধতা এবং এর পূর্ববর্তী এবং নতুন schedule_exceptions এর সমস্ত তথ্য:

ফিড স্নিপেট

   "availability": [
        {
          "merchant_id": "1001",
          "service_id": "12310",
          "spots_open": 1,
          "spots_total": 1,
          "start_sec": 1540890000, # October 30, 2018 9:00:00 AM
          "duration_sec": 1800,
          "recurrence": {
            "repeat_every_sec": 1800,
            "repeat_until_sec": 1540918800 # October 30, 2018 5:00:00 PM
          },
          "schedule_exception": [
            {
              "time_range": {
                "begin_sec": 1540902600, # October 30, 2018 12:30:00 PM
                "end_sec": 1540904400 # October 30, 2018 1:00:00 PM
              }
            },
            {
              "time_range": {
                "begin_sec": 1540913400, # October 30, 2018 3:30:00 PM
                "end_sec": 1540915200 # October 30, 2018 4:00:00 PM
              }
            }
          ],
        }
      ]

কখন রিয়েল-টাইম আপডেট জমা দিতে হবে

প্রাপ্যতা পরিবর্তন হলেই রিয়েল-টাইম আপডেটগুলি ক্রমাগত পাঠানো উচিত। এটি একটি বিস্তৃত প্রাপ্যতা ফিডের পাশাপাশি যা প্রতিদিন একবার জমা দেওয়া উচিত, যাতে আপনার এবং Google এর সিস্টেমের মধ্যে প্রাপ্যতা সিঙ্ক্রোনাইজ করা যায়।