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

# By Mixed

<figure><img src="/files/2D8DGaMid4U1ofoBkhK9" alt=""><figcaption></figcaption></figure>

The **Rental by Mixed** type combines day and hour pricing into a single product. The plugin automatically selects which rate to apply:

{% columns %}
{% column %}
**🌙 Multi-day booking**

Pick-up and drop-off fall on **different calendar days** → billed by **day rate** (Regular price / Day, Daily pricing plan, GD Day tiers)
{% endcolumn %}

{% column %}
**⏱️ Same-day booking**

Pick-up and drop-off are on the **same calendar day** → billed by **hour rate** (Regular price / Hour, GD Hour tiers)
{% endcolumn %}
{% endcolumns %}

{% hint style="info" icon="lightbulb-exclamation" %}
Use Mixed when your product can be rented for a few hours or multiple days with different rate structures for each. For day-only rentals use **Rental by Day**; for hour-only rentals use **Rental by Hour**.
{% endhint %}

| Aspect                 | By Day                  | By Hour                     | By Mixed                        |
| ---------------------- | ----------------------- | --------------------------- | ------------------------------- |
| Base price fields      | Price/Day only          | Price/Hour only             | Both Price/Day *and* Price/Hour |
| Daily pricing plan     | ✓                       | —                           | ✓ (applies to day bookings)     |
| GD duration unit       | Day(s)                  | Hour(s)                     | Day(s) *or* Hour(s) per row     |
| GD price column header | Price/Day               | Price/Hour                  | Price (no unit suffix)          |
| ST price columns       | Price/Day               | Price/Hour                  | Price/Day **and** Price/Hour    |
| ST date picker         | Datetime                | Datetime                    | Datetime                        |
| Locations / Round-trip | ✓                       | ✓                           | ✓                               |
| Booking conditions     | Min/max days, prep days | Min/max hours, prep minutes | Min/max hours, prep minutes     |

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

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

## 3: Pricing Settings

### 3.1 Regular price / Day <a class="button primary">regular\_price\_day</a>

Base rate applied for **multi-day bookings** (pick-up and drop-off on different calendar days). This is the fallback daily rate when no other rule matches.

| Field               | Description                                                                                                                       |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| Regular price / Day | Standard daily rate (e.g. `60.00`). Applied to each day of a multi-day booking when no Daily pricing plan or GD Day tier matches. |

### 3.2 Regular price / Hour <a class="button primary">regul\_price\_hour</a>

Base rate applied for **same-day bookings** (pick-up and drop-off on the same calendar day). The booking duration in hours is multiplied by this rate.

| Field                | Description                                                                                         |
| -------------------- | --------------------------------------------------------------------------------------------------- |
| Regular price / Hour | Standard hourly rate (e.g. `15.00`). Applied per hour when no GD Hour tier or Special time matches. |

### 3.3 Daily pricing plan <a class="button primary">daily-price</a>

Override the base **daily** rate for specific days of the week. Only applies to **multi-day bookings**. Same-day (hourly) bookings do not use the Daily pricing plan.

| Day             | Description                                                                                                    |
| --------------- | -------------------------------------------------------------------------------------------------------------- |
| Monday – Sunday | Custom price per day for that weekday. Leave blank to use Regular price / Day. Meta key: `daily_price[{day}]`. |

{% hint style="danger" %}
Daily pricing plan is **not used** for same-day hourly bookings. It only affects the per-day rate when the booking spans multiple calendar days.
{% endhint %}

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

Volume-based discounts for both day and hour bookings. Each row targets either day-mode or hour-mode bookings by setting its **Duration** unit. A single product can have mixed rows — some for Day(s), others for Hour(s).

| Column        | Meta key                             | Description                                                                                                                      |
| ------------- | ------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------- |
| Price         | `global_discount_price[]`            | The discounted rate for this tier. No unit suffix in the header — the duration type determines whether it's per-day or per-hour. |
| From (number) | `global_discount_duration_val_min[]` | Minimum number of days or hours to trigger this discount.                                                                        |
| To (number)   | `global_discount_duration_val_max[]` | Maximum number of days or hours for this discount tier.                                                                          |
| Duration      | `global_discount_duration_type[]`    | Select **Day(s)** to target multi-day bookings, or **Hour(s)** to target same-day hourly bookings.                               |

{% hint style="info" icon="lightbulb-exclamation" %}
**Example GD setup:**\
Row 1: Price=$50, From=7, To=99, Duration=**Day(s)** → weekly day discount\
Row 2: Price=$12, From=5, To=99, Duration=**Hour(s)** → 5+ hour discount
{% endhint %}

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

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

