> 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-tour.md).

# By Tour

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

The **Rental by Tour** type prices bookings **per person per guest type** (e.g. Adult, Child, Infant). It is fundamentally different from Day/Hour/Hotel types where you pay per unit of time. Tour pricing is determined by guest count and group size discounts, with optional date-specific overrides.

{% hint style="info" icon="lightbulb-exclamation" %}
Guest types (Adult, Child, Infant, etc.) are defined globally in **BRW Settings → Guest Options**. The guest types configured there appear as price fields throughout the Tour pricing tabs.
{% endhint %}

| Aspect             | Rental by Day                    | Rental by Tour                                |
| ------------------ | -------------------------------- | --------------------------------------------- |
| Pricing unit       | Per day                          | Per person (per guest type)                   |
| Duration types     | Free date range                  | 4 models: Fixed, Timeslots, Period, Flexible  |
| Group discounts    | Global Discount (GD) by duration | Discount by No. of guests (group size)        |
| Seasonal overrides | Special time (ST)                | Specific Time Period (date range + timeslots) |
| Inventory control  | Inventory (car\_count)           | Max Guests per timeslot                       |
| Locations          | ✓                                | — Not available                               |

## 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: Tour

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

## 3: Pricing Settings

### 3.1 Duration & Base Prices <a class="button primary">tour-duration</a>- Priority 3 — Base

Choose the tour's duration model and set the base prices per guest type. These prices are used when no Group Discount or Specific Time Period applies.

**Duration Type** (`duration_type`) — choose one:

**Multiple-day (`fixed`)** — A fixed multi-day tour (e.g. 5-day trek). Duration is predetermined; customer picks a start date.

**One-day** **(`timeslots`)** — A single-day tour with departure timeslots. Customer picks a date and a departure slot.

**Specific Date Ranges (`period`)** — Pre-defined departure windows (date ranges), each with their own timeslots and per-person prices.

**Flexible (`flexible`)** — Customer chooses date and departure timeslot from available options configured in the product.

| Field                     | Meta key             | Description                                                                             |
| ------------------------- | -------------------- | --------------------------------------------------------------------------------------- |
| Base price                | `base_price`         | The "from" price shown on listing/detail pages. Used as a reference display price.      |
| Adult price               | `adult_price`        | Per-person price for the Adult guest type. Adjust label to match your guest type names. |
| Child price               | `child_price`        | Per-person price for the Child guest type.                                              |
| \[Other guest type] price | `{guest_name}_price` | Additional guest type prices follow the same pattern.                                   |

{% hint style="info" icon="lightbulb-exclamation" %}
The **Base price** field is for display only (shown as the starting "from" price). The actual booking calculation uses the per-guest-type prices multiplied by guest counts.
{% endhint %}

### 3.2 Guest Min / Max <a class="button primary">tour-guests</a>

Set the minimum and maximum number of guests allowed per booking for each guest type. This controls booking form validation and availability.

| Field             | Meta key           | Description                                                                 |
| ----------------- | ------------------ | --------------------------------------------------------------------------- |
| Min Adults        | `min_adult`        | Minimum number of Adults required per booking. (Uses your guest type name.) |
| Max Adults        | `max_adult`        | Maximum number of Adults allowed per booking.                               |
| Min \[guest type] | `min_{guest_name}` | Minimum count for each additional guest type.                               |
| Max \[guest type] | `max_{guest_name}` | Maximum count for each additional guest type.                               |

### 3.3 Group Discounts <a class="button primary">tour-discounts</a> - Priority 2

Define group-size tiers with discounted per-person prices. When the total guest count matches a tier, those discounted prices apply instead of the base prices.

**Discount Based on** (`discount_applicable`):

**Total Adults** **(`only`)** — Tier is triggered by the number of *Adult* guests only. Child/Infant counts are ignored for tier matching.

**Total Guests (`all`)** — Tier is triggered by the total count of *all* guest types combined.\
\
**Discount Table:**

| Column               | Meta key                        | Description                                          |
| -------------------- | ------------------------------- | ---------------------------------------------------- |
| From (No. of guests) | `discount_from[]`               | Minimum guest count to enter this discount tier.     |
| To (No. of guests)   | `discount_to[]`                 | Maximum guest count for this tier.                   |
| Adult price          | `discount_adult_price[]`        | Discounted per-person price for Adults in this tier. |
| \[guest type] price  | `discount_{guest_name}_price[]` | Discounted price for each additional guest type.     |

{% hint style="danger" %}
Group Discounts are overridden by Specific Time Period prices. If a booking date falls within a Specific Time Period, those prices apply regardless of group size (unless the Specific Time Period also has its own discounts).
{% endhint %}

### 3.4 Specific Time Period <a class="button primary">tour-specific-time</a> - Priority 1 — Highest

Define date ranges with their own departure timeslots and per-person prices. When a booking date falls within a Specific Time Period, these prices completely replace the base prices and group discounts.

| Field               | Meta key                        | Description                                                                |
| ------------------- | ------------------------------- | -------------------------------------------------------------------------- |
| From date           | `specific_from[]`               | Start of the date range for this specific period.                          |
| To date             | `specific_to[]`                 | End of the date range for this specific period.                            |
| Timeslot label      | `specific_label[]`              | Name for the departure time within this period (e.g. "Morning Departure"). |
| Timeslot start      | `specific_start[]`              | Departure time start (time input).                                         |
| Timeslot end        | `specific_end[]`                | Departure time end (time input).                                           |
| Max guests          | `specific_max_guests[]`         | Maximum total guests allowed for this timeslot.                            |
| Adult price         | `specific_adult_price[]`        | Per-person price for Adults during this period.                            |
| \[guest type] price | `specific_{guest_name}_price[]` | Per-person price for each additional guest type.                           |

{% hint style="info" icon="bell" %}
Multiple date ranges can be defined. Each range can have multiple timeslots. The system matches the booking date against all defined periods and applies the first matching period's prices.
{% endhint %}

### 3.5 🏆 Pricing Priority

When multiple pricing rules apply to a booking date, BRW uses the following priority order (highest wins):

<a class="button primary">Specific Time Period</a> > <a class="button primary">Group Discounts</a> > <a class="button primary">Duration (Base prices)</a>

{% hint style="info" %}
**Final price calculation:** Total = Σ (guest\_count × price\_per\_guest\_type) for all guest types. For example: 3 Adults × $200 + 1 Child × $120 = $720.
{% endhint %}

{% hint style="success" icon="square-check" %}
**Example:** A mountain trek with base Adult $200. Group discount tier: 10+ guests → $160. Christmas period (Dec 20–Jan 5): $280/Adult. A group of 12 booking in January pays $280 × 12 = $3,360 (Specific Time Period overrides Group Discount).
{% endhint %}

## 4: Shared Fields

The following fields are shared across multiple rental types and are documented on the **Shared Fields** page to avoid repetition.&#x20;

Tour type does **not** have Locations or Location surcharge.

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>Round-trip</strong></td><td><em>Toggle + extra fee</em></td><td data-object-fit="contain"><a href="/files/Cdx8hnVoPefS5C4MAJ2Q">/files/Cdx8hnVoPefS5C4MAJ2Q</a></td><td><a href="/pages/5we2hwAvj3QZ1sgzCGNu">/pages/5we2hwAvj3QZ1sgzCGNu</a></td></tr><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)
