প্রচার

ওভারভিউ

এই API আপনাকে সম্ভাব্য ডিসকাউন্ট নির্দিষ্ট করতে দেয়। উল্লিখিত প্রচারগুলির মধ্যে, Google যোগ্য প্রচার বা প্রচারগুলির সেট প্রয়োগ করে যা সর্বনিম্ন মূল্যে নিয়ে যায়৷ আপনি যদি এমন একটি API খুঁজছেন যা নির্বিচারে হারের সমন্বয় সমর্থন করে যা শর্তগুলি সন্তুষ্ট হলে দাম বাড়াতে বা কমাতে পারে, তাহলে আমাদের রেট পরিবর্তন API বিবেচনা করুন। মনে রাখবেন যে উভয় API উপস্থিত থাকলে, প্রচারের আগে রেট পরিবর্তন প্রয়োগ করা হয়।

অনুরোধ

বাক্য গঠন

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

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner= "partner_key"
            id="message_ID"
            timestamp="timestamp">
  <HotelPromotions hotel_id="HotelID" action="[overlay]">
    <Promotion id="PromotionID" action="[delete]">
      <BookingDates>
        <DateRange start="YYYY-MM-DD[THH:mm:ss]" end="YYYY-MM-DD[THH:mm:ss]"
          days_of_week="MTWHFSU_or_subset"/>
        <DateRange start="YYYY-MM-DD[THH:mm:ss]" end="YYYY-MM-DD[THH:mm:ss]"
          days_of_week="MTWHFSU_or_subset"/>
      </BookingDates>
      <BookingWindow min="integer_or_duration" max="integer_or_duration"/>
      <Ceiling amount_per_night="float"/>
      <Floor amount_per_night="float"/>
      <CheckinDates>
        <DateRange start="[YYYY-]MM-DD" end="[YYYY-]MM-DD" days_of_week="MTWHFSU_or_subset"/>
      </CheckinDates>
      <CheckoutDates>
        <DateRange start="[YYYY-]MM-DD" end="[YYYY-]MM-DD" days_of_week="MTWHFSU_or_subset"/>
      </CheckoutDates>
      <!-- Specify only one of percentage, fixed_amount, fixed_amount_per_night,
           fixed_price, or fixed_price_per_night; applied_nights is only used
           with percentage, fixed_amount_per_night, and fixed_price_per_night. -->
      <Discount percentage="float" fixed_amount="float" fixed_amount_per_night="float"
                fixed_price="float" fixed_price_per_night="float"
                applied_nights="integer_1_to_99" rank="integer_1_to_99">
        <!-- FreeNights may not be used in conjunction with attributes on Discount -->
        <FreeNights stay_nights="integer" discount_nights="integer"
                    discount_percentage="float" night_selection="[cheapest|last]"
                    repeats="boolean"/>
      </Discount>
      <!-- Exactly one of Discount or BestDailyDiscount must be specified.
           Specify only one of percentage, fixed_amount, or fixed_price. -->
      <BestDailyDiscount percentage="float" fixed_amount="float" fixed_price="float"/>
      <Devices>
        <Device type="[desktop|tablet|mobile]"/>
      </Devices>
      <InventoryCount min="integer" max="integer"/>
      <LengthOfStay min="integer" max="integer"/>
      <MembershipRateRule id="RateRuleID"/>
      <MinimumAmount before_discount="integer"/>
      <Occupancy min="integer" max="integer"/>
      <RatePlans>
        <RatePlan id="PackageID_1"/>
        <RatePlan id="PackageID_2"/>
      </RatePlans>
      <RoomTypes>
        <RoomType id="RoomID_1"/>
        <RoomType id="RoomID_2"/>
      </RoomTypes>
      <Stacking type="[any|base|none|second]"/>
      <StayDates application="[all|any|overlap]">
        <DateRange start="[YYYY-]MM-DD" end="[YYYY-]MM-DD" days_of_week="MTWHFSU_or_subset"/>
      </StayDates>
      <UserCountries type="[include|exclude]">
        <Country code="country_code"/>
      </UserCountries>
    </Promotion>
  </HotelPromotions>
</Promotions>

উপাদান এবং বৈশিষ্ট্য

প্রচার বার্তায় নিম্নলিখিত উপাদান এবং বৈশিষ্ট্য রয়েছে:

উপাদান / @Attribute ঘটনা টাইপ বর্ণনা
Promotions 1 Complex element একটি প্রচার বার্তার মূল উপাদান।
Promotions / @partner 1 string এই বার্তার জন্য অংশীদার অ্যাকাউন্ট. এই স্ট্রিং মান হল হোটেল সেন্টারের অ্যাকাউন্ট সেটিংস পৃষ্ঠায় তালিকাভুক্ত "অংশীদার কী" মান।

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

Promotions / @id 1 string এই অনুরোধ বার্তার জন্য একটি অনন্য শনাক্তকারী৷ এই মান প্রতিক্রিয়া বার্তা ফেরত দেওয়া হয়. অনুমোদিত অক্ষর হল az, AZ, 0-9, _ (আন্ডারস্কোর), এবং - (ড্যাশ)।
Promotions / @timestamp 1 DateTime এই বার্তা তৈরির তারিখ এবং সময়।
Promotions / HotelPromotions 0..n HotelPromotions

একটি সম্পত্তি জন্য প্রচার. প্রতিটি প্রচার একটি একক সম্পত্তি প্রযোজ্য.

<Stacking> ব্যবহার না করা হলে, একাধিক প্রচার যোগ্য হলে বুকিং-এ সবচেয়ে বেশি ছাড় সহ প্রচার প্রযোজ্য হয়।

Promotions / HotelPromotions / @hotel_id 1 string সম্পত্তির অনন্য শনাক্তকারী। এই মানটি অবশ্যই হোটেল তালিকা ফিডে <listing> এলিমেন্টে <id> ব্যবহার করে নির্দিষ্ট হোটেল আইডির সাথে মিলতে হবে। হোটেল আইডিটি হোটেল সেন্টারেও তালিকাভুক্ত করা হয়েছে।
Promotions / HotelPromotions / @action 0..1 enum

নির্দিষ্ট করা হলে, মান অবশ্যই "overlay" হতে হবে। যখন মানটি "overlay" হয়, তখন বর্তমান বার্তায় উল্লেখিত প্রচারগুলি সংরক্ষণ করার আগে সমস্ত সঞ্চিত প্রচারগুলি মুছে ফেলা হয়৷

যদি নির্দিষ্ট করা না থাকে, তাহলে বর্তমান বার্তায় নির্দিষ্ট করা প্রতিটি প্রচার হল:

  • Added (যদি সঞ্চিত প্রচারগুলির কোনোটিরই একই id না থাকে)
  • Updated (যদি একটি সঞ্চিত প্রচারের একই id থাকে)
  • Deleted (যদি একটি সঞ্চিত প্রচারের একই id থাকে এবং বর্তমান বার্তায় উল্লিখিত প্রচারের জন্য action অ্যাট্রিবিউটের মান "delete" হয়)
Promotions / HotelPromotions / Promotion 0..99 Promotion

একটি সম্পত্তি জন্য একটি একক প্রচার. মনে রাখবেন যে action="overlay" এবং একটি <Promotion> উল্লেখ না থাকলে, সম্পত্তির সমস্ত প্রচার মুছে ফেলা হয়।

আপনি যদি 99টির বেশি প্রচার ব্যবহার করতে চান, তাহলে আপনার টেকনিক্যাল অ্যাকাউন্ট ম্যানেজার (TAM) এর সাথে যোগাযোগ করুন।

Promotions / HotelPromotions / Promotion / @id 1 string প্রচারের জন্য একটি অনন্য শনাক্তকারী৷ অনুমোদিত অক্ষরের সর্বাধিক সংখ্যা 40। অনুমোদিত অক্ষর হল az, AZ, 0-9, _ (আন্ডারস্কোর), - (ড্যাশ), এবং। (সময়কাল)।
Promotions /HotelPromotions / Promotion / @action 0..1 enum

নির্দিষ্ট করা হলে, মানটি delete হবে। যদি নির্দিষ্ট না করা হয় এবং একই id সহ একটি প্রচার সংরক্ষণ করা না হয়, তাহলে এই প্রচারটি সংরক্ষণ করা হয়৷ অন্যথায়, যদি নির্দিষ্ট না করা হয় এবং একই id সহ একটি প্রচার সংরক্ষণ করা হয়, তাহলে বিদ্যমান প্রচার আপডেট করা হয়।

delete নির্দিষ্ট করা হলে, একই id সহ সঞ্চিত প্রচার মুছে ফেলা হয়। delete ব্যবহার করার সময়, <Promotion> -এ কোনো চাইল্ড উপাদান অন্তর্ভুক্ত করবেন না। এছাড়াও, <HotelPromotions action="overlay"/> এর সাথে delete অনুমতি নেই।

Promotions / HotelPromotions / Promotion / BookingDates 0..1 BookingDates এক বা একাধিক ব্যাপ্তির জন্য একটি কন্টেইনার যা সংজ্ঞায়িত করে কখন বুকিং হওয়া আবশ্যক প্রচারটি প্রয়োগ করার জন্য।
Promotions / HotelPromotions / Promotion / BookingDates / DateRange 1..99 DateRange প্রচারটি প্রয়োগ করার জন্য কখন বুকিং হওয়া আবশ্যক তা নির্দিষ্ট করে।
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @start 0..1 Date বা DateTime

