Applies to Cmsmart B2B 2.2.0, Cmsmart B2B Store 2.2.0 and Cmsmart Product Designer 2.18.5 · Updated October 2026. Screenshots in this guide are from the public Cmsmart B2B demo store; the company, buyer, approver and admin names you see in them are sample data, not a real customer.

In short

  • A buyer, or a visitor who isn't a customer yet, can request a quote with artwork attached, then accept and check out at the exact price sent back.
  • Cmsmart B2B versions the files, routes priced quotes through the buyer's approval rules and budgets, and locks the accepted price into checkout.
  • It takes the Cmsmart B2B plan, a short settings pass, and, for your production-specific parts, custom development.

WooCommerce B2B request a quote with file upload is how a buyer — or a visitor who isn't a customer yet — asks for a price with their artwork attached, right from your product page. Cmsmart B2B turns that request into a priced, versioned quote the buyer accepts in their account, then checks out at the exact price quoted, with nothing re-typed along the way.

Right now, a buyer who wants something your catalogue price doesn't cover — a bigger run, a different size, their own cover stock — has one option: email you, attach a PDF, and wait. You retype the line items into a quote, price it by hand, and email it back as a PDF nobody can accept with one click. Multiply that across every custom job you quote monthly, and quoting becomes a second job with no record of which artwork version belongs to which price.

What does a manual WooCommerce B2B request a quote with file upload cost you?

Cmsmart B2B replaces the email-and-spreadsheet quote process with a quote record that carries its own artwork file, price and approval trail, so your team prices a job once instead of re-keying it at every stage from request to order.

The pain is familiar to anyone quoting custom print, signage or promo jobs by email:

  • Quoting delays — a request sits in an inbox until someone has time to price it, and "time to price it" competes with production.
  • Re-keying — the same product, quantity and price gets typed into a quote email, then again into an order, then again into a production ticket.
  • Version confusion — a buyer sends a revised PDF in a follow-up email, and nobody is quite sure which attachment is current when the job goes to print.
  • Reprints — a job printed against the wrong artwork version, or priced against the wrong quantity, becomes a reprint at your cost.
  • Lost deals — a buyer who doesn't hear back in a day or two just orders from whoever answers first.

Put a rough number on it without inventing one: quotes handled by email per month × minutes spent chasing attachments and retyping prices × your fully loaded hourly rate is the admin cost alone — before counting reprint rate × cost per reprint for jobs run against the wrong version. Lost deals compound it: in a 2025 survey of 200 B2B manufacturing and distribution leaders, 88% had lost a deal to a manual quoting process, and manual quoting leaked an average 5% of annual revenue (Aleran, 2025).

What would a fast, artwork-ready quote process look like?

With Cmsmart B2B, a buyer attaches their artwork and specifications when they ask for a price, your team prices the same request your pricing team sees on screen, and the buyer accepts and checks out without a single re-typed line.

Example scenario: a buyer needs branded booklets for an event next month. At 9pm, instead of waiting for office hours, they request a quote with the cover artwork attached right on your product page. The next morning, your pricing team opens the record with the file attached, prices it once, and sends it. The buyer accepts from their account and checks out at the quoted price, with the same file still attached to the order.

That expectation isn't a stretch: research summarized by ecommerce analyst Swell in 2026, citing Gartner, found 61% of B2B buyers now prefer a rep-free, self-service buying experience (Gartner, cited by Swell, 2026), including for quotes outside a catalogue price. Talk to an ecommerce expert about a plan for your store.

How does Cmsmart B2B turn a quote request into a locked-price order?

Cmsmart B2B adds a quote object to WooCommerce that carries the buyer's items, message and artwork files, routes the priced quote through their approval rule and budget, and locks the accepted price into checkout.

On the product page, a guest sees "Sign in to see your price," a link to apply for a business account, and a standing Request a quote button. A signed-in buyer sees their own contract price next to the list price, and the same quote option for anything outside the catalogue.

WooCommerce B2B request a quote with file upload: guest product page showing Sign in to see your price and a Request a quote button
A guest sees "Sign in to see your price" and can still request a quote — Cmsmart B2B demo.
WooCommerce product page as a signed-in B2B buyer, showing their contract price next to the list price
A signed-in buyer sees their contract price and the same Request a quote option — Cmsmart B2B demo.

