Advanced Custom Field and Custom Post Types (2-in-1)
Create custom fields on your products, categories, CMS pages and customers Show them in your shop without code:...
Every step is recorded and visible, for the customer and for your team.
“Request a quote” sits under “Add to cart” and on the cart page, for the allowed groups. A visitor can request a quote without an account and follow the proposal through a signed link.
The customer adjusts quantities, gives their company, VAT number and requirements, and attaches plans or photos. The quote keeps a unique reference and a full history.
Negotiated price excluding tax or a discount per line, the customer’s target price alongside, free shipping: tax-excluded and tax-included totals are recomputed with the shop’s tax rules before sending.
Every sent proposal becomes a kept revision, with its PDF: the customer downloads it from the quote or the signed link, you find it in the back office, and it goes out with the e-mail.
The customer replies, proposes a target price per line and attaches files; you answer from the back office. Every exchange and every proposal version stays in the history.
In one click, the quoted products and quantities join the cart at the negotiated prices, with free shipping when it was granted. The customer orders with the usual carriers and payment methods.
Six statuses, filters, an assignee, internal notes, approval above an amount and CSV export: every quote is tracked without leaving the back office.
A scheduled task expires overdue quotes, reminds customers before the validity date and alerts the team about pending requests. E-mails go out in the customer’s language.
A business customer asks for a price for a few pieces, then for a much larger quantity. The request comes by phone or e-mail, the price is negotiated in a thread, and the order is typed into the back office by hand. In between, the agreed price is lost, the customer orders at the catalogue price, or nobody knows whether the quote was accepted.
B2B Quote Requests puts that journey inside your PrestaShop shop: the customer requests a quote from the product page or the cart, you answer with a negotiated price per line and a validity date, and their acceptance puts the products in their cart at the negotiated prices, ready to order. Every step leaves a trace: status, history and e-mails.
On the product page, the “Request a quote” button sits under “Add to cart” and carries the selected combination and quantity. On the cart page, an equivalent button turns every cart line into a single request. You choose the allowed customer groups: your business customers see the button, your retail customers need not.
A visitor who is not signed in can request a quote without creating an account, when you enable that option: they enter their first name, last name, e-mail, company and VAT number, receive the proposal by e-mail and follow it through a signed link. An “Already a customer? Sign in” link keeps the account path, and they can create their account when ordering.
The form shows the products, the reference, the catalogue price excluding tax and the quantity. From a product page the customer adjusts the quantity; from the cart, the quantities are carried over as they are, with a link to change the cart. They can add their company, VAT number and a message — expected lead time, packaging, recurring orders — and, when attachments are enabled, plans, photos or a specification (PDF, image, CAD, office file or archive, up to five files). A consent box, an anti-spam check and a security token protect the submission. The quote receives a unique reference and arrives in your back office with the status “New”.
In the back office, the quote page shows the catalogue price at request time. You enter the negotiated unit price excluding tax of each line, or a discount percentage, the validity date and a message for the customer. You can offer free shipping: it is applied by a native cart rule on acceptance. Tax-excluded totals, taxes and tax-included totals are recomputed with the shop’s tax rules and the customer’s address before sending. A “Recalculate” button checks the amounts without sending anything.
The proposal goes out by e-mail in the customer’s language, with a PDF attached and a link to their quote. The status becomes “Proposal sent”, and the history records the date and the author. Every sending becomes a kept revision: the customer finds the earlier proposals and their PDFs, and you keep a record of every agreed price.
You can also create a quote on the shop’s initiative: “New quote” picks an existing customer or a new contact, adds products, quantities, a discount and a negotiated price, then saves a draft or sends the proposal. Lines can be changed until sending, up to 100 lines.
From their account or their signed link, in “My quotes”, the customer reads the proposal and accepts or refuses it, with an optional reason. On acceptance, the quoted products and quantities are added to their cart with the negotiated price of each line, set as a native specific price bound to this cart and this customer; free shipping is applied by a native cart rule. Products already in the cart stay. The customer then orders as usual, with the shop’s carriers and payment methods.
The negotiated price applies to this cart only. A quantity below the quoted one returns to the catalogue price; above it, the negotiated unit price stays. Other products keep their usual price, and an expired or already processed proposal can no longer be accepted.
The customer can reply from the quote page: a message, a target price per line and files. You answer from the back office, your team receives a notification and unread counters point to the quotes waiting for an answer. Every counter-offer and every proposal sent stays in the history: the customer can accept the current proposal while you prepare the next one. A scheduled task, which you enable when you want, expires overdue proposals, sends reminders before the validity date and alerts the team about requests waiting for an answer.
The quote list filters by status, customer, company, date, reference and assignee, and sorts on every column. It exports to CSV with the current filters, one row per quote line. Each quote has six statuses:
The quote page shows the customer’s details, their message, the conversation, the files, the lines, the proposal revisions, the cart and the resulting order, then the full history. You can assign the quote to a salesperson, add internal notes — never shown to the customer — and, above an amount you set, have the proposal approved by a manager before it is sent. The journey’s e-mails cover the acknowledgement, the proposal with its PDF, the signed link sent to the visitor, messages, reminders and alerts for your team. The recipients are configured in the settings.
You enable or disable requests, choose the customer groups, the button locations, the default validity (30 days), the notification recipients and the shop texts in five languages. You set quotes without an account and the link lifetime, attachments and messaging, the PDF attached to the proposal, the default discount of each customer group, approval by a manager, catalog mode (groups, categories, products) and the scheduled task, with its address and delays. In multistore, each shop has its own quotes and settings. On uninstall, quotes are kept by default unless you choose to delete them; they are deleted with the customer account.
Free shipping is the only shipping concession: PrestaShop has no native way to set a shipping price for one cart, and other orders follow the shop’s carriers and rates. Negotiated prices stay bound to the cart created on acceptance: a later order starts again at catalogue prices. Payment uses the methods installed on the shop and payment terms are not included. Catalog mode hides prices and replaces “Add to cart” on the storefront, without touching the cart or checkout. Approval is a single threshold by the profiles you choose, not a multi-level circuit, and the scheduled task is optional: both only run when you configure them. Sales targets per employee are not part of the module.
PrestaShop 1.7.8, 8.0+ or 9.0+, PHP 7.4 or later, Classic and Hummingbird themes. Interface and e-mails in English, French, Spanish, Italian and Polish. No external service is needed: e-mails go through PrestaShop and payment uses the methods already installed. A customer account stays optional: enable quotes without an account to open the form to visitors.
Stop re-typing your quotes: let your business customers request, negotiate and order in one place.
See how we compare to the most common alternatives on the market.
| Feature | WePresta | Addons |
|---|---|---|
| payments Transparent pricing | check_circle | cancel |
| update Lifetime updates included | check_circle | cancel |
| support_agent Direct developer support | check_circle | cancel |
| verified PS 1.7, 8 & 9 compatible | check_circle | help_outline |
| code Standardized clean code | check_circle | cancel |
| storefront Multi-store ready | check_circle | help_outline |
| money_off No hidden renewal fees | check_circle | cancel |
Find answers to frequently asked questions about this module
5-minute installation · Full documentation included
Create custom fields on your products, categories, CMS pages and customers Show them in your shop without code:...
Dynamic Contact Form for PrestaShop lets you build one contact form per subject , with conditional fields,...
Create advanced promotions for your PrestaShop store : 3x2, buy X get Y free, tiered discounts, bundles,...
check_circle
check_circle