Shopify PlusB2BPayment TermsWholesaleCash Flow

2/10 Net 30: Should B2B Shopify Merchants Actually Offer Early-Payment Discounts?

A practical analysis of whether 2/10 Net 30 early-payment discounts make financial sense for Shopify Plus B2B merchants, and what to use instead.

11 min read
2/10 Net 30: Should B2B Shopify Merchants Actually Offer Early-Payment Discounts?

Key Takeaways

  • 12/10 Net 30 costs the seller roughly 37.2% annualized to accelerate receivables by 20 days. If your cost of capital is lower than that, you are subsidizing your buyers unnecessarily.
  • 2The buyers who take the discount are usually your best-capitalized accounts — the ones who least need the incentive. Slow payers ignore it entirely.
  • 3For most Shopify Plus merchants with healthy AR aging and thin margins, structural tools like deposits and tiered terms outperform early-payment discounts without the margin bleed.
  • 4If you do offer an early-payment discount, offer it narrowly to specific accounts rather than as a blanket term. TermStack lets you encode this as a checkout rule that applies only where you decide it makes sense.

A wholesale buyer asks if you offer a 2% discount for paying in 10 days instead of 30. The textbook answer is yes. The honest answer, for most Shopify Plus merchants, is no.

2/10 Net 30 is the classic B2B early-payment discount. It looks generous from the buyer's side and disciplined from the seller's side. In a lot of finance textbooks, it is the example everyone gets taught. For a complete overview of how B2B payment terms work on Shopify Plus, the complete guide to B2B payment terms covers the full picture.

The math rarely works for most Shopify merchants I talk to. And worse, when the math does work, the discount often gets taken by the buyers you would least want to subsidize. This post breaks down when 2/10 Net 30 is a real cash-flow tool and when it is a slow leak you did not notice you were running.

What 2/10 Net 30 really is

2/10 Net 30 means the buyer gets a 2% discount if they pay within 10 days, otherwise the full invoice is due by day 30. On a $10,000 order, the buyer either pays $9,800 by day 10 or $10,000 by day 30.

On the buyer's side, the math is famously good. Skipping the 2% discount is the same as borrowing $9,800 for 20 days at a 2% fee. Annualize that and you are at roughly 37.2%. Any buyer with a corporate line of credit at single-digit rates should take the discount every time. It is one of the few finance lessons that survives in the wild more or less intact.

What is less talked about is what the same math means for the merchant offering the discount.

What the discount costs the seller

When you offer 2/10 Net 30, you are not just shaving 2% off some invoices. You are paying 2% to accelerate receivables by 20 days, on every order where the discount gets taken.

Annualized, that 2% for 20 days is roughly 37.2%. That is the rate you are effectively paying for that early cash. If you can borrow working capital cheaper than that — and most Shopify Plus merchants can through a line of credit, Shopify Capital, or just retained earnings — you are paying a premium to your buyers for cash you could source cheaper somewhere else.

The defensive answer is "but I needed the cash, and a credit line was not available." That is a real scenario for some merchants. For most, it is not. It is a habit picked up from B2B custom and applied without anyone running the numbers.

Now layer in two more costs that get ignored.

The first is that this discount almost always gets taken by your best-capitalized buyers. Big retailers, established wholesalers, mature DTC brands with AP teams. The buyers paying late are not the ones taking the 10-day window. They are the ones taking 35 days and ignoring the discount entirely. So your 2% is going disproportionately to the accounts that need the help least.

The second is operational. Every discounted invoice creates a question at reconciliation: did this buyer pay within 10 days, or did they pay on day 13 and still take the 2%? In practice, a meaningful share of "early" payments come in slightly late with the discount applied anyway, and chasing that 2% back is rarely worth the relationship friction. Your real cost is usually a bit higher than 2%.

2/10 Net 30 annualized cost breakdown showing the effective rate sellers pay to accelerate receivables by 20 days
2/10 Net 30 annualized cost breakdown showing the effective rate sellers pay to accelerate receivables by 20 days

When 2/10 Net 30 makes sense

The discount is the right call in specific situations. Three of them stand out.

You have a real cost-of-capital problem. If your alternative is factoring receivables at 1.5% per month, or you are running on credit card float at 24% APR, paying 37.2% annualized to accelerate cash starts to look more rational. It is not great, but it is not catastrophic. The merchants for whom this math works are usually undercapitalized for their growth rate, and the discount is functioning as a bridge.

You are targeting a specific cash-flow event. End of quarter, end of year, a tax deadline, a pre-order for inventory. A short-term, deliberate pull-forward of receivables can be worth a one-time premium. The mistake is leaving the discount on permanently when it was meant for a moment.

You are using it as a relationship signal, not a finance tool. Some merchants offer 2/10 Net 30 to communicate that they want to be paid on time and they are willing to share a little margin for the predictability. That is a legitimate use, but you should know that is what you are doing, and price it accordingly. If a 2% sweetener gets even your slowest-paying accounts to start paying inside 30 days, the value is not the 2%. It is that your AR aging report stops looking like a horror movie.

