প্রচার

সংক্ষিপ্ত বিবরণ

এই 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, percentage_of_base, 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" percentage_of_base="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>

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

প্রোমোশন মেসেজটিতে নিম্নলিখিত উপাদান এবং অ্যাট্রিবিউটগুলো রয়েছে:

এলিমেন্ট / @অ্যাট্রিবিউট ঘটনা প্রকার বর্ণনা
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> নির্দিষ্ট করা না থাকে, তাহলে প্রপার্টিটির সমস্ত প্রমোশন মুছে ফেলা হয়।

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

Promotions / HotelPromotions / Promotion / @id 1 string প্রচারের জন্য একটি অনন্য শনাক্তকারী। সর্বাধিক ৪০টি অক্ষর ব্যবহার করা যাবে। অনুমোদিত অক্ষরগুলো হলো az, AZ, ০-৯, _ (আন্ডারস্কোর), - (ড্যাশ), এবং . (পিরিয়ড)।
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 চেক-ইন তারিখের সাপেক্ষে বুকিং অবশ্যই যে সময়সীমার মধ্যে করতে হবে তা নির্দিষ্ট করে (প্রপার্টির টাইম জোন অনুযায়ী)। উদাহরণস্বরূপ, চেক-ইন-এর কমপক্ষে ৭ দিন আগে থেকে শুরু করে ১৮০ দিনের বেশি নয়, এমন একটি সময়সীমার মধ্যে বুকিং করা যেতে পারে।
Promotions / HotelPromotions / Promotion / BookingWindow / @min 0..1 integer or duration প্রোমোশনটি প্রযোজ্য হওয়ার জন্য বুকিং করার সময় চেক-ইন-এর কমপক্ষে একটি নির্দিষ্ট সময় আগে তা সম্পন্ন করতে হবে। যদি এটি নির্দিষ্ট করা না থাকে, অথবা এর মান 0 হয়, তাহলে কোনো ন্যূনতম সময়সীমা নেই।

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

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

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

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

প্রোমোশন প্রয়োগের পর কোনো রেটের সর্বোচ্চ যে মান নির্ধারণ করা যাবে, তার ওপর বিধিনিষেধ আরোপ করে।

প্রোমোশনে অবশ্যই একটি <Discount> বা একটি <BestDailyDiscount> উল্লেখ করতে হবে, তাই এমন একটি প্রোমোশন তৈরি করতে যা শুধুমাত্র একটি <Ceiling> প্রয়োগ করে, একটি উপায় হলো <Discount> এর percentage 0 নির্ধারণ করা।

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

উদাহরণ:

এক রাত থাকার মূল্য যেখানে AmountBeforeTax ১০০ এবং সাথে দুটি প্রোমোশন রয়েছে:

  1. base স্ট্যাকিং টাইপের প্রমোশন, যার fixed_amount ২৫ এবং প্রতি রাতের amount_per_night ৬০।
  2. second স্ট্যাকিং টাইপের প্রমোশন, fixed_amount ২৫, এবং প্রতি রাতের সর্বোচ্চ amount_per_night ৯০।

গণনার ক্রমটি হলো:

  1. প্রথমে base ছাড়টি প্রয়োগ করা হয় এবং এটি AmountBeforeTax ৭৫-এ ছাড় দেয়, কিন্তু তারপর সর্বোচ্চ সীমা এটিকে আরও কমিয়ে ৬০- এ নামিয়ে আনে।
  2. second প্রমোশনে AmountBeforeTax ৬০ থেকে কমে ৩৫ হয়। এটি সর্বোচ্চ সীমা ৯০-এর নিচে হওয়ায় দ্বিতীয় সর্বোচ্চ সীমাটি প্রযোজ্য হয় না। চূড়ান্ত হার হলো ৩৫

৬০ যে একটি কঠোরতর সামগ্রিক সর্বোচ্চ সীমা, সেই বিষয়টি অপ্রাসঙ্গিক, কারণ এটি শুধুমাত্র নিজস্ব পদোন্নতির ক্ষেত্রেই প্রযোজ্য, এবং এমন কোনো একক সর্বোচ্চ সীমা থাকতে পারে না যা সমগ্র পদোন্নতির স্তর জুড়ে বিস্তৃত হবে।

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

ছাড় প্রয়োগ করার পর প্রতি রাতের ভাড়ার সর্বোচ্চ পরিমাণ।

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

