Gift Wrapping & Message — Complete Guide
Install, configure and run paid gift wrapping and a personalized message card at checkout for PrestaShop 8 and 9.
Overview
The Gift Wrapping & Message module (dfgiftwrap) adds, inside the checkout, the choice of a paid gift wrapping and a personalized message card. The customer selects an illustrated wrapping option, can attach a free-text message, and the matching fee integrates cleanly into the order total — with VAT, currency and multistore handled by the PrestaShop core, all the way to the invoice.
The fee is not a mere display: it is carried by a dedicated fee product and a specific price limited to the customer’s cart. The amount therefore appears naturally in the totals, the order and the invoice, with the correct VAT.
Compatibility
- PrestaShop 8.0 to 9.x
- Single-shop and multistore
- PHP 7.4 to 8.3
- Classic theme and custom themes
- Interface shipped in French and fully translatable
- No dependencies (no Composer, no framework)
Installation
- In the back office, open Modules > Module Manager.
- Click Upload a module and select the
dfgiftwrap.zipfile. - Once installed, click Configure.
On installation, the module creates its tables, registers its hooks (front assets, checkout block, order validation, back-office order page, confirmation) and generates a hidden fee product (reference DF-GIFTWRAP-FEE): virtual, not visible in the shop, price not shown. It is what carries the wrapping + card amount in the cart. Do not delete it manually.
Configuration
General settings
- Enable gift wrapping: shows or hides the wrapping options block at checkout.
- Enable message card: shows or hides the card + message option.
- Card price: amount (tax excluded) charged when the customer adds a message card.
- Maximum message length: number of characters allowed (200 by default). A counter guides the customer while typing.
- Tax rules group: VAT group applied to the wrapping and card fees.
Managing wrapping options
From the configuration page, click “Manage options” to open the dedicated screen (AdminDfGiftWrapOptions controller). There you create as many options as you wish, each with:
- Name: the option’s multilingual label (e.g. “Elegant kraft paper”, “Premium gift box”).
- Price: the wrapping option’s tax-excluded amount.
- Image: a visual illustrating the option (automatically normalized to JPG).
- Position: display order, editable by drag and drop.
- Active: shows or hides the option on the storefront without deleting it.
The name is a multilingual field: select each language in the field’s selector to translate the option label.
How it works
At checkout
The wrapping and card block is injected at the top of the order summary via the displayCheckoutSummaryTop hook. The customer picks a wrapping option, optionally enables the card and types their message. The selection is saved over AJAX. Because the choice changes the amount, the total is refreshed to reflect the fee; the message itself is saved without an unnecessary reload.
Fee mechanism
On each selection, the module computes the total amount (wrapping option + card) and creates a specific price (SpecificPrice) limited to the current cart, applied to the hidden fee product. That product is added to the cart when the amount is above zero, removed otherwise. PrestaShop then applies VAT, currency and the multistore context, and the fee appears as a normal line in the totals, the order and the invoice.
Where the message appears
On order validation (actionValidateOrder), the selection is frozen. The message typed by the customer is visible in three places:
- on the order page in the back office (dedicated block via
displayAdminOrderMain); - on the confirmation page shown to the customer after the purchase;
- in the order’s native gift field (
gift_message, withgift = 1), which makes it appear in PrestaShop’s standard emails.
Because the message is also written to the native gift field, your email templates and fulfillment tools that already use this field display the customer’s note with no extra configuration.
FAQ and troubleshooting
Is this a gift card or a voucher?
No. The module provides a gift-wrapping service and a message card to offer, not a means of payment or a voucher. The customer pays for wrapping and can attach a dedication.
The fee does not appear in the total
Check that the hidden fee product (DF-GIFTWRAP-FEE) still exists and that at least one wrapping option is active. Clear the PrestaShop cache, then reload the order page. The fee only applies when the computed amount is above zero.
The home page or shop turns blank after installation
Make sure you are using the latest version of the module and clear the cache. The fee product is deliberately not visible in the shop; do not make it visible and do not delete it manually.
The message is truncated
The message is limited by the Maximum message length setting. Increase this value in the configuration if your customers need longer texts.
How do I add English, Spanish, German or Italian?
The interface is shipped in French and fully translatable. Go to Advanced Parameters > Translations > Translate installed modules, choose dfgiftwrap and the language, then translate the strings. Wrapping option names are translated directly in their multilingual field.
Is it compatible with PrestaShop 9?
Yes. The module is designed and tested from PrestaShop 8.0 to 9.x, with a legacy admin controller, in single-shop as well as multistore.