In each case, the discount is a deliberate trade. The merchant has decided that accelerated cash, predictable payment behavior, or relationship signaling is worth a known cost. That is a real decision.

When you should not offer it

For most Shopify B2B merchants, the default should be no early-payment discount, for a few reasons.

Your margin probably cannot absorb it cleanly. A lot of wholesale lines on Shopify run at 35 to 45% gross margin. Giving up 2 percentage points off the top is roughly 5% of your gross margin gone, on every discounted order. That is a meaningful hit if your AR aging is already healthy and you did not need the acceleration.

Your buyers are probably going to pay on time anyway. Shopify B2B selling is concentrated in segments where most buyers are reasonably prompt: independent retail, niche wholesale, recurring DTC pipelines. If your existing Net 30 buyers are mostly paying inside 30 days, you are not solving a real problem. You are paying to compress timing you would have gotten anyway.

The buyers who pay late will not take the discount. The buyers who would take the discount were going to pay on time. You are transferring margin to your most disciplined customers, which is generous but not strategic.

And critically, you are training your AP-savvy buyers to expect it. Once 2/10 Net 30 is in your terms, sophisticated buyers will assume it applies forever. Walking it back later is hard, because by then you have trained their AP system on the discount and they treat it as part of the deal.

A cleaner alternative for most merchants

If your real goal is to reduce DSO without bleeding margin to disciplined buyers, the better tools are structural, not promotional.

The first is a deposit on first orders. A 30% deposit at the time of order eliminates most of your cash-flow risk on new accounts and tells you immediately whether the buyer is operationally capable of paying. It costs you nothing in margin and it does not reward late payers. The complete guide to requiring deposits on B2B orders in Shopify Plus covers how to implement this at checkout.

The second is tiered terms based on payment behavior. Buyers with a clean history get Net 30. Buyers who have slipped past 30 days get moved to Net 15 or pay-on-fulfillment, automatically, via a customer tag. The pressure on slow payers comes from tighter terms, not from a discount their AP department was already going to take.

The third, if you really do want to incentivize faster payment, is a smaller discount applied more narrowly. 1/10 Net 30 cuts your annualized cost roughly in half. Or limit the discount to specific tiers — like first-order buyers or accounts you are trying to retain — instead of offering it broadly.

None of these need to be a flat, account-wide policy you set once and forget. They work best as conditions that evaluate at checkout based on what the actual order and account look like at that moment.

Decision flowchart: when to offer a 2/10 Net 30 early-payment discount versus using structural alternatives for Shopify B2B
Decision flowchart: when to offer a 2/10 Net 30 early-payment discount versus using structural alternatives for Shopify B2B

How this looks on Shopify Plus

Shopify Plus's native B2B settings let you assign a payment term to a company location. That works for the simple case where every buyer gets the same terms forever. It does not handle conditional discounts, dynamic terms based on order size, or tier-based logic.

For anything dynamic, you need Shopify Payment Customization Functions, which run at checkout and let you evaluate conditions before applying terms or requiring deposits. This is the modern replacement for Shopify Scripts, which shut down on June 30, 2026.

You can build the logic yourself with a Shopify developer. That works, and for very specific or unusual requirements it is the right path.

Want to offer early-payment discounts or tighter terms only to specific accounts, with the logic running automatically at checkout?
TermStack is a rules engine built on top of Payment Customization Functions for Shopify Plus B2B. Define conditions like "offer 1/10 Net 30 to accounts tagged priority-cash," "Net 30 only for verified accounts," or "first orders always require a 30% deposit." The logic runs at checkout automatically, no custom code needed. Try TermStack free for 14 days →

If you do decide an early-payment discount makes sense for a slice of your buyers, this is how I would build it. Not as a blanket term, but as a rule that applies to the specific accounts where you have decided the trade is worth it.

Frequently Asked Questions


Summary

2/10 Net 30 is not a bad tool. It is a misapplied one for most Shopify B2B merchants.

The annualized cost is real. The buyers who take it are usually the ones who least need the help. And the cash-flow problem it is solving often is not a problem you have.

If your AR aging is clean, your margin is thin, and your cost of capital is reasonable, skip the early-payment discount and tighten your terms structure instead. If you do offer it, offer it narrowly and deliberately — to specific accounts for specific reasons, with the rule that grants it visible at checkout rather than buried in an email thread.

The merchants getting this right are not the ones offering the most generous discount. They are the ones whose terms policy is tight enough that they do not need to bribe buyers to pay on time. TermStack is the toolkit for building that layer on Shopify Plus: deposit rules, first-order gates, tiered terms based on account tags, and conditional discounts that run at checkout without custom code.


Written by the team at Varr Labs

Back to all posts