ExtraGuestCharges

<OTA_HotelRateAmountNotifRQ>-এর মাধ্যমে পাঠানো রেট সংশোধন করা যেতে পারে যাতে রেটের আসল অতিথির সংখ্যার সাথে প্রাপ্তবয়স্ক এবং বাচ্চাদের সংখ্যাও অন্তর্ভুক্ত করা যায়। ExtraGuestCharges মেসেজটি এই অতিরিক্ত অতিথিদের জন্য কীভাবে রেট গণনা করা উচিত এবং কোন রুম, রেট প্ল্যান এবং থাকার তারিখের জন্য তাদের চার্জ প্রযোজ্য হবে তার স্পেসিফিকেশন অনুমতি দেয়।

ক্যাপাসিটি সংক্রান্ত প্রয়োজনীয়তা

ExtraGuestCharges মেসেজ থেকে গণনা করা দাম তখনই প্রযোজ্য হবে যখন ধারণক্ষমতা সংক্রান্ত সব শর্ত পূরণ করা হবে। আরও তথ্যের জন্য ট্রানজ্যাকশন (প্রপার্টি ডেটা) দেখুন।

অনুরোধ

সিন্ট্যাক্স

ExtraGuestCharges মেসেজে নিম্নলিখিত সিনট্যাক্স ব্যবহার করা হয়:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges partner="partner_account_name"
                   id="message_ID"
                   timestamp="timestamp">
  <HotelExtraGuestCharges hotel_id="HotelID" action="[overlay]">
    <ExtraGuestCharge>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <StayDates>
        <DateRange start="YYYY-MM-DD" end="YYYY-MM-DD"
                   days_of_week="MTWHFSU_or_subset"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="float"/>
        <ChildAgeBrackets>
        <!-- The following are different ways child charges can be specified.
        Use the option that matches your system. -->
          <ChildAgeBracket max_age="integer" amount="float"
                           exclude_from_capacity="[true|false]"/>
          <ChildAgeBracket max_age="integer" percentage="float"
                           exclude_from_capacity="[true|false]"
                           counts_as_base_occupant="[never|preferred|always]"/>
          <ChildAgeBracket max_age="integer" discount_amount="float"
                           exclude_from_capacity="[true|false]"
                           counts_as_base_occupant="[never|preferred|always]"/>
        </ChildAgeBrackets>
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

এলিমেন্ট ও অ্যাট্রিবিউট

ExtraGuestCharges মেসেজে নিম্নলিখিত এলিমেন্ট ও অ্যাট্রিবিউট থাকে:

এলিমেন্ট / @অ্যাট্রিবিউট বিষয়বস্তু ধরন বিবরণ
ExtraGuestCharges 1 Complex element এই মেসেজের রুট এলিমেন্ট।
ExtraGuestCharges / @partner 1 string এই মেসেজের জন্য পার্টনার অ্যাকাউন্ট। এই স্ট্রিং ভ্যালু হল Hotel Center-এর অ্যাকাউন্ট সেটিংস পৃষ্ঠায় তালিকাভুক্ত Partner key ভ্যালু।

মনে রাখবেন: আপনার যদি এমন ব্যাকএন্ড থাকে যা একাধিক অ্যাকাউন্টের জন্য ফিড প্রদান করে, তাহলে এই ভ্যালুটি একই অ্যাকাউন্টের জন্য আপনার <OTA_HotelRateAmountNotifRQ> এবং <OTA_HotelAvailNotifRQ> মেসেজের <RequestorID> এলিমেন্টে নির্দিষ্ট করা ID অ্যাট্রিবিউট ভ্যালুর সাথে মিলতে হবে।

