How do you track unpaid net 30 wholesale orders? Spreadsheet is stressing me out

Small brand, 12 stockists on net 30 since the B2B rollout in April.

Sat down last week to work out what I’m actually owed -took an hour of clicking through orders. One shop has 3 unpaid orders from May and Shopify let them place a 4th on Tuesday like everything’s fine

Also no idea how to decide if a new stockist deserves net 30. Current system: “they seem nice.”

Is there an app for this that actually works? Or is everyone just reconciling in Xero / spreadsheets? What’s your setup?

@Nithi1994 Shopify can track payment due dates and send reminders, but it does not prevent a company with overdue invoices from placing another order. With only 12 clients, I would create a saved view for unpaid and overdue orders. New orders from companies with overdue payments should first be sent to drafts for review. New clients could start on prepayment, with Net 30 offered only after several successful payments. Reconciliation can remain in Xero, but restrictions on new orders should be handled in Shopify

Adding the exact setup to Tetianaholub’s draft-review suggestion:

Go to Customers > Companies, select the company or company location, then open Checkout > Edit. Under Order submission, choose Submit all orders as drafts for review.

Future checkouts from that company or location will then land in Drafts for approval instead of becoming normal orders automatically. It is not tied automatically to overdue status, so with 12 stockists the simple approach is to turn it on when an account goes overdue and turn it off only after the account is current.

This is a review gate rather than a complete checkout block: the buyer can still submit the cart, but you decide whether to approve the order.

Your second question is the one nobody’s answered, and long term it’s the more useful one.

A workable version of “does this stockist deserve net 30”, without turning yourself into a credit department:

Start every new account on prepayment for the first two or three orders. Not a judgement, just policy — say it up front and it never gets awkward. Then give terms, but set the limit lower than feels polite. Easy to raise after two clean cycles, very awkward to cut once you’re already exposed.

Ask for the AP contact and the PO number at the moment you grant terms, not later. An invoice that doesn’t match a PO sits in someone’s manual queue, and that queue is where Net 30 quietly becomes Net 60.

And plan your cash at 45 days even on Net 30. Most larger accounts aren’t being difficult, that’s just their cycle.

On the tracking half — the draft-order toggle above is the only native lever, and the thing worth knowing is that Shopify has no credit limit field at all. Whatever number you settle on lives outside the platform, in your head or your spreadsheet.

One more that catches people out: if any of your stockists pay by bank transfer, Shopify never sees that money. Those orders stay unpaid in Shopify forever unless you mark them paid by hand. That’s usually the reason a spreadsheet and Shopify disagree by thousands, and it’s worth checking before you trust either number.

HI @Nithi1994

You’re definitely not alone. As B2B order volume grows, manually tracking outstanding invoices and payment terms becomes difficult, especially when customers can continue placing orders despite having overdue balances.

Ideally, a B2B workflow should let you see outstanding balances at a glance, apply credit limits or payment holds. For overdue accounts, and make it easier to assess new stockists before offering terms. Until Shopify adds more native controls, many merchants end up relying on accounting software like Xero or separate AR tools to manage credit and reconciliation.

I’m a supply chain student looking into how small brands handle wholesale credit right now, and your post caught my eye. What are you actually basing new stockist decisions on when gut feel isn’t enough? Do you ask for anything upfront, like trade references or a first order paid in full, or is it more that you watch how the first few invoices go before you loosen up?

Hey @Nithi1994

hope you’re doing well!

I’d look at apps like B2B Handsfree or Balance by Boost flow for credit limits and payment controls. otherwise, most merchants end up managing it through Xero plus spreadsheets.

The hour of clicking has a 15-minute fix that needs nothing but the admin and a spreadsheet, because the orders export already carries every number you need:

  1. Orders → filter Payment status to Payment pending → Export → “orders matching your search.”
  2. Keep four columns: Billing Company, Outstanding Balance (this one, not Total — it already handles part-payments), Next payment due at, and Name (the order number, for chasing specifics).
  3. Add a bucket column (due date in column D): =IF(TODAY()<D2,"Current",IF(TODAY()-D2<=30,"1-30",IF(TODAY()-D2<=60,"31-60","Over 60")))
  4. Pivot it: rows = Billing Company, columns = bucket, values = sum of Outstanding Balance.

That’s a real aging report — every stockist on one row, sorted by how late they are. Rebuild it the same morning every week and the shop with three unpaid orders from May stops being a surprise: they’d have been sitting in your 31–60 column for weeks before order #4 arrived.

On order #4 itself: @cuongnm_trooix’s draft-review toggle is the only native lever, and the practical way to run it is inside that same weekly look. Anyone lands in 31–60 → flip their company to “submit all orders as drafts” that morning; flip it back when they’re current. Manual, yes — but it’s one click once the report exists, instead of a discovery after the order’s already through.

On whether a new stockist “deserves” net 30 — @onurcanogul’s prepay-first policy above is the answer I’d underline, and the only thing I’d add is: collect it on paper. A one-page credit application (two trade references you actually phone, their AP contact’s direct email, how their PO process works) turns “they seem nice” into a ten-minute check. We put up a free editable template with no email wall — it’s on termspilot.app under Templates; links don’t post here.

And your direct question — full disclosure, I’m the founder of an app in exactly this space, so weigh accordingly: TermsPilot is the three things in your post as one screen. The aging view above, kept live per company; reminder emails that keep going until an invoice is actually paid; and per-company credit limits that flag or hold order #4 while #1–3 are unpaid. Honest fit note: the free plan’s aging dashboard covers 5 companies and you have 12, so free is a way to judge it against your own numbers, not a permanent home. Other apps were named above too — whichever you trial, insist on one thing: it must show outstanding balance per company, not just per order, or you’re back to clicking.

And if you’d rather stay on the spreadsheet: the recipe genuinely holds at 12 stockists. It stops working the week the rebuild starts getting skipped — that’s the honest failure mode.