Shopify Payment Terms Per Customer: What's Possible
Shopify sets B2B payment terms per company location, not per customer. Here's how the structure works, where it breaks, and how to vary terms by buyer.
Key Takeaways
- 1Shopify has no per-customer payment terms setting. Terms are assigned to a company location, and every buyer ordering for that location inherits them.
- 2The B2B model is three layers: Company, then company location (where terms live), then buyer. Two buyers at one location always share terms.
- 3Location-level terms break when one buyer orders for multiple locations, or when the same location needs different terms based on order size.
- 4A Payment Customization Function reads the checkout and sets terms by customer tag, order value, or order history, which is the closest thing to per-customer terms.
- 5TermStack is a no-code rules engine for Shopify Plus that applies the right terms at checkout based on eight condition types, with an audit trail of every change.
You want to give one buyer Net 60 and another Net 30. Reasonable ask. So you go looking for where Shopify lets you set payment terms per customer, and you can't find it.
That's because it doesn't exist. Shopify Plus assigns payment terms to a company location, not to a customer. Understanding that one distinction explains most of the confusion around B2B terms, and it's the key to setting them up so they actually match your credit policy.
This post breaks down the Company to Location to buyer structure, shows exactly where "per customer" terms break down, and covers how to vary terms by the buyer, the order, or their history. For the wider picture, the complete guide to B2B payment terms covers the full framework.
Where payment terms actually live
Shopify's B2B model has three layers, and payment terms sit on the middle one.
- Company. The top-level account. "Acme Corp." A company can have one location or many.
- Company location. A billing and shipping entity under the company. "Acme Corp, Chicago." This is where payment terms live. Each location gets one assigned payment terms template.
- Buyer. An individual person with a login, attached to the company and permitted to buy for one or more of its locations.
So when you assign Net 30 in Shopify admin, you're not assigning it to a person. You're assigning it to a location. Every buyer who checks out on behalf of that location gets Net 30, and every order they place uses it.
Payment terms are a property of the company location. Not the customer, not the order.
That's the whole reason "payment terms per customer" returns nothing useful. The customer isn't where the setting lives.
What this means in practice
The location-level model is fine right up until your buyers stop fitting neatly into one location each.
Two buyers at the same location share terms. If Acme Chicago is set to Net 30, both the accounts-payable manager and the warehouse lead get Net 30 when they order. You can't give one of them different terms, because the term isn't attached to either of them. It's attached to Chicago.
That's usually what you want. A location is a credit relationship, and everyone buying for it inherits that relationship.
It breaks in two common situations:
- One buyer, multiple locations. A regional manager buys for Chicago, Detroit, and Milwaukee. Each location can have its own terms, so the buyer sees whichever terms belong to the location they picked at checkout. That's per-location, not per-buyer, and if you wanted this one person on consistent terms regardless of location, Shopify won't do it.
- Same location, different order context. You're happy with Net 30 for Chicago's regular restocks, but a $60,000 order should require a deposit. Native terms can't tell those two orders apart. Chicago is Net 30, full stop, whether the cart is $600 or $60,000.
Native payment terms are static. One value per location, applied to every order, until someone changes it by hand.
Varying terms by buyer, order, or history
To get closer to "per customer" behavior, you need something that reads the checkout and decides the terms in the moment. On Shopify Plus, that's a Payment Customization Function: a rule that runs at B2B checkout and can set the payment terms based on what it sees.
Instead of one static value per location, you define conditions. The three most useful:
- Customer tags. Tag a buyer's company
goldorhigh-riskand set terms off the tag. This is the closest thing to true per-customer terms. For the full pattern, see B2B payment terms by customer tier. - Order value. Keep Net 30 for normal carts, require a deposit once an order crosses a threshold. See B2B payment terms by order value.
- Order history. New accounts pay upfront, buyers past their fifth order graduate to Net 30. The rule reads order count at checkout.
Here's a concrete three-rule setup for a single location that native terms can't express:
- Rule 1. If the buyer's company is tagged
high-risk, require payment on fulfillment. No credit, regardless of order size. - Rule 2. If the order total is at least $25,000, apply Net 30 with a 20% deposit.
- Rule 3. Otherwise, apply Net 30.
Rules evaluate top-down, first match wins. A high-risk buyer hits Rule 1 and stops. A trusted buyer placing a $40,000 order skips Rule 1, matches Rule 2, and gets the deposit. Everyone else falls through to Rule 3. Same location, three different outcomes, decided by the order in front of you.
When native Shopify isn't enough
Native payment terms give you one value per company location. There's no per-customer setting, no way to vary terms by order size, and no way to hold one buyer to consistent terms across the locations they buy for.
TermStack is a rules engine for Shopify Plus B2B that sets payment terms at checkout based on customer tags, order value, order history, and other conditions, with an audit trail of every change. Try it free for 14 days →
TermStack runs as a Shopify Function, so the rules evaluate inside Shopify's own checkout infrastructure. No external calls, no checkout slowdown, and the location's own terms still apply as the fallback when no rule matches.
Quick reference
| What you want | Native Shopify | Needs a rules engine |
|---|---|---|
| One term for a whole location | Yes | Not needed |
| Different terms for two buyers at one location | No | Yes, via customer tags |
| Deposit only on large orders | No | Yes, via order value |
| New buyers pay upfront, established get Net 30 | No | Yes, via order history |
| Consistent terms for one buyer across locations | No | Yes, via customer tags |
Frequently Asked Questions
Summary
Shopify doesn't do payment terms per customer. It does terms per company location, and that model holds up well until you need to split two buyers at one location, vary terms by order size, or keep a buyer consistent across locations. That's the point where a rules engine like TermStack earns its place: it reads the buyer and the order at checkout and applies the terms your credit policy actually calls for.