Accounts receivable for Shopify wholesale: tracking AR aging and DSO
If you offer net terms, you have accounts receivable — the money your wholesale customers owe you but haven’t paid yet. Managing receivables well is the difference between terms being a growth lever and terms being a slow leak. And the first thing most Shopify wholesale merchants discover is that Shopify won’t show them their receivables in any useful, aggregated way.
This guide explains what to track, how to read an aging report, how to calculate DSO, and how to actually see it all for a Shopify B2B business.
Why Shopify doesn’t show you your AR
Shopify tracks payment status on each individual order — you can open an order and see whether it’s paid, pending, or partially refunded. What it doesn’t do for B2B is aggregate. There’s no native report that says “Acme Wholesale owes you $14,200 across five invoices, two of which are more than 30 days overdue.” The data exists, scattered across orders; the view doesn’t.
For a handful of accounts you can reconstruct it by hand. Past a dozen, you need a real accounts-receivable view — either a disciplined spreadsheet you update religiously, or an app that computes it from your order data automatically.
The AR aging report
The core tool of receivables management is the aging report. It takes every open (unpaid) invoice and sorts it into buckets by how overdue it is:
| Bucket | Meaning |
|---|---|
| Current | Not yet due |
| 1–30 days | Recently overdue — usually just slow, worth a nudge |
| 31–60 days | Overdue enough to act on |
| 61–90 days | Serious — tighten this account |
| 90+ days | At real risk of becoming a write-off |
Read left to right, the report tells you how healthy your book is. Money concentrated in Current and 1–30 is normal. Money drifting into 61–90 and 90+ is your early-warning system — those balances rarely improve on their own, and they’re where you focus collection effort before they turn into bad debt.
The aging view also tells you which accounts are the problem, not just the total. One customer sitting in the 90+ bucket is a specific conversation; a general “receivables are up” number isn’t actionable.
DSO: your collection speed in one number
Where the aging report shows structure, Days Sales Outstanding (DSO) shows trend. DSO is the average number of days it takes you to collect after a sale:
DSO = (Accounts Receivable ÷ Total Credit Sales) × Days in Period
Example: $50,000 in receivables against $200,000 of credit sales over a 90-day quarter gives (50,000 ÷ 200,000) × 90 = 22.5 days. On Net 30 terms, a DSO of 22.5 is excellent — you’re collecting before the average due date. A DSO of 45 on Net 30 means, on average, customers are paying two weeks late, and your cash is tied up longer than your terms intend.
Track DSO over time. The absolute number matters less than the direction: a rising DSO means collections are slipping and it’s time to tighten limits or handling before it hits cash flow.
How to track AR for Shopify B2B
The spreadsheet route. Export orders, mark which are paid, calculate due dates from each company’s terms, and bucket the unpaid ones by age. It’s free and it works — but it’s only as current as your last manual update, and it drifts the moment you get busy, which is exactly when you most need it accurate.
The automated route. Quay builds an AR aging dashboard from your live Shopify order and refund data — outstanding balance per company, aging buckets, and DSO, recalculated as orders and payments come in. The same numbers that feed the dashboard also feed enforcement, so what you see and what the app acts on are never out of sync.
From seeing to acting
An aging report is diagnostic; the point is to do something with it. This is where receivables tie back to credit limits and checkout enforcement. The aging state of an account is the strongest signal for how firmly to treat it:
- Current / within limit — no intervention.
- Over limit — soft brake: the buyer pays on the order instead of on terms.
- Overdue — hard case: escalate to a checkout-blocking hold until the balance is cleared.
Quay automates that escalation using the aging it computes, so an account that slides from healthy to 60-days-overdue is handled by a policy you set once, not by you remembering to check. Seeing your receivables is step one; the value is in what happens next.
Frequently asked questions
Does Shopify have an accounts-receivable or AR aging report?
Not for B2B net terms. Shopify shows a payment status on each individual order, but there is no native report that aggregates unpaid invoices by company and groups them by how overdue they are. You either build that view in a spreadsheet or use an app that computes it.
What is an AR aging report?
An accounts-receivable aging report lists every unpaid invoice grouped into buckets by age: current (not yet due), 1–30 days overdue, 31–60, 61–90, and 90+. It tells you at a glance who owes you, how much, and how late — which is the earliest signal that an account is going bad.
How do I calculate DSO for my Shopify wholesale business?
Days Sales Outstanding = (accounts receivable ÷ total credit sales) × number of days in the period. If you have $50,000 in receivables and $200,000 in credit sales over 90 days, DSO = (50,000 ÷ 200,000) × 90 = 22.5 days. Lower is better; a rising DSO means you're collecting more slowly.
How does AR aging connect to blocking checkout?
Overdue balances are the strongest trigger for enforcement. An account that is simply over its limit this week is a soft case (pay on order); an account that is 60 days overdue is a hard case. Quay uses the aging state to escalate a company from monitored, to pay-on-order, to a checkout-blocking hold.