Basis Ventures · Guides for Shopify B2B merchants

"Who owes me money?" — finding unpaid wholesale orders in Shopify

With and without B2B Companies — including the draft-order invoices that quietly go missing.

"Who owes me money right now?" is the simplest question a wholesale seller asks, and Shopify makes it surprisingly hard to answer in one place. The trap is not the orders you can see — it is the ones that live somewhere else. This guide covers how to pull a complete who-owes-me list, whether or not you use B2B Companies.

The two kinds of wholesale receivable in Shopify

Money owed to you on net terms usually arrives in Shopify in one of two shapes:

A complete answer to "who owes me" has to include both. Most spreadsheets and quick filters only catch the first.

Step 1 — the orders you can see

  1. Open Orders.
  2. Filter to Payment status: Pending (add Partially paid if you take deposits).
  3. That list is your visible unpaid orders — including unpaid orders from B2B Companies.

Step 2 — the draft-order invoices you can't

Here is the part people miss. A draft order only becomes a real order once it is marked as pending payment (or paid). Until then, an invoice you have already sent sits under Orders → Drafts, not in the Orders list you just filtered.

  1. Open Orders → Drafts.
  2. Look for drafts you have sent as invoices but that have not been paid.
  3. Add those to your who-owes-me list. For many wholesale sellers, these are the oldest and largest debts, precisely because they never appeared next to the normal unpaid orders.

If you invoice non-Company customers this way, this second list can be as big as the first — and skipping it is why a total pulled from Orders alone always feels too low.

Step 3 — turn "unpaid" into "who, and how overdue"

A flat list of unpaid orders is not yet an answer. Group it:

Now "who owes me money" has a real answer: this customer, this much, this overdue.

Two honesty checks before you chase

Did they already pay you off-Shopify?

Wholesale customers often pay by bank transfer or cheque, which leaves the Shopify order reading "pending." Reconcile those first, so your who-owes-me list does not include people who paid you last week. Chasing a customer who already paid is the fastest way to damage a good account.

Was there ever an agreed due date?

If an order or draft never had a payment term attached, "overdue" is your inference, not a fact Shopify recorded. It is fairer — and it collects just as well — to open with a gentle "is this one still open on your side?" than a hard past-due notice.

Disclosure — this is my app. Pulling both lists and aging them every week got old, so I built a small, read-only Shopify app that does the aging for you: Basis Receivables.

It reads your B2B companies, orders and payment terms and shows one who-owes-me report: orders on a B2B Company's account are grouped per company, worst first, and aged into current / 1-30 / 31-60 / 61-90 / 90+ days. Crucially, it also ages the unpaid orders you created from draft orders, each listed under its order number (the app does not show customer names on these rows), so wholesale customers who are not set up as B2B Companies are included, not missed. A draft still sitting under Drafts is not an order yet. Unless you have given the app access to draft orders, it cannot see such a draft, so complete it first: in the draft, choose "Payment due later" and a term, then "Create order". A draft the app does list is one whose invoice you sent, marked "Draft invoice (not yet an order)". An order with no Shopify payment term is aged from its order date and marked Can't verify, and the reminder it drafts on the paid plans reads as a payment query, not a past-due notice. It is read-only — no write access, so it cannot change an order, a price or a customer — and it keeps no database: it stores no order or customer record. The free tier shows the full report for up to five companies and five unpaid invoices outside Companies; drafted reminders come with the paid plans.

See it on sample data — no install

Or find it on the Shopify App Store: Basis Receivables.

Frequently asked questions

How do I find all unpaid orders in Shopify?

Filter Orders by payment status Pending (and Partially paid if you take deposits), then also check Orders → Drafts for invoices you have sent but not converted. The Orders filter alone misses draft-order invoices.

Do I need B2B Companies to track who owes me?

No. You can invoice any wholesale customer from a draft order without a Company. Those draft-order invoices are receivables too — and the ones most often left out.

Why don't my draft-order invoices show with my other unpaid orders?

A draft becomes a real order only when it is marked pending or paid. Sent-but-unpaid draft invoices live under Drafts, not Orders, so an Orders filter will not list them.