ExtraGuestCharges / @id 1 string এই অনুরোধের মেসেজের জন্য একটি অনন্য শনাক্তকারী। এই ভ্যালু রেসপন্স মেসেজে ফেরত পাঠানো হয়। অনুমোদিত অক্ষরগুলি হল a-z, A-Z, 0-9, _ (আন্ডারস্কোর), এবং - (ড্যাশ)।
ExtraGuestCharges / @timestamp 1 DateTime এই মেসেজটি তৈরি করার তারিখ ও সময়।
ExtraGuestCharges / HotelExtraGuestCharges 0..n HotelExtraGuestCharges একটি প্রপার্টির জন্য চার্জের কন্টেনার।
ExtraGuestCharges / HotelExtraGuestCharges / @hotel_id 1 string প্রপার্টির জন্য অনন্য শনাক্তকারী। এই ভ্যালু অবশ্যই হোটেল তালিকা ফিডে <listing> এলিমেন্টের <id> ব্যবহার করে নির্দিষ্ট করা হোটেল আইডির সাথে ম্যাচ করতে হবে। হোটেল আইডি Hotel Center-এও তালিকাভুক্ত করা আছে।
ExtraGuestCharges / HotelExtraGuestCharges / @action 0..1 enum আপডেট কীভাবে প্রয়োগ করা হয় তা নির্দিষ্ট করে। শুধুমাত্র overlay কাজ করে এবং ডিফল্ট হল ওভারলে। এই প্রপার্টির জন্য আগের কোনও চার্জ থাকলে, আপডেট প্রয়োগ করার আগে তা মুছে ফেলা হয়।
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge 0..99 ExtraGuestCharge

কোনও প্রপার্টির জন্য চার্জের একটি সেট। এতে চার্জ কীভাবে প্রযোজ্য হতে পারে এবং বয়স বা অতিথির বিভাগ অনুযায়ী চার্জ কীভাবে গণনা করা হয় সেই সংক্রান্ত বিধিনিষেধ থাকতে পারে।

HotelExtraGuestCharges-এর মধ্যে থাকা প্রতিটি ExtraGuestCharge-কে তারিখ ও প্রোডাক্টের অনন্য সেটের ক্ষেত্রে প্রযোজ্য হতে হবে। দুটি ExtraGuestCharge এলিমেন্ট একই তারিখ-প্রোডাক্ট কম্বিনেশনকে রেফার করলে, সম্পূর্ণ মেসেজটি বাতিল করা হয়।

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets 1 AgeBrackets বয়স বা অতিথির বিভাগ অনুযায়ী চার্জ গণনা করার জন্য বয়সের সীমা সংক্রান্ত কন্টেনার।
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge 0..1 AdultCharge অতিরিক্ত প্রাপ্তবয়স্কের জন্য চার্জের কন্টেনার।
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / AdultCharge / @amount 0..1 float একটি পজিটিভ দশমিক মান যা অতিরিক্ত প্রাপ্তবয়স্ক ব্যক্তির জন্য চার্জ করা ফ্ল্যাট পরিমাণ নির্দিষ্ট করে। এই চার্জে সেই একই মুদ্রা ব্যবহার করা হয় যা প্রতি রাতের রেটের জন্য নির্দিষ্ট করা হয়েছে।
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets 0..1 ChildAgeBrackets অতিরিক্ত চাইল্ড চার্জের জন্য কন্টেনার। এইসব বয়সের ব্র্যাকেট শুধুমাত্র ০-১৭ বছর বয়সের রেঞ্জ কভার করতে পারে।
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket 1..99 ChildAgeBracket নির্দিষ্ট বয়সের বাচ্চাদের জন্য প্রযোজ্য চার্জ। এগুলি সবচেয়ে কম max_age থেকে সবচেয়ে বেশি max_age হিসেবে সাজাতে হবে। কত টাকা চার্জ করা হবে তা amount, percentage অথবা discount_amount-এর মধ্যে যেকোনও একটি ব্যবহার করে উল্লেখ করা যেতে পারে। প্রতিটি <ChildAgeBracket>-এর জন্য এই অ্যাট্রিবিউটগুলির মধ্যে ঠিক একটি নির্দিষ্ট করতে হবে।
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @max_age 1 integer সর্বাধিক বয়স যার জন্য <ChildAgeBracket>-এ উল্লেখ করা চার্জ প্রযোজ্য হতে পারে। ন্যূনতম বয়স শূন্য যদি এর আগে অন্য কোনও <ChildAgeBracket> উল্লেখ করা না থাকে। অন্যথায়, এটি আগের ব্র্যাকেটের সর্বাধিক বয়সের থেকে এক বেশি।
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @exclude_from_capacity 1 boolean এই বয়সের বাচ্চা কোনও রুমের মোট ধারণক্ষমতা এবং বাচ্চার ধারণক্ষমতার মধ্যে গণনা করা হবে কিনা তা নির্দেশ করার জন্য বুলিয়ান। এই ক্যাপাসিটি ট্রানজ্যাকশন(প্রপার্টি ডেটা)-এর মাধ্যমে সেট করা যেতে পারে। যেমন, নির্দিষ্ট বয়সের কম বয়সী শিশুদের বাচ্চাদের জন্য নির্ধারিত ক্ষমতার মধ্যে গণনা করার প্রয়োজন নাও হতে পারে।
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @amount 0..1 float একটি নন-নেগেটিভ দশমিক মান যা এই ব্র্যাকেটে অতিরিক্ত সন্তানের জন্য চার্জ করা ফ্ল্যাট পরিমাণ নির্দিষ্ট করে। এই চার্জে, প্রতি রাতের রেটের জন্য নির্দিষ্ট করা একই মুদ্রা ব্যবহার করা হয়।
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @percentage 0..1 float

