shopify-admin-order-lookup-and-summary
SkillCommunicationRetrieve and summarize full order details for a customer by email, order number, or phone number.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the shopify-admin-order-lookup-and-summary skill
What this skill tells your AI
The instructions your AI receives, as published by 40rty-ai/shopify-admin-skills in skills/customer-support/shopify-admin-order-lookup-and-summary/SKILL.md and read by ahel’s review.
Purpose
Retrieves complete order details for a customer without requiring navigation through the Shopify admin UI. Useful for support agents answering customer queries about order status, shipping tracking, and refunds. This skill operates directly on the Shopify-native data layer, returning full order context in a single operation.
Prerequisites
- Authenticated Shopify CLI session:
shopify auth login --store <domain> - API scopes:
read_orders,read_customers
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| store | string | yes | — | Store domain (e.g., mystore.myshopify.com) |
| format | string | no | human | Output format: human or json |
| dry_run | bool | no | false | Preview operations without executing mutations |
| lookup_by | string | yes | — | order_number, email, or phone |
| lookup_value | string | yes | — | The value to search for (e.g., #1001, jane@example.com, +15551234567) |
| limit | integer | no | 5 | Maximum number of orders to return |
Workflow Steps
- OPERATION:
orders— query Inputs:first: <limit>,query: "name:<order_number>"or"email:<email>"or"phone:<phone>"depending onlookup_byExpected output: Full order objects with financial status, fulfillment status, line items, shipping address, tracking, refunds
GraphQL Operations
# orders:query — validated against api_version 2025-01
query OrderLookup($first: Int!, $query: String) {
orders(first: $first, query: $query) {
edges {
node {
id
name
createdAt
processedAt
displayFinancialStatus
displayFulfillmentStatus
totalPriceSet {
shopMoney { amount currencyCode }
}
subtotalPriceSet {
shopMoney { amount currencyCode }
}
totalShippingPriceSet {
shopMoney { amount currencyCode }
}
totalRefundedSet {
shopMoney { amount currencyCode }
}
customer {
id
defaultEmailAddress {
emailAddress
}
firstName
lastName
phone
}
shippingAddress {
address1
address2
city
province
country
zip
phone
}
lineItems(first: 50) {
edges {
node {
title
quantity
variant {
sku
price
}
fulfillmentStatus
}
}
}
fulfillments {
trackingInfo {
number
url
company
}
status
createdAt
}
refunds {
createdAt
totalRefundedSet {
shopMoney { amount currencyCode }
}
}
note
tags
}
}
}
}
Session Tracking
Claude MUST emit the following output at each stage. This is mandatory.
On start, emit:
╔══════════════════════════════════════════════╗
║ SKILL: order-lookup-and-summary ║
║ Store: <store domain> ║
║ Started: <YYYY-MM-DD HH:MM UTC> ║
╚══════════════════════════════════════════════╝
After each step, emit:
[N/TOTAL] <QUERY|MUTATION> <OperationName>
→ Params: <brief summary of key inputs>
→ Result: <count or outcome>
On completion, emit:
For format: human (default):
══════════════════════════════════════════════
OUTCOME SUMMARY
Orders found: <n>
Errors: 0
Output: none
══════════════════════════════════════════════
For format: json, emit:
{
"skill": "order-lookup-and-summary",
"store": "<domain>",
"started_at": "<ISO8601>",
"completed_at": "<ISO8601>",
"dry_run": false,
"steps": [
{ "step": 1, "operation": "OrderLookup", "type": "query", "params_summary": "lookup_by: <type>, lookup_value: <value>, limit: <n>", "result_summary": "<n> orders", "skipped": false }
],
"outcome": {
"orders_found": 0,
"errors": 0,
"output_file": null
}
}
Output Format
Human-readable formatted summary for each order found (not a CSV). For each order, Claude presents: order number, date, financial and fulfillment status, customer details, line items, shipping address, tracking numbers, and any refunds. For format: json, the raw order objects array.
Error Handling
| Error | Cause | Recovery |
|---|---|---|
| No orders returned | No match for lookup value | Verify lookup value format (order number must include #, e.g., #1001) |
lookup_by invalid | Value is not order_number, email, or phone | Use one of the three accepted values |
| Rate limit (429) | Too many requests | Reduce limit or wait and retry |
Best Practices
- Order number lookups require the
#prefix (e.g.,#1001), which maps to thenamefield in the GraphQL query. - Phone lookups must use E.164 format (e.g.,
+15551234567); partial numbers will not match. - Email lookup returns all orders for that customer — set
limitto retrieve more than the default 5 if the customer has many orders. - For
format: json, pipe the output tojqto extract specific fields for downstream scripts. - This skill is read-only — use the
refund-and-reorderskill if you need to process a refund after looking up the order.
Signals
- GitHub stars
- 187
- Forks
- 18
- Last commit
- Aug 2026
ahel review
S4info
community integration — published by 40rty-ai, not shopify
Automated review, not a security audit. Ruleset v1.
Advanced
- Catalog kind
- skill
- Gateway key
shopify-admin-order-lookup-and-summary- Source
- github.com/40rty-ai/shopify-admin-skills