The quote request page is one form either way: a signed-in buyer adds the product, quantity, options, a message and artwork files; a guest fills in the same request plus contact and company details, which also starts their business account application, confirmed by e-mail first.

Request a quote form with a product, quantity, message and an attached artwork PDF
A buyer's quote request, with a cover-artwork PDF attached.
Request a quote form for a guest visitor, with fields for contact and company details below the product request
A guest's request also opens a business account application, confirmed by e-mail.

Once sent, the request becomes a quote in the buyer's account: product, quantity, options and message, plus the file with its version and size — nothing re-typed from the original request.

A buyer's My Account quote page showing the request, the attached artwork file and its version history
The same request in the buyer's account: file, version and status.

On your side, the request lands in a "B2B quotes" list in wp-admin, filterable by company, status and expiry. Opening it shows what the buyer asked for next to the company's price list, payment terms, credit and approval rule.

wp-admin B2B quotes list with status tabs and columns for company, status, total and valid until
Every open request and sent quote in one list.
wp-admin quote detail showing what the buyer asked for, the attached file, and the company's price list and credit
What the buyer asked for, their file, and the account's price list and credit.

Once your team prices and sends the quote, the buyer sees a total, your notes, a printable quote PDF, and three choices: accept and check out, ask for changes, or decline. If the total is above the buyer's budget or approval limit, accepting routes it to their approver instead of straight to checkout.

Buyer's quote review screen with a budget warning and Accept and check out, Ask for changes and Decline buttons
Accept and check out, ask for changes, or decline — with a budget check first.
Printable quote PDF with prepared-for and from details, an item table and a valid-until date
The same quote as a printable PDF, for internal sign-off.

Cmsmart insight: keep the approval limit visible on the quote itself, not just at checkout. A quote over the buyer's limit should say so up front, so the surprise happens before they click accept, not after.

Once accepted — directly, or after an approver signs off — the quote's price is locked. Quotes within the buyer's limit can go straight to checkout; quotes above it become an order the buyer pays through a normal "pay for order" checkout, at the quoted price.

Accepted and approved quote showing the locked unit price and a Go to your order button
An approved quote, price locked, ready to become an order.
Pay-for-order checkout showing the quoted unit price, company budgets and payment methods
Checkout at the locked quote price, with the company's own budgets and payment methods.
StepEmail and spreadsheetCmsmart B2B quote workflow
Buyer sends artworkAttached to an email, easy to lose in a threadAttached to the quote record, versioned and kept with it
Pricing the jobRe-typed into a reply or a spreadsheetPriced once, on the same request the buyer sent
Buyer's answerA reply the buyer has to type outAccept, ask for changes or decline, in one click
Approval over budgetA manager cc'd on an email chainRouted automatically to the buyer's named approver
Turning it into an orderRe-keyed into a new order by handCheckout at the exact price that was quoted

What's the business value, and which KPIs should you track?

Cmsmart B2B's quote workflow turns admin time into tracked numbers: how fast a quote goes out, how often it's accepted, and how many orders still need a human to re-key anything.

BenefitHow it shows up in your businessKPI to track
Faster quotesPricing staff work from a complete request instead of chasing missing details by emailAverage time from request to sent quote
Fewer lost dealsBuyers get an answer while the job is still top of mindQuote-to-accept rate (won vs. expired or declined)
Fewer reprintsThe price and the artwork version travel together into the orderReprints caused by wrong artwork or quantity
Less admin timeNobody re-types a quote into an order or a production ticketStaff hours per month spent on quote admin

A rough ROI worksheet, with your own numbers: quotes by email per month (A) × minutes spent chasing files and retyping prices (B) × your fully loaded hourly rate (C) = monthly admin cost. Add reprints per month from version mix-ups (D) × cost per reprint (E) for a number worth comparing against a faster, file-attached workflow.

Speed matters more than it might seem: 42.5% of won proposals close within 24 hours of the buyer opening them (Proposify, updated 2026) — a quote sitting in an inbox for days is competing with one answered the same working day.

How do you set up quote requests with file upload in WooCommerce?