Define date ranges with custom rates for **both** day-mode and hour-mode bookings simultaneously. Each ST row has two price columns — one for day bookings and one for hour bookings.

| Column       | Meta key          | Description                                                                                               |
| ------------ | ----------------- | --------------------------------------------------------------------------------------------------------- |
| Price / Day  | `rt_price[]`      | Special daily rate during this ST period. Applied to multi-day bookings that overlap this date range.     |
| Price / Hour | `rt_price_hour[]` | Special hourly rate during this ST period. Applied to same-day bookings that fall within this date range. |
| Start Date   | `rt_startdate[]`  | Start of the special period (datetime picker).                                                            |
| End Date     | `rt_enddate[]`    | End of the special period (datetime picker).                                                              |

**DST (Discount in Special Time)** sub-table:

| Column   | Meta key                          | Description                                                               |
| -------- | --------------------------------- | ------------------------------------------------------------------------- |
| Price    | `rt_discount[i][price][]`         | Discounted rate during the ST window for qualifying durations.            |
| From     | `rt_discount[i][min][]`           | Minimum duration to trigger DST.                                          |
| To       | `rt_discount[i][max][]`           | Maximum duration for DST tier.                                            |
| Duration | `rt_discount[i][duration_type][]` | **Day(s)** or **Hour(s)** — determines which booking mode DST applies to. |

{% hint style="success" icon="bell" %}
Both `rt_price[]` (day rate) and `rt_price_hour[]` (hour rate) can be set on the same ST row. Mixed type is the only rental type with two price columns in the ST table.
{% endhint %}

### 3.6 🏆Pricing Priority

BRW first determines the billing mode (Day or Hour), then applies the relevant priority chain:

**Multi-day bookings (Day mode):**

<a class="button primary">ST Price/Day + DST Day(s)</a> **>** <a class="button primary">GD Day(s) tiers</a> **>** <a class="button primary">Daily pricing plan</a> **>** <a class="button primary">Regular price / Day</a>&#x20;

**Same-day bookings (Hour mode):**

<a class="button primary">ST Price/Hour + DST Hour(s)</a> **>** <a class="button primary">GD Hour(s) tiers</a> **>** <a class="button primary">Regular price / Hour</a>

{% hint style="success" icon="square-check" %}
**Billing mode decision:** The system compares the pickup date and dropoff date at the calendar-day level. If they are the same date → Hour mode. If they span two or more different dates → Day mode.
{% endhint %}

## 4: Shared Fields

The following fields are shared across multiple rental types and are documented on the **Shared Fields** page to avoid repetition. Click any card to go directly to that section.

{% hint style="danger" %}
**Booking conditions for Mixed:** Use `rent_hour_min` / `rent_hour_max` (same as By Hour) for same-day constraints. Preparation time (`prepare_vehicle`) is in **minutes**, not days. Services/Resources show **/Day**, **/Hour**, or **/Order** duration options.
{% endhint %}

<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>Locations</strong></td><td><em>Pickup/dropoff pairs + price</em></td><td data-object-fit="contain"><a href="/files/QJ6Fl2X4Dx2g3uUmj2gI">/files/QJ6Fl2X4Dx2g3uUmj2gI</a></td><td><a href="/pages/fIJxNdnB3WMNAIzPhO03">/pages/fIJxNdnB3WMNAIzPhO03</a></td></tr><tr><td><strong>Location surcharge</strong></td><td><em>Extra fee per location</em></td><td data-object-fit="contain"><a href="/files/cdySSZykZ2ZjYt1j6qof">/files/cdySSZykZ2ZjYt1j6qof</a></td><td><a href="/pages/BymGnGJuRfRqJAZ5YZTM">/pages/BymGnGJuRfRqJAZ5YZTM</a></td></tr><tr><td><strong>Pick-up location</strong></td><td><em>Show/rename on booking form</em></td><td data-object-fit="contain"><a href="/files/VRQp1fDrjb1yHNfjnyAC">/files/VRQp1fDrjb1yHNfjnyAC</a></td><td><a href="/pages/ROpztnKp5QzYsxP5DWDK">/pages/ROpztnKp5QzYsxP5DWDK</a></td></tr><tr><td><strong>Drop-off location</strong></td><td><em>Show/rename on booking form</em></td><td data-object-fit="contain"><a href="/files/PhpU87D8QCJO1pbkBJft">/files/PhpU87D8QCJO1pbkBJft</a></td><td><a href="/pages/ltbC4MGgvMzSq92SUZto">/pages/ltbC4MGgvMzSq92SUZto</a></td></tr><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)