১-৯৯ পর্যন্ত দশমিক ভ্যালু যা এই ব্র্যাকেটে অতিরিক্ত বাচ্চার জন্য প্রাপ্তবয়স্কদের দামের কত শতাংশ চার্জ করা উচিত তা নির্দিষ্ট করে। এই চার্জে সেই একই মুদ্রা ব্যবহার করা হয় যা প্রতি রাতের রেটের জন্য নির্দিষ্ট করা হয়েছে।

প্রাপ্তবয়স্কদের জন্য টিকিটের দাম কীভাবে গণনা করা হয় সেই সম্পর্কে বিস্তারিত জানতে counts_as_base_occupant-এর অধীনে আলোচনা দেখুন।

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @discount_amount 0..1 float

একটি পজিটিভ দশমিক মান যা এই ব্র্যাকেটে অতিরিক্ত বাচ্চার জন্য প্রাপ্তবয়স্কদের মূল্য থেকে একটি ফ্ল্যাট ডিসকাউন্টের পরিমাণ নির্দিষ্ট করে। এই চার্জে সেই একই মুদ্রা ব্যবহার করা হয় যা প্রতি রাতের রেটের জন্য নির্দিষ্ট করা হয়েছে।

সাধারণত, এই ব্র্যাকেটে থাকা বাচ্চার জন্য চার্জ হিসেব করা হয় "ইউনিট মূল্য" থেকে ফ্ল্যাট পরিমাণ বাদ দিয়ে। ইউনিটের দাম সম্পর্কে counts_as_base_occupant অ্যাট্রিবিউট বিভাগে আরও বিস্তারিত আলোচনা করা হয়েছে।

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / AgeBrackets / ChildAgeBrackets / ChildAgeBracket / @counts_as_base_occupant 0..1 string

percentage বা discount_amount অ্যাট্রিবিউট নির্দিষ্ট করা থাকলে, counts_as_base_occupant-ও নির্দিষ্ট করতে হবে। এই ভ্যালু নির্ধারণ করে যে কোনও বাচ্চাকে NumberOfGuest-এ অন্তর্ভুক্ত করা হবে কিনা, যখন আপনি শতাংশ চার্জ এবং ছাড় প্রয়োগ করার জন্য <BaseByGuestAmount> রেট বেছে নেন।