শুরুর তারিখ বা তারিখের সময় (সম্পত্তির সময় অঞ্চলের উপর ভিত্তি করে), পরিসরের অন্তর্ভুক্ত।

  • start দ্বারা নির্দিষ্ট করা তারিখ বা তারিখ সময় অবশ্যই end দ্বারা নির্দিষ্ট করা তারিখ বা তারিখ সময়ের চেয়ে আগের (বা একই) হতে হবে।
  • যদি start নির্দিষ্ট করা না থাকে, তাহলে শুরুর সময়ের পরিপ্রেক্ষিতে পরিসর কার্যকরভাবে সীমাহীন।
  • যদি start তারিখ "YYYY-MM-DD" হিসাবে পপুলেট করা হয়, তবে এটি তারিখের সময় "YYYY-MM-DDT00:00:00" হিসাবে ব্যাখ্যা করা হয়।
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @end 0..1 Date বা DateTime

সমাপ্তির তারিখ বা তারিখের সময় (সম্পত্তির সময় অঞ্চলের উপর ভিত্তি করে), ব্যাপ্তির অন্তর্ভুক্ত।

  • end দ্বারা নির্দিষ্ট করা তারিখ বা তারিখ সময় অবশ্যই start দ্বারা নির্দিষ্ট করা তারিখ বা তারিখের পরে (বা একই) হতে হবে।
  • যদি end নির্দিষ্ট করা না থাকে, তাহলে শেষ সময়ের পরিপ্রেক্ষিতে পরিসীমা কার্যকরভাবে সীমাহীন।
  • end তারিখ "YYYY-MM-DD" হিসাবে প্রদান করা হলে, এটি তারিখের সময় "YYYY-MM-DDT23:59:59" হিসাবে ব্যাখ্যা করা হয়।
Promotions / HotelPromotions / Promotion / BookingDates / DateRange / @days_of_week 0..1 string

সপ্তাহের যে দিনগুলি তারিখের ব্যাপ্তিতে অনুমোদিত৷ যদি নির্দিষ্ট না করা হয়, তারিখ পরিসরে সমস্ত দিন অনুমোদিত। স্ট্রিংয়ের প্রতিটি অক্ষর একটি দিন নির্দিষ্ট করে। উদাহরণস্বরূপ, "MTWHF" নির্দিষ্ট করে যে সপ্তাহের দিনগুলি তারিখ সীমার মধ্যে অনুমোদিত৷

বৈধ অক্ষর হল:

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

যেকোনো অক্ষর সমন্বয় বৈধ।

Promotions / HotelPromotions / Promotion / BookingWindow 0..1 BookingWindow চেক-ইন তারিখের (প্রপার্টির টাইম জোনের উপর ভিত্তি করে) সাপেক্ষে বুকিং করার সময়কাল নির্দিষ্ট করে। উদাহরণস্বরূপ, বুকিং উইন্ডোটি কমপক্ষে 7 দিন সেট করা যেতে পারে, তবে চেক-ইন করার আগে 180 দিনের বেশি নয়।
Promotions / HotelPromotions / Promotion / BookingWindow / @min 0..1 integer or duration প্রচারের আবেদন করার জন্য বুকিং করার সময় চেক-ইন করার পূর্বে ন্যূনতম সময়কাল। যদি এটি নির্দিষ্ট করা না থাকে, বা এর মান 0 হয়, তাহলে কোনো ন্যূনতম নেই।

বৈধ মান প্রকারগুলি হল:

  • পূর্ণসংখ্যা: চেক-ইন তারিখের আগের দিনের সংখ্যা। উদাহরণস্বরূপ, 30 এর মান নির্দেশ করে যে প্রচারটি শুধুমাত্র চেক-ইন তারিখের কমপক্ষে 30 দিন আগে বুকিংয়ের ক্ষেত্রে প্রযোজ্য।
  • ISO 8601 সময়কাল (দিন, ঘন্টা এবং মিনিট): চেক-ইন তারিখের আগে দিনের সংখ্যা (এবং ঐচ্ছিকভাবে ঘন্টা/মিনিট)। উদাহরণস্বরূপ, P30D এর একটি মান নির্দেশ করে যে প্রচারটি শুধুমাত্র চেক-ইন তারিখের কমপক্ষে 30 দিন আগে বুকিংয়ের ক্ষেত্রে প্রযোজ্য। P30DT6H মূল্যের জন্য আগমনের 30 তম দিনে 18:00 বা তার আগে বুকিং করতে হবে।
Promotions / HotelPromotions / Promotion / BookingWindow / @max 0..1 integer or duration প্রচারের আবেদন করার জন্য বুকিং করার সময় চেক-ইন করার আগে সর্বাধিক সংখ্যক দিন। যদি এটি নির্দিষ্ট করা না থাকে, বা এর মান 0 হয়, তাহলে সর্বোচ্চ নেই।

বৈধ মান প্রকারগুলি হল:

  • পূর্ণসংখ্যা: চেক-ইন তারিখের আগের দিনের সংখ্যা। উদাহরণস্বরূপ, 30 এর মান নির্দেশ করে যে প্রচারটি চেক-ইন তারিখের সর্বাধিক 30 দিন আগে বুকিংয়ের ক্ষেত্রে প্রযোজ্য।
  • ISO 8601 সময়কাল (দিন, ঘন্টা এবং মিনিট): চেক-ইন তারিখের আগে দিনের সংখ্যা (এবং ঐচ্ছিকভাবে ঘন্টা/মিনিট)। উদাহরণস্বরূপ, P30D এর একটি মান নির্দেশ করে যে প্রচারটি শুধুমাত্র চেক-ইন তারিখের সর্বাধিক 30 দিন আগে বুকিংয়ের ক্ষেত্রে প্রযোজ্য। P30DT6H মূল্যের জন্য আগমনের আগে 30 তম দিনে 18:00 বা তার পরে বুকিং করতে হবে।
Promotions / HotelPromotions / Promotion / Ceiling 0..1 Ceiling

প্রচারগুলি প্রয়োগ করার পরে একটি হার যে সর্বোচ্চ মানের উপর সেট করা যেতে পারে তার উপর সীমাবদ্ধতা সংজ্ঞায়িত করে।

প্রচারগুলিতে সর্বদা একটি <Discount> বা একটি <BestDailyDiscount> উল্লেখ করতে হবে, তাই একটি প্রচার তৈরি করতে যা শুধুমাত্র একটি <Ceiling> প্রযোজ্য, একটি বিকল্প হল 0 percentage সাথে একটি <Discount> সেট করা।

যদি স্ট্যাকিং কনফিগার করা থাকে, তাহলে <Ceiling> সহ একাধিক প্রচার একক থাকার জন্য প্রযোজ্য হতে পারে। প্রতিটি প্রচার তার ছাড় প্রয়োগ করবে, অবিলম্বে তার সিলিং অনুসরণ করবে। নিম্নলিখিত উদাহরণটি দেখায় কিভাবে প্রতিটি সিলিং স্ট্যাকের পরবর্তী প্রচার গণনায় অবদান রাখে।

উদাহরণ:

1-রাত্রি থাকার মূল্য নির্ধারণ করা যেখানে AmountBeforeTax 100 এবং দুটি প্রচারের স্ট্যাক রয়েছে:

  1. স্ট্যাকিং টাইপ base সহ প্রচার , 25 এর একটি fixed_amount এবং 60 এর একটি সিলিং amount_per_night
  2. স্ট্যাকিং টাইপ second , 25 এর fixed_amount এবং 90 এর একটি সিলিং amount_per_night সহ প্রচার

এখানে গণনার ক্রম:

  1. base প্রমোশনটি প্রথমে প্রয়োগ করা হয় এবং 75 AmountBeforeTax ছাড় দেওয়া হয়, কিন্তু তারপর সিলিং এটিকে 60- এ নামিয়ে দেয়।
  2. second প্রচারটি 60 থেকে 35 পর্যন্ত AmountBeforeTax ছাড় দেয়। এটি 90 এর সিলিং এর নিচে তাই দ্বিতীয় সিলিং প্রয়োগ করা হয় না। চূড়ান্ত হার হল 35

সত্য যে 60 একটি কঠোর সামগ্রিক সিলিং অপ্রাসঙ্গিক কারণ এটি শুধুমাত্র তার নিজস্ব প্রচারের জন্য বৈধ, এবং সম্পূর্ণ প্রচার স্ট্যাককে বিস্তৃত করে এমন কোনো একক সিলিং থাকতে পারে না।

Promotions / HotelPromotions / Promotion / Ceiling / @amount_per_night 1 float

ডিসকাউন্ট প্রযোজ্য হওয়ার পরে সর্বোচ্চ যে পরিমাণ রাত্রিকালীন রেট সেট করা যেতে পারে।

যদি একটি <Floor> উপাদানও নির্দিষ্ট করা থাকে, তাহলে এটি অবশ্যই <Floor> এর amount_per_night বৈশিষ্ট্যের চেয়ে বেশি বা সমান একটি মান সেট করতে হবে।

রাত্রিকালীন হারে AmountAfterTax ব্যবহার করে অন্তর্ভুক্ত করা হলে ট্যাক্স এবং ফিগুলিতে amount_per_night প্রয়োগ করা হয়, কিন্তু TaxFeeInfo ব্যবহার করে নির্দিষ্ট করা নয়।

Promotions / HotelPromotions / Promotion / Floor 0..1 Floor

ন্যূনতম মানের উপর বিধিনিষেধ সংজ্ঞায়িত করে যা প্রচারগুলি প্রয়োগ করার পরে একটি হার সেট করা যেতে পারে৷

