ইতিবাচক ভোট

এক নজরে

এই 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 এই মেসেজের জন্য পার্টনার অ্যাকাউন্ট। এই স্ট্রিং ভ্যালু হল "পার্টনার কী" ভ্যালু যা Hotel Center-এর অ্যাকাউন্ট সেটিংস পৃষ্ঠায় তালিকাভুক্ত করা আছে।

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

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

কোনও প্রপার্টির জন্য প্রোমোশন। প্রতিটি প্রোমোশন একটি প্রপার্টির ক্ষেত্রে প্রযোজ্য।

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

Promotions / HotelPromotions / @hotel_id 1 string প্রপার্টির জন্য অনন্য শনাক্তকারী। এই ভ্যালু অবশ্যই হোটেল তালিকা ফিডে <listing> এলিমেন্টের <id> ব্যবহার করে নির্দিষ্ট করা হোটেল আইডির সাথে ম্যাচ করতে হবে। হোটেল আইডি Hotel Center-এও তালিকাভুক্ত করা আছে।
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 প্রোমোশনের জন্য অনন্য শনাক্তকারী। সর্বাধিক ৪০টি অক্ষর ব্যবহার করা যাবে। অনুমোদিত অক্ষরগুলি হল a-z, A-Z, 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 চেক-ইন করার তারিখের (প্রপার্টির টাইম জোন অনুযায়ী) সাপেক্ষে বুকিং করার সময়সীমা উল্লেখ করে। যেমন, চেক-ইন করার অন্তত ৭ দিন আগে থেকে বুকিং উইন্ডো সেট করা যেতে পারে, তবে ১৮০ দিনের বেশি আগে নয়।
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>-এর ক্ষেত্রে প্রযোজ্য, একটি বিকল্প হল 0-এর percentage সহ <Discount> সেট করা।

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

উদাহরণ:

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

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

এখানে গণনার ক্রম দেওয়া হল:

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

৬০ যে আরও কঠোর সামগ্রিক সীমা তা অপ্রাসঙ্গিক কারণ এটি শুধুমাত্র নিজস্ব প্রোমোশনের জন্য প্রযোজ্য এবং সম্পূর্ণ প্রোমোশন স্ট্যাক জুড়ে কোনও একক সীমা থাকতে পারে না।

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> সেট করা।

<FreeNights> ছাড়ের ক্ষেত্রে এখনও <Floor> লজিক প্রযোজ্য হয়, এমনকি ফ্রি রাতের ক্ষেত্রে 100% ছাড় প্রযোজ্য হলেও।

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

উদাহরণ:

১-রাত থাকার জন্য দাম যেখানে 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 অ্যাট্রিবিউটের সমান বা তার চেয়ে কম ভ্যালুতে সেট করতে হবে।

AmountAfterTax ব্যবহার করে প্রতি রাতের রেটে ট্যাক্স ও ফি অন্তর্ভুক্ত করা হলে, সেগুলির ক্ষেত্রে amount_per_night প্রযোজ্য হয়, তবে 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 তারিখের রেঞ্জের শেষ তারিখ (প্রপার্টির টাইম জোনের উপর ভিত্তি করে), ইনক্লুসিভ। এই তারিখটি অবশ্যই 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

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

YearlessDate ফর্ম্যাটও কাজ করে।

  • 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, percentage_of_base, fixed_amount, fixed_amount_per_night, fixed_price, অথবা fixed_price_per_night-এর মধ্যে যেকোনও একটি প্রয়োজন।

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

