Held orders and stock
Sometimes Shopify refuses to charge a subscription order because of a stock problem, not a payment problem. Gro holds these orders for you to sort, instead of treating them like a declined card.
Why an order gets held
Section titled “Why an order gets held”| Reason | What it means |
|---|---|
| Out of stock | There isn’t enough stock and overselling is turned off. See Overselling. |
| Inventory location not set | Shopify can’t find an active location that stocks the item and fulfils online orders. This is a store setup problem, and it can happen even with overselling on. |
Shopify shows the second one as “No inventory location found or enabled”. For local delivery orders it also means no active location offers local delivery to the customer’s address, and for pickup orders that the pickup location is inactive. A subscription with no delivery address on its contract fails the same way.
What Gro does
Section titled “What Gro does”- The customer isn’t charged. Their card is fine, so they don’t get any “payment failed” or “update your card” emails.
- No automatic retries. Retrying won’t help until the problem is fixed, so Gro waits for you.
- No dunning. The order never enters dunning, so nothing gets paused or cancelled because of it.
- You get one email listing every held order. If several orders fail at once, they arrive in one email, not one each.
- It shows on your dashboard under Needs attention, at the top of the home page.
For out of stock orders, Gro also sends the subscription_out_of_stock event, so you can build a flow that lets the customer know.
Fixing a held order
Section titled “Fixing a held order”
- Open your Gro dashboard. Held orders are listed under Needs attention, with the customer, the items involved and what to fix.
- Fix the problem in Shopify:
- Out of stock: restock the item, or turn on overselling, or swap the product on the subscription.
- Inventory location not set: in Shopify, open the product and check it’s stocked at a location that fulfils online orders, and that the location is active.
- Press Retry. Gro charges the order again and shows you the result.
If the order’s delivery or billing date has passed while it was held, Gro asks you to pick a new date before charging, so the order can still be packed and delivered.
If the retry fails on stock again, the order stays held. If it fails on payment instead (for example the card has since expired), it moves into normal dunning.
Other ways to clear a held order
Section titled “Other ways to clear a held order”- Skip the order from the subscription page. The schedule moves on and the hold clears.
- Pause or cancel the subscription. The hold clears.
Any one off items and skipped lines go back to how they were, the same as when dunning ends.
While an order is held
Section titled “While an order is held”The subscription is frozen until you act. Its dates don’t move, and later orders won’t be charged either, so a customer could miss more than one order if a held order is left alone. Sort held orders as soon as you can.
Low stock warnings
Section titled “Low stock warnings”Low stock warnings only run when Allow overselling is off. With overselling on, Shopify charges the order even when stock is short, so nothing gets held and there’s nothing to warn about.
Two days before billing, at the same time as payment reminders, Gro checks stock for every order due that day. It adds up what all of those orders need for each product, so it catches “10 in stock but 30 orders due”, not just products at zero.
If an order won’t have enough stock:
- It shows under Needs attention as Low stock, with the billing date and the items.
- It’s included in the alert email, in its own Low stock section.
- Gro sends the
subscription_out_of_stock_warningevent. Nothing reaches the customer unless you build a flow on it, for example “one item in your next box may be late”.
A warning never stops the charge. If you restock before billing, it drops off on its own. If the order still can’t be charged on the day, it becomes a held order.
Gro only warns about products Shopify tracks stock for and that are set to stop selling at zero. Products set to “Continue selling when out of stock” are never flagged.
Turn warnings off in Settings → Subscriptions → Billing & contracts with Low stock warnings. Held orders always show, whatever that’s set to.
Keeping stock up to date
Section titled “Keeping stock up to date”Gro reads fresh stock from Shopify for the orders it checks. Press Sync products in Settings → Shopify to pull stock for every product straight away. That also clears any warnings stock now covers.
Low stock warnings can’t predict an inventory location problem, because that depends on Shopify’s order routing. Those still show up as held orders on billing day.
Overselling
Section titled “Overselling”Go to Settings → Subscriptions → Billing & contracts and find Allow overselling.
| Setting | What happens |
|---|---|
| On (default) | Renewals charge even when stock runs short, so customers never miss an order. You fulfil once stock is back. |
| Off | Gro follows each product’s own “Continue selling when out of stock” setting in Shopify. Short stock holds the order. |
Overselling only covers short stock. An inventory location problem holds the order either way.
Using Gro Agent or MCP
Section titled “Using Gro Agent or MCP”Ask Gro Agent “which orders are on hold?” to see held orders, low stock warnings and what to fix. Once you’ve fixed one, ask it to retry. It shows you a confirm button first.
The same works over MCP with list_billing_issues and retry_billing_issue.