এক্সট্রা গেস্ট চার্জ

<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 এই বার্তার জন্য অংশীদার অ্যাকাউন্ট। এই স্ট্রিং মানটি হলো হোটেল সেন্টারের অ্যাকাউন্ট সেটিংস পৃষ্ঠায় তালিকাভুক্ত Partner key মান।

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

ExtraGuestCharges / @id 1 string এই অনুরোধ বার্তার জন্য একটি অনন্য শনাক্তকারী। এই মানটি প্রতিক্রিয়া বার্তায় ফেরত দেওয়া হয়। অনুমোদিত অক্ষরগুলো হলো az , AZ , 0-9 , _ (আন্ডারস্কোর), এবং - (ড্যাশ)।
ExtraGuestCharges / @timestamp 1 DateTime এই বার্তাটি তৈরির তারিখ ও সময়।
ExtraGuestCharges / HotelExtraGuestCharges 0..n HotelExtraGuestCharges একটিমাত্র সম্পত্তির চার্জের জন্য কন্টেইনার।
ExtraGuestCharges / HotelExtraGuestCharges / @hotel_id 1 string প্রপার্টির অনন্য শনাক্তকারী। এই মানটি অবশ্যই হোটেল লিস্ট ফিডের <listing> এলিমেন্টে <id> ব্যবহার করে নির্দিষ্ট করা হোটেল আইডির সাথে মিলতে হবে। হোটেল আইডিটি হোটেল সেন্টারেও তালিকাভুক্ত থাকে।
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 একটি বুলিয়ান যা নির্দেশ করে যে এই বয়সসীমার কোনো শিশুকে একটি রুমের মোট ধারণক্ষমতা এবং শিশু ধারণক্ষমতার মধ্যে গণনা করা হবে কি না। এই ধারণক্ষমতাগুলো Transaction(Property Data) এর মাধ্যমে নির্ধারণ করা যায়। উদাহরণস্বরূপ, একটি নির্দিষ্ট বয়সের নিচের শিশুদের শিশু ধারণক্ষমতার মধ্যে গণনা করার প্রয়োজন নাও হতে পারে।
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 ও অবশ্যই নির্দিষ্ট করতে হবে। পার্সেন্টেজ চার্জ ও ডিসকাউন্ট প্রয়োগের জন্য যখন আপনি <BaseByGuestAmount> রেট নির্বাচন করেন, তখন কোনো চাইল্ডকে NumberOfGuest মধ্যে অন্তর্ভুক্ত করা হবে কি না, তা এই মানটি নির্ধারণ করে।

এখানের লক্ষ্য হলো একটি 'একক মূল্য' নির্ধারণ করা, যার ভিত্তিতে প্রকৃত চার্জ গণনা করা যাবে।

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> ভ্যালু ব্যবহার করে এটিকে উল্লেখ করা হয়। (এর <RoomID> ভ্যালুটি OTA_HotelRateAmountNotifRQ মেসেজগুলিতে InvTypeCode অ্যাট্রিবিউটের মাধ্যমেও উল্লেখ করা হয়।)
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>

যখন কোনো ব্যবহারকারী গুগলে চারজন প্রাপ্তবয়স্কের জন্য অনুসন্ধান করেন, তখন মোট হার হবে ১৭০ = ১২০ + ৫০।

<BaseByGuestAmt> রেট থেকে ১২০ এসেছে, যেখানে NumberOfGuests="3" এবং 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> এ উল্লেখ করা হয়েছে যে ১ থেকে ১৪ সেপ্টেম্বরের জন্য "queen" এবং "free-wifi" প্যাকেজের ক্ষেত্রে অতিরিক্ত প্রাপ্তবয়স্কদের জন্য ৫০ চার্জ করা হবে। দ্বিতীয় <ExtraGuestCharge> এ উল্লেখ করা হয়েছে যে ১ থেকে ৫ সেপ্টেম্বরের জন্য "queen" বা "king" রুমের যেকোনোটির সাথে "free-wifi" বা "hot-breakfast" প্যাকেজের যেকোনো একটি নিলে অতিরিক্ত প্রাপ্তবয়স্কদের জন্য ২০ চার্জ করা হবে। ১ থেকে ৫ সেপ্টেম্বরের জন্য "queen" এবং "free-wifi" প্যাকেজের চার্জের মধ্যে ব্যতিচার রয়েছে এবং একজন অতিরিক্ত প্রাপ্তবয়স্কের জন্য ২০ নাকি ৫০ চার্জ করা হবে, তা নিয়ে একটি দ্বন্দ্ব তৈরি হয়েছে।

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

সিনট্যাক্স

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 বার্তাটি প্রক্রিয়াকরণের সময় সম্মুখীন হওয়া কোনো সতর্কতা, ত্রুটি বা ব্যর্থতার বিবরণ। এই সমস্যাগুলির বিশদ বিবরণ Feed Status Error Messages- এ পাওয়া যাবে।
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>