এখানে লক্ষ্য হল "ইউনিট মূল্য" পাওয়া, যেখান থেকে আসল চার্জ গণনা করা যেতে পারে।

unit price = rate / occupancy

এই অ্যাট্রিবিউটের ভ্যালু অবশ্যই never, preferred অথবা always-এর মধ্যে যেকোনও একটি হতে হবে।

  • never উল্লেখ করা থাকলে, রেটের অকুপেন্সিতে বাচ্চাকে কখনও অন্তর্ভুক্ত করা উচিত নয়।

    আপনি যদি ২ জন প্রাপ্তবয়স্ক ও ২ জন বাচ্চার (২+২) জন্য রেট হিসেব করতে চান, তাহলে আপনাকে ২ জন প্রাপ্তবয়স্কের জন্য রেট ব্যবহার করতে হবে কারণ বাচ্চাদের অন্তর্ভুক্ত করা উচিত নয়।

  • preferred উল্লেখ করা থাকলে, রেটের অকুপেন্সিতে বাচ্চাকে অন্তর্ভুক্ত করা উচিত।

    আপনি যদি ২ জন প্রাপ্তবয়স্ক এবং ১ জন বাচ্চার (২+১) জন্য রেট গণনা করতে চান, তাহলে আপনার ৩ জন প্রাপ্তবয়স্কের জন্য রেট ব্যবহার করা উচিত, কিন্তু যদি তা খুঁজে না পাওয়া যায়, তাহলে আপনার ২ জন প্রাপ্তবয়স্কের জন্য রেট ব্যবহার করা উচিত।

  • always উল্লেখ করা থাকলে, রেটের অকুপেন্সিতে বাচ্চাকে সবসময় অন্তর্ভুক্ত করতে হবে।

    আপনি যদি ২ জন প্রাপ্তবয়স্ক ও ২ জন বাচ্চার (২+২) জন্য রেট হিসেব করতে চান, তাহলে আপনাকে ৪ জন প্রাপ্তবয়স্কের জন্য রেট ব্যবহার করতে হবে কারণ বাচ্চাদের অবশ্যই অন্তর্ভুক্ত করতে হবে।

ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes 0..1 RoomTypes রুমের ধরনের তালিকার কন্টেনার যার উপর চার্জ প্রযোজ্য হয়। প্রতিটি <RoomType>-এর জন্য চার্জ প্রযোজ্য হবে। <RoomTypes> উল্লেখ করা না থাকলে, উল্লেখ করা প্রপার্টির মধ্যে সব রুমের জন্য চার্জ প্রযোজ্য হয়।
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType 1..n RoomType রুমের ধরন নির্দিষ্ট করে। রুমের ধরন ট্রানজ্যাকশন (প্রপার্টি ডেটা) মেসেজের <RoomData> এলিমেন্টে উল্লেখ করা থাকে এবং এর <RoomID> ভ্যালু ব্যবহার করে রেফার করা হয়। (OTA_HotelRateAmountNotifRQ মেসেজে InvTypeCode অ্যাট্রিবিউট দ্বারাও এর <RoomID> ভ্যালু রেফার করা হয়।)
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RoomTypes / RoomType / @id 1 string ইনভেনটরির (রুমের ধরন) জন্য অনন্য শনাক্তকারী। এই ভ্যালু, একটি ট্রানজ্যাকশন (প্রপার্টি ডেটা) মেসেজে <RoomID>-এর সাথে ম্যাপ করে। সর্বাধিক ৫০টি অক্ষর লেখা যাবে।
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans 0..1 RatePlans রেট প্ল্যানের তালিকার কন্টেনার যার উপর চার্জ প্রযোজ্য হয়। <RatePlans> উল্লেখ করা না থাকলে, চার্জ সব রেট প্ল্যানের ক্ষেত্রে প্রযোজ্য হয়।
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan 1..n RatePlan রেট প্ল্যান নির্দিষ্ট করে। রেট প্ল্যান হল প্যাকেজ, রেট ও উপলভ্যতার কম্বিনেশন, যা ট্রানজ্যাকশন (প্রপার্টি ডেটা), OTA_HotelRateAmountNotifRQ এবং OTA_HotelAvailNotifRQ মেসেজে উল্লেখ করা থাকে এবং PackageID-এর মাধ্যমে শনাক্ত করা হয়।
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / RatePlans / RatePlan / @id 1 string রেট প্ল্যানের অনন্য শনাক্তকারী। এই ভ্যালু, ট্রানজ্যাকশন (প্রপার্টি ডেটা) মেসেজে <PackageData>-এর PackageID ভ্যালু এবং <OTA_HotelRateAmountNotifRQ> ও <OTA_HotelAvailNotifRQ> মেসেজে <StatusApplicationControl>-এর RatePlanCode অ্যাট্রিবিউটের সাথে ম্যাপ করে। সর্বাধিক ৫০টি অক্ষর লেখা যাবে।
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates 0..1 StayDates এক বা একাধিক তারিখের রেঞ্জের জন্য একটি কন্টেনার যা নির্ধারণ করে যে কীভাবে চার্জ প্রযোজ্য হবে।
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange 1..99 DateRange তারিখের রেঞ্জ উল্লেখ করে প্রোমোশনটি কখন প্রয়োগ করতে হবে তা নির্দিষ্ট করে।
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @start 0..1 Date তারিখের রেঞ্জের শুরুর তারিখ (প্রপার্টির টাইম জোন অনুযায়ী), অন্তর্ভুক্ত। এই তারিখটি অবশ্যই end তারিখের আগে বা একই হতে হবে। start নির্দিষ্ট করা না থাকলে, তারিখের রেঞ্জ শুরুর তারিখের ক্ষেত্রে কার্যকরভাবে সীমাহীন।
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @end 0..1 Date তারিখের রেঞ্জের শেষ তারিখ (প্রপার্টির টাইম জোনের উপর ভিত্তি করে), ইনক্লুসিভ। এই তারিখটি অবশ্যই start তারিখের সাথে একই বা তার পরের হতে হবে। end উল্লেখ করা না থাকলে, তারিখের রেঞ্জ শেষ হওয়ার তারিখের ক্ষেত্রে কার্যকরভাবে সীমাহীন।
ExtraGuestCharges / HotelExtraGuestCharges / ExtraGuestCharge / StayDates / DateRange / @days_of_week 0..1 string

