---
title: "B2B Quote Engine — Quoting on Native Shopify Draft Orders | Human After All"
description: "B2B Quote Engine turns quote requests into native Shopify draft orders on real B2B companies. Statuses, expiry, rep assignment, per-line pricing and revisions — negotiated, revised and paid inside Shopify. Free plan with one agent seat; no per-seat pricing on any paid plan."
url: "https://humanafterall.ca/apps/b2b-quote-engine/"
language: "en"
markdown_index: "https://humanafterall.ca/api/md/index.md"
---

Labs — Shopify App

# B2B Quote Engine: Quoting on Shopify’s Native Draft Orders

Quotes that are real Shopify orders.

Turn quote requests into native Shopify draft orders on real B2B companies — negotiated, revised, and paid inside Shopify. The company’s catalog, payment terms and tax are already applied when the quote opens, because the quote _is_ a Shopify record rather than a copy of one.

[Talk to us →](https://humanafterall.ca/contact/) [See how it works →](#qe-how)

In development · Free plan with one agent seat, and one flat paid plan.

Draft _orders_every quote is a native one

0 _new systems_quoting lives in your admin

1 _checkout_buyers accept and pay in Shopify

Quote _pipeline_ 4 OPEN

Draft orders awaiting buyer decision

Atlas Industrial Supply

Draft #D-2418 · Net 30 · Rev. 3

VIEWED

$48,210 CAD · TOTALS BY SHOPIFY

M. TREMBLAY EXPIRES IN 4D 2 REVISIONS

Nordwind Wholesale GmbH

Draft #D-2411 · $12,940 · A. Roy

SENT

Cedar & Co. Distribution

Draft #D-2402 · $7,105 · M. Tremblay

EXPIRING

Illustrative interface · in development

01 — The gap

## Shopify has draft orders. You need a _quoting process_.

A rep can build a draft order today. What is missing is everything around it — who owns the quote, which version the buyer is looking at, when it expires, and where the buyer goes to accept it. So the process moves to email: a file attached to a thread, a spreadsheet tracking follow-ups, a price typed twice and reconciled never.

B2B Quote Engine adds that layer without leaving Shopify. Each quote is a native draft order on a real B2B company, with the company’s catalog, terms and tax already applied. Status, expiry and rep assignment sit on the record itself. The buyer sees the current version in the customer account they already have, and accepts it through Shopify’s checkout.

02 — How it works

## Request to order, in _four moves_.

01

### Request

A buyer requests a quote from your storefront, or a rep starts one from a Company page. Prospects with no company yet can still ask — the merchant decides who they are on approval, which is the judgement the product exists to keep with a person.

02

### Draft order

The request lands as a native Shopify draft order with the company’s catalog, price list, payment terms and tax already applied. Nothing is copied into a second system; the draft order is the record.

03

### Price and revise

The rep prices per line and revises. A revision is a new draft order linked to its parent, so the buyer always sees the current version and the history stays intact behind it — which means a buyer can still accept a previous version.

04

### Accept and pay

The buyer accepts and pays through Shopify’s checkout. The quote becomes an ordinary Shopify order, awaiting payment against the terms on the quote rather than marked paid on day zero.

03 — What’s in v1

## The quoting layer, _itemised_.

### Quote requests from your storefront

A theme app block, not an app embed — it loads only where you place it. Works for existing B2B buyers and for prospects with no company record yet.

### Statuses, expiry dates and rep assignment

Nine quote statuses mapped to Shopify’s three draft-order states, so the admin never shows a status the platform disagrees with. Expiry is evaluated on read, so nothing silently expires in a background job you cannot see.

### Per-line custom pricing

Override any line. Shopify calculates every total, tax and shipping amount — the app owns no commercial arithmetic, deliberately.

### Revisions with preserved history

Each revision is a real draft order pointing at its parent. A quote has at most one revision, enforced by a database constraint rather than by habit.

### Internal notes buyers never see

Margin reasoning and freight caveats stay on your side. Notes default to internal, because a note that leaks to a buyer cannot be un-leaked.

### A “My Quotes” page in the buyer’s account

Inside the Shopify customer account they already have — no second portal, no second password.

### Rep assignment on the native Company record

Stored as a typed metafield on the Company, not in a shadow copy of your customer data.

### Quote PDF and attachments

Spec sheets, signed POs and revised drawings ride with the quote. The PDF carries the customer information and line-level discounts that competing apps’ reviews complain are missing.

04 — Built on Shopify

## Nothing to _sync_.

B2B Quote Engine writes to the objects your store already runs on. Reps work in the Shopify admin they know, buyers work in the account they already have, and finance sees ordinary orders. There is no nightly job, no reconciliation screen, and no second source of truth to disagree with the first.

-   B2B company accounts
-   Native draft orders
-   Catalogs & price lists
-   Payment terms
-   Customer accounts
-   Shopify Flow

Where our local copy and Shopify ever disagree, the Shopify record wins and the app says so on screen rather than quietly picking one. An admin that lies about a commercial document is worse than one that admits it is out of date.

05 — Labs

## How does Quote Engine fit with _B2B Protocol_ and our other B2B work?

B2B Quote Engine is a module of [B2B Protocol](https://humanafterall.ca/shopify-apps/b2b-protocol/), the Shopify Plus B2B accelerator we deploy for manufacturers and distributors — ERP middleware, buyer segment routing, corporate spend control. Quote Engine handles one job inside it: quote requests, negotiation, revision and acceptance on Shopify’s native draft orders. [B2B Triage](https://humanafterall.ca/apps/b2b-triage/) answers the question before it — how buyers apply and get approved onto native B2B accounts in the first place. [SiteJob](https://humanafterall.ca/shopify-apps/sitejob/) adds job-site ordering for the construction and industrial trades.

The philosophy is identical across all of them: never build a parallel system beside Shopify. Create and assign the platform’s own objects, so merchants keep everything if they ever leave. If your quoting process needs more than this module — ERP-connected pricing, multi-segment routing, or a full [Shopify Plus implementation](https://humanafterall.ca/shopify-plus/) — that is our agency practice, and the [contact form](https://humanafterall.ca/contact/) is the door.

## Bring quoting back _into_ Shopify.

Questions about how quoting would fit your company accounts, catalogs and rep structure? Send a note and the team behind B2B Protocol will get back to you.

[Talk to us →](https://humanafterall.ca/contact/) [Read the FAQ →](#qe-faq)

B2B Quote Engine is built by Human After All — a B2B eCommerce and AI consultancy in Montréal, specializing in Shopify Plus implementations for manufacturers and distributors. Shopify Plus Partner. Forbes Agency Council member. Serving CA / US / FR.

## Frequently asked questions

Is B2B Quote Engine a separate quoting system?

No, and that is the whole design. Every quote is a native Shopify draft order attached to a native Company record. Nothing is mirrored into a second database that you would have to reconcile, export, or lose access to. The competing pattern — a quote as a row in the vendor’s own system, emailed as a PDF — means your negotiated prices and your quote history live somewhere your staff cannot edit and your other apps cannot read. Cancel that app and the program leaves with it. Here, a quote is an ordinary draft order: your team can open it in the Shopify admin like any record they built by hand, and Shopify’s own engine prices it.

Where do buyers see and accept their quotes?

On a “My Quotes” page inside their existing Shopify customer account, alongside their orders — not on a separate portal with a separate password. When a buyer accepts, they pay through Shopify’s own checkout and the quote becomes an ordinary Shopify order. That matters beyond convenience: the payment runs through Shopify’s PCI-compliant checkout rather than an invoice link from a third party, and the resulting order behaves like every other order in your reporting, your fulfilment, and your accounting export.

Does it respect our catalogs, price lists and payment terms?

Yes, and it does so by asking Shopify rather than by copying anything. A quote opens with the company location’s assigned catalog and price list already applied, so a B2B buyer sees their contracted price and not retail. We proved this against a live store before building on it: a variant retailing at $50.00 resolved to its $35.00 price-list price with no pricing logic of our own. Reps can override any line; Shopify still calculates the totals, the tax and the shipping. One correction worth stating plainly: Shopify does not copy a company location’s payment terms onto a draft order by itself — we verified that and the app writes them, so a quote actually carries Net 30 instead of silently carrying nothing.

What happens to our quotes if we uninstall?

They stay, because they were never ours. A draft order is a merchant-owned Shopify object and Shopify records no app-ownership link on it. The quote status, expiry and rep assignment ride as typed metafields in an unreserved namespace, chosen deliberately: a reserved app namespace would be private to us, but Shopify severs it on uninstall. We took the trade that keeps your data and stated its cost — an unreserved namespace is readable by other apps on your store. Your draft orders, companies, catalogs and orders are unaffected either way.

How is B2B Quote Engine priced?

There is a free plan with one sales-agent seat, and one flat paid plan with unlimited agents. There is no per-seat pricing on any paid plan, and that is a deliberate reversal of the category norm — the most resented line in competing apps’ reviews is being charged per rep, so that cost rises every time you hire. Capping seats on a free plan is an entry limit; metering them on a paid plan is a growth tax. The free plan is not a demo: every quote it creates is a real Shopify draft order on a real company, because the draft order is Shopify’s object and costs us nothing to give away.

How does Quote Engine fit with B2B Protocol?

Quote Engine is a module of B2B Protocol, the Shopify Plus B2B accelerator we deploy for manufacturers and distributors — ERP middleware, buyer segment routing, corporate spend control. Quote Engine handles one job inside it: quote requests, negotiation, revision and acceptance on Shopify’s native draft orders. The philosophy is identical across all of it — never build a parallel system beside Shopify. If your quoting process needs more than this module, that is our agency practice rather than an app, and the contact form is the door.
