Review high risk Shopify orders before anything gets picked
See where each checkout really came from next to the billing and shipping country, then release, tag, or cancel every flagged order by hand.
Build me a review desk where our fulfillment team works high risk Shopify orders before anything gets picked. The guiding rule is review before you pick, not block automatically: a cancelled good order costs us a real customer, so the app surfaces evidence and ranks the queue, and every release, tag, and cancellation happens because a person clicked it. Nothing is ever cancelled automatically.
The main screen is a review queue. Load unfulfilled orders with the Shopify List Orders operation (unfulfilled and partially fulfilled, most recent pages first) and render one card per order. Each card shows the order number, the buyer name, the order value and currency, the billing country, the shipping country, and the checkout IP taken off the order record (the browser IP in the order's client details). Enrich the IPs a page at a time with the IPinfo Batch IP Lookup operation rather than one call per card, and use IPinfo Get Full IP Details when a single card is refreshed on its own. From that enrichment show the checkout city and country and the network owner behind the address (the ASN number and organization name, for example AS15169 Google LLC). Also ask the IPinfo Core / Plus IP Lookup operation for privacy signals and, when they come back, put a clear badge on the card when the address is a hosting provider, a VPN, a proxy, or a Tor exit node.
Rank the queue so the highest value country mismatches sit at the top. A mismatch means the checkout country differs from the billing country, the shipping country, or both. Combine that with order value, and use the hosting or VPN or proxy flag as a secondary boost. Put a one line reason under each card title explaining why it is ranked where it is, for example "checkout in Vietnam, shipping to Germany, hosting network, 840 USD". Let the reviewer switch sorting between risk rank, order value, and newest, and filter to only mismatches or only flagged networks.
Handle missing data gracefully rather than failing rows. The checkout IP is protected customer data in Shopify and is often absent, so when there is no IP on the order the card shows "no IP recorded" and stays in the queue to be reviewed on the billing and shipping details alone. IPinfo privacy and VPN detection is a paid plan feature, so when those fields are not present hide the badge entirely instead of showing a false negative, and fall back to the free country plus network owner signal. Non routable or bogon addresses should read "not a public address".
From a card the reviewer has three actions, each behind a click. Release: call the Shopify Update Order operation to add a clearing tag (default "review-cleared") and optionally append a short note. Tag and annotate: also Shopify Update Order, adding a hold tag plus a free text note the reviewer types, for orders that need a second pair of eyes or a customer contact before picking. Cancel and restock: call the Shopify Cancel Order operation with restocking turned on and a cancellation reason, behind a confirmation step that restates the order value and the buyer name. Clicking a card opens a detail panel built from the Shopify Get Order operation showing line items, payment and financial status, and the full billing and shipping addresses next to the checkout location.
Decisions must persist. Save each decision against the order id in the app's own storage, with the reviewer, the timestamp, the decision, and the reason, so a cleared or cancelled order never comes back into the queue. In parallel append a row to a Google Sheets decision log using the Append Values operation, with columns for timestamp, order number, order value, currency, reviewer, decision, checkout country, billing country, shipping country, network owner, privacy flags, and reason. Read that sheet back with the Google Sheets Get Values operation to power a Decided tab listing recent decisions, with a way to reopen an order that was cleared by mistake. The point of the log is that later we can measure our false positive rate and the chargebacks we saved.
Give each card an "Investigate this buyer" button that runs a background agent for that order. The agent pulls the customer's past orders with the Shopify Get Customer Orders operation, re-checks the checkout address with IPinfo Get Full IP Details, and pulls the owning network's record with the IPinfo Get ASN Details operation to see who runs it and whether it looks like a consumer internet provider or a hosting network. It then compares this order's shipping country and checkout country against the countries this buyer ordered from and shipped to before, notes whether this is a first order or a repeat, whether the shipping address is one they have used before, and how the value compares to their normal order. It writes a short recommendation (release, hold, or cancel) with the reasons that support it back onto the card, so the next person to look at the queue sees it inline. Show a running state on the button while the agent works and never let its recommendation act on its own.
Keep the copy calm and evidence led throughout. Labels like "checkout location", "network owner", and "needs a look" rather than "fraud" or "blocked", and a short note somewhere on the screen reminding the team that travellers, privacy VPNs, and gifts all look like mismatches.
What does this prompt do?
- Pulls your unfulfilled orders into one review queue and floats the highest value country mismatches to the top, so the orders worth a human minute are the ones you see first.
- Puts the checks people do by hand on a single card: where the checkout came from, the billing and shipping country, the network that owns the address, and a flag when it looks like a hosting provider, VPN, proxy, or Tor connection.
- Lets a reviewer release the order with a tag, add a note for the team, or cancel and restock it, always by clicking. Nothing is ever cancelled automatically.
- Writes every decision to a Google Sheet so you can measure your false positive rate and the chargebacks you avoided, and so a cleared order never shows up in the queue again.
- Gives each card an Investigate this buyer button that sends a background assistant to check the buyer's past orders and the network behind the checkout, then writes a recommendation with its reasons onto the card.
What do I need to use this?
- A Shopify store you can sign in to, with permission to view orders and to tag or cancel them.
- Access to the checkout IP on your orders. Shopify treats the shopper's browser address as protected customer data, so orders without it simply show "no IP recorded" instead of breaking.
- An IPinfo account. A free token covers the country and network owner signals; the VPN, proxy, and hosting flags come with a paid plan.
- A Google account and a spreadsheet to hold the decision log.
How can I customize it?
- Change what counts as high risk: the order value that matters to you, whether a billing mismatch alone is enough, or whether a hosting network on its own should raise a flag.
- Change the tags and note wording written back to Shopify when someone releases, holds, or cancels an order, so your existing reports keep working.
- Point the decision log at a different spreadsheet or tab, and add columns like reviewer name or a reason code you want to report on later.
FAQs
Does this cancel orders by itself?
What happens to orders with no IP address on them?
Do I need a paid IPinfo plan?
Will an order I already cleared come back into the queue tomorrow?
Does a checkout from another country mean the order is fraud?
What does the Investigate this buyer button actually do?
Related templates
Open one board each morning that ranks the high value customers waiting on a reply by the revenue sitting behind their silence.
Stage a batch of filings overnight, then approve each completed form from a screenshot before anything is ever submitted.
Review every conversation Fin closed as resolved, judge which ones actually stuck, and see what the gap is worth against your bill.
Work every return, damage and warranty claim in one queue, with the order, the delivery date and a policy-backed recommendation already on screen.
Paste anything a customer gave you, get one clean risk profile back, and see what your team decided the last time that address showed up.
See exactly which ingredients next week needs based on what you actually sold, adjust anything by hand, then build a one-click grocery cart.
Stop deciding on flagged orders from three browser tabs.
Put the checkout location, the network behind it, and the release or cancel buttons on one screen, and keep a record of every call your team makes.