তারিখের রেঞ্জে সপ্তাহের যেসব দিন অনুমোদিত। উল্লেখ করা না হলে, তারিখের রেঞ্জে সব দিনই অনুমোদিত। স্ট্রিংয়ের প্রতিটি অক্ষর একটি দিনকে নির্দিষ্ট করে। যেমন, "MTWHF" উল্লেখ করে যে তারিখের রেঞ্জে সপ্তাহের দিনগুলি অনুমোদিত।

সঠিক অক্ষরগুলি হল:

  • সোমবারের জন্য M
  • মঙ্গলবারের জন্য T
  • বুধবারের জন্য W
  • বৃহস্পতিবারের জন্য H
  • শুক্রবার F
  • শনিবারের জন্য S
  • রবিবারের জন্য U

যেকোনও অক্ষরের কম্বিনেশন সঠিক।

উদাহরণ

প্রাপ্তবয়স্কদের জন্য চার্জ

অতিরিক্ত প্রাপ্তবয়স্কদের জন্য চার্জ শুধুমাত্র ফ্ল্যাট পরিমাণ হিসেবে প্রকাশ করা যেতে পারে। নিম্নলিখিত উদাহরণে একটি ExtraGuestCharges মেসেজ দেখানো হয়েছে যেখানে প্রাপ্তবয়স্কদের জন্য চার্জ উল্লেখ করা হয়েছে:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <StayDates />
      <AgeBrackets>
        <AdultCharge amount="50" />
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

