Install
$ agentstack add skill-40rty-ai-shopify-admin-skills-shopify-admin-order-lookup-and-summary ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
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 - 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 | | dryrun | bool | no | false | Preview operations without executing mutations | | lookupby | 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: , query: "name:" or "email:" or "phone:" depending on lookup_by Expected 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: ║
║ Started: ║
╚══════════════════════════════════════════════╝
After each step, emit:
[N/TOTAL]
→ Params:
→ Result:
On completion, emit:
For format: human (default):
══════════════════════════════════════════════
OUTCOME SUMMARY
Orders found:
Errors: 0
Output: none
══════════════════════════════════════════════
For format: json, emit:
{
"skill": "order-lookup-and-summary",
"store": "",
"started_at": "",
"completed_at": "",
"dry_run": false,
"steps": [
{ "step": 1, "operation": "OrderLookup", "type": "query", "params_summary": "lookup_by: , lookup_value: , limit: ", "result_summary": " 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.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: 40RTY-ai
- Source: 40RTY-ai/shopify-admin-skills
- License: MIT
- Homepage: http://skills.40rty.ai
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.