amount_per_night তখনই কর এবং ফি-এর উপর প্রযোজ্য হয়, যখন সেগুলি AmountAfterTax ব্যবহার করে প্রতি রাতের ভাড়ার মধ্যে অন্তর্ভুক্ত করা হয়, কিন্তু TaxFeeInfo ব্যবহার করে নির্দিষ্ট করা কর ও ফি-এর ক্ষেত্রে নয়।

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

প্রোমোশন প্রয়োগের পর কোনো রেটের সর্বনিম্ন যে মান নির্ধারণ করা যাবে, তার ওপর বিধিনিষেধ আরোপ করে।

প্রোমোশনে অবশ্যই একটি <Discount> বা একটি <BestDailyDiscount> উল্লেখ করতে হবে, তাই এমন একটি প্রোমোশন তৈরি করতে যা শুধুমাত্র একটি <Floor> এর ক্ষেত্রে প্রযোজ্য, একটি উপায় হলো <Discount> এর percentage 0 নির্ধারণ করা।

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

If stacking is configured, then multiple promotions with <Floor> could apply to a single stay. Each promotion would apply its discount, immediately followed by its floor. The following example demonstrates how each floor contributes to the next promotion calculation in the stack.

উদাহরণ:

এক রাত থাকার মূল্য যেখানে AmountBeforeTax ১০০ এবং সাথে দুটি প্রোমোশন রয়েছে:

  1. base স্ট্যাকিং টাইপ, ২৫-এর একটি fixed_amount এবং প্রতি রাতের সর্বনিম্ন amount_per_night ৯০ সহ প্রমোশন।
  2. second স্ট্যাকিং টাইপের প্রমোশন, fixed_amount ২৫, এবং প্রতি রাতের সর্বনিম্ন amount_per_night ৬০।

গণনার ক্রমটি হলো:

  1. প্রথমে base প্রোমোশনটি প্রয়োগ করা হয় এবং এটি AmountBeforeTax কমিয়ে ৭৫ করে, কিন্তু তারপর ফ্লোরটি এটিকে বাড়িয়ে ৯০ পর্যন্ত নিয়ে যায়।
  2. second প্রমোশনে AmountBeforeTax ৯০ থেকে কমে ৬৫ হয়। এটি সর্বনিম্ন সীমা ৬০-এর উপরে হওয়ায় দ্বিতীয় সর্বোচ্চ সীমা প্রযোজ্য হয় না। চূড়ান্ত হার হলো ৬৫

৯০ যে সামগ্রিকভাবে একটি কঠোরতর সর্বনিম্ন সীমা, সেই বিষয়টি অপ্রাসঙ্গিক, কারণ এটি শুধুমাত্র নিজের পদোন্নতির জন্যই বৈধ, এবং এমন কোনো একক সর্বনিম্ন সীমা থাকতে পারে না যা সম্পূর্ণ পদোন্নতির স্তর জুড়ে প্রযোজ্য।

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

ছাড় প্রয়োগ করার পর প্রতি রাতের ভাড়ার সর্বনিম্ন যে পরিমাণ নির্ধারণ করা যেতে পারে।

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

amount_per_night তখনই কর এবং ফি-এর উপর প্রযোজ্য হয়, যখন সেগুলি AmountAfterTax ব্যবহার করে প্রতি রাতের ভাড়ার মধ্যে অন্তর্ভুক্ত করা হয়, কিন্তু TaxFeeInfo ব্যবহার করে নির্দিষ্ট করা কর ও ফি-এর ক্ষেত্রে নয়।

Promotions / HotelPromotions / Promotion / CheckinDates 0..1 CheckinDates এক বা একাধিক তারিখের পরিসরের জন্য একটি ধারক, যা নির্ধারণ করে দেয় যে প্রমোশনটি প্রযোজ্য হওয়ার জন্য কখন চেক-ইন করতে হবে।
Promotions / HotelPromotions / Promotion / CheckinDates / DateRange 1..20 DateRange

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

