Request a Quote - Bulk Orders, Custom Price Inquiries & One-Click Price Offers
Turn "price on request" into real leads. Request a Quote adds an elegant, mobile-friendly quote form to your product pages and an optional side block on every page. Each request lands in a built-in quote inbox with statuses, filters and CSV export — and you reply in one click with a price offer, optionally attaching a single-use discount voucher that closes the sale. Server-verified anti-spam included, invisible reCAPTCHA v3 optional. For PrestaShop 1.7 – 9.
Every "how much for 500 units?" is money waiting to be answered
Wholesale buyers, B2B purchasers and project customers rarely pay the list price — they ask. If your shop has no clean way to ask, they leave. Request a Quote gives them a polished "Ask for a Quote" button on exactly the products you choose, plus an optional quote form in the side column of every page, and gives you a single inbox where no request ever gets lost.
How it works
- 1. A customer asks — the quote form opens in a fast, dependency-free modal (no jQuery). You decide which fields to ask for: phone, address, town, quantity, destination, urgency… Name and e-mail are always required.
- 2. The request lands in your inbox — with a status pipeline (new / read / offer sent / closed), keyword and date filters, bulk actions and CSV export. A dashboard widget counts unread requests so nothing slips.
- 3. You reply in one click — enter your price, an optional message and a validity in days. The customer receives a branded offer e-mail immediately.
Close the deal with a personal voucher
When you send an offer, optionally generate a single-use discount voucher — fixed amount or percentage — bound to that customer and valid exactly as long as your offer. The code arrives inside the offer e-mail: the customer clicks, the discount applies, the sale closes.
Anti-spam that actually works
Instead of a trivial arithmetic question, version 4 ships a server-verified honeypot plus a time-trap, and can add invisible Google reCAPTCHA v3 on top. Real buyers never see a puzzle; bots never reach your inbox. Notification recipients are always resolved server-side from your settings — your shop can never be abused as a mail relay.
Configured in minutes, guided throughout
The configuration page opens with a how-it-works tutorial, live status checks that tell you exactly what is left to do, and stat tiles for your request volume. Enable the button per product (product page > Modules tab) or site-wide via the side form, set your notification recipients, pick your Terms/Privacy CMS pages for the GDPR consent line, and save.
Built for modern PrestaShop
- Clean architecture — submissions go through a proper ModuleFrontController; no standalone endpoints for firewalls to block.
- No bloat — a single vanilla-JS modal; jQuery, Fancybox and ~230 KB of legacy libraries are gone.
- Safe upgrades from 3.x — settings, per-product flags and every stored request are migrated automatically, without data loss.
- PHP 8 / PrestaShop 9 safe — locale-aware price formatting, fail-safe hooks, utf8mb4 schema.
Compatibility
PrestaShop 1.7, 8 and 9. The per-language button label and intro text are editable, and the module works in catalog mode (with visibility control) — ideal for "price on request" stores.
Frequently asked questions
Can I show the quote button only on some products?
Yes. Each product has a "Show the Ask for a Quote button" switch on its Modules tab, and you set the default for new products in the module settings.
Does it work with catalog mode / hidden prices?
Yes — that is one of its main uses. A dedicated setting controls visibility in catalog mode, so "price on request" shops can collect inquiries instead of losing them.
What exactly does the customer receive when I send an offer?
A branded e-mail with your price, your optional message and — if you chose to add one — a single-use voucher code valid for the number of days you set.
Can several people in my team receive the notifications?
Yes. The recipient setting accepts a comma-separated list of e-mail addresses, and an optional confirmation e-mail can be sent to the customer too.
How does it fight spam?
A server-verified honeypot and a time-trap run on every submission, and you can enable invisible Google reCAPTCHA v3 on top. All checks happen server-side.
I'm upgrading from version 3 — do I lose my stored requests?
No. The 4.0.0 upgrade migrates your settings, per-product flags and every stored request automatically.
-
CompatibilityPrestashop 1.7
Prestashop 8
Prestashop 9 -
Available Module TranslationsDutch
English
French
German
Italian
Polish
Spanish
Turkish
MEG Venture
4 other products in the same category
| Version | 4.0.0 |
|---|---|
| Last updated | 2026-07-27 |
| Changelog | • [2026-07-24] Add Polish and Turkish translations for the Best Quote module, enhancing localization support with new strings for user prompts, configuration settings, and form fields. • [2026-07-23] Translate bestquote module strings to Turkish for improved localization and user experience. • [2026-07-23] Populate translation files with complete translatable strings • [2026-07-23] Populate translation files with complete translatable strings • [2026-07-23] Populate translation files with complete translatable strings • [2026-07-23] Populate translation files with complete translatable strings • [2026-07-23] Populate translation files with complete translatable strings • [2026-07-23] Populate translation files with complete translatable strings • [2026-07-23] Add missing translation files (fr, de, pl, nl, tr, it, es) • [2026-07-22] Update voucher highlight status to prevent advertising private offers in the cart • [2026-07-22] Fix display name formatting in module description for consistency • [2026-07-22] Update logo assets by replacing logo.gif and logo.png with new versions • [2026-07-22] Remove deprecated fields from quote request and update related templates and translations • [2026-07-22] Improve error handling in submit.php to provide user-friendly messages and enhance logging • [2026-07-22] Refactor error handling in submit.php to improve fatal error response and remove dependency on PrestaShop's logger • [2026-07-22] Add error handling for media registration in hookActionFrontControllerSetMedia • [2026-07-21] Improve error handling and logging in quote submission process • [2026-07-21] Enhance quote request validation and error handling messages • [2026-07-21] Refactor quote form to use div instead of form and update submission handling • [2026-07-21] Fix context retrieval in BestquoteAdminController and BestquoteHealth classes • [2026-07-21] Add quote request functionality and templates • [2026-06-21] Refactor CSS for improved readability and consistency • [2023-09-24] v3.2.8 • [2023-09-05] v3.2.7 • [2022-03-03] Update bestquote_ajax.php • [2022-02-19] minor fix • [2021-02-21] v3.2.6 • [2021-02-21] v3.2.5 • [2020-12-14] v3.2.5 Initial • [2020-12-14] Initial commit |
• [2026-07-22] Remove deprecated fields from quote request and update related templates and translations
• [2026-07-22] Improve error handling in submit.php to provide user-friendly messages and enhance logging
• [2026-07-22] Refactor error handling in submit.php to improve fatal error response and remove dependency on PrestaShop's logger
• [2026-07-22] Add error handling for media registration in hookActionFrontControllerSetMedia
• [2026-07-21] Improve error handling and logging in quote submission process
• [2026-07-21] Enhance quote request validation and error handling messages
• [2026-07-21] Refactor quote form to use div instead of form and update submission handling
• [2026-07-21] Fix context retrieval in BestquoteAdminController and BestquoteHealth classes
• [2026-07-21] Add quote request functionality and templates
• [2026-06-21] Refactor CSS for improved readability and consistency
• [2023-09-24] v3.2.8
• [2023-09-05] v3.2.7
• [2022-03-03] Update bestquote_ajax.php
• [2022-02-19] minor fix
• [2021-02-21] v3.2.6
• [2021-02-21] v3.2.5
• [2020-12-14] v3.2.5 Initial
• [2020-12-14] Initial commit
Comments (1)
Your review appreciation cannot be sent
Report comment
Report sent
Your report cannot be sent