প্রচারগুলিতে সর্বদা একটি <Discount> বা একটি <BestDailyDiscount> উল্লেখ করতে হবে, তাই একটি প্রচার তৈরি করতে যা শুধুমাত্র একটি <Floor> প্রযোজ্য, একটি বিকল্প হল 0 percentage সাথে একটি <Discount> সেট করা।

<Floor> যুক্তি এখনও <FreeNights> ডিসকাউন্টের ক্ষেত্রে প্রযোজ্য, এমনকি যদি বিনামূল্যের রাতের উপর 100% ডিসকাউন্ট প্রয়োগ করা হয়।

যদি স্ট্যাকিং কনফিগার করা থাকে, তাহলে <Floor> সহ একাধিক প্রচার একক থাকার জন্য প্রযোজ্য হতে পারে। প্রতিটি প্রচার তার ডিসকাউন্ট প্রয়োগ করবে, অবিলম্বে তার ফ্লোর অনুসরণ করবে। নিম্নলিখিত উদাহরণটি দেখায় কিভাবে প্রতিটি ফ্লোর স্ট্যাকের পরবর্তী প্রচার গণনায় অবদান রাখে।

উদাহরণ:

1-রাত্রি থাকার মূল্য নির্ধারণ করা যেখানে AmountBeforeTax 100 এবং দুটি প্রচারের স্ট্যাক রয়েছে:

  1. স্ট্যাকিং টাইপ base সহ প্রচার, 25 এর একটি fixed_amount এবং ফ্লোর amount_per_night 90
  2. স্ট্যাকিং টাইপ second সহ প্রচার, 25 এর fixed_amount এবং ফ্লোর amount_per_night 60

এখানে গণনার ক্রম:

  1. base প্রমোশনটি প্রথমে প্রয়োগ করা হয় এবং AmountBeforeTax কে 75-এ ছাড় দেয়, কিন্তু তারপর ফ্লোর এটিকে 90 পর্যন্ত বাড়িয়ে দেয়।
  2. second প্রচারটি 90 থেকে 65 পর্যন্ত AmountBeforeTax ছাড় দেয়। এটি 60 ফ্লোরের উপরে তাই দ্বিতীয় তলায় প্রয়োগ করা হয় না। চূড়ান্ত হার হল 65

সত্য যে 90 একটি কঠোর সামগ্রিক ফ্লোর অপ্রাসঙ্গিক কারণ এটি শুধুমাত্র তার নিজস্ব প্রচারের জন্য বৈধ, এবং এমন কোনও একক তল থাকতে পারে না যা সমগ্র প্রচারের স্ট্যাককে বিস্তৃত করে৷

Promotions / HotelPromotions / Promotion / Floor / @amount_per_night 1 float

ডিসকাউন্ট প্রযোজ্য হওয়ার পরে ন্যূনতম পরিমাণ যা একটি রাতের হারে সেট করা যেতে পারে।

যদি একটি <Ceiling> উপাদানও নির্দিষ্ট করা হয়, তাহলে এটি অবশ্যই <Ceiling> -এর amount_per_night বৈশিষ্ট্যের চেয়ে কম বা সমান একটি মান সেট করতে হবে।

রাত্রিকালীন হারে AmountAfterTax ব্যবহার করে অন্তর্ভুক্ত করা হলে ট্যাক্স এবং ফিগুলিতে amount_per_night প্রয়োগ করা হয়, কিন্তু TaxFeeInfo ব্যবহার করে নির্দিষ্ট করা নয়।

Promotions / HotelPromotions / Promotion / CheckinDates 0..1 CheckinDates এক বা একাধিক তারিখের সীমার জন্য একটি ধারক যা প্রচারের জন্য কখন চেক-ইন করতে হবে তা নির্ধারণ করে৷
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange 1..20 DateRange

প্রচারের জন্য কখন চেক-ইন করতে হবে তা নির্দিষ্ট করে একটি তারিখ ব্যাপ্তি। আপনি এক বা একাধিক প্রচার মুছে ফেললে এই উপাদানটির প্রয়োজন নেই৷

ইয়ারলেস ডেট ফরম্যাটও সমর্থিত।

  • যদি start বা end যেকোন একটি বছরবিহীন তারিখ হয়, তাহলে উভয়কেই বর্ষবিহীন তারিখ হিসেবে গণনা করতে হবে।
  • বছরহীন তারিখ ব্যাপ্তি নতুন বছরের চারপাশে আবৃত করা উচিত নয়. পরিবর্তে, দুটি সন্নিহিত তারিখ ব্যাপ্তি হিসাবে ব্যাপ্তি উপস্থাপন করুন৷ উদাহরণস্বরূপ, {"12-29", "01-05"} কে {"12-29", "12-31"} এবং {"01-01", "01-05"} হিসাবে উপস্থাপন করা যেতে পারে।
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @start 0..1 Date or YearlessDate শুরুর তারিখ (প্রপার্টির টাইম জোনের উপর ভিত্তি করে), তারিখের ব্যাপ্তির অন্তর্ভুক্ত। এই তারিখটি অবশ্যই end তারিখের আগে বা একই হতে হবে৷ যদি start নির্দিষ্ট করা না থাকে, তারিখের পরিসর কার্যকরভাবে একটি শুরুর তারিখের পরিপ্রেক্ষিতে সীমাহীন।
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @end 0..1 Date or YearlessDate সমাপ্তির তারিখ (সম্পত্তির সময় অঞ্চলের উপর ভিত্তি করে), তারিখের ব্যাপ্তির অন্তর্ভুক্ত। এই তারিখটি অবশ্যই start তারিখের মতো বা তার পরে হতে হবে৷ যদি end নির্দিষ্ট করা না থাকে, তাহলে তারিখের পরিসীমা শেষ তারিখের পরিপ্রেক্ষিতে কার্যকরভাবে সীমাহীন।
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange / @days_of_week 0..1 string

সপ্তাহের যে দিনগুলি তারিখের ব্যাপ্তিতে অনুমোদিত৷ যদি নির্দিষ্ট না করা হয়, তারিখ পরিসরে সমস্ত দিন অনুমোদিত। স্ট্রিংয়ের প্রতিটি অক্ষর একটি দিন নির্দিষ্ট করে। উদাহরণস্বরূপ, "MTWHF" নির্দিষ্ট করে যে সপ্তাহের দিনগুলি তারিখ সীমার মধ্যে অনুমোদিত৷

বৈধ অক্ষর হল:

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

যেকোনো অক্ষর সমন্বয় বৈধ।

Promotions / HotelPromotions / Promotion / CheckoutDates 0..1 CheckoutDates এক বা একাধিক তারিখের সীমার জন্য একটি ধারক যা প্রচারের জন্য কখন চেক-আউট করতে হবে তা নির্ধারণ করে৷
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange 1..20 DateRange

প্রচারের জন্য কখন চেক-আউট করতে হবে তা নির্দিষ্ট করে একটি তারিখ ব্যাপ্তি। আপনি এক বা একাধিক প্রচার মুছে ফেললে এই উপাদানটির প্রয়োজন নেই৷

ইয়ারলেস ডেট ফরম্যাটও সমর্থিত।

  • যদি start বা end যেকোন একটি বছরবিহীন তারিখ হয়, তাহলে উভয়কেই বর্ষবিহীন তারিখ হিসেবে গণনা করতে হবে।
  • বছরহীন তারিখ ব্যাপ্তি নতুন বছরের চারপাশে আবৃত করা উচিত নয়. পরিবর্তে, দুটি সন্নিহিত তারিখ ব্যাপ্তি হিসাবে ব্যাপ্তি উপস্থাপন করুন৷ উদাহরণস্বরূপ, {"12-29", "01-05"} কে {"12-29", "12-31"} এবং {"01-01", "01-05"} হিসাবে উপস্থাপন করা যেতে পারে।
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @start 0..1 Date or YearlessDate শুরুর তারিখ (প্রপার্টির টাইম জোনের উপর ভিত্তি করে), তারিখের ব্যাপ্তির অন্তর্ভুক্ত। এই তারিখটি অবশ্যই end তারিখের আগে বা একই হতে হবে৷ যদি start নির্দিষ্ট করা না থাকে, তারিখের পরিসর কার্যকরভাবে একটি শুরুর তারিখের পরিপ্রেক্ষিতে সীমাহীন।
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @end 0..1 Date or YearlessDate সমাপ্তির তারিখ (সম্পত্তির সময় অঞ্চলের উপর ভিত্তি করে), তারিখের ব্যাপ্তির অন্তর্ভুক্ত। এই তারিখটি অবশ্যই start তারিখের মতো বা তার পরে হতে হবে৷ যদি end নির্দিষ্ট করা না থাকে, তাহলে তারিখের পরিসীমা শেষ তারিখের পরিপ্রেক্ষিতে কার্যকরভাবে সীমাহীন।
Promotions / HotelPromotions / Promotion / CheckoutDates / DateRange / @days_of_week 0..1 string

সপ্তাহের যে দিনগুলি তারিখের ব্যাপ্তিতে অনুমোদিত৷ যদি নির্দিষ্ট না করা হয়, তারিখ পরিসরে সমস্ত দিন অনুমোদিত। স্ট্রিংয়ের প্রতিটি অক্ষর একটি দিন নির্দিষ্ট করে। উদাহরণস্বরূপ, "MTWHF" নির্দিষ্ট করে যে সপ্তাহের দিনগুলি তারিখ সীমার মধ্যে অনুমোদিত৷

বৈধ অক্ষর হল:

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

যেকোনো অক্ষর সমন্বয় বৈধ।

