PS PrestaShop Intermediate

Product Rental — Complete Guide

Install, configure and operate product rental: availability calendar, min/max duration, deposit and degressive tier pricing, with booking tracking for PrestaShop 8 and 9.

Updated Module version 1.0.0

Overview

The Product Rental module (dfproductrental) adds a rental mode you enable product by product on your PrestaShop store. On a rentable product page, the customer picks a date range in a calendar that automatically greys out already booked days, and the price is computed per day using a degressive tier pricing. The module manages a deposit per product, enforces duration with a minimum and a maximum number of days, and tracks every booking from a dedicated back-office, from cart to the item’s return.

Ideal for equipment, furniture, event gear, instruments, vehicles or tools: any item that is rented rather than sold once and for all. Rental mode is enabled only on the products you designate, without distorting the rest of your catalogue.

Compatibility

  • PrestaShop 8.0 to 9.x
  • PHP 7.4 to 8.3
  • Single store and multistore
  • 5 languages: FR, EN, ES, DE, IT
  • Classic theme and custom themes
  • No dependency: no Composer, manual PSR-4 autoloader, flatpickr calendar bundled locally (FR locale included)

Installation

  1. In the back-office, open Modules > Module Manager.
  2. Click Upload a module then select the dfproductrental.zip file.
  3. Once installed, click Configure.

On installation, the module creates its three tables (df_rental_product, df_rental_tier, df_rental_booking), registers its hooks, initialises its default settings and adds two entries under the Catalog menu: Rental – Products and Rental – Bookings.

General settings

The module configuration page gathers the global options applied by default to all rentable products.

  • Buffer delay (days): number of days blocked after each return, to prepare, clean or check the item before the next rental. Global value, overridable per product.
  • Booking horizon (days): limits how far into the future a customer can book (365 days by default).
  • Pending cart expiry (minutes): delay after which an unconfirmed booking releases its dates (60 minutes by default).
  • Integrate the deposit into the cart line: when active, the deposit is added to the line price and returned via credit slip on return.
  • Hide the native “Add to cart” button: on rental products, hides the classic buy button in favour of the booking button.
  • Default deposit: amount suggested by default when creating a new rentable product.

Configuring a rentable product

Go to Catalog > Rental – Products, then Add.

  • Product: select the catalogue product to make rentable.
  • Active: enables or suspends rental on this product.
  • Base daily price: daily rate applied when no tier matches the chosen duration.
  • Deposit: amount of the deposit required for this product.
  • Minimum / maximum duration (days): bounds the date range the customer can select.
  • Available units: number of copies you own. A date is blocked only when all units are rented at the same time.
  • Buffer delay: keep the global value or set a buffer specific to this product.

Degressive pricing tiers

Below the form, add as many tiers as needed. Each tier is defined by a minimum day, a maximum day and a daily price.

The module applies the tier whose range contains the chosen duration. A tier whose maximum day is 0 is treated as unlimited. If no tier matches, the base daily price applies.

Example: 39 €/day from 1 to 3 days, 32 €/day from 4 to 7 days, 26 €/day from 8 days onward (maximum day set to 0).

Storefront usage

The availability calendar

On the product page, a date range picker is displayed. Already booked days are automatically greyed out and not selectable, as are buffer days after each return. The customer picks a start date and an end date within the duration limits you set.

Price calculation

As soon as a valid range is selected, a summary details the number of days, the applied daily price (per tier), the rental total, the deposit and the grand total. The customer knows exactly what they pay before adding to cart.

The booking

The Book these dates button adds the rental to the cart. The rental price is injected via a cart-scoped specific price: the product’s original price stays intact in the catalogue and for all other sales. A booking is created in a pending state and blocks the chosen dates.

If the order is not validated within the configured expiry delay, the cart expires and the dates are automatically released for other customers. At order validation, the booking switches to confirmed and links to the customer and the order.

Booking tracking

In Catalog > Rental – Bookings, you find all bookings with their product, customer, order, dates and status, identified by a colour-coded badge.

  • Pending: added to cart, awaiting order validation.
  • Confirmed: order validated, dates reserved.
  • Active: rental period in progress.
  • Returned: item returned.
  • Cancelled: booking cancelled, dates released.

The detail of each rental also appears in the cart, on the order confirmation page and in the back-office order page.

The deposit is refunded via credit slip when the item is returned, from the PrestaShop order page. This is the simplest and most transparent method for the accounting of most rental shops.

FAQ and troubleshooting

Does the rental price change my product’s price?

No. The price is injected via a specific price linked only to the current cart. The product’s original price stays unchanged in the catalogue and for other customers.

How does degressive pricing work?

You define tiers (minimum day, maximum day, daily price). The module picks the tier whose range contains the requested duration. A maximum day of 0 means “unlimited”. With no matching tier, the base daily price applies.

Can several units of the same product be rented?

Yes. Set the number of available units. A date is greyed out only when all units are already rented for that period.

Is the deposit refunded automatically?

No. It is added to the cart line at rental time and refunded via credit slip on return, from the back-office order page.

The calendar does not show on the product page

Check that the product is configured and active in Rental – Products. Then clear the PrestaShop cache (Advanced Parameters > Performance) and, during your tests, disable combine/compress files (CCC).

The native “Add to cart” button stays visible

Hiding relies on theme selectors. Enable the Hide the native “Add to cart” button option in the settings; depending on your theme, a slight adjustment of the selectors may be needed.

Is it compatible with PrestaShop 9?

Yes. The module is compatible with PrestaShop 8 and 9, in multistore and multilingual (FR, EN, ES, DE, IT). Price formatting uses the current Locale, in line with PrestaShop 9 practices.

Was this page helpful?

Still stuck? Contact support