উদাহরণ:

  • 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 হল ১৫০, তাহলে

    প্রোমোশন রেট = sum(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-এর প্রতিটির ক্ষেত্রে একটি নির্দিষ্ট ছাড় প্রযোজ্য রাতের ভাড়া (অথবা সবচেয়ে সস্তা N যদি applied_nights নির্দিষ্ট করা থাকে)। AmountAfterTax উল্লেখ করা না থাকলে, এটি AmountBeforeTax-এ প্রয়োগ করা হয়। এটি ধরে নেওয়া হয় যে এটি প্রতি রাতের ভাড়ার মতো একই মুদ্রায় হবে। যদি fixed_amount_per_night প্রতি রাতের রেটের চেয়ে বেশি হয়, তাহলে প্রতি রাতের রেট কমিয়ে শূন্য করে দেওয়া হয়—ছাড়ের কারণে প্রতি রাতের রেট নেগেটিভ হতে পারে না।

উদাহরণ:

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

    প্রোমোশন রেট = sum(AmountBeforeTax - নির্দিষ্ট পরিমাণ ছাড়)

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

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

    প্রোমোশন রেট = sum(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 ৮% ট্যাক্স নির্দিষ্ট করে, তাহলে প্রোমোশন রেট হল (৮০ + ৮০) * ১.০৮ = ১৭২.৮।
  • আমরা যদি ৩-রাতের থাকার দাম নির্ধারণ করি যেখানে AmountAfterTax-এর মান হল ১০০, ১১০ এবং ১২০; এবং fixed_amount হল ১১০, তাহলে প্রোমোশন রেট হল ১১০ * ৩ = ৩৩০।
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 সত্য হয়), তাহলে থাকার জন্য দুটি নাইট সেগমেন্ট আছে: ১ম থেকে ৪র্থ রাত এবং ৫ম থেকে ৮ম রাত; ৯ম এবং ১০ম রাত থাকার জন্য নাইট সেগমেন্টের অংশ নয়।

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-এর বিপরীত, যা সম্পূর্ণ থাকার উপর ছাড় প্রয়োগ করে।

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

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

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

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

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

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

উদাহরণ:

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

    প্রোমোশন রেট = AmountAfterTax * (১ - শতাংশ ছাড়)

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

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

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

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

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

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

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

উদাহরণ:

  • যদি এক রাতের জন্য 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 উল্লেখ করা থাকুক বা না থাকুক, এটি থাকার জন্য ট্যাক্স-পূর্ব দামকে নির্দিষ্ট ভ্যালুতে সেট করে। এটি ধরে নেওয়া হয় যে এটি প্রতি রাতের ভাড়ার মতো একই মুদ্রায় হবে।

উদাহরণ:

  • যদি এক রাতের জন্য AmountBeforeTax ৯০, AmountAfterTax ১০০ এবং fixed_price ৮০ হয়, তাহলে প্রোমোশন রেট ৮০ হবে।
  • যদি এক রাতের জন্য AmountBeforeTax ১০০ হয়, fixed_amount ৮০ হয় এবং TaxFeeInfo-তে ৮% ট্যাক্স উল্লেখ করা থাকে, তাহলে

    প্রোমোশন রেট = ফিক্সড দাম * (১ + শতাংশ ট্যাক্স)

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

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 মেসেজে উল্লেখ করা থাকে এবং 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> ভ্যালু ব্যবহার করে রেফার করা হয়। (OTA_HotelRateAmountNotifRQ মেসেজে InvTypeCode অ্যাট্রিবিউট দ্বারা <RoomID> ভ্যালুও রেফারেন্স করা হয়।)
Promotions / HotelPromotions / Promotion / RoomTypes / RoomType / @id 1 string ইনভেনটরির (রুমের ধরন) জন্য অনন্য শনাক্তকারী। এই ভ্যালু, একটি ট্রানজ্যাকশন (প্রপার্টি ডেটা) মেসেজে <RoomID>-এর সাথে ম্যাপ করে। সর্বাধিক ৫০টি অক্ষর লেখা যাবে।
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 উল্লেখ করা হয়েছে এবং 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 প্রোমোশনের জন্য উপযুক্ত ব্যবহারকারীর লোকেশন (দেশ) তালিকাভুক্ত করার কন্টেনার। নির্দিষ্ট করা থাকলে, তালিকায় থাকা দেশের উপযুক্ত ব্যবহারকারীদেরই ডিসকাউন্ট পাওয়া দাম অফার করা হয়। উল্লেখ করা না থাকলে, যেকোনও দেশের উপযুক্ত ব্যবহারকারীদের ডিসকাউন্ট পাওয়া দাম অফার করা হয়।
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 দেশের কোড ২-অক্ষরের 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>



সব প্রচার ওভারলে করুন

নিচের উদাহরণে দেখানো হয়েছে যে এক বা একাধিক নতুন প্রচার সহ কোনও প্রপার্টির জন্য কীভাবে <HotelPromotions> ওভারলে করতে হয়। action="overlay" হলে, বর্তমান মেসেজে উল্লেখ করা প্রোমোশন স্টোর করার আগে, স্টোর করা সব প্রোমোশন মুছে ফেলা হয়:

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

৩টি বিভিন্ন স্ট্যাকিংয়ের ধরন

নিচের উদাহরণে এমন একটি কেস দেখানো হয়েছে যেখানে তিনটি আলাদা প্রোমোশন প্রযোজ্য হবে (base, second, any)। মনে রাখবেন যে none প্রোমোশনটি প্রযোজ্য হবে না কারণ অন্যান্য প্রোমোশন আরও ভাল ছাড় প্রদান করে। আসল দাম $১০০ হলে, ছাড় দেওয়া দাম হবে $৭২.৯০।

<?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 প্রোমোশন ব্যবহার করা হয়েছে কারণ অন্যান্য প্রোমোশনের কম্বিনেশন কম ছাড় দেয়। আসল দাম $১০০ হলে, ছাড়ের পরে দাম হবে $৭৫।

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



বুকিং উইন্ডোর সময়সীমা

নিচের উদাহরণে এমন একটি কেস দেখানো হয়েছে যেখানে BookingWindow এলিমেন্টটি ISO 8601 সময়সীমা টাইপ হিসেবে সংজ্ঞায়িত শুরু ও শেষ হওয়ার সীমার সাথে ব্যবহার করা হয়েছে। এই বুকিং উইন্ডো সংক্রান্ত বিধিনিষেধের জন্য পৌঁছানোর আগের দিন সন্ধ্যা ৬:০০টার সময় বা তার আগে এবং পৌঁছানোর ২ দিন আগে দুপুর ১২:০০টার সময় বা তার পরে বুকিং করতে হবে।

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


বুকিংয়ের তারিখ DateTime বাউন্ড

নিচের উদাহরণে এমন একটি কেস দেখানো হয়েছে যেখানে BookingDates এলিমেন্ট start ও end অ্যাট্রিবিউটের সাথে DateTime টাইপ হিসেবে ব্যবহার করা হয়েছে। এই বুকিংয়ের তারিখ সংক্রান্ত বিধিনিষেধ অনুযায়ী বুকিং করতে হবে ০৬:৩০, ০১-০৭-২০২০ থেকে ১৮:৪৫, ০২-০৭-২০২০-এর মধ্যে।

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


বছর ছাড়া তারিখের রেঞ্জ

নিচের উদাহরণে এমন একটি কেস দেখানো হয়েছে যেখানে CheckInDates এলিমেন্টে DateRanges আছে, যার মধ্যে start এবং end ফিল্ড আছে, কিন্তু বছর নেই। এই উদাহরণে, বছর যাই হোক না কেন, ১২/২৯ থেকে ১/২ তারিখের মধ্যে চেক-ইন করার তারিখের ক্ষেত্রে প্রোমোশন প্রযোজ্য। নতুন বছরের সীমানা অতিক্রম করে এমন বছরহীন তারিখের ব্যাপ্তি অবৈধ, তাই DateRange দুটি সংলগ্ন তারিখের ব্যাপ্তি হিসাবে প্রকাশ করা হয়।

<?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 ডিসকাউন্ট

নিম্নলিখিত উদাহরণে, বুকিংয়ের তারিখের নির্দিষ্ট রেঞ্জের জন্য প্রতি চার রাত থাকার জন্য দুই রাতের জন্য ৫০% ছাড় দেওয়া হয়েছে। দশ রাতের ভ্রমণসূচীর জন্য, মোট চার রাতের জন্য ৫০% ছাড় দেওয়া হবে।

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

পরবর্তী উদাহরণে, নির্দিষ্ট তারিখের রেঞ্জে প্রতি তিন রাত থাকার জন্য এক রাতের ভাড়ায় ৫০% ছাড় দেওয়া হয়েছে। ছাড়ের জন্য উপযুক্ত হতে শুধুমাত্র ওভারল্যাপ করা রাতের সংখ্যাই গণনা করা হয়। নিম্নলিখিত ভ্রমণসূচীর জন্য, যেখানে চেক-ইন ২০২২-০১-০১ তারিখে এবং চেক-আউট ২০২২-০১-০৭ তারিখে, সেখানে উপযুক্ত থাকার রাত এবং ছাড় নিম্নলিখিতভাবে প্রযোজ্য হবে।

  • ২০২২-০১-০১ (থাকার জায়গা)
  • ২০২২-০১-০২ (থাকার জায়গা)
  • 2022-01-03
  • ২০২২-০১-০৪ (ছাড়যুক্ত)
  • ২০২২-০১-০৫ (থাকার জায়গা)
  • ২০২২-০১-০৬ (থাকার জায়গা)
<?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>


র‍্যাঙ্ক করা সিলেকশন

নিম্নলিখিত উদাহরণে দুটি ছাড় অফার করা হয়েছে, একটি ২০% ছাড় এবং অন্যটি ১৫% ছাড়। মূল্যায়নের সময়, শুধুমাত্র ১৫% ছাড় প্রয়োগ করা হয়েছে কারণ এটির র‍্যাঙ্ক কম।

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

নিচের উদাহরণে দুই রাত থাকার জন্য BestDailyDiscount-এর সাথে 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>

৩০ এপ্রিল, ২০২৩ থেকে ২ মে, ২০২৩ পর্যন্ত দুই রাত থাকার কথা বিবেচনা করুন হিসাব করার জন্য, সেরা দৈনিক ডিসকাউন্টের কম্বিনেশন যা সবচেয়ে বেশি ডিসকাউন্ট দেয় তা প্রথমে খুঁজে বের করা হয়।

প্রথম রাতের জন্য, "সাধারণ" প্রোমোশন হল একমাত্র উপযুক্ত পরিমাণ যার সাথে ২০-এর একটি নির্দিষ্ট ছাড় রয়েছে।

দ্বিতীয় রাতের জন্য, "মে" প্রোমোশন "সাধারণ" ডিসকাউন্টের চেয়ে বেশি ডিসকাউন্ট অফার করে। তাই, "মে" বেছে নেওয়া হলে, নির্দিষ্ট ছাড়ের পরিমাণ হল ৫০।

তারপর থাকার জন্য, "উৎসব" প্রোমোশন প্রতি রাতে ৫ বা মোট ১০ ছাড় দেয়। এটি সেরা দৈনিক ডিসকাউন্টের কম্বিনেশনের সাথে স্ট্যাক করা যেতে পারে কারণ "fiesta"-এর স্ট্যাকিং টাইপ any-এ সেট করা আছে। এটি base-এ সেট করা থাকলে, সেরা দৈনিক ছাড়ের কম্বিনেশন অথবা "fiesta" ছাড়ের মধ্যে যেটি বেশি সেটিই শুধু প্রযোজ্য হবে। আরও তথ্যের জন্য Stacking-এর বিবরণ দেখুন।

`সামগ্রিকভাবে, থাকার মূল্যের উপর ২০ + ৫০ + ১০ = ৮০ নির্দিষ্ট পরিমাণ ছাড় পাওয়া যায়।

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

সিন্ট্যাক্স

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

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

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

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

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

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

PromotionsResponse / Issues 0..1 Issues প্রোমোশন মেসেজ প্রসেস করার সময় এক বা একাধিক সমস্যার জন্য কন্টেনার।

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

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

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

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

উদাহরণ

সফল হয়েছে

প্রোমোশন মেসেজ প্রসেস করার পরে এই উত্তর দেওয়া হয়েছে।

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

সমস্যা

নিম্নলিখিতটি হল একটি প্রচারমূলক মেসেজের উত্তর যা সমস্যার কারণে প্রসেস করা হয়নি।

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