Promotions / HotelPromotions / Promotion / Devices 0..1 Devices প্রচারের জন্য যোগ্য ব্যবহারকারী ডিভাইসগুলি তালিকাভুক্ত করার জন্য ধারক৷ উল্লেখ করা থাকলে, তালিকাভুক্ত ডিভাইসে শুধুমাত্র যোগ্য ব্যবহারকারীদেরই ছাড়ের হার দেওয়া হয়। নির্দিষ্ট না থাকলে, যেকোনো ডিভাইসে যোগ্য ব্যবহারকারীদের ছাড়ের হার দেওয়া হয়।
Promotions / HotelPromotions / Promotion / Devices / Device 1..3 Device প্রচারের জন্য যোগ্য এক ধরনের ব্যবহারকারী ডিভাইস সংজ্ঞায়িত করে।
Promotions / HotelPromotions / Promotion / Devices / Device / @type 1 enum এক ধরনের যন্ত্র। মান অবশ্যই desktop , tablet বা mobile হতে হবে।
Promotions / HotelPromotions / Promotion / Discount 1 Discount

Discount বা BestDailyDiscount এর মধ্যে ঠিক একটি নির্দিষ্ট করতে হবে।

এই প্রচারের জন্য আবেদন করতে ডিসকাউন্ট নির্দিষ্ট করে।

Promotions / HotelPromotions / Promotion / Discount / @percentage 0..1 float

percentage , fixed_amount , fixed_amount_per_night , fixed_price , বা fixed_price_per_night মধ্যে একটি প্রয়োজন৷

0-100 থেকে একটি দশমিক মান যা শতাংশ ছাড় নির্দিষ্ট করে। এটি AmountAfterTax (বা AmountAfterTax নির্দিষ্ট না থাকলে AmountBeforeTax ) এ প্রয়োগ করা হয়।

উদাহরণ:

  • যদি AmountAfterTax হয় 100 এবং percentage 20 হয়, তাহলে

    প্রচারের হার = AmountAfterTax * (1 - শতাংশ ছাড়)

    80.00 = 100 * (1 - 0.2)

  • যদি AmountBeforeTax 100 হয়, percentage হয় 20 এবং TaxFeeInfo 10 এর ট্যাক্স নির্দিষ্ট করে, তাহলে

    প্রমোশন রেট = AmountBeforeTax * (1 - শতাংশ ছাড়) + ট্যাক্স

    90.00 = 100 * (1 - 0.2) + 10

Promotions / HotelPromotions / Promotion / Discount / @fixed_amount 0..1 float

percentage , fixed_amount , fixed_amount_per_night , fixed_price , বা fixed_price_per_night মধ্যে একটি প্রয়োজন৷

AmountAfterTax AmountAfterTax AmountBeforeTax না থাকলে রাত্রিকালীন মূল্যের পরিমাণের যোগফল)। এটি রাতের হারের মতো একই মুদ্রায় বলে ধরে নেওয়া হয়। যদি এটি রাত্রিকালীন হারের যোগফলের চেয়ে বড় হয়, তাহলে ফলাফলের মান শূন্য হয়।

উদাহরণ:

  • আমরা যদি ১ রাত থাকার জন্য মূল্য নির্ধারণ করি যেখানে AmountBeforeTax হল 90, AmountAfterTax হল 100 এবং fixed_amount হল 20, তাহলে

    প্রচারের হার = AmountAfterTax - নির্দিষ্ট ছাড়

    80.00 = 100 - 20

  • যদি আমরা 1-রাত্রি থাকার মূল্য নির্ধারণ করি যেখানে AmountBeforeTax হল 100, fixed_amount হল 20 এবং TaxFeeInfo 8% ট্যাক্স নির্দিষ্ট করে, তাহলে

    প্রচারের হার = ( AmountBeforeTax - নির্দিষ্ট ছাড়) * (1 + শতাংশ ট্যাক্স)

    86.40 = (100 - 20) * 1.08

  • যদি আমরা 1-রাত্রি থাকার মূল্য নির্ধারণ করি যেখানে AmountBeforeTax 50, fixed_amount 60 এবং TaxFeeInfo 10 ট্যাক্স নির্দিষ্ট করে, তাহলে

    প্রচারের হার = ( AmountBeforeTax - নির্দিষ্ট ডিসকাউন্ট) * ট্যাক্স

    10.00 = 0 + 10

  • যদি আমরা 3-রাত থাকার মূল্য নির্ধারণ করি যেখানে AmountAfterTax মান 100, 110 এবং 120 হয়; এবং fixed_amount হল 150, তারপর

    প্রচারের হার = যোগফল ( AmountAfterTax ) - (নির্দিষ্ট ছাড়)

    180.00 = (100 + 110 + 120) - 150

Promotions / HotelPromotions / Promotion / Discount / @fixed_amount_per_night 0..1 float

percentage , fixed_amount , fixed_amount_per_night , fixed_price , বা fixed_price_per_night মধ্যে একটি প্রয়োজন৷

AmountAfterTax রাত্রিকালীন রেটগুলির প্রতিটিতে একটি নির্দিষ্ট ডিসকাউন্ট প্রযোজ্য (অথবা applied_nights নির্দিষ্ট করা থাকলে সবচেয়ে সস্তা N)। যদি AmountAfterTax নির্দিষ্ট করা না থাকে, তাহলে এটি AmountBeforeTax এ প্রয়োগ করা হয়। এটি রাতের হারের মতো একই মুদ্রায় বলে ধরে নেওয়া হয়। যদি fixed_amount_per_night একটি রাত্রিকালীন হারের চেয়ে বড় হয়, তবে সেই রাতের হার শূন্য হিসাবে হ্রাস করা হয়—ছাড় রাতের হারকে নেতিবাচক হতে পারে না।

উদাহরণ:

  • যদি আমরা 3-রাত থাকার মূল্য নির্ধারণ করি যেখানে AmountAfterTax মান 100, 110 এবং 120 হয়; এবং fixed_amount_per_night 10, তারপর

    প্রচারের হার = যোগফল ( AmountBeforeTax - নির্দিষ্ট পরিমাণ ছাড়)

    300.00 = ((100 - 10) + (110 - 10) + (120 - 10))

  • যদি আমরা 3-রাত থাকার মূল্য নির্ধারণ করি যেখানে AmountAfterTax মান 10, 50, এবং 100 হয়; এবং fixed_amount_per_night 20, তারপর

    প্রচারের হার = যোগফল ( AmountAfterTax - নির্দিষ্ট পরিমাণ ছাড়)

    110.00 = (0 + (50 - 20) + (100 - 20))

Promotions / HotelPromotions / Promotion / Discount / @fixed_price 0..1 float

percentage , fixed_amount , fixed_amount_per_night , fixed_price , বা fixed_price_per_night মধ্যে একটি প্রয়োজন৷

যদি AmountAfterTax রাত্রিকালীন রেট নির্দিষ্ট করা থাকে, তাহলে এটি নির্দিষ্ট মূল্যে ট্যাক্স এবং ফি সহ থাকার জন্য মূল্য নির্ধারণ করে। যদি AmountBeforeTax নির্দিষ্ট করা থাকে, তাহলে AmountAfterTax নির্দিষ্ট করা হোক বা না হোক, এটি নির্দিষ্ট মানের সাথে থাকার জন্য প্রি-ট্যাক্স মূল্য সেট করে। এটি রাতের হারের মতো একই মুদ্রায় বলে ধরে নেওয়া হয়।

যদি AmountAfterTax একটি শতাংশ ট্যাক্স প্রতিফলিত করার উদ্দেশ্যে হয়, তাহলে AmountBeforeTax এর জন্য একটি নির্দিষ্ট মূল্য নির্ধারণের ফলে ভুল ট্যাক্স এবং ফি হতে পারে। সাধারণভাবে, একটি সম্পত্তির কর এবং ফি নির্দিষ্ট করতে TaxFeeInfo ব্যবহার করার জন্য দৃঢ়ভাবে সুপারিশ করা হয়।

উদাহরণ:

  • যদি আমরা 1-রাত্রি থাকার মূল্য নির্ধারণ করি যেখানে AmountBeforeTax 90, AmountAfterTax হল 100 এবং fixed_price 80, তাহলে প্রচারের হার 80।
  • যদি আমরা 1-রাত্রি থাকার মূল্য নির্ধারণ করি যেখানে AmountBeforeTax হল 100, fixed_amount হল 80, এবং TaxFeeInfo 8% ট্যাক্স নির্দিষ্ট করে, তাহলে

    প্রচারের হার = নির্দিষ্ট মূল্য * (1 + শতাংশ ট্যাক্স)

    86.40 = 80 * 1.08

  • যদি আমরা 3-রাত থাকার মূল্য নির্ধারণ করি যেখানে AmountAfterTax মান 100, 110 এবং 120 হয়; এবং fixed_amount হল 300, তাহলে

    প্রচারের হার = 300

Promotions / HotelPromotions / Promotion / Discount / @fixed_price_per_night 0..1 float

percentage , fixed_amount , fixed_amount_per_night , fixed_price , বা fixed_price_per_night মধ্যে একটি প্রয়োজন৷

যদি AmountAfterTax রাত্রিকালীন রেট নির্দিষ্ট করা থাকে, তাহলে এটি ট্যাক্স এবং ফি সহ প্রতিটি রাতের থাকার মূল্য নির্দিষ্ট মূল্যে সেট করে। যদি AmountBeforeTax নির্দিষ্ট করা থাকে, তাহলে AmountAfterTax নির্দিষ্ট করা হোক বা না হোক, এটি নির্দিষ্ট মূল্যে থাকার প্রতিটি রাতের জন্য প্রি-ট্যাক্স মূল্য সেট করে। এটি রাতের হারের মতো একই মুদ্রায় বলে ধরে নেওয়া হয়।

