B2B & Wholesale Orders
Stop wholesale orders from flattering your ad spend
One wholesale order in a blended ad-spend pool does two things at once: it absorbs acquisition cost it never consumed, and it shrinks the per-order figure every real D2C order divides. Paid acquisition quietly looks more efficient than it is. MerchantFlow detects wholesale orders from the payment method or an order tag, keeps them out of ad-spend allocation on both sides, and still counts every one of them in revenue and profit.
The orders view
Storefront and wholesale, one list, two types
Wholesale rows are badged B2B and carry no ad spend. Filter by order type to see either side alone, and read the ad cost per online order against the blended figure it replaced.
Orders
True per-order profit. Wholesale orders are kept out of ad-spend allocation.
Online orders
1,284
In selected period
Wholesale orders
37
$48,620 revenue, detected automatically
Ad cost per online order
$31.20
Was $30.33 with wholesale in the pool
Wholesale ad spend
$0
Excluded from allocation on both sides
| Order | Type | Revenue | COGS | Ad spend | Gross profit | Margin | Status |
|---|---|---|---|---|---|---|---|
B2B-000142Apr 28 - Northwind Retail Ltd - 240 items | B2B | $6,480 | $3,564 | $0 | $2,916 | 45.0% | Processing |
#10428Apr 28 - Sarah M. - 3 items | Online | $287 | $99 | $31.20 | $158 | 54.8% | Fulfilled |
#10427Apr 28 - James K. - 1 item | Online | $124 | $53 | $31.20 | $40 | 32.3% | Fulfilled |
#10426Apr 27 - Alpine Outdoor GmbH - 96 items | B2B | $2,688 | $1,478 | $0 | $1,210 | 45.0% | Fulfilled |
#10425Apr 27 - Marcus T. - 4 items | Online | $413 | $168 | $31.20 | $213 | 51.6% | Processing |
#10424Apr 27 - Linda R. - 1 item | Online | $89 | $49 | $31.20 | $9 | 10.3% | Fulfilled |
B2B-000141Apr 26 - Harbour & Co - 150 items | B2B | $4,125 | $2,269 | $0 | $1,856 | 45.0% | Fulfilled |
#10422Apr 26 - Hana S. - 5 items | Online | $525 | $199 | $31.20 | $295 | 56.2% | Fulfilled |
Illustrative data - not representative of actual performance
The problem
Wholesale revenue is real. Wholesale ad spend is not.
Most profit tools treat every order the same. The moment a distributor's order lands next to a hundred storefront orders, three numbers you rely on start lying at once.
Your D2C efficiency gets inflated
Blended allocation splits the day's ad spend across every order. A wholesale order takes its share and every storefront order is charged a little less than it really cost to win. Total spend is unchanged, so nothing looks wrong, but every order's margin is misreported.
Deals closed over email never reach the store
A purchase order agreed by email and paid by bank transfer never goes through checkout, so it never syncs. Your P&L understates revenue and profit by exactly the size of your wholesale business.
A distributor looks like a retail customer
When a buyer places a large order through the normal storefront, they enter your customer list, your cohorts and your LTV as if they were a shopper. One net-30 order can rewrite an acquisition cohort's numbers.
What you get
Wholesale in your profit, out of your acquisition cost
Classify once, by rule or by hand, and every downstream number sorts itself out.
Automatic detection from the signals you already have
Wholesale orders usually arrive as draft orders paid outside checkout. Match on the payment method (Shopify reports "manual" for a draft order, or the name of your manual method such as "Bank Deposit"), or on an order tag such as "wholesale" that a Shopify Flow already applies. Your whole order history is reclassified when you save.
Out of ad-spend allocation on both sides
A B2B order carries no ad spend and is removed from the count your D2C orders divide, so the day's allocations still sum to the day's true spend. It stays in revenue, P&L, product profit and margin, because the sale was real.
Enter deals that never touched your store
Add a wholesale order by hand with its own line items, reference number, freight cost and landed COGS. It uses your existing product costs and carries no ad spend. Or open a synced order and mark it wholesale after the fact. Manual entry and order adjustment are available on Pro and Plus.
Cohort and customer views stay D2C
A wholesale buyer is not a retention signal. B2B orders are kept out of your cohorts and customer roll-ups, and a wholesale deal you enter by hand never touches customer, LTV or cohort views at all. Anything you classified by hand keeps your choice; detection never overrides it.
How it works
Three steps to honest D2C numbers
Connect your store
Orders sync with their payment method and tags. Nothing new to install, and nothing to re-import.
Turn on a detection signal
Under Settings, choose payment-method matching, tag matching, or both, and add the values that mean wholesale for you. Matching ignores capitalisation and only ever matches a whole value, never a fragment.
Read the numbers that changed
Filter Orders by type, compare ad cost per online order with the blended figure it replaced, and watch your D2C per-order ad cost and margins settle on what they really are.
FAQ
Questions about wholesale and B2B orders
How does MerchantFlow know an order is wholesale?
You tell it what wholesale looks like in your store. Shopify reports the payment method "manual" for a draft order collected outside checkout, and a named manual method reports its own name, so the payment-method list is editable rather than a fixed rule. If a Shopify Flow already tags your wholesale orders, tag matching works from that instead. Turn on either signal, or both, under Settings.
Does this work with WooCommerce?
Payment-method matching does: WooCommerce orders sync with their payment method title, so a bank-transfer or invoice method can mark them as wholesale. Tag matching reads Shopify order tags, so it applies to Shopify stores. On either platform you can also mark any synced order as wholesale by hand.
Does this change my total ad spend?
No. Total spend is exactly what the ad platforms reported. What changes is who carries it. Before, a wholesale order absorbed a share it never consumed and every storefront order was charged less than it really cost. After, the same spend lands entirely on the orders advertising actually produced.
Do wholesale orders still count in my profit?
Yes. A B2B order counts toward revenue, P&L, product profit and margin like any other order, using your product costs and any freight or landed cost you enter. The only things it is kept out of are ad-spend allocation, your cohorts and the D2C customer roll-ups.
What if I already classified some orders by hand?
They keep your choice. Automatic detection only ever touches orders it classified itself, in either direction, and turning detection off only reverts those. A re-sync never resets a classification either.
Which plans include this?
Automatic detection and the order-type filter are available on every plan. Entering wholesale orders by hand and adjusting a synced order (sales channel, freight cost, landed COGS) are available on Pro and Plus.