Deal of the Day for PrestaShop
Install, configure and plan deals of the day: calendar, automatic fill, reserved stock, limits and display in the shop.
Overview
The Deal of the Day module (dfdealoftheday) features one product for 24 hours with a special price, a stock reserved for the deal and a countdown. Deals are planned ahead in a calendar. The price relies on a native PrestaShop specific price whose dates cover the deal window: it starts and stops by itself, with no CRON task.
Compatibility: PrestaShop 8.0 to 9.x, multistore, Classic and Hummingbird themes.
Installation
- In the back office, open Modules > Module Manager and click Upload a module.
- Upload the
dfdealoftheday-x.y.z.zipfile. - The module creates its tables, a Catalog > Deal of the day tab, and places itself first in the
displayHomehook.
The Configure button in the Module Manager opens the Catalog > Deal of the day page directly.
Settings
The settings are at the bottom of the Catalog > Deal of the day page.
- Deal switch time: each deal runs for 24 hours from this time, in the shop time zone. With 09:00, the deal of the 12th runs from the 12th at 9 am to the 13th at 9 am.
- Block title: label shown on the block, the flag and the breadcrumb, per language.
- Show on the home page, Show the countdown on the product page, Show a flag on product thumbnails.
- Position on the product page: under the price (hook
displayProductPriceBlock) or under the add to cart button. Choose the second option if your theme does not show the panel under the price. - Show an announcement bar on every page: thin bar at the top of the shop (hook
displayBanner) with the product, the price and the countdown. Visitors can close it for the current deal. - Show the countdown, Show the stock bar and Show the countdown to the next deal. The next product stays hidden until its deal starts.
- Keep a sold out deal visible: if disabled, the block switches to the next deal countdown once the deal stock is sold.
- Low stock threshold (%): the remaining quantity turns red below this share of the deal stock.
- Default maximum per order: prefilled on new deals.
- Accent color: hexadecimal code of the discount sticker and the flag.
- Deal page URL: friendly URL of the dedicated page, for example
deal-of-the-day.
Create a deal
Click Schedule a deal, or click an empty day in the calendar to prefill the date.
- Deal date: one deal per day and per shop.
- Product: search by name, reference or ID. The preview shows the regular price, the deal price with and without tax, and the real stock.
- Combination: all combinations, or a single one to discount only that one.
- Discount type and value: percentage between 1 and 99, or an amount in the default currency, with or without tax. The amount must stay below the product price.
- Deal stock: units sold at the deal price. Once they are sold, the normal price comes back. 0 = no limit.
- Maximum per order and Maximum per customer: 0 = no limit. The per customer limit is counted over all the orders of the deal by email address.
- Headline: optional short text shown above the product name.
If the product already has another specific price active during the deal, a warning is displayed: PrestaShop may apply that price instead of the deal price.
Plan several weeks
The calendar
The calendar shows five weeks with, for each day, the product, the discount, the sales, the revenue and the status: scheduled, live, sold out, ended or disabled. The Previous weeks and Next weeks buttons move the displayed period.
Move and swap
Drag a scheduled deal onto an empty day to move it. Dropping it on another scheduled deal swaps the two dates. A deal that has started can no longer be moved.
Copy a deal
In the list, the Copy to the next free day action duplicates the deal on the first free day after it, then opens the copy so you can change the product if needed.
Automatic fill
The Fill the planning automatically button creates a deal on every empty day of a period:
- period of 366 days at most and the days of the week concerned;
- product source: a category with or without subcategories, a list of IDs, or the shop best sellers;
- order: random, best sellers first, newest first or order of the ID list;
- in stock products only, minimum gap in days between two deals on the same product;
- discount, deal stock, maximum per order and maximum per customer applied to every deal created.
Days already planned are never changed. The final message gives the number of deals created and of days left empty because no product matched.
Stock and purchase limits
- Sales are counted when each order containing the deal product is validated.
- When the deal stock is sold, the specific price is removed and the product goes back to its normal price.
- An order moved to the Canceled or Payment error status gives its units back. If the deal is still running, the deal price returns.
- The cart is capped to the smallest of three numbers: remaining deal stock, maximum per order, units still allowed for the customer. The customer sees a message on the cart page.
- On the product page, the quantity field is limited to the same cap.
A guest who has not entered an email yet is only capped per order. The per customer total applies as soon as the cart is linked to a customer.
Display in the shop
- Home page: block with image, discount sticker, countdown, price, stock bar and add to cart button.
- Custom hook: add
{hook h='displayDfDealOfTheDay'}to a template of your theme, or{widget name='dfdealoftheday'}, to place the block elsewhere. - Dedicated page: available at the configured URL, with the current deal or a waiting message.
- Product page: panel with countdown, remaining stock and limits.
- Thumbnails: Deal of the day flag on the product currently in deal.
- Bar: announcement bar at the top of every page if the option is enabled.
The countdown follows the server clock. If the page comes from a cache, it uses the device clock. When the deal ends, the page reloads to show the next deal.
Tracking results
Each sale records the customer, the units and the amount with and without tax, converted to the default currency. The deal list shows the orders and revenue of each deal. The top of the page shows the revenue of the last 30 days, the average revenue per deal and the coverage of the next 4 weeks.
Troubleshooting
The deal price is not applied
Check that the deal is enabled, that its stock is not sold and that no other specific price of the product takes over. The deal form reports these overlaps.
The panel does not appear on the product page
Your theme may not call displayProductPriceBlock with the after_price type. Set Position on the product page to “Under the add to cart button”.
The bar does not appear
Enable the option in the settings and check that your theme displays the displayBanner hook. If you closed the bar, it stays hidden for the current deal in that browser.
Uninstallation
Uninstalling deletes the deals, the sales history, the settings and the specific prices created by the module. The other specific prices of the shop are not touched.