যদি AmountAfterTax একটি শতাংশ ট্যাক্স প্রতিফলিত করার উদ্দেশ্যে হয়, তাহলে AmountBeforeTax এর জন্য একটি নির্দিষ্ট মূল্য নির্ধারণের ফলে ভুল ট্যাক্স এবং ফি হতে পারে। সাধারণভাবে, একটি সম্পত্তির কর এবং ফি নির্দিষ্ট করতে TaxFeeInfo ব্যবহার করার জন্য দৃঢ়ভাবে সুপারিশ করা হয়।

যদি applied_nights নির্দিষ্ট করা হয়, তাহলে নতুন মূল্য সবচেয়ে সস্তা N রাতের জন্য প্রয়োগ করা হয়।

উদাহরণ:

  • যদি আমরা 2-রাত থাকার মূল্য নির্ধারণ করি যেখানে AmountBeforeTax এর মান 90, 90; AmountAfterTax মান হল 100, 100; এবং fixed_price হল 80, তারপর প্রচারের হার হল 80 + 80 = 160৷
  • যদি আমরা 2-রাত থাকার মূল্য নির্ধারণ করি যেখানে AmountBeforeTax হল 100, 100; fixed_amount হল 80, এবং TaxFeeInfo 8% ট্যাক্স নির্দিষ্ট করে, তারপর প্রচারের হার হল (80 + 80) * 1.08 = 172.8।
  • যদি আমরা 3-রাত থাকার মূল্য নির্ধারণ করি যেখানে AmountAfterTax মান 100, 110 এবং 120 হয়; এবং fixed_amount হল 110, তারপর প্রচারের হার হল 110 * 3 = 330৷
Promotions / HotelPromotions / Promotion / Discount / @applied_nights 0..1 integer

এটি শুধুমাত্র percentage বা fixed_amount_per_night এর সাথে ব্যবহার করা উচিত।

সবচেয়ে কম ব্যয়বহুল থেকে শুরু করে যত রাতের জন্য ছাড় প্রয়োগ করা হয়েছে। 1 থেকে 99 পর্যন্ত একটি পূর্ণসংখ্যা হতে হবে। যদি নির্দিষ্ট না করা হয়, তাহলে সমস্ত রাতের জন্য ছাড় প্রয়োগ করা হয়।

Promotions / HotelPromotions / Promotion / Discount / FreeNights 0..1 FreeNights একটি ন্যূনতম থাকার দৈর্ঘ্য পূরণ হলে একটি থাকার নির্দিষ্ট রাতে একটি ডিসকাউন্ট নির্দিষ্ট করে। এই উপাদানটি ব্যবহার করা হলে প্যারেন্ট Discount উপাদানের বৈশিষ্ট্যগুলি অনুমোদিত নয়৷
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @stay_nights 1 integer

ডিসকাউন্ট প্রয়োগ করার জন্য প্রয়োজনীয় রাতের সংখ্যা। প্রতিটি ডিসকাউন্ট থাকার রাতের একটি পৃথক বিভাগে প্রয়োগ করা হয়।

উদাহরণস্বরূপ, 10-রাত্রি থাকার জন্য যেখানে stay_nights 4 (এবং repeats সত্য), তারপরে দুটি রাত্রি বিভাগ রয়েছে: 1ম থেকে 4র্থ রাত এবং 5ম থেকে 8ম রাত পর্যন্ত; 9 তম এবং 10 তম রাত একটি থাকার রাতের অংশ নয়।

Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_nights 1 integer থাকার রাতের প্রতিটি বিভাগের মধ্যে ছাড় দেওয়া রাতের সংখ্যা।
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_percentage 1 float ডিসকাউন্ট যে ডিসকাউন্ট রাতে প্রয়োগ করা হয়. যদি এই মান 50 হয়, তাহলে প্রতিটি নির্বাচিত রাতে 50% ছাড়।
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @night_selection 1 string হয় cheapest বা last হতে হবে। যদি last , তাহলে রাতের সেগমেন্টের শেষে রাত্রিযাপনে ছাড় দেওয়া হয়। যদি cheapest , তাহলে থাকার রাতের সেগমেন্টের মধ্যে সবচেয়ে সস্তা রাতের জন্য ছাড় দেওয়া হয়।
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @repeats 1 boolean

ডিসকাউন্ট একাধিক রাত থাকার সেগমেন্টে প্রযোজ্য হতে পারে কিনা। যদি false , তবে ভ্রমণপথের শুরুতে শুধুমাত্র রাত্রিযাপনের অংশ ছাড় দেওয়া হয়। যদি true , তাহলে রাতের যেকোন অংশে ছাড় দেওয়া হয়।

উদাহরণস্বরূপ, যদি stay_nights হয় 4 এবং ভ্রমণসূচীটি 10 ​​রাত হয়, তাহলে, যদি repeats true হয়, তাহলে 2টি সেগমেন্ট ছাড় দেওয়া হয় (রাত 1-4 এবং রাত 5-8); কিন্তু, যদি repeats false হয়, তবে শুধুমাত্র 1টি সেগমেন্ট ছাড় দেওয়া হয় (রাত 1-4)।

Promotions / HotelPromotions / Promotion / Discount / @rank 0..1 integer এই প্রচারটিকে একটি র‌্যাঙ্ক বরাদ্দ করে এবং এটিকে র‌্যাঙ্ক করা নির্বাচনে বেছে নেয়, যেখানে শুধুমাত্র সর্বনিম্ন র‌্যাঙ্কের প্রচারটি প্রয়োগ করার জন্য নির্বাচন করা হয়। মানগুলি অবশ্যই 1 এবং 99 এর মধ্যে হতে হবে, অন্তর্ভুক্ত। যদি একাধিক প্রচার একই র‌্যাঙ্ক শেয়ার করে, তাহলে একজনকে ইচ্ছামত নির্বাচন করে প্রয়োগ করা হয়।
Promotions / HotelPromotions / Promotion / BestDailyDiscount 1 Discount

Discount বা BestDailyDiscount এর মধ্যে ঠিক একটি নির্দিষ্ট করতে হবে।

একটি দৈনিক ডিসকাউন্ট নির্দিষ্ট করে যা একটি রাত থাকার জন্য প্রযোজ্য হতে পারে। এটি Discount বিপরীতে, যা সম্পূর্ণ থাকার জন্য ডিসকাউন্ট প্রযোজ্য।

প্রতিটি সম্পত্তির প্রচারের একটি একক গ্রুপ থাকতে পারে যেগুলিকে "সর্বোত্তম দৈনিক" হিসাবে বিবেচনা করা হয়। এর মানে হল যে প্রতিটি রাত থাকার জন্য, একক "সর্বোত্তম দৈনিক" প্রচার যা যোগ্য এবং সেই রাতের জন্য গভীরতম ছাড় দেয় তা নির্বাচন করা হয়েছে এবং প্রয়োগ করা যেতে পারে৷

BestDailyDiscount এর সাথে Stacking নির্দিষ্ট নাও হতে পারে। "সর্বোত্তম দৈনিক" ডিসকাউন্টগুলি যা প্রতিটি রাতের জন্য গভীরতম ডিসকাউন্ট প্রদান করে এবং একক থাকার ডিসকাউন্ট (অর্থাৎ Discount ) হিসাবে বিবেচনা করা হয় এবং স্ট্যাকিং টাইপ base সেট করা হয়৷ এই সম্মিলিত ছাড়ের সাথে তুলনা করা হয়, এবং অন্যান্য যোগ্য <ডিসকাউন্ট> প্রচারের সাথে স্ট্যাক করা যেতে পারে যেটি সবচেয়ে গভীর ছাড় প্রদান করে এমন একটি বা সংমিশ্রণ খুঁজে পেতে। হয় BestDailyDiscount এর সংমিশ্রণ বা একটি একক Discount , যেটি কম দামে পাওয়া যায়, base স্ট্যাকিং টাইপের জন্য বেছে নেওয়া হয় এবং প্রয়োগ করা হয়।

StayDates এই ধরণের ছাড়ের সাথে নির্দিষ্ট করা যেতে পারে, তবে application অবশ্যই overlap করতে সেট করতে হবে৷

.
Promotions / HotelPromotions / Promotion / BestDailyDiscount / @percentage 0..1 float

percentage , fixed_amount , বা fixed_price মধ্যে ঠিক একটি প্রয়োজন।

0-100 থেকে একটি দশমিক মান যা শতাংশ ছাড় নির্দিষ্ট করে। এটি AmountAfterTax (বা AmountAfterTax নির্দিষ্ট না থাকলে AmountBeforeTax ) এ প্রয়োগ করা হয়।

উদাহরণ:

  • যদি একটি রাত থাকার জন্য AmountAfterTax হয় 100 এবং percentage 20 হয়, তাহলে

    প্রচারের হার = AmountAfterTax * (1 - শতাংশ ছাড়)

    80.00 = 100 * (1 - 0.2)

  • যদি এক সময় থাকার জন্য AmountBeforeTax হয় 100, percentage হয় 20 এবং TaxFeeInfo 10 ট্যাক্স নির্দিষ্ট করে, তাহলে

    প্রমোশন রেট = AmountBeforeTax * (1 - শতাংশ ছাড়) + ট্যাক্স

    90.00 = 100 * (1 - 0.2) + 10

Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_amount 0..1 float