YearlessDate ফরম্যাটটিও সমর্থিত।

  • যদি 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 The ending date (based on the property's time zone), inclusive, of the date range. This date must be the same as, or after, the start date. If end isn't specified, the date range is effectively unlimited in terms of an end date.
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

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

YearlessDate ফরম্যাটটিও সমর্থিত।

  • If one of start or end is a yearless date, both must be populated as yearless dates.
  • বছরবিহীন তারিখের পরিসর নতুন বছরে ফিরে আসবে না। এর পরিবর্তে, পরিসরটিকে দুটি সংলগ্ন তারিখের পরিসর হিসাবে উপস্থাপন করুন। উদাহরণস্বরূপ, {"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 , percentage_of_base , fixed_amount , fixed_amount_per_night , fixed_price , অথবা fixed_price_per_night - এইগুলোর মধ্যে ঠিক যেকোনো একটি আবশ্যক।

০-১০০ এর মধ্যে একটি দশমিক মান যা শতকরা ছাড় নির্দিষ্ট করে। এটি AmountAfterTax উপর প্রয়োগ করা হয় (অথবা AmountBeforeTax নির্দিষ্ট করা না থাকলে AmountAfterTax এর উপর)।

উদাহরণ:

  • যদি AmountAfterTax ১০০ এবং percentage ২০ হয়, তাহলে

    প্রচারমূলক হার = AmountAfterTax * (১ - ছাড়ের শতাংশ)

    ৮০.০০ = ১০০ * (১ - ০.২)

  • যদি AmountBeforeTax ১০০ হয়, percentage ২০ হয় এবং TaxFeeInfo-তে কর ১০ নির্দিষ্ট করা থাকে, তাহলে

    প্রচারমূলক হার = AmountBeforeTax * (১ - শতাংশ ছাড়) + কর

    ৯০.০০ = ১০০ * (১ - ০.২) + ১০

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

percentage , percentage_of_base , fixed_amount , fixed_amount_per_night , fixed_price , অথবা fixed_price_per_night - এইগুলোর মধ্যে ঠিক যেকোনো একটি আবশ্যক।

০-১০০ এর মধ্যে একটি দশমিক মান যা মূল ছাড়ের শতাংশ নির্দিষ্ট করে। percentage মতোই, এটি AmountAfterTax উপর প্রয়োগ করা হয় (অথবা AmountBeforeTax নির্দিষ্ট করা না থাকলে AmountAfterTax এর উপর)।

percentage বিপরীতে, এই ছাড়টি ক্রমানুসারে প্রয়োগ করা পূর্ববর্তী প্রচারমূলক অফার নির্বিশেষে সর্বদা মূল দামের শতাংশ হিসাবে গণনা করা হয়।

উদাহরণ:

  • ধরা যাক, ১০০ মূল্যের এক রাত থাকার উপর পর্যায়ক্রমে দুটি প্রোমোশন প্রয়োগ করা হয়। প্রথমটি হলো একটি সাধারণ ১০% ছাড় এবং দ্বিতীয়টি হলো মূল মূল্যের উপর ১০% ছাড়। তাহলে ছাড়ের পর মূল্য হবে ৮০, কারণ উভয় প্রোমোশনেই ১০ করে ছাড় দেওয়া হচ্ছে। উল্লেখ্য, যদি দ্বিতীয় প্রোমোশনটিও একটি সাধারণ শতাংশ ছাড় হতো, তাহলে ছাড়ের পর মূল্য হতো ৮১, কারণ দ্বিতীয় প্রোমোশনটি ৯০-এর উপর ১০% ছাড় দিচ্ছে।
Promotions / HotelPromotions / Promotion / Discount / @fixed_amount 0..1 float

percentage , percentage_of_base , fixed_amount , fixed_amount_per_night , fixed_price , অথবা fixed_price_per_night - এইগুলোর মধ্যে ঠিক যেকোনো একটি আবশ্যক।

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

উদাহরণ:

  • যদি আমরা এক রাতের থাকার মূল্য নির্ধারণ করি যেখানে AmountBeforeTax ৯০, AmountAfterTax ১০০, এবং fixed_amount ২০ হয়, তাহলে

    প্রচারমূলক হার = AmountAfterTax - নির্দিষ্ট ছাড়

    ৮০.০০ = ১০০ - ২০

  • যদি আমরা এক রাতের থাকার মূল্য নির্ধারণ করি যেখানে AmountBeforeTax ১০০, fixed_amount ২০, এবং TaxFeeInfo ৮% কর নির্দিষ্ট করে, তাহলে

    প্রচারমূলক হার = ( AmountBeforeTax - নির্দিষ্ট ছাড়) * (১ + করের শতাংশ)

    ৮৬.৪০ = (১০০ - ২০) * ১.০৮

  • যদি আমরা এক রাতের থাকার মূল্য নির্ধারণ করি যেখানে AmountBeforeTax ৫০, fixed_amount ৬০, এবং TaxFeeInfo-তে কর ১০ নির্দিষ্ট করা থাকে, তাহলে

    প্রচারমূলক হার = ( AmountBeforeTax - নির্দিষ্ট ছাড়) * কর

    ১০.০০ = ০ + ১০

  • যদি আমরা ৩-রাতের থাকার মূল্য নির্ধারণ করি যেখানে AmountAfterTax মানগুলো হলো ১০০, ১১০, এবং ১২০; এবং fixed_amount হলো ১৫০, তাহলে

    প্রচারমূলক হার = কর AmountAfterTax - (নির্দিষ্ট ছাড়)

    ১৮০.০০ = (১০০ + ১১০ + ১২০) - ১৫০

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

percentage , percentage_of_base , fixed_amount , fixed_amount_per_night , fixed_price , অথবা fixed_price_per_night - এইগুলোর মধ্যে ঠিক যেকোনো একটি আবশ্যক।

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

উদাহরণ:

  • যদি আমরা ৩-রাতের থাকার মূল্য নির্ধারণ করি যেখানে AmountAfterTax মানগুলো হলো ১০০, ১১০, এবং ১২০; এবং fixed_amount_per_night হলো ১০, তাহলে

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

    ৩০০.০০ = ((১০০ - ১০) + (১১০ - ১০) + (১২০ - ১০))

  • যদি আমরা ৩-রাতের থাকার মূল্য নির্ধারণ করি যেখানে AmountAfterTax মানগুলো হলো ১০, ৫০, এবং ১০০; এবং fixed_amount_per_night হলো ২০, তাহলে

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

    ১১০.০০ = (০ + (৫০ - ২০) + (১০০ - ২০))

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

percentage , percentage_of_base , fixed_amount , fixed_amount_per_night , fixed_price , অথবা fixed_price_per_night - এইগুলোর মধ্যে ঠিক যেকোনো একটি আবশ্যক।

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

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

উদাহরণ:

  • যদি আমরা এক রাতের থাকার মূল্য নির্ধারণ করি যেখানে AmountBeforeTax ৯০, AmountAfterTax ১০০ এবং fixed_price ৮০ হয়, তাহলে প্রচারমূলক হার হবে ৮০।
  • যদি আমরা এক রাতের থাকার মূল্য নির্ধারণ করি যেখানে AmountBeforeTax ১০০, fixed_amount ৮০, এবং TaxFeeInfo ৮% কর নির্দিষ্ট করে, তাহলে

    প্রচারমূলক হার = নির্ধারিত মূল্য * (১ + শতাংশ কর)

    ৮৬.৪০ = ৮০ * ১.০৮

  • যদি আমরা ৩-রাতের থাকার মূল্য নির্ধারণ করি যেখানে AmountAfterTax মানগুলো হলো ১০০, ১১০, এবং ১২০; এবং fixed_amount হলো ৩০০, তাহলে

    পদোন্নতির হার = ৩০০

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

percentage , percentage_of_base , fixed_amount , fixed_amount_per_night , fixed_price , অথবা fixed_price_per_night - এইগুলোর মধ্যে ঠিক যেকোনো একটি আবশ্যক।

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

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

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

উদাহরণ:

  • যদি আমরা ২-রাতের থাকার মূল্য নির্ধারণ করি যেখানে কর-পূর্ববর্তী পরিমাণ AmountBeforeTax ৯০, ৯০; কর-পরবর্তী পরিমাণ AmountAfterTax ১০০, ১০০; এবং fixed_price ৮০ হয়, তাহলে প্রচারমূলক হার হবে ৮০ + ৮০ = ১৬০।
  • যদি আমরা ২-রাতের থাকার মূল্য নির্ধারণ করি যেখানে AmountBeforeTax পরিমাণ) ১০০, fixed_amount ) ৮০, এবং TaxFeeInfo (ট্যাক্স ফি তথ্য)-তে ৮% ট্যাক্স উল্লেখ করা থাকে, তাহলে প্রচারমূলক হার হবে (৮০ + ৮০) * ১.০৮ = ১৭২.৮।
  • If we're pricing a 3-night stay where the AmountAfterTax values are 100, 110, and 120; and fixed_amount is 110, then the promotion rate is 110 * 3 = 330.