You set up quote requests with file upload as part of your Cmsmart B2B plan: install Cmsmart B2B, or start from Cmsmart B2B Store, then configure file types, size limits and expiry in a few settings screens.

  1. Confirm your store is on WooCommerce with the Cmsmart B2B plan (annual billing), either as an add-on to an existing store or as part of Cmsmart B2B Store, which bundles Cmsmart Product Designer (formerly NBDesigner) for catalogue products buyers customize online.
  2. In Cmsmart B2B → Settings, turn on quote requests for guests, signed-in buyers, or both.
  3. Set the accepted file types for quote attachments (PDF, AI, EPS, PNG, JPG or ZIP in the current demo) and the per-file and per-request size limits.
  4. Set how long a sent quote stays valid before it expires, so pricing doesn't go stale.
  5. Review the approval rule and budget fields on company and price-list records, so a quote above a buyer's limit routes to their approver automatically.
  6. Check the quote request received, quote sent and approval needed notification emails, and adjust the wording to match your team.
  7. Open Cmsmart B2B → Quotes and confirm your pricing team can see the buyer's message, items and files on a new request.
  8. Send a test quote request from a buyer account and a guest, price both, and walk each through to an accepted, locked-price checkout.

For the company accounts, price lists and payment terms this depends on, see our full walkthrough: Set up Cmsmart B2B Store for WooCommerce. For quote requests without file upload, see our WooCommerce B2B quote request workflow guide.

Cmsmart insight: set quote expiry a little shorter than feels comfortable. A quote still "awaiting an answer" after a buyer's monthly budget resets is one you'll likely end up repricing from scratch anyway.

What can Cmsmart build on top of your quote workflow?

Cmsmart builds the parts of a quote-to-order process that are specific to your business — from production-system hand-offs to multi-step sign-off — as custom development on top of Cmsmart B2B, not as changes buried in the core plugin.

Cmsmart B2B's quote request, approval and locked-price checkout cover the workflow every store needs. What's specific to your production process is where custom development comes in:

  • ERP / MIS hand-off — Cmsmart pushes an accepted quote into your production or MIS system as a job ticket, artwork file included, instead of someone re-keying it there too.
  • Multi-step sign-off — for buyers who need more than one approver, or a different chain by order size or product line, Cmsmart builds the extra routing on top of the standard rule.
  • Print-ready file checks on attachments — Cmsmart can connect quote attachments to AI preflight-style checks before a job is priced.
  • Quote-aware reporting — Cmsmart builds dashboards that tie quote turnaround and win rate back to the desk that priced it.

Delivery follows one path: discovery, solution design, build in sprints, QA against your catalogue and accounts, launch, then support — as in our ecommerce project case studies.

Plan a custom quote-to-order workflow

Why work with Cmsmart for your B2B quoting system?

Cmsmart has built ecommerce and web-to-print stores since 2012 as a Netbase JSC division, and the same team maintains the Cmsmart B2B plan and builds the custom development on top of it.

Cmsmart has delivered 6,300+ client projects since 2012, with 1,800+ stores live in 80+ countries, and holds a 4.2 rating from 404 reviews on Trustpilot. Try the quote-to-order flow yourself, with every role switched from one menu, on the live Cmsmart B2B demo, see current plans on our pricing page, browse other stores on our live demos page, or read about the wider picture on our B2B web-to-print solutions page.

Frequently asked questions

What file types and sizes can a buyer attach to a quote request?

In the current Cmsmart B2B demo, a buyer can attach PDF, AI, EPS, PNG, JPG or ZIP files, up to five files per request at up to 20 MB each. You set the accepted types and size limits in Cmsmart B2B → Settings.

Can a guest who isn't a customer yet request a quote?

Yes. A guest filling in the form also submits a business account application in the same step; Cmsmart B2B confirms their e-mail first, then the quote and application both wait for your team.

How long does a sent quote stay valid?

You set the expiry in Cmsmart B2B → Settings. A sent quote shows the buyer how many days are left to answer, plus a valid-until date on the printable quote PDF.

Is the price really locked once a buyer accepts?

Yes — the unit price on an accepted quote carries through to the order, whether the buyer checks out directly or their approver releases it first. Nobody re-enters the price.

Do all quotes need an approver's sign-off?

No. Only quotes above a buyer's budget or approval limit route to an approver; quotes within the limit go straight from accept to checkout. You set those limits per company.

Can we connect accepted quotes to our own production or ERP system?

Not out of the box — that hand-off is specific to each business's systems, so Cmsmart builds it as custom development, pushing the accepted quote and its artwork file into your system as a job ticket.