WordPress plugin profile

EarnestLabs Quote & Catalog for WooCommerce

Catalog mode and quote requests: hide your prices, collect the details up front, and turn an accepted quote into a paid WooCommerce order.

Version1.18.0
Active installsNew
Rating0.0 / 5
Tested toWP 7.1

About this plugin

You sell things that do not have one fixed price. Someone wants one. You want to sell it to them. What stands between you is five emails. Right now that request arrives through your contact form, the same form people use to ask about your opening hours. It says “how much for this?” and nothing else. So you write back to ask which model, what quantity, for when. She answers two of the three. You write again. By the time you know enough to put a price on it, four days have gone, and you retype the whole thing into a Word file. Quote & Catalog puts the questions in front of the request instead of after it. Ask. Your customer gathers several products into one request and answers, up front, the questions your trade actually needs: dimensions, quantity, a deadline, a VAT number. Price. Every request lands on one screen with its own status. You read it once and you answer once. Follow. New, Quoted, Accepted, Paid, Declined, Expired. What is waiting on you is visible, and what has gone quiet stops being something you have to remember. About forty minutes per quote. At ten quotes a month, that is close to a full working day back, every month. Catalog mode is free. The quote flow is free. The dashboard is free. The Pro extension carries it to the end: your reply holds a price and a payment link, and the request becomes a real WooCommerce order your customer pays online, with the gateways you already have. Made for B2B, wholesale, made-to-order products, and any store where one fixed price does not make sense. What this is, and what it is not Quote plugins tend to sit at one of two extremes. Some are a button and a form. The request arrives as an email and you take it from there: nothing is stored, nothing has a status, and you are back in your inbox with the problem you started with. Several of them need a second plugin installed before the form even exists. Others are entire B2B suites. Separate trade registration, price tiers by role, tax exemptions, purchase lists, an invoice gateway. Powerful, and a great deal to install and learn when what you needed was to answer a quote. This one is made for quoting, and for nothing else. A request is a thing in its own right, with its own screen and its own status: not an email, and not an unpaid order sitting among your real ones. There is no second plugin to install, no form builder to configure, and nothing in here that belongs to another job. If you also need wholesale price tiers or a trade registration flow, one of those suites will serve you better, and we would rather say so now than have you find out after the install. Three promises The free version is a whole run, not a trial. Catalog mode, the multi-product quote list, the form with your own fields, the dashboard with its statuses and its search, the printable sheet, outgoing webhooks and twenty-one languages are all in it. Nothing expires, and nothing switches itself off later. Support answers within one business day , at [email protected], and it is the person who wrote the code who answers. Nothing arrives that you did not ask for. No popup, no dashboard widget, no upsell in your product screens. Out of the box the plugin makes no external request at all: see the External services section below for the two optional features that do, and only once you switch them on. Five things you will not find elsewhere Four of the five are in the free version. The fifth is the only one that is not, and it says so. Twenty-one languages, finished. Not a .pot file for you to translate: twenty-one catalogues, shipped and loaded. An Italian shop installs the plugin and it speaks Italian in the first second. A minimum and a maximum quantity per product , checked on the server. “From fifty per request” is a rule of your trade, not a hint in the browser, and it holds even if someone edits the page. A printable quote sheet , straight from the browser, with no PDF engine involved and nothing to configure. A yearly recap of what the plugin brought you. One email a year: the requests you received, how many turned into a yes, and what those were worth. No sales pitch, and nothing at all on a year without requests. A deposit, in Pro. Your customer pays a share to confirm, and you invoice the balance from the quote screen once the work is done. Built to stay out of the way Purchasing is blocked server-side , not just hidden with CSS. Even a theme that renders its own cart button cannot bypass it. Works with classic and block themes out of the box, and with page builders, because prices go through the official WooCommerce filter every builder calls. Product structured data is cleaned so search engines stop showing prices you no longer display. No external dependencies, no framework, no tracker. Free features Catalog mode: hide all prices and/or disable purchasing store-wide. “Request a quote” button replacing the cart button (customizable text). Multi-product quote list: customers group several products in one request. Minimum and maximum quantity , per product: ask for fifty or nothing. The rule is shown next to the quantity, and checked again when the request is sent, not only in the browser. Quote requests for signed-in customers only , if you want them: the quote list stays open to everyone, and the request asks for an account at the last step. Off by default. A Quote page block for the block editor, and the shortcode for everything else. WPML and Polylang : the words you typed yourself, translated per language. Your button text, the sentence that replaces prices in catalog mode, your field labels and the options inside them. The 21 bundled translations cover the plugin’s words; these are yours. Variable products : the quote button sits on the variations form, and the variant your customer picked is carried onto the quote screen, the dashboard, the emails and the printable sheet. She asks for the navy in size 42, you read the navy in size 42. Built-in quote form, and no Contact Form 7 or WPForms to install . Choose whether you ask for a phone number, a message and a VAT number, or none of them. VAT number for business customers : ask for it, and it follows the request onto the quote screen, the emails and the printable sheet. Collected and shown, never used to change your tax calculation. Form field builder : text, number, dropdown, radio, checkboxes, date, headings. Ask the one question your trade needs. Quotes dashboard : every request stored in your admin with its own status (New → Quoted → Accepted → Paid, or Declined / Expired), not just an email that gets lost. Search by customer, email, product name or SKU , filter by period, and sort any column. The search ignores accents, so Echarpe finds Écharpe. A Help screen that answers : how the plugin works in four steps, and the questions shop owners actually ask, answered in full, not a page of links. Email notifications to the shop owner and confirmation to the customer. A yearly recap of what the plugin brought you : once a year, one email with the requests you received, how many turned into a yes, and what those are worth. No sales pitch, and nothing at all on a year without requests. Anti-spam : a silent honeypot, and Cloudflare Turnstile if you want a second gate. Printable quote sheet : a clean copy of any request, from the browser, no PDF needed. Outgoing webhooks to Zapier, Make, n8n, Slack or your CRM. 21 languages out of the box : English plus 20 bundled translations, no translation plugin required. Setup wizard, HPOS compatible, theme-overridable templates. Pro features Price the quote and let the customer pay online : your reply becomes a real WooCommerce order, paid with the gateways your shop already has. The VAT number collected by the free version also rides the PDF, the WooCommerce order and the CSV export. PDF quote attached to the email, with your logo, signature, brand colour and your own font. A reply page your customer reaches from the email : accept, decline with a reason, or counter-offer their own price, without creating an account. Ask for a deposit : the customer pays a share to confirm, you invoice the balance from the quote screen once it lands. One reminder to a customer sitting on an unpaid quote, with the payment link. One only, on the day you choose. Automatic expiry: after the number of days you choose, the quote lapses and its payment link stops working. “My quotes” in the customer account, where they accept or decline. File upload fields, with the formats you allow and a double check on what is really inside. Per-product, per-category and per-role targeting. Your own wording for the priced-quote email. External services The plugin makes no external request out of the box. Two optional features connect to a third party, each only when you enable it: Cloudflare Turnstile (anti-spam, off by default). When you enable it and paste your own Cloudflare keys, the quote form loads Cloudflare’s widget script from challenges.cloudflare.com in the visitor’s browser, and each form submission is verified by a server-side call to Cloudflare’s siteverify endpoint. What is sent: the widget token and the visitor’s IP address, as required by the verification protocol. See Cloudflare’s terms of service and privacy policy . Outgoing webhooks (off by default). When you enter a webhook address, quote events send a JSON payload to it: the event and its date, your site address, the quote (number, status, dates, admin link), the products and quantities requested, the answers to your custom fields, and the customer’s name, email, phone and message , because a CRM or a Zapier scenario cannot do anything useful without them. Turn this on only for an endpoint you trust, and tell your customers about it in your privacy policy. The “Send a test event” button is different: it posts a sample payload with no customer data, so you can check the address answers before any real request flows. The receiving service is one you choose and operate; its own terms apply.