এখানে সংশ্লিষ্ট রেট দেওয়া হল:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="ABC">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountAfterTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
            <BaseByGuestAmt AmountAfterTax="120.00"
                            CurrencyCode="USD"
                            NumberOfGuests="3"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>

কোনও ব্যবহারকারী Google-এ চারজন প্রাপ্তবয়স্কের জন্য সার্চ করলে, মোট রেট হবে ১৭০ = ১২০ + ৫০।

NumberOfGuests="3"-এর সাথে <BaseByGuestAmt> রেট থেকে ১২০ এবং AdultCharge amount="50" থেকে ৫০ আসে।

বাচ্চাদের জন্য চার্জ

বাচ্চাদের জন্য চার্জ ১৭ বছর পর্যন্ত বয়সের ব্র্যাকেটে প্রকাশ করা হয় এবং ফ্ল্যাট পরিমাণ, শতাংশ বা ছাড় হিসেবে প্রকাশ করা যেতে পারে।

নিচের উদাহরণে এমন একটি ExtraGuestCharges মেসেজ দেখানো হয়েছে যা বাচ্চাদের জন্য চার্জ নির্দিষ্ট করে:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <AgeBrackets>
        <ChildAgeBrackets>
          <ChildAgeBracket max_age="3" percentage="10"
                           counts_as_base_occupant="never" />
          <ChildAgeBracket max_age="10" percentage="30"
                           counts_as_base_occupant="preferred"/>
          <ChildAgeBracket max_age="17" discount_amount="10"
                           counts_as_base_occupant="always" />
        </ChildAgeBrackets>
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

এখানে সংশ্লিষ্ট রেট দেওয়া হল:

<?xml version="1.0" encoding="UTF-8"?>
<OTA_HotelRateAmountNotifRQ xmlns="http://www.opentravel.org/OTA/2003/05"
                            EchoToken="12345678"
                            TimeStamp="2020-05-19T20:50:37-05:00"
                            Version="3.0">
  <RateAmountMessages HotelCode="ABC">
    <RateAmountMessage>
      <StatusApplicationControl Start="2020-05-18"
                                End="2020-05-23"
                                InvTypeCode="RoomID_1"
                                RatePlanCode="PackageID_1"/>
      <Rates>
        <Rate>
          <BaseByGuestAmts>
            <BaseByGuestAmt AmountAfterTax="100.00"
                            CurrencyCode="USD"
                            NumberOfGuests="1"/>
            <BaseByGuestAmt AmountAfterTax="110.00"
                            CurrencyCode="USD"
                            NumberOfGuests="2"/>
          </BaseByGuestAmts>
        </Rate>
      </Rates>
    </RateAmountMessage>
  </RateAmountMessages>