percentage , fixed_amount , বা fixed_price মধ্যে ঠিক একটি প্রয়োজন।

একক AmountAfterTax AmountAfterTax AmountBeforeTax না থাকলে রাত্রিকালীন মূল্যের মূল্য)। এটি রাতের হারের মতো একই মুদ্রায় বলে ধরে নেওয়া হয়। যদি এটি রাত্রিকালীন হারের যোগফলের চেয়ে বড় হয়, তাহলে ফলাফলের মান শূন্য হয়।

উদাহরণ:

  • যদি এক রাতের জন্য AmountBeforeTax হয় 90, AmountAfterTax হয় 100, এবং fixed_amount হয় 20, তাহলে

    প্রচারের হার = AmountAfterTax - নির্দিষ্ট ছাড়

    80.00 = 100 - 20

  • যদি এক রাতের জন্য AmountBeforeTax হয় 100, fixed_amount হয় 20, এবং TaxFeeInfo 8% ট্যাক্স নির্দিষ্ট করে, তাহলে

    প্রচারের হার = ( AmountBeforeTax - নির্দিষ্ট ছাড়) * (1 + শতাংশ ট্যাক্স)

    86.40 = (100 - 20) * 1.08

Promotions / HotelPromotions / Promotion/ BestDailyDiscount / @fixed_price 0..1 float

percentage , fixed_amount , বা fixed_price মধ্যে ঠিক একটি প্রয়োজন।

যদি AmountAfterTax রাত্রিকালীন রেট নির্দিষ্ট করা থাকে, তাহলে এটি ট্যাক্স এবং ফি সহ রাতের থাকার মূল্য নির্দিষ্ট মানের সাথে সেট করে। যদি AmountBeforeTax নির্দিষ্ট করা থাকে, তাহলে AmountAfterTax নির্দিষ্ট করা হোক বা না হোক, এটি নির্দিষ্ট মানের সাথে থাকার জন্য প্রি-ট্যাক্স মূল্য সেট করে। এটি রাতের হারের মতো একই মুদ্রায় বলে ধরে নেওয়া হয়।

উদাহরণ:

  • যদি এক রাতের জন্য AmountBeforeTax হয় 90, AmountAfterTax হয় 100, এবং fixed_price 80 হয়, তাহলে প্রচারের হার হবে 80।
  • যদি এক রাতের জন্য AmountBeforeTax হয় 100, fixed_amount হয় 80, এবং TaxFeeInfo 8% ট্যাক্স নির্দিষ্ট করে, তাহলে

    প্রচারের হার = নির্দিষ্ট মূল্য * (1 + শতাংশ ট্যাক্স)

    86.40 = 80 * 1.08

Promotions / HotelPromotions / Promotion / InventoryCount 0..1 InventoryCount এই প্রচারটি প্রয়োগ করার জন্য উপলব্ধ কক্ষের সংখ্যার উপর বিধিনিষেধ সংজ্ঞায়িত করে। ডিসকাউন্ট শুধুমাত্র সীমাবদ্ধতা পূরণের রাতে প্রয়োগ করা হয়. fixed_amount ডিসকাউন্ট সহ অনুমোদিত নয়। মনে রাখবেন যে উপলব্ধ রুমের সংখ্যা হয় OTA_HotelInvCountNotifRQ ( InvCount ) বা OTA_HotelAvailNotifRQ ( BookingLimit ) দিয়ে নির্দিষ্ট করা আছে৷
Promotions / HotelPromotions / Promotion / InventoryCount / @min 0..1 integer ন্যূনতম কক্ষের সংখ্যা যা প্রচারের জন্য উপলব্ধ থাকতে হবে রাতের হারে প্রয়োগ করতে হবে। যদি এটি নির্দিষ্ট করা না থাকে তবে ন্যূনতম নেই।
Promotions / HotelPromotions / Promotion / InventoryCount / @max 0..1 integer প্রচারের জন্য রাত্রিকালীন রেট প্রয়োগ করার জন্য সর্বাধিক সংখ্যক কক্ষ উপলব্ধ থাকতে হবে। যদি এটি নির্দিষ্ট করা না থাকে তবে সর্বোচ্চ নেই।
Promotions / HotelPromotions / Promotion / LengthOfStay 0..1 LengthOfStay থাকার সীমার দৈর্ঘ্য নির্ধারণ করে যার মধ্যে এই প্রচারটি প্রয়োগ করা যেতে পারে। অবস্থানের দৈর্ঘ্য সর্বনিম্ন এবং সর্বোচ্চ সীমার বাইরে থাকলে প্রচারটি প্রয়োগ করা হয় না।
Promotions / HotelPromotions / Promotion / LengthOfStay / @min 0..1 integer পদোন্নতির আবেদনের জন্য থাকার জন্য অনুমোদিত ন্যূনতম রাত। যদি এটি নির্দিষ্ট করা না থাকে তবে ন্যূনতম নেই।
Promotions / HotelPromotions / Promotion / LengthOfStay / @max 0..1 integer প্রমোশনের আবেদনের জন্য থাকার জন্য অনুমোদিত সর্বোচ্চ রাত। যদি এটি নির্দিষ্ট করা না থাকে তবে সর্বোচ্চ নেই।
Promotions / HotelPromotions / Promotion / MembershipRateRule 0..1 MembershipRateRule

সদস্যতার হারের নিয়মের জন্য কন্টেইনার যা সংশ্লিষ্ট ডিসকাউন্টের জন্য একটি নির্দিষ্ট UI ট্রিগার করে।

এই উপাদানটি নির্দিষ্ট করা উচিত নয় যদি না <Discount> ও নির্দিষ্ট করা হয়।

Promotions / HotelPromotions / Promotion / MembershipRateRule / @id 1 string

মেম্বারশিপ প্রোগ্রামের সাথে সম্পর্কিত হারের নিয়মের আইডি।

Promotions / HotelPromotions / Promotion / MinimumAmount 0..1 MinimumAmount দৈনিক রুমের হারের ন্যূনতম যোগফল নির্দিষ্ট করে ( AmountBeforeTax বা AmountAfterTax এর বৃহত্তর ব্যবহার করে) যা প্রচারের জন্য প্রয়োগ করার জন্য অতিক্রম করতে হবে।
Promotions / HotelPromotions / Promotion / MinimumAmount / @before_discount 1 integer প্রচারের জন্য যে মানটি অবশ্যই অতিক্রম করতে হবে।
Promotions / HotelPromotions / Promotion / Occupancy 0..1 Occupancy এই প্রচারটি প্রয়োগ করা হয় এমন দখলের উপর বিধিনিষেধ সংজ্ঞায়িত করে। যখন দখল সর্বনিম্ন এবং সর্বোচ্চ সীমার বাইরে থাকে তখন প্রচারটি প্রয়োগ করা হয় না।
Promotions / HotelPromotions / Promotion / Occupancy / @min 0..1 integer ডিসকাউন্ট প্রয়োগ করার জন্য ব্যবহারকারী-নির্দিষ্ট দখল অন্তত এই মান হতে হবে।
Promotions / HotelPromotions / Promotion / Occupancy / @max 0..1 integer ডিসকাউন্ট প্রয়োগ করার জন্য ব্যবহারকারী-নির্দিষ্ট দখল সর্বাধিক এই মান হতে হবে.
Promotions / HotelPromotions / Promotion / RatePlans 0..1 RatePlans রেট প্ল্যানের একটি তালিকার জন্য ধারক যেখানে প্রচার প্রযোজ্য। <RatePlans> নির্দিষ্ট না থাকলে, প্রচারটি সমস্ত রেট প্ল্যানে প্রযোজ্য।
Promotions / HotelPromotions / Promotion / RatePlans / RatePlan 1..n RatePlan একটি হার পরিকল্পনা নির্দিষ্ট করে। লেনদেন (সম্পত্তি ডেটা), OTA_HotelRateAmountNotifRQ এবং OTA_HotelAvailNotifRQ বার্তাগুলিতে সংজ্ঞায়িত প্যাকেজ, হার এবং উপলব্ধতার সংমিশ্রণ দ্বারা একটি রেট প্ল্যান সংজ্ঞায়িত করা হয় এবং প্যাকেজআইডি দ্বারা চিহ্নিত করা হয়৷
Promotions / HotelPromotions / Promotion / RatePlans / RatePlan / @id 1 string রেট প্ল্যানের অনন্য শনাক্তকারী। এই মানটি একটি লেনদেন (সম্পত্তি ডেটা) বার্তায় <PackageData> এ PackageID মান এবং <OTA_HotelRateAmountNotifRQ> এবং <OTA_HotelAvailNotifRQ> উভয় বার্তায় <StatusApplicationControl> RatePlanCode অ্যাট্রিবিউটে ম্যাপ করে। অনুমোদিত অক্ষরের সর্বাধিক সংখ্যা 50।
Promotions / HotelPromotions / Promotion / RoomTypes 0..1 RoomTypes রুম প্রকারের একটি তালিকার জন্য ধারক যেখানে প্রচার প্রযোজ্য। প্রচারটি নির্দিষ্ট করা প্রতিটি <RoomType> এ প্রয়োগ করা হয়। যদি <RoomTypes> নির্দিষ্ট করা না থাকে, প্রচারটি সমস্ত রুমে প্রযোজ্য।
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType 1..n RoomType একটি রুমের ধরন নির্দিষ্ট করে। একটি লেনদেন (সম্পত্তি ডেটা) বার্তার একটি <RoomData> উপাদানে একটি রুমের ধরন সংজ্ঞায়িত করা হয় এবং এটির <RoomID> মান ব্যবহার করে উল্লেখ করা হয়। (এর <RoomID> মানটি OTA_HotelRateAmountNotifRQ বার্তাগুলিতে InvTypeCode বৈশিষ্ট্য দ্বারাও উল্লেখ করা হয়েছে।)
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType / @id 1 string ইনভেন্টরির জন্য অনন্য শনাক্তকারী (রুমের ধরন)। এই মানটি একটি লেনদেন (সম্পত্তি ডেটা) বার্তায় <RoomID> এ ম্যাপ করে। অনুমোদিত অক্ষরের সর্বাধিক সংখ্যা 50।
Promotions / HotelPromotions / Promotion / Stacking 0..1 Stacking প্রচারগুলিকে কীভাবে একত্রিত করা যেতে পারে তা নির্দিষ্ট করে৷ যদি নির্দিষ্ট না করা হয়, তাহলে "টাইপ" কে base হিসেবে ধরে নেওয়া হয়।
Promotions / HotelPromotions / Promotion / Stacking / @type 1 enum

