B2B Quote Requests: negotiate prices and turn them into orders
A “Request a quote” button on the product page and on the cart, with or without a customer account A negotiated...
From terms per customer to the customer statement: one place to grant credit, control it, collect and remind.
Due on receipt, net 15/30/45/60/90, end of month or days end of month: each customer or group can have its own terms, otherwise the shop default applies. The screen always shows where the value comes from, and the calculated due date appears on the order, the confirmation, the invoice PDF and the customer account.
Exposure combines unpaid invoices, uninvoiced term orders and pending requests, each amount converted at the rate stored on its order. Above the limit, “Pay on terms” is hidden with your message or replaced by an approval request; the customer can always pay upfront and the other payment methods stay untouched.
A first term order or an over-limit order: the order is held, your team receives a request and the customer is informed. An authorised employee approves or refuses with a note; the decision, the exposure and the limit at that moment stay in the log. A refused order moves to the state you chose, and the customer can order again and pay another way.
Record a full or partial payment against one or several invoices, allocated to the oldest due date or manually. The module writes into PrestaShop’s native payments, shows the remaining amount per invoice and per order, and can undo a receipt as long as no credit note is attached to it. The settlement discount becomes a native credit note in one click.
The schedule is set before and after the due date, with a text per level and per language. Only the latest level that has come due is sent, and everything stops as soon as the invoice is paid, cancelled or in dispute. An escalation can alert your team and suspend the customer’s payment on terms; manual sending, a test e-mail and a log are available.
The dashboard shows exposure, overdue amounts, upcoming due dates and top debtors. The aging report groups receivables into 0-30, 31-60, 61-90 and over 90 days, with CSV export, and the PDF statement summarises invoices, credit notes and payments over a period. On the customer side, “My invoices” gives the due date, remaining amount, status and invoice PDF, in the current shop only.
In B2B, giving 30, 45 or 60 days is part of the deal. Yet in PrestaShop those terms often live in a spreadsheet: credit limits are forgotten, exposure is only visible at month end and reminders go out when someone remembers. Invoices pile up, customer risk is hard to measure and hours are spent copying due dates.
B2B Net Terms brings that work into the back office. It applies payment terms per customer, per customer group or by default, calculates the due date of every order, checks exposure before granting a new delay, records payments against PrestaShop’s native invoices and sends reminders automatically. It adds an aging report, a PDF customer statement and a “My invoices” page in the customer account.
The module follows and collects what PrestaShop already knows: orders, invoices, payments and credit notes. It keeps no parallel ledger, takes no payment online and does not rate a customer’s creditworthiness.
For each customer you choose the mode and the number of days: due on receipt, net 15, net 30, net 45, net 60, net 90, end of month, or a number of days end of month. The effective value is shown with its origin — set on the customer, inherited from their default group or taken from the shop default — so no term is applied by surprise.
A payment can cover one or several invoices, in full or in part. You allocate it to the oldest due date or invoice by invoice; the module shows a preview before you confirm, then writes the payments into PrestaShop’s native tables. The remaining amount is recalculated per invoice and per order, and payments entered from the order page or by another module count the same way.
The settlement discount becomes a native credit note, with the right amount and the right split across the lines, without refunding any quantity and without moving stock. Note that PrestaShop’s order page still shows “not paid” next to the invoice, because PrestaShop never deducts credit notes from an invoice; the remaining amount calculated by the module is the one that counts.
The reminder schedule is set before and after the due date. By default: 3 days before, then 1, 7, 15 and 30 days after, with the last level escalating. Each level has its own text, in every language of the shop, with variables for the order, the invoices, the due date and the remaining amount.
The dashboard brings together exposure, overdue and upcoming amounts, pending requests and top debtors. The aging report groups receivables into 0-30, 31-60, 61-90 and over 90 days, per customer and per currency, with CSV export. The PDF statement shows invoices, credit notes and payments over a period, with the opening balance, the closing balance and the items still open.
In their account, your customers find “My invoices”: due date, amount, remaining balance, status, invoice PDF and payment details. Each customer only sees their own invoices, in the current shop.
The module is made for small and medium businesses, wholesalers and distributors that invoice business customers at 30, 45 or 60 days, including mixed B2B/B2C shops. It becomes useful from several term orders a month, when a spreadsheet no longer keeps track of exposure and reminders.
It also works in multistore: terms and limits shared or per shop, exposure calculated per shop, and the portal in the right shop. The interface, e-mails and PDFs are available in French, English, Spanish, Italian and Polish, on the Classic and Hummingbird themes without changing the theme.
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
A “Request a quote” button on the product page and on the cart, with or without a customer account A negotiated...
Dynamic Contact Form for PrestaShop lets you build one contact form per subject , with conditional fields,...
Simplify European VAT: prices automatically adapt to the visitor’s country (GeoIP or manual selection). Configure...
Deposits and partial payments via Stripe, or payment in instalments without fees Automatic balance recovery on...
check_circle
check_circle