# Delivery Date and Time Slot for PrestaShop: module documentation

> This module adds a mandatory delivery date and time slot choice to the PrestaShop 8 and 9 checkout, capped by the real capacity of your workshop, with zones served by…

- Page: <https://www.datafirefly.com/en/documentation/dfflorist/>
- Language: en
- Last updated: 2026-09-24
- Other languages: [fr](https://www.datafirefly.com/documentation/dfflorist/index.md), [es](https://www.datafirefly.com/es/documentation/dfflorist/index.md), [de](https://www.datafirefly.com/de/documentation/dfflorist/index.md), [it](https://www.datafirefly.com/it/documentation/dfflorist/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfflorist/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfflorist/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfflorist/index.md)
- Index: <https://www.datafirefly.com/en/documentation/llms.txt>

This module adds a mandatory delivery date and time slot choice to the PrestaShop 8 and 9 checkout, capped by the real capacity of your workshop, with zones served by weekday, a message card, store pickup and delivery surcharges. Technical name: `dfflorist`.

## Installation

1. In **Modules > Module Manager**, click **Upload a module** and drop the ZIP file.
2. On installation the module creates its tables, two demo slots (Morning 09:00-12:00 and Afternoon 14:00-18:00), four illustrated card designs and a hidden **Delivery surcharge** product (reference `DFFLO-SURCHARGE`).
3. A new **Orders > Florist deliveries** tab appears. The module navigation bar gives access to the planning, zones, slots, closures, cards, workshop load and settings.

Do not delete the Delivery surcharge product from the catalog: it carries the surcharges in the cart. You can change its name, image and tax rule.

## General settings

### Scope

- **Products concerned**: all products, or only those in the checked categories (fresh flowers, plants, fresh food).
- **Carriers concerned**: leave everything unchecked to apply the planning to every carrier. With a selection, the other carriers (dried flowers by parcel, for example) ask no date.
- **Store pickup carriers**: see below.
- **Deliver only inside the zones**: once a zone is active, a postcode outside every zone cannot order with a concerned carrier.
- **Product page badge** and **accent color** of the checkout block.

### Delivery date and lead times

- **Date required** and **time required** (applied only when slots exist for the chosen day).
- **Same-day delivery** and its **cutoff** (HH:MM, shop time zone).
- **Daily order cutoff** (optional): an order placed after this time counts from the next day. Example: 16:00 with a one-day lead time, an order placed at 17:00 on Monday cannot be delivered on Tuesday.
- **Minimum lead time** in days, **preparation time before a slot** for same-day orders, **booking window** in days.

### Workshop capacity

- Workshop **delivery days** and **capacity per weekday** in units (0 = no daily limit).
- **Default load per product**: units used by each item. Set a different load per product in **Workshop load**.
- **Hold during checkout** (20 minutes by default): carts that picked a slot hold it during this time.
- **Few places left warning** and **order statuses that free capacity** (canceled, payment error, refunded by default).

### Message card and recipient

Enable the card, make the message required if needed, set the maximum length, offer the signature field and the unsigned card option. The recipient phone can be hidden, optional or required.

## Delivery zones

A zone groups postcodes and the days it is delivered. Accepted patterns, one per line or separated by commas:

- exact code: `06000`
- prefix: `75*` or `SW1*`
- range: `06000..06300`

The country is optional. The **extra lead time** is added to the minimum lead time for distant zones and disables same-day delivery in that zone. When several zones match, the first active zone in the list wins.

## Time slots

Each slot has a translatable label, a start and end time, weekdays, a capacity in units (0 = only the day capacity applies), an optional **tax-included surcharge** and, if needed, a restriction to some zones. With no active slot, the customer only picks a date.

## Closures and peak days

- **Closed**: the date is blocked (holidays, stocktaking).
- **Peak day or exceptional opening**: the day capacity is replaced by yours (0 = no limit) and the day opens even if it is normally closed. If no slot exists for that weekday, every active slot is offered.

## Message cards

Each design has a name, a suggested text that prefills the message when the customer picks the card, and a JPG, PNG or WebP visual of 2 MB maximum, 3:2 ratio recommended. The four designs provided (Birthday, Love, Thank you, Condolences) can be edited.

## Workshop load per product

For each product, set the **units per item** (0 for a vase or chocolates that need no preparation) and the **extra preparation** in days for made-to-order items. When such a product is in the cart, the lead time grows accordingly and same-day delivery is disabled.

## What the customer sees at checkout

At the Shipping step the block appears under the carrier list, above the Continue button. The customer picks a day in the calendar (the gauge shows the load, a "+" marks a surcharge), then a slot showing the last places and its surcharge. They then pick a card design, write the message and signature and watch the card preview update. The choice is saved automatically.

The Continue button is blocked while required information is missing, and the server checks everything again when the step is validated.

## Store pickup

Check your Click & collect carriers in **Store pickup carriers**. For them the block becomes **Pickup date**: no zone, no recipient phone, no surcharge. Slots restricted to zones are not offered. When the customer changes carrier, the block reloads and the surcharge is added to or removed from the cart.

## Delivery surcharges

Three sources add up, all tax included in the default currency:

- the surcharge of the chosen **slot** (express, fixed time);
- the surcharge of the **weekday** (Sunday, for example);
- the **same-day** surcharge.

The total is added to the cart as a **Delivery surcharge** line, with the tax rule of the hidden product. It shows in the summary, the order and the invoice. The surcharge is removed automatically if the customer switches to store pickup or if the cart no longer contains a concerned product.

## Planning and printing

The **Planning** page shows a 14-day strip with its fill rate, the load of the selected day per slot, the units held by carts in checkout and the list of deliveries (time, zone or Store pickup label, recipient, address, items, card). Three actions:

- **Print message cards**: A6 cards, four per A4 sheet with cut lines, marked Printed afterwards;
- **Delivery sheet**: round by slot, store pickups in a separate section;
- **Export CSV**: semicolon separator, Excel compatible.

## Orders, emails and PDF

- The back-office order list gets a sortable **Delivery date** column with a date range filter.
- The order page shows a panel with the date, slot, zone, surcharge and card, and lets you change them (without capacity check).
- In the native emails, the date is added after the carrier name, in the order language. Variables available for your templates: `{dfflo_delivery_date}`, `{dfflo_delivery_slot}`, `{dfflo_card_message}`.
- The PDF invoice shows the date and the recipient phone, the delivery slip adds the message.

## Upgrading from 1.0.0

Upload the 1.1.0 ZIP over the existing version from the Module Manager. The upgrade script adds the new columns and settings, creates the Delivery surcharge product and attaches the visuals to the demo cards. Your zones, slots and orders are kept.

## Frequently asked questions

### The block does not appear at checkout

Check that the module is enabled in the settings, that the cart contains a concerned product and that the selected carrier is concerned or set as store pickup.

### No date is offered

Check the workshop delivery days, the delivery days of the customer's zone, the minimum lead time and the booking window. A product with extra preparation also shifts the first date.

### What happens on uninstall?

Zones, slots, cards and the dates stored on orders are deleted, together with the Delivery surcharge product. Surcharge lines already invoiced stay on the orders.
