Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
40rty-ai avatar

Shopify Admin Automated Order Tagger

  • 2 installs
  • 173 repo stars
  • Updated June 26, 2026
  • 40rty-ai/shopify-admin-skills

shopify-admin-automated-order-tagger is a Claude Code skill that applies tags to Shopify orders based on configurable rules like geography, value, product type, risk level, and customer tier.

About

shopify-admin-automated-order-tagger scans recent Shopify orders and applies tags based on configurable rule sets covering geography, order value, product type, customer tier, risk level, and more. An operator runs it to auto-classify orders for downstream routing, review, or segmentation. It executes orderUpdate mutations and defaults to dry-run.

  • Applies tags to Shopify orders based on configurable rules (geography, value, product type, risk, customer tier)
  • Supports dry-run preview and skips already-tagged orders
  • Batches order updates to respect API rate limits

Shopify Admin Automated Order Tagger by the numbers

  • 2 all-time installs (skills.sh)
  • Ranked #1,839 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
  • Data as of Aug 1, 2026 (Skillselion catalog sync)
At a glance

shopify-admin-automated-order-tagger capabilities & compatibility

Free; requires an authenticated Shopify session with read_orders and write_orders scopes.

Capabilities
automated order tagger · bulk customer tag update · cancel and restock
Use cases
orchestration
Pricing
Free
From the docs

What shopify-admin-automated-order-tagger says it does

Mutation: applies tags to orders based on configurable rules (geography, value, product type, risk level, customer tier).
SKILL.md
Supports dry-run mode for safe preview.
SKILL.md
npx skills add https://github.com/40rty-ai/shopify-admin-skills --skill shopify-admin-automated-order-tagger

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs2
repo stars173
Last updatedJune 26, 2026
Repository40rty-ai/shopify-admin-skills

What it does

Automatically tag Shopify orders by rules such as value, geography, product type, and risk level.

Who is it for?

Operators auto-classifying orders for routing, review, or segmentation.

Skip if: Tagging customers rather than orders, which the bulk-customer-tag-update skill handles.

When should I use this skill?

You want recent orders auto-tagged by value, geography, risk, or product-type rules.

What you get

Recent orders receive rule-based tags, previewed in dry-run before being applied.

  • Rule-based tags applied to matched orders
  • Order tagging report

By the numbers

  • Default 7-day order lookback
  • Processes updates in batches of 10 to respect rate limits
  • Example rule set lists 12 conditions

Files

SKILL.mdMarkdownGitHub ↗

Purpose

Applies tags to orders based on configurable rule sets — geography-based (domestic/international), value-based (high-value, low-value), product-type-based, customer-tier-based, or custom conditions. Supports dry-run mode for safe preview.

Prerequisites

  • Authenticated Shopify CLI session: shopify store auth --store <domain> --scopes read_orders,write_orders
  • API scopes: read_orders, write_orders

Parameters

ParameterTypeRequiredDefaultDescription
storestringyesStore domain
rulesobject[]yesArray of tagging rules (see Rules Format below)
days_backintegerno7Lookback window for orders to tag
skip_taggedbooleannotrueSkip orders that already have the target tag
dry_runbooleannotruePreview only — don't apply tags
formatstringnohumanOutput format: human or json

Rules Format

Each rule has a condition and a tag:

[
  { "condition": "total_price > 500", "tag": "high-value" },
  { "condition": "total_price < 20", "tag": "low-value" },
  { "condition": "shipping_country != US", "tag": "international" },
  { "condition": "shipping_country = US", "tag": "domestic" },
  { "condition": "line_items_count > 5", "tag": "bulk-order" },
  { "condition": "customer_orders > 3", "tag": "repeat-buyer" },
  { "condition": "customer_orders = 1", "tag": "first-time" },
  { "condition": "risk_level = HIGH", "tag": "needs-review" },
  { "condition": "financial_status = PARTIALLY_REFUNDED", "tag": "partial-refund" },
  { "condition": "fulfillment_status = null", "tag": "unfulfilled" },
  { "condition": "discount_codes contains WELCOME", "tag": "welcome-discount" },
  { "condition": "product_type contains Subscription", "tag": "subscription-order" }
]

