B2B Quote Request (Express Quote) — Complete Guide
Install, configure and use B2B quote requests (cart turned into a PDF quote in 1 click, with no account required) for PrestaShop 8 and 9.
Overview
The B2B Multi-Product Express Quote module (dfexpressquote) adds a “Request a quote” button to the cart footer. In one click, your professional customer turns the cart into a clean PDF quote, received by email, with no account to create. A copy is sent to your store and every quote is tracked in the back office with its statuses.
The PDF is generated with TCPDF, already bundled with PrestaShop: no external library, no Composer dependency. The document is never stored on the server, it is regenerated on demand from a cart snapshot saved in the database.
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 (modal in vanilla JavaScript, independent from the theme)
- No dependency (neither Composer nor framework)
Installation
- In the back office, open Modules > Module Manager.
- Click Upload a module and select the
dfexpressquote.zipfile. - Once installed, click Configure.
On installation, the module creates its quote table, registers its hooks (actionFrontControllerSetMedia, displayShoppingCartFooter, displayExpressCheckout), adds a Express Quote tab under the Orders menu and initializes its default settings.
Configuration
Display and button
- Button label: text shown in the cart footer, customizable.
- Ask for contact details: enables the contact-form mode. When disabled, the module switches to instant 1-click mode (the PDF quote is generated with no form at all).
Quote
- Reference prefix: prefix of quote numbers (default
DEV), followed by the date and a counter. - Validity period: number of days the quote is valid, used to compute the due date.
- Show VAT: displays VAT columns and totals on the PDF.
- Show address: adds the recipient address block to the PDF.
- VAT legal notice and Terms: free text added at the bottom of the quote.
Emails
- Email to customer: automatically sends the PDF quote as an attachment to the customer.
- Email to store: sends a notification to your team.
- Notification email address: internal recipient (defaults to the shop email).
How it works
Two request modes
In form mode, one click opens a lightweight modal where the customer enters their company, name, email and, optionally, their phone, intra-community VAT number and a message. In instant 1-click mode, the PDF quote is produced immediately, with no form. No account creation is required in either case.
The PDF quote
The PDF carries your store identity: logo, contact details, a unique reference, issue and validity dates, a recipient block, a product table (reference, name, quantity, net unit price, VAT, net total) and net, VAT and gross totals, followed by your notices and terms. It is never stored on disk: it is regenerated on demand from the cart snapshot saved in the database, which avoids file build-up and guarantees an always-consistent document.
Automatic emails
Depending on your configuration, the customer receives the quote as an attachment and your store is notified at the address of your choice. Email templates are provided in French and English.
Back-office tracking
The Express Quote tab lists every quote with its reference, recipient, gross amount, status and date. You open a quote to see its details, move its status forward (new, sent, accepted, refused, converted) and regenerate or download the PDF at any time.
Security
PDF download is protected by a deterministic token derived from your shop key. Every request is protected by an anti-bot honeypot and a cart-bound token, and only acts on the current session cart.
FAQ and troubleshooting
Does the customer need an account?
No. Quote requests work in guest mode. Instant 1-click mode even generates the PDF with no form at all.
Do I need to install a PDF library?
No. The quote is generated with TCPDF, already bundled with PrestaShop 8 and 9. No Composer dependency.
The button does not show on the cart page
Clear the PrestaShop cache (Advanced Parameters > Performance) and, while testing, disable Combine/Compress (CCC). The button only shows when the cart contains at least one item. If your theme does not trigger the displayShoppingCartFooter hook, the button is inserted via the front media loading.
Do PDF files pile up on the server?
No. The quote is not stored on disk: it is regenerated on demand from the cart snapshot in the database.
Is it compatible with PrestaShop 9?
Yes. The module is compatible with PrestaShop 8 and 9, in multistore and multilingual setups.