এই সেটিং এর উপর নির্ভর করে একক হারে একাধিক প্রচার প্রয়োগ করা যেতে পারে:

  • any : অন্য কোনো প্রচারের সাথে একত্রিত করা যেতে পারে ( none ছাড়া), কিন্তু যে ক্রমানুসারে প্রচারগুলি প্রয়োগ করা হবে তার নিশ্চয়তা নেই৷
  • base : সেরা যোগ্য base প্রচার নির্বাচন করা হয় এবং প্রথমে অন্য প্রচারের আগে প্রয়োগ করা হয়। এটিকে পূর্বে base_only নামকরণ করা হয়েছিল।
  • second : base প্রমোশনের পরে (যদি প্রযোজ্য হয়) এবং any প্রচারের আগে সেরা যোগ্য second পদোন্নতি নির্বাচন করা হয় এবং প্রয়োগ করা হয়।
  • none : অন্য প্রচারের সাথে একত্রিত করা যাবে না

অনুমোদিত সংমিশ্রণগুলির মধ্যে, প্রচারগুলির সেট যা সবচেয়ে বেশি ছাড় দেয় তা হারে প্রয়োগ করা হয়।

Promotions / HotelPromotions / Promotion / StayDates 0..1 StayDates এক বা একাধিক তারিখের সীমার জন্য একটি কন্টেইনার যা নির্ধারণ করে যে কীভাবে প্রচারটি প্রয়োগ করা হবে, যেমন মৌসুমী ছাড় মিটমাট করা।
Promotions / HotelPromotions / Promotion / StayDates / @application 1 enum

কিভাবে পদোন্নতি প্রয়োগ করা উচিত তা বর্ণনা করে।

বৈধ মান হল:

  • all : ভ্রমণসূচীর প্রতিটি রাতে প্রচার প্রযোজ্য যদি ভ্রমণসূচীর সমস্ত তারিখ থাকার তারিখের সাথে ওভারল্যাপ করে।
  • any : ভ্রমণপথের সমস্ত রাতের জন্য প্রচার প্রযোজ্য যদি ভ্রমণসূচীর কোনো তারিখ থাকার তারিখের সীমার মধ্যে একটি তারিখের সাথে ওভারল্যাপ করে।
  • overlap : ভ্রমণপথে শুধুমাত্র সেই রাতগুলিতে প্রচার প্রযোজ্য যা থাকার তারিখের পরিসরে একটি তারিখের সাথে ওভারল্যাপ করে।

এই বৈশিষ্ট্য সবসময় নির্দিষ্ট করা আবশ্যক.

  • যদি <Discount> percentage নির্দিষ্ট করে এবং application all বা any সেট করা হয়, তাহলে ডিসকাউন্ট সম্পূর্ণ থাকার শতাংশ হিসাবে প্রয়োগ করা হয়।
  • যদি <Discount> percentage নির্দিষ্ট করে এবং application overlap জন্য সেট করা হয়, ডিসকাউন্টটি ওভারল্যাপ করা রাতের জন্য রাত্রিকালীন হারের শতাংশ হিসাবে প্রয়োগ করা হয়।
  • <Discount> fixed_amount নির্দিষ্ট করা এবং overlap জন্য সেট করা application একটি অবৈধ সমন্বয়।
  • <FreeNights> সমস্ত application মান সমর্থন করে। নোট করুন যে overlap জন্য, ডিসকাউন্টের প্রয়োজনীয়তার জন্য শুধুমাত্র ওভারল্যাপ করা রাতের থাকার কথা বিবেচনা করা হয়।
Promotions / HotelPromotions / Promotion / StayDates / DateRange 1..99 DateRange

একটি তারিখ ব্যাপ্তি যে তারিখগুলি উল্লেখ করে যে প্রচারটি কখন প্রয়োগ করা হবে৷

ইয়ারলেস ডেট ফরম্যাটও সমর্থিত।

  • যদি start বা end যেকোন একটি বছরবিহীন তারিখ হয়, তাহলে উভয়কেই বর্ষবিহীন তারিখ হিসেবে গণনা করতে হবে।
  • বছরহীন তারিখ ব্যাপ্তি নতুন বছরের চারপাশে আবৃত করা উচিত নয়. পরিবর্তে, দুটি সন্নিহিত তারিখ ব্যাপ্তি হিসাবে ব্যাপ্তি উপস্থাপন করুন৷ উদাহরণস্বরূপ, {"12-29", "01-05"} কে {"12-29", "12-31"} এবং {"01-01", "01-05"} হিসাবে উপস্থাপন করা যেতে পারে।
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @start 0..1 Date or YearlessDate শুরুর তারিখ (প্রপার্টির টাইম জোনের উপর ভিত্তি করে), তারিখের ব্যাপ্তির অন্তর্ভুক্ত। এই তারিখটি অবশ্যই end তারিখের আগে বা একই হতে হবে৷ যদি start নির্দিষ্ট করা না থাকে, তারিখের পরিসর কার্যকরভাবে একটি শুরুর তারিখের পরিপ্রেক্ষিতে সীমাহীন।
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @end 0..1 Date or YearlessDate সমাপ্তির তারিখ (সম্পত্তির সময় অঞ্চলের উপর ভিত্তি করে), তারিখের ব্যাপ্তির অন্তর্ভুক্ত। এই তারিখটি অবশ্যই start তারিখের মতো বা তার পরে হতে হবে৷ যদি end নির্দিষ্ট করা না থাকে, তাহলে তারিখের পরিসীমা শেষ তারিখের পরিপ্রেক্ষিতে কার্যকরভাবে সীমাহীন।
Promotions / HotelPromotions / Promotion / StayDates / DateRange / @days_of_week 0..1 string

সপ্তাহের যে দিনগুলি তারিখের ব্যাপ্তিতে অনুমোদিত৷ যদি নির্দিষ্ট না করা হয়, তারিখ পরিসরে সমস্ত দিন অনুমোদিত। স্ট্রিংয়ের প্রতিটি অক্ষর একটি দিন নির্দিষ্ট করে। উদাহরণস্বরূপ, "MTWHF" নির্দিষ্ট করে যে সপ্তাহের দিনগুলি তারিখ সীমার মধ্যে অনুমোদিত৷

বৈধ অক্ষর হল:

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

যেকোনো অক্ষর সমন্বয় বৈধ।

Promotions / HotelPromotions / Promotion / UserCountries 0..1 UserCountries প্রচারের জন্য যোগ্য ব্যবহারকারীর অবস্থান (দেশ) তালিকাভুক্ত করার জন্য ধারক। উল্লেখ করা থাকলে, তালিকাভুক্ত দেশগুলির শুধুমাত্র যোগ্য ব্যবহারকারীদেরই ছাড়ের হার দেওয়া হয়। নির্দিষ্ট করা না থাকলে, যেকোনো দেশের যোগ্য ব্যবহারকারীদের ছাড়ের হার দেওয়া হয়।
Promotions / HotelPromotions / Promotion / UserCountries / @type 0..1 enum UserCountries স্পেসিফিকেশনের ধরন।

বৈধ মান include এবং exclude

যদি UserCountries type include হিসাবে সেট করা হয়, তাহলে প্রচারটি তালিকাভুক্ত দেশগুলির ব্যবহারকারীদের জন্য প্রযোজ্য।

UserCountries type exclude দিলে, তালিকাভুক্ত দেশের বাইরের ব্যবহারকারীদের জন্য প্রচার প্রযোজ্য।

যদি UserCountries type সেট করা না থাকে, তাহলে এটিকে include হিসেবে বিবেচনা করা হয় এবং তালিকাভুক্ত দেশগুলির ব্যবহারকারীদের জন্য প্রচারটি প্রয়োগ করা হয়।

Promotions / HotelPromotions / Promotion / UserCountries / Country 1..300 Country এমন একটি দেশকে সংজ্ঞায়িত করে যেখানে ব্যবহারকারীরা প্রচারের জন্য যোগ্য৷
Promotions / HotelPromotions / Promotion / UserCountries / Country / @code 1 string একটি CLDR দেশের কোড , যেমন DE বা FR । মনে রাখবেন, কিছু দেশের জন্য, CLDR দেশের কোড 2-অক্ষরের ISO দেশের কোডের মতো নয়। এছাড়াও, CLDR অঞ্চল কোড সমর্থিত নয়।

উদাহরণ

মৌলিক বার্তা