Safety

⚠️ Mutation skill — always run with dry_run: true first to preview tag assignments before applying.

Workflow Steps

1. OPERATION: orders — query Inputs: query: "created_at:>='<NOW - days_back days>'", first: 250, select id, name, tags, totalPriceSet, shippingAddress { countryCode }, customer { numberOfOrders }, displayFinancialStatus, displayFulfillmentStatus, riskLevel, lineItems { product { productType } }, discountCodes, pagination cursor Expected output: All recent orders with data needed for rule evaluation

2. For each order, evaluate all rules:

  • Parse each condition against order data
  • Collect all matching tags
  • If skip_tagged: true, exclude tags already present on the order

3. If dry_run: true: report matches without applying If dry_run: false:

4. OPERATION: orderUpdate — mutation (for each order needing new tags) Inputs: { id: <order_id>, tags: <existing_tags + new_tags> } Expected output: Updated order with new tags Batch: Process in batches of 10 to respect rate limits

GraphQL Operations

# orders:query — validated against api_version 2025-01
query OrdersForTagging($query: String!, $after: String) {
  orders(first: 250, after: $after, query: $query) {
    edges {
      node {
        id
        name
        tags
        totalPriceSet { shopMoney { amount currencyCode } }
        shippingAddress { countryCode provinceCode }
        customer { id numberOfOrders }
        displayFinancialStatus
        displayFulfillmentStatus
        riskLevel
        discountCodes
        lineItems(first: 20) {
          edges {
            node {
              product { productType }
              quantity
            }
          }
        }
      }
    }
    pageInfo { hasNextPage endCursor }
  }
}
# orderUpdate:mutation — validated against api_version 2025-01
mutation TagOrder($input: OrderInput!) {
  orderUpdate(input: $input) {
    order { id name tags }
    userErrors { field message }
  }
}

Session Tracking

Claude MUST emit the following output at each stage. This is mandatory.

On start, emit:

╔══════════════════════════════════════════════╗
║  SKILL: Automated Order Tagger               ║
║  Store: <store domain>                       ║
║  Mode: <DRY RUN | LIVE>                      ║
║  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):

══════════════════════════════════════════════
ORDER TAGGING REPORT  (<days_back> days, <mode>)
  Orders scanned:    <n>
  Orders matched:    <n>
  Tags applied:      <n>  (or "would apply" in dry run)
  ─────────────────────────────
  RULE MATCHES:
    "high-value"       → <n> orders
    "international"    → <n> orders
    "first-time"       → <n> orders
    "repeat-buyer"     → <n> orders

  Output: order_tags_<date>.csv
══════════════════════════════════════════════

Output Format

CSV file order_tags_<YYYY-MM-DD>.csv with columns: order_id, order_name, existing_tags, new_tags, matched_rules

Error Handling

ErrorCauseRecovery
THROTTLEDAPI rate limit exceededWait 2 seconds, retry up to 3 times
Invalid ruleUnparseable conditionSkip rule, warn in output
ACCESS_DENIEDMissing write_orders scopeSwitch to read-only mode, report matches only

Best Practices

  • Always run dry_run: true first to preview changes.
  • Tags are additive — this skill never removes existing tags.
  • Use with order-risk-report to auto-tag risk levels.
  • Combine with downstream automation tooling for post-tagging actions (e.g., tag "high-value" → assign to VIP fulfillment queue).
  • Useful for filtering orders in Shopify admin — tags make complex order segments searchable.

Related skills

FAQ

Will it re-tag orders that already have the tag?

No by default. With skip_tagged: true it excludes tags already present on the order.

Is it safe to run live immediately?

It defaults to dry_run: true so you can preview tag assignments before applying them.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.