Promotions / HotelPromotions / Promotion / Discount / @applied_nights 0..1 integer

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

সবচেয়ে কম খরচের রাত থেকে শুরু করে, যতগুলো রাতের উপর ছাড়টি প্রযোজ্য হবে। সংখ্যাটি অবশ্যই ১ থেকে ৯৯-এর মধ্যে একটি পূর্ণসংখ্যা হতে হবে। নির্দিষ্ট করে না দিলে, ছাড়টি সব রাতের উপর প্রযোজ্য হবে।

Promotions / HotelPromotions / Promotion / Discount / FreeNights 0..1 FreeNights ন্যূনতম থাকার সময়সীমা পূরণ হলে, থাকার নির্দিষ্ট কিছু রাতের জন্য ছাড় নির্দিষ্ট করে। এই এলিমেন্টটি ব্যবহৃত হলে, প্যারেন্ট Discount এলিমেন্টে অ্যাট্রিবিউট ব্যবহারের অনুমতি নেই।
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @stay_nights 1 integer

ছাড় পাওয়ার জন্য প্রয়োজনীয় রাতের সংখ্যা। প্রতিটি ছাড় থাকার রাতের একটি পৃথক অংশের জন্য প্রযোজ্য।

উদাহরণস্বরূপ, ১০ রাতের একটি থাকার ক্ষেত্রে যেখানে stay_nights মান ৪ (এবং repeats এর মান true), সেখানে দুটি থাকার রাতের অংশ থাকে: প্রথম থেকে চতুর্থ রাত এবং পঞ্চম থেকে অষ্টম রাত; নবম ও দশম রাত কোনো থাকার রাতের অংশের অন্তর্ভুক্ত নয়।

Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_nights 1 integer থাকার রাত্রিকালের প্রতিটি বিভাগের মধ্যে ছাড়কৃত রাত্রির সংখ্যা।
Promotions / HotelPromotions / Promotion / Discount / FreeNights / @discount_percentage 1 float ডিসকাউন্ট নাইটগুলোর উপর যে ছাড়টি প্রযোজ্য। যদি এই মান 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 মান ৪ হয় এবং ভ্রমণসূচীটি ১০ রাতের হয়, তাহলে, যদি repeats true হয়, তবে ২টি সেগমেন্ট (রাত ১-৪ এবং রাত ৫-৮) ডিসকাউন্ট করা হবে; কিন্তু, যদি repeats false হয়, তবে শুধুমাত্র ১টি সেগমেন্ট (রাত ১-৪) ডিসকাউন্ট করা হবে।

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