নিম্নলিখিত উদাহরণ একটি মৌলিক Promotions বার্তা দেখায়:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingDates>
         <DateRange start="2020-07-01" end="2020-07-31" days_of_week="MTWHF"/>
         <DateRange start="2020-09-01" end="2020-09-30"/>
      </BookingDates>
      <BookingWindow min="7" max="330"/>
      <CheckinDates>
         <DateRange start="2020-10-01" end="2020-10-31" days_of_week="FSU"/>
      </CheckinDates>
      <CheckoutDates>
         <DateRange start="2020-10-08" end="2020-11-07" days_of_week="FSU"/>
      </CheckoutDates>
      <Devices>
        <Device type="mobile"/>
        <Device type="tablet"/>
      </Devices>
      <Discount percentage="20" applied_nights="2"/>
      <LengthOfStay min="2" max="14"/>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <Stacking type="base"/>
      <UserCountries>
        <Country code="US"/>
        <Country code="GB"/>
      </UserCountries>
    </Promotion>
  </HotelPromotions>
</Promotions>


ইনভেন্টরি শর্ত

আগমনের তারিখের কাছাকাছি অতিরিক্ত ইনভেন্টরি থাকলে কীভাবে ডিসকাউন্ট তৈরি করতে হয় তা নিম্নলিখিত উদাহরণটি দেখায়:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingWindow max="7"/>
      <Discount percentage="10"/>
      <InventoryCount min="3"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


একটি প্রচার মুছুন

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

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1" action="delete"/>
  </HotelPromotions>
</Promotions>

সমস্ত প্রচার মুছুন

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

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1" action="overlay"/>
</Promotions>



সমস্ত প্রচার ওভারলে

The following example shows how to overlay <HotelPromotions> for a property with one or more new promotions. When action="overlay" , all stored promotions are deleted prior to storing the promotions specified in the current message:

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1" action="overlay">
    <Promotion id="1">
      <BookingDates>
         <DateRange start="2020-09-01" end="2020-09-30"/>
      </BookingDates>
      <Discount percentage="10"/>
      <RoomTypes>
         <RoomType id="123"/>
         <RoomType id="456"/>
      </RoomTypes>
      <RatePlans>
         <RatePlan id="234"/>
         <RatePlan id="567"/>
      </RatePlans>
      <Stacking type="base"/>
    </Promotion>
  </HotelPromotions>
</Promotions>

3 Different Stacking Types

The following example shows a case where three different promotions would be applied ( base , second , any ). Note that the none promotion wouldn't be applied since the other promotions provide a better discount. If the original price was $100, the discounted price would be $72.90.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <Discount percentage="10"/>
      <Stacking type="base"/>
    </Promotion>
    <Promotion id="2">
      <Discount percentage="10"/>
      <Stacking type="second"/>
    </Promotion>
    <Promotion id="3">
      <Discount percentage="10"/>
      <Stacking type="any"/>
    </Promotion>
    <Promotion id="4">
      <Discount percentage="25"/>
      <Stacking type="none"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


None Stacking Type

The following example shows a case where the none promotion is used because the combination of other promotions provides a smaller discount. If the original price was $100, the discounted price would be $75.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <Discount percentage="10"/>
      <Stacking type="base"/>
    </Promotion>
    <Promotion id="2">
      <Discount percentage="10"/>
      <Stacking type="any"/>
    </Promotion>
    <Promotion id="3">
      <Discount percentage="25"/>
      <Stacking type="none"/>
    </Promotion>
  </HotelPromotions>
</Promotions>



Booking Window Duration Bounds

The following example shows a case where the BookingWindow element is used with its start and end bounds defined as an ISO 8601 Duration type. This booking window restriction requires booking on or before 18:00 the day prior to arrival, and on or after 12:00 on the 2nd day before arrival.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingWindow min="P1DT6H" max="P2DT12H"/>
      <Discount percentage="20"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


Booking Dates DateTime Bounds

The following example shows a case where the BookingDates element is used with start and end attributes as DateTime types. This booking date restriction requires booking to occur between 06:30 on 2020-07-01 and 18:45 on 2020-07-02.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingDates>
         <DateRange start="2020-07-01T06:30:00" end="2020-07-02T18:45:00"/>
      </BookingDates>
      <Discount percentage="20"/>
    </Promotion>
  </HotelPromotions>
</Promotions>


Yearless date ranges

The following example shows a case where the CheckInDates element contains DateRanges that have start and end fields without years. In this example, the promotion applies to check-in dates between 12/29 and 1/2, regardless of the year. Yearless date ranges that cross the new-year boundary are invalid, so the DateRange is expressed as two adjacent date ranges.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <CheckInDates>
         <DateRange start="12-29" end="12-31"/>
         <DateRange start="01-01" end="01-02"/>
      </CheckInDates>
      <Discount percentage="20"/>
    </Promotion>
  </HotelPromotions>
</Promotions>



FreeNights discount

The following example discounts two nights 50% for each four nights stayed for the specified range of booking dates. For a ten night itinerary, a total of four nights would be discounted 50%.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <BookingDates>
        <DateRange start="2022-01-01" end="2022-05-31"/>
      </BookingDates>
      <Discount>
        <FreeNights stay_nights="4" discount_nights="2" discount_percentage="50" night_selection="cheapest" repeats="true"/>
      </Discount>
    </Promotion>
  </HotelPromotions>
</Promotions>

The next example discounts one night 50% for each three nights stayed for the specified ranges of stay dates. Only the overlapping nights of stay count towards qualifying for the discount. For the following itinerary with check-in on 2022-01-01 and check-out on 2022-01-07, the qualified nights of stay and discounts are applied as follows.

  • 2022-01-01 (stay)
  • 2022-01-02 (stay)
  • 2022-01-03
  • 2022-01-04 (discounted)
  • 2022-01-05 (stay)
  • 2022-01-06 (stay)
<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <StayDates application="overlap">
        <DateRange start="2022-01-01" end="2022-01-02"/>
        <DateRange start="2022-01-04" end="2022-01-06"/>
      </StayDates>
      <Discount>
        <FreeNights stay_nights="3" discount_nights="1" discount_percentage="50" night_selection="last" repeats="true"/>
      </Discount>
    </Promotion>
  </HotelPromotions>
</Promotions>


Ranked Selection

The following example offers two discounts, one for 20% off and another for 15% off. During evaluation, only the 15% discount is applied because it has a lower rank.

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
  <HotelPromotions hotel_id="Property_1">
    <Promotion id="1">
      <Discount percentage="15" rank="25"/>
    </Promotion>
    <Promotion id="2">
      <Discount percentage="20" rank="50"/>
    </Promotion>
  </HotelPromotions>
</Promotions>

BestDailyDiscount

The following example discounts a two night stay by applying BestDailyDiscount stacked with a Discount .

<?xml version="1.0" encoding="UTF-8"?>
<Promotions partner="account_xyz"
            id="123_abc"
            timestamp="2020-05-18T16:20:00-04:00">
 <HotelPromotions hotel_id="HotelID" action="overlay">
   <Promotion id="general">
     <BestDailyDiscount fixed_amount="20"/>
   </Promotion>
   <Promotion id="may">
     <BestDailyDiscount fixed_amount="50"/>
     <StayDates application="overlap">
        <DateRange start="2023-05-01" end="2023-05-31"/>
     </StayDates>
   </Promotion>
   <Promotion id="fiesta">
     <Discount fixed_amount_per_night="5"/>
     <Stacking type="any"/>
   </Promotion>
 </HotelPromotions>
</Promotions>

Consider a two night stay from April 30, 2023 to May 2, 2023 For calculation, the combination of best daily discounts that yields the deepest discount is found first.

For the first night, the "general" promotion is the only eligible amount with a fixed discount of 20.

For the second night, the "may" promotion offers a deeper discount than the "general" discount. So, when "may" is selected the fixed discount amount is 50.

Then for the stay, the "fiesta" promotion discounts to 5 per night, or 10 total. It can be stacked with the combination of best daily discounts because "fiesta" has stacking type set to any . If it were set to base , then only the combination of best daily discounts or the "fiesta" discount is applied. See description of Stacking for more information.

`Overall, the price of the stay receives a 20 + 50 + 10 = 80 fixed amount discount.

Responses

Syntax

The PromotionsResponse message uses the following syntax:

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

Elements and Attributes

The PromotionsResponse message has the following elements and attributes:

Element / @Attribute Occurrences টাইপ বর্ণনা
PromotionsResponse 1 Complex element The root element indicating the success or issues for a received Promotions request message.
PromotionsResponse / @timestamp 1 DateTime The creation date and time of this message.
PromotionsResponse / @id 1 string The unique identifier from the associated Promotions message.
PromotionsResponse / @partner 1 string The partner account for this message.
PromotionsResponse / Success 0..1 Success Indicates that the Promotions message was processed successfully without warnings, errors, or failures.

Either <Success> or <Issues> is present in each message.

PromotionsResponse / Issues 0..1 Issues A container for one or more issues encountered while processing the Promotions message.

Either <Success> or <Issues> is present in each message.

PromotionsResponse / Issues / Issue 1..n Issue The description of a warning, error, or failure encountered while processing the Promotions message. Details on these issues can be found in Feed Status Error Messages .
PromotionsResponse / Issues / Issue / @code 1 integer The identifier for the issue.
PromotionsResponse / Issues / Issue / @status 1 enum

The type of issue encountered.

Valid values are warning , error , and failure .

উদাহরণ

Success

The following is a response to a successfully processed Promotions message.

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

Issues

The following is a response to a Promotions message not processed due to errors.

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