> For the complete documentation index, see [llms.txt](https://ovatheme.gitbook.io/brw/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ovatheme.gitbook.io/brw/create-a-product/rental-type-config/by-hotel.md).

# By Hotel

<figure><img src="/files/kxLxIskq6kp8uNCIN7re" alt=""><figcaption></figcaption></figure>

The **Rental by Hotel** type calculates cost based on the number of nights between the check-in date and check-out date. Unlike Rental by Day, this type uses **date-only pickers** (no time component), has no pickup/dropoff location routing, and counts duration in nights rather than days.

{% hint style="info" icon="lightbulb-exclamation" %}
Use this type for accommodation products: hotel rooms, villas, B\&Bs, holiday homes. For vehicle or equipment rentals with daily rates, use **Rental by Day**.
{% endhint %}

| Aspect                   | Rental by Day                  | Rental by Hotel            |
| ------------------------ | ------------------------------ | -------------------------- |
| Base price field         | Regular price / Day            | Price / Night              |
| Unit label               | Day                            | Night                      |
| Date picker              | Datetime (date + time)         | Date only (no time)        |
| Weekly pricing plan      | Per-weekday prices             | Per-weekday nightly prices |
| GD duration unit         | Day(s)                         | Night(s)                   |
| ST price column          | Price/Day (`rt_price[]`)       | Price/Night (`rt_price[]`) |
| ST date picker           | Datetime                       | Date only                  |
| Pickup/dropoff locations | ✓                              | — Not available            |
| Round-trip               | ✓                              | — Not available            |
| Booking conditions       | Min/max days, preparation days | Min/max nights             |

## 1: Quick Start

{% stepper %}
{% step %}

### Add General fields

Read in [overview](/brw/create-a-product/overview.md)
{% endstep %}

{% step %}

### [Choose Rental Type](#id-2-choose-rental-type)

{% endstep %}

{% step %}

### [Pricing Settings](#id-3-pricing-settings)

{% endstep %}

{% step %}

### [Shared Fields](#id-4-shared-fields)

The following fields are shared across multiple rental types.
{% endstep %}

{% step %}

### [Common Fields](#id-5-common-fields)

The following fields are shared across all rental types.&#x20;
{% endstep %}

{% step %}

### [Customize Fields in Product Editing](#id-6-customize-fields-in-product-editing)

You can add/remove fields in product editing.
{% endstep %}

{% step %}

### Publish

Set a WooCommerce Regular Price for display purposes, then click **Publish**. The actual booking price is always calculated by BRW settings.
{% endstep %}
{% endstepper %}

## 2: Choose Rental Type

* Step 1: Add new product
* Step 2: Setup&#x20;
  * Product data: Rental
  * Rental Type: Hotel

<figure><img src="/files/g0Gh9rsP50Cx0XFKujH1" alt=""><figcaption></figcaption></figure>

## 3: Pricing Settings

### 3.1 Price / Night<a class="button primary">regular\_price\_hotel</a>

The base rate charged per night. This is the only **required** pricing field. All other pricing rules override or discount this value.

| Field         | Description                                                                        |
| ------------- | ---------------------------------------------------------------------------------- |
| Price / Night | Standard nightly rate (e.g. `100.00`). Applied when no other pricing rule matches. |

### 3.2 Nightly pricing plan<a class="button primary">daily-price</a>

Override the base nightly rate for specific days of the week. Useful for weekend surcharges (e.g. higher Friday/Saturday rates) or midweek discounts.

| Day             | Description                                                                                                                                          |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| Monday – Sunday | Custom price per night for that weekday. Leave blank to use the base **Price / Night**. Meta key: `daily_price[{day}]` (e.g. `daily_price[monday]`). |

{% hint style="danger" %}
**Priority:** Nightly pricing plan overrides the base Price / Night, but is itself overridden by Special time (ST) when an ST period is active.
{% endhint %}

### 3.3 Global discount (GD)<a class="button primary">discounts</a>

Apply a discounted nightly rate when the stay length falls within a defined range. Perfect for long-stay discounts (e.g. 7+ nights at a lower rate).

| Column        | Meta key                             | Description                                        |
| ------------- | ------------------------------------ | -------------------------------------------------- |
| Price / Night | `global_discount_price[]`            | Discounted rate per night for this tier.           |
| From (number) | `global_discount_duration_val_min[]` | Minimum number of nights to trigger this discount. |
| To (number)   | `global_discount_duration_val_max[]` | Maximum number of nights for this discount tier.   |
| Duration      | `global_discount_duration_type[]`    | Fixed to **Night(s)** for Rental by Hotel.         |

{% hint style="danger" %}
GD is **not applied** during Special time (ST) periods. ST uses its own DST (Discount in Special Time) instead.
{% endhint %}

### 3.4 Special time (ST)<a class="button primary">special-times</a>

Define date ranges with a custom nightly rate. When a booking overlaps a special period, the ST price is used instead of the base price or nightly pricing plan.

{% hint style="danger" %}
**Hotel difference:** Both Start Date and End Date use a **date-only picker** (no time component), unlike Rental by Day which uses datetime pickers.
{% endhint %}

| Column              | Meta key                          | Description                                                               |
| ------------------- | --------------------------------- | ------------------------------------------------------------------------- |
| Price / Night       | `rt_price[]`                      | Special nightly rate during this period.                                  |
| Start Date          | `rt_startdate[]`                  | First date the special rate becomes active (date-only).                   |
| End Date            | `rt_enddate[]`                    | Last date the special rate is active (date-only).                         |
| DST – Price / Night | `rt_discount[i][price][]`         | Discounted nightly rate during the ST window for qualifying stay lengths. |
| DST – From (nights) | `rt_discount[i][min][]`           | Minimum nights to trigger DST.                                            |
| DST – To (nights)   | `rt_discount[i][max][]`           | Maximum nights for DST tier.                                              |
| DST – Duration      | `rt_discount[i][duration_type][]` | Fixed to **Night(s)**.                                                    |

{% hint style="info" icon="bell" %}
**Note:** ST does *not* use Global Discount (GD). It uses its own DST (Discount in Special Time) instead. Always fill in DST if you want duration discounts during seasonal periods.
{% endhint %}

### 3.5 🏆Pricing Priority

When multiple pricing rules apply to the same stay, BRW uses the following priority (highest wins):

<a class="button primary">Special time (ST) + DST</a> > <a class="button primary">Global discount (GD)</a> > <a class="button primary">Nightly pricing plan</a> > <a class="button primary">Price / Night</a>&#x20;

{% hint style="success" icon="square-check" %}
**Example:** A Christmas stay (Dec 24 – Jan 2) with ST = $180/night overrides both the weekend nightly plan and GD weekly discount. All 9 nights are charged at $180.
{% endhint %}

## 4: Shared Fields

The following fields are shared across multiple rental types and are documented on the **Shared Fields** page to avoid repetition. Note that Hotel type does **not** have Locations, Location surcharge, Pick-up/Drop-off location, or Round-trip fields. Click any card to go directly to that section.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Guests options</strong></td><td><em>show/hide guest</em></td><td data-object-fit="contain"><a href="/files/pUrvaxIOVMndrA110lNm">/files/pUrvaxIOVMndrA110lNm</a></td><td><a href="/pages/cfkdHXKLMvGjuCQYgb6X">/pages/cfkdHXKLMvGjuCQYgb6X</a></td></tr><tr><td><strong>Guests fields</strong></td><td><em>Form fields + min/max</em></td><td data-object-fit="contain"><a href="/files/LIgxm2xMIr5RpWbiiIza">/files/LIgxm2xMIr5RpWbiiIza</a></td><td><a href="/pages/0SZ4g1xj4G8OqWD7Pkl4">/pages/0SZ4g1xj4G8OqWD7Pkl4</a></td></tr><tr><td><strong>Pick-up date</strong></td><td><em>Time slots, label, defautls</em></td><td data-object-fit="contain"><a href="/files/EfKepudwm942CZujRdPN">/files/EfKepudwm942CZujRdPN</a></td><td><a href="/pages/R9BCAAY0ZePEoQ0S2Oyd">/pages/R9BCAAY0ZePEoQ0S2Oyd</a></td></tr><tr><td><strong>Drop-off date</strong></td><td><em>Show/rename on booking form</em></td><td data-object-fit="contain"><a href="/files/sJup7bwcHJog6g4DpS6r">/files/sJup7bwcHJog6g4DpS6r</a></td><td><a href="/pages/mJPOpCi9StgB7sXpXFXA">/pages/mJPOpCi9StgB7sXpXFXA</a></td></tr><tr><td><strong>Booking Conditions</strong></td><td><em>Min/max days, preparation, advance</em></td><td data-object-fit="contain"><a href="/files/RP6bC5CznDEnDTAZplUU">/files/RP6bC5CznDEnDTAZplUU</a></td><td><a href="/pages/j3PSoiHi0c2ZmunW3JtQ">/pages/j3PSoiHi0c2ZmunW3JtQ</a></td></tr></tbody></table>

## 5: Common Fields

These fields are shared across all rental types and documented on a dedicated reference page. Click any card to go directly to that section.

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td><strong>Availability</strong></td><td><em>Allowed dates, disabled dates, iCal</em></td><td><a href="/pages/se2SdKU1oGq12QOILLtJ">/pages/se2SdKU1oGq12QOILLtJ</a></td><td><a href="/files/sJup7bwcHJog6g4DpS6r">/files/sJup7bwcHJog6g4DpS6r</a></td></tr><tr><td><strong>Services &#x26; Resources</strong></td><td><em>Add-on pricing with /Day or /Order</em></td><td><a href="/pages/wDir5HOVkeGp8zrl58u1">/pages/wDir5HOVkeGp8zrl58u1</a></td><td data-object-fit="contain"><a href="/files/foB7SCXWfrz6YIBMxKEN">/files/foB7SCXWfrz6YIBMxKEN</a></td></tr><tr><td><strong>Deposit</strong></td><td><em>Fixed or percentage upfront payment</em></td><td><a href="/pages/unYXdPY2dLE1s9Ft0ZfC">/pages/unYXdPY2dLE1s9Ft0ZfC</a></td><td data-object-fit="contain"><a href="/files/M3Dd2NBocdXTDiMua10L">/files/M3Dd2NBocdXTDiMua10L</a></td></tr><tr><td><strong>Insurance</strong></td><td><em>Fixed fee added to every booking</em></td><td><a href="/pages/LxEaPJ5y15dPC7sHj2YB">/pages/LxEaPJ5y15dPC7sHj2YB</a></td><td data-object-fit="contain"><a href="/files/3SoE1Zpurcy3jQB8XDL0">/files/3SoE1Zpurcy3jQB8XDL0</a></td></tr><tr><td><strong>Inventory &#x26; Quantity</strong></td><td><em>Stock count, named vehicles</em></td><td><a href="/pages/RISVNcmzpxhDDvDCRwuJ">/pages/RISVNcmzpxhDDvDCRwuJ</a></td><td data-object-fit="contain"><a href="/files/SibMoPJmOEVt0RnSNZdP">/files/SibMoPJmOEVt0RnSNZdP</a></td></tr><tr><td><strong>Booking Form</strong></td><td><em>Custom checkout fields</em></td><td><a href="/pages/JVKPwpDA7CcnfWhAmlSV">/pages/JVKPwpDA7CcnfWhAmlSV</a></td><td data-object-fit="contain"><a href="/files/RIYx8VUjC3GavvqtQWo0">/files/RIYx8VUjC3GavvqtQWo0</a></td></tr><tr><td><strong>Map / Place</strong></td><td><em>Maps pin on product page</em></td><td><a href="/pages/V9Fs957iBL1hyL5oKwnD">/pages/V9Fs957iBL1hyL5oKwnD</a></td><td data-object-fit="contain"><a href="/files/TrfIY2OrNMClVGIwauDK">/files/TrfIY2OrNMClVGIwauDK</a></td></tr><tr><td><strong>Display &#x26; Layout</strong></td><td><em>Price format, template, extra tab</em></td><td><a href="/pages/kCaBW7VaB4tTWpA56rBc">/pages/kCaBW7VaB4tTWpA56rBc</a></td><td data-object-fit="contain"><a href="/files/0r8vbxkjli9ZBQqmj1xV">/files/0r8vbxkjli9ZBQqmj1xV</a></td></tr><tr><td><strong>Product Content</strong></td><td><em>Specifications, features list</em></td><td><a href="/pages/jlHZjKdIAPVSXDvqNIPw">/pages/jlHZjKdIAPVSXDvqNIPw</a></td><td data-object-fit="contain"><a href="/files/P4Z9VNYwCaf9JiUfuyyS">/files/P4Z9VNYwCaf9JiUfuyyS</a></td></tr></tbody></table>

## 6: Customize Fields in Product Editing

When you create a product and want to remove unnecessary fields, you can follow these steps in [Customize - Rental Type](/brw/customize-rental-type.md)
