From shopify-admin-skills
Aggregates tax collected by jurisdiction from Shopify order tax lines. Outputs summary by state/province or tax rate for periodic filing prep.
How this skill is triggered — by the user, by Claude, or both
Slash command
/shopify-admin-skills:shopify-admin-tax-liability-summaryThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Aggregates tax amounts collected across all orders in a period, broken down by tax jurisdiction (state/province, country) and tax rate. Produces a summary suitable for periodic tax filing prep. Read-only — no mutations.
Aggregates tax amounts collected across all orders in a period, broken down by tax jurisdiction (state/province, country) and tax rate. Produces a summary suitable for periodic tax filing prep. Read-only — no mutations.
shopify store auth --store <domain> --scopes read_ordersread_orders| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| store | string | yes | — | Store domain (e.g., mystore.myshopify.com) |
| days_back | integer | no | 90 | Lookback window (use 30/90 to match filing periods) |
| group_by | string | no | jurisdiction | Breakdown: jurisdiction or rate |
| exclude_refunded | bool | no | true | Exclude tax from fully refunded orders |
| format | string | no | human | Output format: human or json |
ℹ️ Read-only skill — no mutations are executed. Safe to run at any time. This report is for internal preparation purposes only — consult a tax professional for actual filing obligations.
OPERATION: orders — query
Inputs: query: "financial_status:paid created_at:>='<NOW - days_back days>'", first: 250, select taxLines { title, rate, priceSet }, refunds { refundLineItems }, pagination cursor
Expected output: All paid orders with tax lines; paginate until hasNextPage: false
If exclude_refunded: subtract tax amounts from fully refunded orders
Group by group_by (jurisdiction title or rate); sum taxLine.priceSet.shopMoney.amount
# orders:query — validated against api_version 2025-01
query TaxLiabilityOrders($query: String!, $after: String) {
orders(first: 250, after: $after, query: $query) {
edges {
node {
id
name
createdAt
displayFinancialStatus
totalTaxSet {
shopMoney {
amount
currencyCode
}
}
taxLines {
title
rate
priceSet {
shopMoney {
amount
currencyCode
}
}
}
shippingAddress {
countryCode
provinceCode
}
refunds {
totalRefundedSet {
shopMoney {
amount
currencyCode
}
}
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
Claude MUST emit the following output at each stage. This is mandatory.
On start, emit:
╔══════════════════════════════════════════════╗
║ SKILL: Tax Liability 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):
══════════════════════════════════════════════
TAX LIABILITY SUMMARY (<days_back> days)
Orders analyzed: <n>
Total tax collected: $<amount>
By Jurisdiction:
CA - California $<amount> (<n> orders)
NY - New York $<amount> (<n> orders)
Output: tax_liability_<date>.csv
══════════════════════════════════════════════
For format: json, emit:
{
"skill": "tax-liability-summary",
"store": "<domain>",
"period_days": 90,
"orders_analyzed": 0,
"total_tax_collected": 0,
"currency": "USD",
"by_jurisdiction": [],
"output_file": "tax_liability_<date>.csv"
}
CSV file tax_liability_<YYYY-MM-DD>.csv with columns:
jurisdiction, country_code, province_code, tax_rate, order_count, total_tax_collected, currency
| Error | Cause | Recovery |
|---|---|---|
THROTTLED | API rate limit exceeded | Wait 2 seconds, retry up to 3 times |
| No tax lines on orders | Tax not configured or tax-exempt orders | Report $0 for those orders |
| Orders with partial refunds | Tax credit complex to calculate | Flag in output; exclude from totals if exclude_refunded: true |
days_back with your filing period (30 days for monthly filers, 90 for quarterly).jurisdiction field in taxLines.title is set by Shopify Tax and typically includes state/province names — verify the format matches your filing system.npx claudepluginhub 40rty-ai/shopify-admin-skills --plugin shopify-admin-skillsBreaks down order revenue by fulfillment location for multi-warehouse P&L and location performance analysis. Read-only, uses Shopify GraphQL.
Manages Wix e-commerce shipping rules via REST APIs: query rates, retrieve details, create rates with costs, regions, logistics, and conditions like free shipping over subtotal. For store shipping configuration.
Analyzes revenue and transactions by US state to determine economic nexus for sales tax collection obligations using Wilson tools.