Discount অথবা BestDailyDiscount এর মধ্যে ঠিক যেকোনো একটি অবশ্যই উল্লেখ করতে হবে।

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

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

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

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

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

percentage , fixed_amount বা fixed_price - এই তিনটির মধ্যে ঠিক একটি আবশ্যক।

০-১০০ এর মধ্যে একটি দশমিক মান যা শতকরা ছাড় নির্দিষ্ট করে। এটি AmountAfterTax উপর প্রয়োগ করা হয় (অথবা AmountBeforeTax নির্দিষ্ট করা না থাকলে AmountAfterTax এর উপর)।

উদাহরণ:

  • যদি এক রাত থাকার জন্য AmountAfterTax ১০০ হয় এবং percentage ২০ হয়, তাহলে

    প্রচারমূলক হার = AmountAfterTax * (১ - ছাড়ের শতাংশ)

    ৮০.০০ = ১০০ * (১ - ০.২)

  • যদি কোনো থাকার রাতের জন্য AmountBeforeTax ১০০ হয়, percentage ২০ হয় এবং কর-ফি তথ্য (TaxFeeInfo) ১০ কর নির্দিষ্ট করে, তাহলে

    প্রচারমূলক হার = AmountBeforeTax * (১ - শতাংশ ছাড়) + কর

    ৯০.০০ = ১০০ * (১ - ০.২) + ১০

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

percentage , fixed_amount বা fixed_price - এই তিনটির মধ্যে ঠিক একটি আবশ্যক।

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

