> ## Documentation Index
> Fetch the complete documentation index at: https://www.twicecommerce.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# How to create a rental listing

> A listing customers book for a period and return — purchase options, duration pricing, stock that reserves, and the limits on how long they can keep it.

<Card title="Open in TWICE Admin" icon="external-link" href="https://admin.twicecommerce.com/catalog/listings" horizontal>
  catalog/listings
</Card>

A rental listing is one a customer takes for a period and gives back. The unit is reserved for those dates, comes back, and goes out again.

That one fact shapes every setting on this page. Availability is a calendar rather than a count, the price depends on how long they keep it, and you need to decide how short and how long that can be.

This guide is the rental-specific path through the four tabs. The tab-by-tab walkthrough common to every listing is [create and publish a listing](/docs/guides/catalog/create-and-publish-a-listing).

## Prerequisites

<Warning>
  **Required permissions:** listing create and manage rights. All four system roles hold them.
</Warning>

<Info>
  **Have ready before you start:**

  * **The stock this draws from.** Rental availability is computed from real units and their existing bookings, so the units need to be in Inventory first.
  * **How you charge for a partial period.** A customer collects at 14:00 Monday and returns 09:00 Wednesday — two days or three? Both are legitimate and both are configurable, and it is a revenue question rather than a display one.
</Info>

## The Walkthrough

<Steps>
  <Step title="Set the purchase option to Bookings">
    On the **Pricing** tab, **Purchase options** — *customers can acquire this listing as* — decides how the listing is acquired. Tick **Bookings**.

    Tick **Sales** as well if the same goods are also sold outright. One listing can be both, and that is how a demo unit rented all season and sold off in autumn stays a single listing rather than two.
  </Step>

  <Step title="Price it by duration">
    Rental pricing comes in two shapes, and the choice decides what the customer does on the storefront.

    * **Fixed price for duration** — you define the periods and the customer picks one. *1 day*, *Weekend*, *1 week*.
    * **Rate-based** — the customer picks any start and end, and the engine prices the span from your rows.

    Either way, set the tiers so a week costs less per day than a day does. That is the whole point of a rate card, and it is what makes a long booking worth taking.

    Then set how a partial period is charged. **Starting at pricing** charges every calendar period the booking touches — a 23:00 pickup and a 01:00 return is two days. With it off, a day is 24 hours from pickup. The unit dropdown names it per row: **Day (Elapsed)** versus **Day (Started)**.

    Read more: [Price a listing](/docs/guides/catalog/price-a-listing)
  </Step>

  <Step title="Bind it to stock that comes back">
    On the **Fulfilment** tab, add a rule matching the units this listing sends out. A rental rule **reserves** the matched unit for the booked dates and releases it on return — the same unit rents again next week.

    Check the count under the rule before moving on. It shows **matches in inventory** with a number, or **No stock items available with these conditions** when the rule matches nothing.

    **A rule that matches nothing is the single most common reason a rental listing is invisible.** The listing publishes fine and has no bookable dates.

    Read more: [Listing inventory rules](/docs/guides/catalog/listing-inventory-rules)
  </Step>

  <Step title="Set how long they can keep it">
    The **Limits** tab is where rentals differ most from anything sold outright. Four settings:

    * **Minimum booking duration** — the shortest booking you will take.
    * **Maximum booking duration** — the longest. Set it even where you do not expect long rentals, or the storefront will accept any end date.
    * **Booking duration increment** — whole multiples only, for rate-based pricing.
    * **Orders must be placed at latest** — the lead time, so a customer cannot book a 09:00 collection at 08:55.

    Read more: [Purchase and booking limits](/docs/guides/catalog/purchase-and-booking-limits)
  </Step>

  <Step title="Collect anything the order does not already carry">
    **Checkout Settings** adds questions to this listing's checkout. Ask for whatever you need that the order does not already tell you — measurements for a fitting, a driver's license number, an acknowledgement of terms, a delivery instruction, or anything else your own process depends on. Every operator's list is different.

    **Always assign item to customer** is worth considering here specifically: rentals are often personal to the person using them, and it asks for a name against each unit.

    Read more: [Checkout Settings tab](/docs/catalog/listings/checkout-settings)
  </Step>

  <Step title="Publish it">
    On the **Publishing** tab set the **Sales channels**, **Store locations** and any **Customer tags**, then set **Status** to **Public** on the General tab.

    Then open it in the storefront — not preview — and try to book real dates.
  </Step>
</Steps>

## How do I know it worked?

* **The listing opens on the storefront** at the location you rent from.
* **The date picker offers dates.** A rental listing with no bookable dates is the fulfilment rule matching nothing, not a publishing problem.
* **A test booking prices correctly** at a duration that should hit a longer tier — a week should cost the week rate, not seven day rates.
* **The unit is unavailable for those dates afterwards**, and available again after the return date. That is the reserve-and-release behaviour working, and it is the check that distinguishes a rental listing from a sale.

## Troubleshooting / Common Pitfalls

<AccordionGroup>
  <Accordion title="The listing is published but has no bookable dates">
    **Cause:** the fulfilment rule matches no stock, or the matched stock is at a different location from the one the customer is shopping.

    **What to do:** read the match count on the Fulfilment tab. A non-zero count at the wrong location looks identical to a working listing until someone tries to book.
  </Accordion>

  <Accordion title="Customers are charged for more or less time than we expect">
    **This is Elapsed versus Started.** A price billed on the wrong basis is off by up to a full unit on every booking that does not start at the beginning of a period.

    **What to do:** take a real booking that came out wrong, work it through both readings, and set the one that produces the number you meant.
  </Accordion>

  <Accordion title="A long booking is priced as a stack of day rates">
    **Cause:** no longer row covers it, or the longer row costs at least as much as the shorter ones combined, so it is never selected.

    **What to do:** check the week row against seven times the day row. A week priced at or above that is a row that can never win.
  </Accordion>

  <Accordion title="Customers book slots we cannot prepare in time">
    **Cause:** no order deadline. A stock item's preparation buffer rejects a too-soon start but does not remove those times from the storefront calendar — the customer picks one and fails at checkout.

    **What to do:** set **Orders must be placed at latest** on the Limits tab. It is the setting that stops those start times being offered at all.
  </Accordion>

  <Accordion title="The same unit got double-booked">
    **Cause:** normally two listings whose rules match the same units, or a listing that reaches them with no stock rule at all — an empty rule list reserves nothing.

    **What to do:** check every listing that could reach those units. Availability is only enforced where a rule actually matches.
  </Accordion>

  <Accordion title="We want to sell this unit at the end of the season">
    **No new listing needed.** Tick **Sales** alongside **Bookings** and add a purchase price. When the unit is genuinely leaving the rental fleet, that is an inventory move rather than a catalog one.
  </Accordion>
</AccordionGroup>

## Next Steps

<CardGroup cols={2}>
  <Card title="Create a sales listing" icon="cart-shopping" href="/docs/guides/catalog/create-a-sales-listing">
    The same four tabs for goods that do not come back.
  </Card>

  <Card title="Create an add-on listing" icon="puzzle-piece" href="/docs/guides/catalog/create-an-addon-listing">
    Insurance, delivery and extras sold alongside this one.
  </Card>

  <Card title="Purchase and booking limits" icon="gauge" href="/docs/guides/catalog/purchase-and-booking-limits">
    How short, how long, and how late a customer can book.
  </Card>

  <Card title="Price a listing" icon="tag" href="/docs/guides/catalog/price-a-listing">
    Duration pricing and the Elapsed versus Started decision.
  </Card>
</CardGroup>