</OTA_HotelRateAmountNotifRQ>
```

  1.  Suppose you want the total price for 2 adults and 1 child of 2 years
      of age.

      Children aged 0-3 are never included in the rate's occupancy,
      so here you should take the double occupancy rate and divide by 2 to
      get the unit price. Then, multiply by the percentage rate and sum
      with the rate to get the total price.

      `unit price ` = 110 / 2 = 55

      `total price` = 110 + 55 * 0.1 = 115.5

  1.  Suppose you want the total price for 1 adult and 2 children, both of 5
      years of age.

      Children aged 4-10 are preferably included in the rate's
      occupancy. you should start by looking for a 3 adult rate since both
      children are preferably included in the rate's occupancy. Since
      that doesn't exist you should fall back to the 2 adult rate and then,
      take this rate and divide by two to get the unit price. Finally,
      multiply by the percentage rate and sum with the scaled rate to
      get the total price.

      `unit price` = 110 / 2 = 55

      `total price` = 55 + 55 * 0.3 + 55 * 0.3 = 88

  1.  Suppose you want the total price for 1 adult and 1 child of 17
      years of age.

      Children aged 11-17 are always included in the rate's occupancy, so,
      in this case, take the double occupancy rate and divide by 2 to get
      the unit price. Then, deduct it by the discount amount and sum with
      the scaled rate to get the total price.

      `unit price` = 110 / 2 = 55

      `total price` = 55 + (55 - 10) = 100

চার্জ সংক্রান্ত বিধিনিষেধ

সব ধরনের বিধিনিষেধ ঐচ্ছিক এবং এগুলির যেকোনও কম্বিনেশন ব্যবহার করা যেতে পারে।

নিচের উদাহরণে একটি ExtraGuestCharges মেসেজ দেখানো হয়েছে যা বিধিনিষেধ নির্দিষ্ট করে:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <RoomTypes>
        <RoomType id="queen" />
        <RoomType id="king" />
      </RoomTypes>
      <RatePlans>
        <RatePlan id="free-wifi" />
        <RatePlan id="hot-breakfast" />
      </RatePlans>
      <StayDates>
        <DateRange start="2020-09-01" end="2020-09-14"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="50" />
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

উপরের মেসেজ থেকে বোঝা যায় যে ১ সেপ্টেম্বর, ২০২০ থেকে ১৪ সেপ্টেম্বর, ২০২০ পর্যন্ত "কুইন" বা "কিং" রুমের ধরন এবং "ফ্রি-ওয়াই-ফাই" বা "হট-ব্রেকফাস্ট" রেট প্ল্যান সহ যেকোনও প্রোডাক্টের জন্য প্রাপ্তবয়স্কদের চার্জ করা হবে।

ওভারল্যাপ করা চার্জ

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


<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestCharges timestamp="2001-02-03T04:05:06+00:00" id="1">
  <HotelExtraGuestCharges hotel_id="ABC" action="overlay">
    <ExtraGuestCharge>
      <RoomTypes>
        <RoomType id="queen" />
      </RoomTypes>
      <RatePlans>
        <RatePlan id="free-wifi" />
      </RatePlans>
      <StayDates>
        <DateRange start="2020-09-01" end="2020-09-14"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="50" />
      </AgeBrackets>
    </ExtraGuestCharge>
    <ExtraGuestCharge>
      <RoomTypes>
        <RoomType id="queen" />
        <RoomType id="king" />
      </RoomTypes>
      <RatePlans>
        <RatePlan id="free-wifi" />
        <RatePlan id="hot-breakfast" />
      </RatePlans>
      <StayDates>
        <DateRange start="2020-09-01" end="2020-09-05"/>
      </StayDates>
      <AgeBrackets>
        <AdultCharge amount="20" />
      </AgeBrackets>
    </ExtraGuestCharge>
  </HotelExtraGuestCharges>
</ExtraGuestCharges>

উপরের মেসেজটি ভুল কারণ প্রথম <ExtraGuestCharge> নির্দিষ্ট করে যে ১ থেকে ১৪ সেপ্টেম্বরের জন্য "কুইন" এবং "ফ্রি-ওয়াইফাই" অতিরিক্ত প্রাপ্তবয়স্কদের জন্য ৫০ চার্জ করা উচিত। দ্বিতীয় <ExtraGuestCharge> নির্দিষ্ট করে যে ১ থেকে ৫ সেপ্টেম্বরের জন্য "ফ্রি-ওয়াই-ফাই" বা "হট-ব্রেকফাস্ট" সহ "কুইন" বা "কিং" বেডের যেকোনও একটির জন্য অতিরিক্ত প্রাপ্তবয়স্কদের ২০ চার্জ করা উচিত। ১ থেকে ৫ সেপ্টেম্বরের জন্য "কুইন" এবং "ফ্রি-ওয়াইফাই" এর জন্য ওভারল্যাপিং চার্জ রয়েছে এবং অতিরিক্ত প্রাপ্তবয়স্কদের জন্য ২০ বা ৫০ চার্জ করা হবে কিনা তা নিয়ে দ্বন্দ্ব রয়েছে।

প্রতিক্রিয়া

সিন্ট্যাক্স

ExtraGuestChargesResponse মেসেজে নিম্নলিখিত সিনট্যাক্স ব্যবহার করা হয়:

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="timestamp"
                    id="message_ID"
                    partner="partner_key">
  <!-- Either Success or Issues will be populated. -->
  <Success/>
  <Issues>
    <Issue code="issue_code" status="issue_type">issue_description</Issue>
  </Issues>
</ExtraGuestChargesResponse>

এলিমেন্ট ও অ্যাট্রিবিউট

ExtraGuestChargesResponse মেসেজে নিম্নলিখিত এলিমেন্ট ও অ্যাট্রিবিউট থাকে:

এলিমেন্ট / @অ্যাট্রিবিউট বিষয়বস্তু ধরন বিবরণ
ExtraGuestChargesResponse 1 Complex element রুট এলিমেন্ট যা প্রাপ্ত ExtraGuestCharges অনুরোধ মেসেজের সাফল্য বা সমস্যা নির্দেশ করে।
ExtraGuestChargesResponse / @timestamp 1 DateTime এই মেসেজটি তৈরি করার তারিখ ও সময়।
ExtraGuestChargesResponse / @id 1 string সংশ্লিষ্ট ExtraGuestCharges মেসেজ থেকে পাওয়া অনন্য শনাক্তকারী।
ExtraGuestChargesResponse / @partner 1 string এই মেসেজের জন্য পার্টনার অ্যাকাউন্ট।
ExtraGuestChargesResponse / Success 0..1 Success এটি দেখায় যে ExtraGuestCharges মেসেজটি কোনও সতর্কতা, সমস্যা বা ব্যর্থতা ছাড়াই সফলভাবে প্রসেস করা হয়েছে।

প্রতিটি মেসেজে <Success> অথবা <Issues> আছে।

ExtraGuestChargesResponse / Issues 0..1 Issues ExtraGuestCharges মেসেজ প্রসেস করার সময় এক বা একাধিক সমস্যার সম্মুখীন হওয়ার জন্য একটি কন্টেনার।

প্রতিটি মেসেজে <Success> অথবা <Issues> আছে।

ExtraGuestChargesResponse / Issues / Issue 1..n Issue ExtraGuestCharges মেসেজ প্রসেস করার সময় দেখা যাওয়া সতর্কতা, সমস্যা বা ব্যর্থতার বিবরণ। এইসব সমস্যার বিবরণ ফিড স্ট্যাটাস সংক্রান্ত ত্রুটি মেসেজ থেকে পাওয়া যাবে।
ExtraGuestChargesResponse / Issues / Issue / @code 1 integer সমস্যার শনাক্তকারী।
ExtraGuestChargesResponse / Issues / Issue / @status 1 enum

যে ধরনের সমস্যা হয়েছে।

সঠিক ভ্যালু হল warning, error, এবং failure।

উদাহরণ

সফল হয়েছে

নিচে দেওয়া উত্তরটি হল প্রসেস করা হয়েছে এমন ExtraGuestCharges মেসেজের উত্তর।

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="2020-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Success/>
</ExtraGuestChargesResponse>

সমস্যা

সমস্যার কারণে প্রসেস করা হয়নি এমন ExtraGuestCharges মেসেজের উত্তরে নিম্নলিখিত মেসেজটি পাঠানো হয়েছে।

<?xml version="1.0" encoding="UTF-8"?>
<ExtraGuestChargesResponse timestamp="2020-05-18T16:20:00-04:00"
                    id="12345678"
                    partner="partner_key">
  <Issues>
    <Issue code="1001" status="error">Example</Issue>
  </Issues>
</ExtraGuestChargesResponse>