Use case
How to apply customer-specific pricing on captured orders
How do you apply each customer's negotiated pricing on incoming orders automatically?
Mark Calo · Updated July 2026 · 4 min read
On this page
Who this is for: Small and mid-sized US wholesale distributors on QuickBooks Online where almost no customer pays list price.
Common pain points
- Each customer's real prices live in a side spreadsheet or in old invoices, and someone looks them up on every order
- The person who remembers every account's rates is a single point of failure
- Defaulting to list price quietly overcharges loyal accounts or undercharges new ones
- QuickBooks Online can't hand its per-customer pricing to any integration, because its API doesn't expose it
The workflow
- Connect QuickBooks Online. Your customers and items sync in. PeasyOrders then reads your past invoices once and proposes each customer's pricing from what you actually charged — you accept, adjust, or discard it before anything applies. A CSV price list works too.
- Set your pricing layers. Negotiated customer-and-product prices, customer-and-category rules, price lists or tiers, blanket customer discounts, and base item price — the layers most wholesale pricing already uses.
- Capture the order. When an order arrives by email — in the body or as a PDF or spreadsheet attachment — PeasyOrders identifies the customer and matches each line to your catalog. Phone orders are added in one click.
- Apply pricing by fixed precedence. Each line gets that customer's price by a fixed order of precedence, most specific rule first, and the line shows which rule produced the price.
- Review and resolve. A line with no applicable price is flagged, and confirmation is blocked until every line is priced. If you correct the customer, every line re-prices.
- Export with the right prices. Approve and export to QuickBooks Online as an Estimate by default (configurable), or to Google Sheets or CSV, with the agreed prices already on the lines.
What it takes to price a captured order
To apply customer-specific pricing on a captured order you have to do three things in order: identify the customer, match each line to a product, then apply that customer's agreed price to it. The hard part isn't storing the prices — it's resolving the right one on every messy incoming order without a person checking each line. In wholesale, almost no one pays list price, so the order that reaches your books has to carry each customer's real numbers, not the catalog's.
That's manageable when one person who knows every account types the orders in. It stops being manageable when orders arrive as emails with PDF and spreadsheet attachments, volume climbs, and the person who remembers that "Westside Grill gets the Tier 2 rate minus the wine deal" is on holiday.
What does customer-specific pricing actually mean?
"Customer-specific pricing" is an umbrella for several layers that often stack on the same account:
- Price lists or tiers. Customers are grouped — Tier 1, Tier 2, "key account" — each with its own prices.
- Blanket customer discounts. A flat percentage off everything for a given customer.
- Category rules. A discount on a whole category for one customer — say, 10% off all wine.
- Negotiated item overrides. A specific price on a specific product for a specific customer, agreed by hand.
- Volume breaks. Price drops at quantity thresholds — a case rate versus a pallet rate. This layer exists across the industry; it's not part of PeasyOrders' launch pricing engine, so we name it here as context, not as a feature.
It's common for one customer to have a tier and a category deal and a couple of negotiated overrides. The complexity isn't any single rule — it's that several can apply to the same line at once.
Which price wins? Precedence
When more than one rule could apply, you need a fixed order of precedence, applied identically every time. PeasyOrders runs from most specific to least:
- Exact customer + product negotiated price
- Customer + category rule
- Price list / tier assigned to the customer
- Blanket customer discount
- Base price of the item, synced from QuickBooks Online
The principle: the more specific the agreement, the higher it ranks. What matters operationally is that the outcome is consistent and explainable — for any line, you can see which rule produced the price. The stakes are real: in Sana Commerce's 2025 B2B buyer research, most buyers (55–64% across the questions asked) expect their agreed, personalized pricing to be reflected accurately when they order. Getting it wrong costs trust, not just margin.
Here's the same product priced for three customers:
| Customer | Rule that applies | Price for one case |
|---|---|---|
| Westside Grill | Negotiated override on this item | $78 |
| Harbor Bistro | Tier 2 price list | $84 |
| New account (no agreement) | Base list price | $96 |
Same item, three correct-but-different prices — and a person retyping the order has to know which is which, every time.
Can QuickBooks Online do this for you?
Not through any integration — and that's a fact about QuickBooks Online's API, not a swipe at it. QBO's price rules have sat in beta for years and are not exposed in the API; the only price an integration can read is each item's base price. So no tool, PeasyOrders included, can "sync your customer pricing from QuickBooks" — there's nothing to sync from.
PeasyOrders is built as the pricing engine instead. The per-customer rules live in PeasyOrders, get applied line by line as each order is captured, and the Estimate that exports into QuickBooks Online already carries the agreed prices. To spare you loading it all by hand, PeasyOrders reads your past invoices once when you connect QuickBooks and proposes a price per customer per product from what you actually charged — you accept, adjust, or discard before any of it applies. A CSV price list, or starting from base prices only, works too.
Pricing · Harbor Café
Olive Oil 500 ml
$8.40
Customer priceRye Loaf
$3.80
Customer priceSourdough Loaf
$4.10
List price
Proposed from your past invoices — nothing applies until you accept it.
Why is applying it on captured orders hard?
Storing prices is easy. Applying the right one to a real, messy order is where it breaks down:
- Pricing flows from the customer — so identify them first. Until you know it's Westside Grill, you can't price a single line. PeasyOrders flags uncertain customer matches rather than guessing.
- The order names products loosely. "The usual house red" has to become a real item before any rule can attach to it. Matching comes first, pricing second.
- List price is almost always wrong. Defaulting to catalog price quietly overcharges loyal accounts or undercharges new ones — and someone notices.
- A wrong price reaches an invoice. Unlike a typo in a note, a pricing error hits margin or the relationship directly.
- Changing the customer must change every price. If you correct who the order is for, stale prices can't survive. PeasyOrders re-prices the whole draft on a customer change.
- Lines with no price must stop the order. PeasyOrders blocks confirmation while any line is unpriced, so nothing reaches your books with a guessed number.
How PeasyOrders applies customer pricing
Pricing is part of capture, not a separate step:
- It identifies the customer on the incoming order and applies their pricing by the fixed precedence.
- It shows which rule produced each price, so a line is never a mystery number.
- It re-prices when you change the customer, so old assumptions don't linger.
- It blocks confirmation if a line has no price, so nothing exports unpriced.
- A person reviews before export — pricing is applied automatically, never posted blindly.
The result: the Estimate that lands in QuickBooks Online — or the row that lands in Google Sheets or CSV — already carries what you actually agreed, with a visible trail for any line you want to check.
The bottom line
Customer-specific pricing isn't hard to store — it's hard to apply correctly on every order that comes in loose and fast. The fix is to make pricing part of capturing the order: identify the customer, match the lines, apply the right rule by a fixed precedence, show your work, and stop anything that can't be priced. QuickBooks Online's API won't hand that job to any integration, so PeasyOrders does it upstream — and the prices in your books end up being the ones you agreed, without anyone checking a sheet line by line.
Frequently asked questions
What is customer-specific pricing in B2B?
Charging different customers different prices for the same product, based on agreements you've made with each. In wholesale that's the norm, not the exception: a customer might sit on a tier or price list, get a blanket discount, have a special rate on one category, or a negotiated price on a specific item. The right price for any line depends on which of those applies.
Which price wins when a customer qualifies for more than one?
You need a fixed order of precedence, applied the same way every time. PeasyOrders runs from most specific to least: the exact customer-and-product price first, then a customer-and-category rule, then the customer's price list or tier, then a blanket customer discount, and finally the item's base price. For any line you can see which rule produced the price — guessing per order is how margin leaks.
How do I apply customer pricing when orders arrive by email?
Three things have to happen in order: identify the customer, resolve each line to a product, then apply that customer's price to it. Done by hand it's slow and error-prone. PeasyOrders does all three as it builds the draft — it identifies the customer, matches each line to your catalog, applies their pricing by precedence, and flags anything it can't price for review.
Does PeasyOrders sync my customer pricing from QuickBooks Online?
No — and neither can anything else, because QuickBooks Online's API doesn't expose per-customer pricing. Its price rules have sat in beta for years and aren't available to integrations; the API only exposes each item's base price. That's why the pricing engine lives in PeasyOrders: it holds and applies the rules QuickBooks Online can't hand over, and the Estimate that exports back already carries each customer's real prices.
Where do the proposed prices come from when I start?
From your own history. When you connect QuickBooks Online, PeasyOrders reads your past invoices once and builds a proposed price per customer per product from what you last charged. Nothing derived this way applies until you accept it — you can take it in bulk, adjust it, or discard it and load a CSV price list instead.
What if a product has no agreed price for that customer?
It should stop you, not guess. PeasyOrders flags a line it can't price and blocks confirmation until it's resolved, so an order never reaches your books with a missing or made-up price. Catching it at review is far cheaper than catching it on an invoice.
What happens if the wrong customer gets assigned to an order?
Then every price can be wrong, because pricing flows from the customer. PeasyOrders flags uncertain customer matches, and if you correct the customer on a draft it re-prices every line — stale numbers from the wrong account don't survive the change.
Does PeasyOrders handle volume breaks?
Not at launch. Volume breaks — a lower price past a quantity threshold, like a pallet rate versus a case rate — are a real layer of wholesale pricing, but they're not part of PeasyOrders' launch pricing engine. The launch precedence covers negotiated customer-and-product prices, customer-and-category rules, price lists and tiers, blanket discounts, and base price. Lines a rule can't price are flagged rather than guessed.
Do my customers need a portal to see their pricing?
No. A portal can show buyers their prices — useful for the ones who'll log in, and many won't. Applying pricing on captured orders works the other way around: customers order however they already do, and the correct price is applied on your side as the order is built. No login required of them.
Related pages
- Use caseHow to automate wholesale order processing
- Use caseHow to set up an order validation workflow
- Use caseHow to automate 'the usual' recurring orders
- IntegrationPeasyOrders + QuickBooks Online integration
- Use caseHow to automate email orders to QuickBooks Online
- QuickBooksCustomer-specific pricing in QuickBooks Online