উদাহরণ:

  • যদি এক রাতের জন্য AmountBeforeTax ৯০, AmountAfterTax ১০০ এবং fixed_amount ২০ হয়, তাহলে

    প্রচারমূলক হার = AmountAfterTax - নির্দিষ্ট ছাড়

    ৮০.০০ = ১০০ - ২০

  • যদি এক রাতের জন্য AmountBeforeTax ১০০ হয়, fixed_amount ২০ হয়, এবং TaxFeeInfo-তে ৮% কর নির্দিষ্ট করা থাকে, তাহলে

    প্রচারমূলক হার = ( AmountBeforeTax - নির্দিষ্ট ছাড়) * (১ + করের শতাংশ)

    ৮৬.৪০ = (১০০ - ২০) * ১.০৮

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

percentage , fixed_amount বা fixed_price - এই তিনটির মধ্যে ঠিক একটি আবশ্যক।

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

উদাহরণ:

  • If AmountBeforeTax for a single night is 90, AmountAfterTax is 100, and fixed_price is 80, then the promotion rate is 80.
  • যদি এক রাতের জন্য AmountBeforeTax ১০০, fixed_amount ৮০ হয়, এবং TaxFeeInfo-তে ৮% কর নির্দিষ্ট করা থাকে, তাহলে

    প্রচারমূলক হার = নির্ধারিত মূল্য * (১ + শতাংশ কর)

    ৮৬.৪০ = ৮০ * ১.০৮

Promotions / HotelPromotions / Promotion / InventoryCount 0..1 InventoryCount Defines restrictions on the number of rooms that must be available in order for this promotion to be applied. Discount is applied only to the nights which meet the constraint. Not allowed with the fixed_amount discount. Note that the number of available rooms is specified with either OTA_HotelInvCountNotifRQ ( InvCount ) or 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 মেসেজগুলিতে নির্ধারিত থাকে এবং প্যাকেজআইডি (PackageID) দ্বারা চিহ্নিত হয়।
Promotions / HotelPromotions / Promotion / RatePlans / RatePlan / @id 1 string রেট প্ল্যানের জন্য অনন্য শনাক্তকারী। এই মানটি একটি ট্রানজ্যাকশন (প্রপার্টি ডেটা) মেসেজের <PackageData> এর PackageID মানের সাথে, এবং <OTA_HotelRateAmountNotifRQ><OTA_HotelAvailNotifRQ> উভয় মেসেজের <StatusApplicationControl> এর RatePlanCode অ্যাট্রিবিউটের সাথে ম্যাপ করা হয়। অনুমোদিত অক্ষরের সর্বোচ্চ সংখ্যা হলো ৫০।
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> এর সাথে ম্যাপ করা হয়। অনুমোদিত সর্বোচ্চ অক্ষর সংখ্যা হলো ৫০।
Promotions / HotelPromotions / Promotion / Stacking 0..1 Stacking পদোন্নতিগুলো কীভাবে একত্রিত করা যাবে তা নির্দিষ্ট করে। যদি নির্দিষ্ট করা না থাকে, তাহলে 'type'-কে base হিসেবে ধরে নেওয়া হয়।
Promotions / HotelPromotions / Promotion / Stacking / @type 1 enum

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

  • any : অন্য যেকোনো প্রমোশনের সাথে একত্রিত করা যেতে পারে ( none ছাড়া), কিন্তু প্রমোশনগুলো কোন ক্রমে প্রয়োগ করা হবে তার কোনো নিশ্চয়তা নেই।
  • base : অন্যান্য প্রমোশনের আগে, সেরা যোগ্য base প্রমোশনটি নির্বাচন করে প্রথমে প্রয়োগ করা হয়। পূর্বে এর নাম ছিল base_only
  • second : সেরা যোগ্য second প্রমোশনটি base প্রমোশনের পরে (যদি প্রযোজ্য হয়) এবং any প্রমোশনের আগে নির্বাচন ও প্রয়োগ করা হয়।
  • 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 উল্লেখ করা এবং application overlap তে সেট করা একটি অবৈধ সংমিশ্রণ।
  • <FreeNights> application সকল মান সমর্থন করে। উল্লেখ্য যে, overlap ক্ষেত্রে, ছাড়ের শর্ত পূরণের জন্য শুধুমাত্র ওভারল্যাপিং রাত্রিগুলোই বিবেচনা করা হবে।
Promotions / HotelPromotions / Promotion / StayDates / DateRange 1..99 DateRange

একটি তারিখের পরিসর, যা নির্দিষ্ট করে দেয় কখন থেকে প্রচারটি প্রযোজ্য হবে।

YearlessDate ফরম্যাটটিও সমর্থিত।

  • যদি start বা end কোনো একটি তারিখ বছরবিহীন হয়, তবে উভয়কেই বছরবিহীন তারিখ হিসেবে পূরণ করতে হবে।
  • বছরবিহীন তারিখের পরিসর নতুন বছরে ফিরে আসবে না। এর পরিবর্তে, পরিসরটিকে দুটি সংলগ্ন তারিখের পরিসর হিসাবে উপস্থাপন করুন। উদাহরণস্বরূপ, {"12-29", "01-05"} কে {"12-29", "12-31"} এবং {"01-01", "01-05"} হিসাবে উপস্থাপন করা যেতে পারে।

আপনি যদি সপ্তাহের নির্দিষ্ট কিছু দিনে প্রমোশনটি চালু রাখার জন্য StayDates একটি পরিসর নির্ধারণ করতে চান, তাহলে start তারিখ হিসেবে বর্তমান তারিখটি সেট করুন এবং এর কোনো end রাখবেন না, যাতে প্রমোশনটির মেয়াদ শেষ না হয়ে যায়।

Promotions / HotelPromotions / Promotion / StayDates / DateRange / @start 0..1 Date or YearlessDate তারিখের পরিসরের শুরুর তারিখ (সম্পত্তির টাইম জোন অনুসারে), যা অন্তর্ভুক্ত থাকবে। এই তারিখটি অবশ্যই শেষের তারিখের আগে বা end তারিখের সমান হতে হবে। যদি start নির্দিষ্ট না করা হয়, তবে শুরুর তারিখের ক্ষেত্রে তারিখের পরিসরটি কার্যত সীমাহীন।

end মান প্রদান করা না থাকলে আপনাকে start মান নির্দিষ্ট করতে হবে।

Promotions / HotelPromotions / Promotion / StayDates / DateRange / @end 0..1 Date or YearlessDate তারিখের পরিসরের শেষ তারিখ (সম্পত্তির সময় অঞ্চল অনুসারে), যা অন্তর্ভুক্ত থাকবে। এই তারিখটি অবশ্যই start তারিখের সমান বা তার পরের হতে হবে। যদি end নির্দিষ্ট না করা হয়, তবে start তারিখ থেকে তারিখের পরিসরটি কার্যত সীমাহীন হয়ে যায়।

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 Container for listing the user locations (countries) that are eligible for the promotion. If specified, only eligible users in the listed countries are offered the discounted rate. If not specified, eligible users in any country are offered the discounted rate.
Promotions / HotelPromotions / Promotion / UserCountries / @type 0..1 enum The type of UserCountries specification.

Valid values are include and exclude .

If the UserCountries type is set as include , the promotion applies to users from the listed countries.

If the UserCountries type is exclude , the promotion applies to users from outside the listed countries.

If the UserCountries type is unset, it is treated as include and the promotion is applied to users from the listed countries.

Promotions / HotelPromotions / Promotion / UserCountries / Country 1..300 Country Defines one country where users are eligible for the promotion.
Promotions / HotelPromotions / Promotion / UserCountries / Country / @code 1 string A CLDR country code , such as DE or FR . Note that, for some countries, the CLDR country code isn't the same as the 2-letter ISO country code. Also, CLDR region codes are not supported.

উদাহরণ

There is a limit of 500 promotions per property. Refer to "Delete one promotion" example to remove promotions from a property.

Basic message

The following example shows a basic Promotions 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">
    <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>


Inventory condition

The following example shows how to create a discount if there is excess inventory close to the arrival date:

<?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>


Delete one promotion

The following example shows how to delete one promotion for a property:

<?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>

Delete all promotions

The following example shows how to delete all promotions for a property:

<?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>



Overlay all 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.

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

সিনট্যাক্স

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>

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

The PromotionsResponse message has the following elements and attributes:

এলিমেন্ট / @অ্যাট্রিবিউট ঘটনা প্রকার বর্ণনা
PromotionsResponse 1 Complex element The root element indicating the success or issues for a received Promotions request message.
PromotionsResponse / @timestamp 1 DateTime এই বার্তাটি তৈরির তারিখ ও সময়।
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 .

উদাহরণ

সাফল্য

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>

সমস্যা

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>