{
  "schemaVersion": "1.0",
  "item": {
    "slug": "shopify-admin",
    "name": "Shopify Admin",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/robsannaa/shopify-admin",
    "canonicalUrl": "https://clawhub.ai/robsannaa/shopify-admin",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/shopify-admin",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=shopify-admin",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "shopify-admin.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/shopify-admin"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/shopify-admin",
    "agentPageUrl": "https://openagent3.xyz/skills/shopify-admin/agent",
    "manifestUrl": "https://openagent3.xyz/skills/shopify-admin/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/shopify-admin/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "shopify-admin - Shopify Admin API",
        "body": "Interact with Shopify Admin API for order management, product operations, customer data, and store analytics."
      },
      {
        "title": "Prerequisites",
        "body": "Required binaries: curl, jq (must be installed and on PATH).\n\nEnvironment: The script uses only the process environment. It does not source any file (no ~/.openclaw/.env or other dotenv). Set these variables where the OpenClaw agent/gateway runs (e.g. export in shell, or in a file that your gateway loads at startup):\n\nSHOPIFY_STORE_DOMAIN=your-store.myshopify.com\nSHOPIFY_ACCESS_TOKEN=shpat_xxx\n\nIf the script is run by the agent, ensure the gateway process has these vars (many setups load ~/.openclaw/.env when starting the gateway — then the agent inherits them; the script itself does not read that file)."
      },
      {
        "title": "REST API",
        "body": "Base URL: https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/"
      },
      {
        "title": "GraphQL API",
        "body": "Endpoint: https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/graphql.json"
      },
      {
        "title": "Orders",
        "body": "List orders:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/orders.json?status=any&limit=10\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\"\n\nGet specific order:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/orders/{order_id}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\""
      },
      {
        "title": "Products",
        "body": "List products:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/products.json?limit=50\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nSearch products:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/products.json?title={title}\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nDelete product:\n\ncurl -s -X DELETE \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/products/{product_id}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\""
      },
      {
        "title": "Customers",
        "body": "List customers:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/customers.json?limit=50\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet customer:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/customers/{customer_id}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\""
      },
      {
        "title": "GraphQL Queries",
        "body": "Get order with customer details:\n\ncurl -s -X POST \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/graphql.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"query\": \"query { order(id: \\\"gid://shopify/Order/{order_id}\\\") { id name customer { firstName lastName email } } }\"\n  }'"
      },
      {
        "title": "Marketing Events",
        "body": "List marketing events (campaigns, UTMs):\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/marketing_events.json?limit=50\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet specific marketing event:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/marketing_events/{event_id}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCreate marketing event (track campaign):\n\ncurl -s -X POST \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/marketing_events.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"marketing_event\": {\n      \"event_type\": \"ad\",\n      \"utm_campaign\": \"spring_sale\",\n      \"utm_source\": \"facebook\",\n      \"utm_medium\": \"cpc\",\n      \"started_at\": \"2026-01-15T00:00:00Z\"\n    }\n  }'"
      },
      {
        "title": "Reports & Analytics",
        "body": "List available reports:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/reports.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGet report (sales, traffic, etc.):\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/reports/{report_id}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\""
      },
      {
        "title": "Shop Analytics (Sessions, Traffic)",
        "body": "Get shop analytics/sessions data via GraphQL:\n\ncurl -s -X POST \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/graphql.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"query\": \"query { shop { name analytics { onlineStoreSessions { count } } } }\"\n  }'\n\nGet online store sessions (REST):\n\n# Note: Sessions data is typically available via Shopify Analytics API or Reports\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/shop.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" | jq '.shop'"
      },
      {
        "title": "Order Attribution (UTM tracking)",
        "body": "Get order with attribution data:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/orders/{order_id}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" | jq '.order | {id, name, referring_site, landing_site, source_name}'\n\nList orders with UTM parameters:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/orders.json?fields=id,name,referring_site,landing_site,source_name,created_at&limit=50\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\""
      },
      {
        "title": "Customer Events (Behavior tracking)",
        "body": "List customer events (visits, actions):\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/customers/{customer_id}/events.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\""
      },
      {
        "title": "PII Access Limitations",
        "body": "Customer names, emails, addresses require Shopify plan or higher\nBasic plan: PII fields return null via API\nWeb UI always shows full customer data\nWorkaround: Use webhooks to capture PII before masking"
      },
      {
        "title": "API Versions",
        "body": "Current: 2026-01\nUpdate version in URL for newer features"
      },
      {
        "title": "Rate Limits",
        "body": "REST: 2 calls/second (Shopify plan)\nGraphQL: Same bucket as REST\nCheck X-Shopify-Shop-Api-Call-Limit header"
      },
      {
        "title": "Response Codes",
        "body": "200: Success\n201: Created\n204: Deleted (no body)\n429: Rate limited\n403: Permission denied (check scopes)"
      },
      {
        "title": "Scopes Required",
        "body": "read_orders, write_orders\nread_products, write_products\nread_customers, write_customers\nread_analytics\nread_marketing_events, write_marketing_events\nread_customer_events\nread_reports"
      },
      {
        "title": "Tips",
        "body": "Use jq for JSON parsing: | jq '.orders[0]'\nAdd -w \"\\nHTTP: %{http_code}\" to curl for status codes\nUse GraphQL for complex nested queries\nREST is simpler for basic CRUD operations"
      }
    ],
    "body": "shopify-admin - Shopify Admin API\n\nInteract with Shopify Admin API for order management, product operations, customer data, and store analytics.\n\nPrerequisites\n\nRequired binaries: curl, jq (must be installed and on PATH).\n\nEnvironment: The script uses only the process environment. It does not source any file (no ~/.openclaw/.env or other dotenv). Set these variables where the OpenClaw agent/gateway runs (e.g. export in shell, or in a file that your gateway loads at startup):\n\nSHOPIFY_STORE_DOMAIN=your-store.myshopify.com\nSHOPIFY_ACCESS_TOKEN=shpat_xxx\n\n\nIf the script is run by the agent, ensure the gateway process has these vars (many setups load ~/.openclaw/.env when starting the gateway — then the agent inherits them; the script itself does not read that file).\n\nAPI Endpoints\nREST API\n\nBase URL: https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/\n\nGraphQL API\n\nEndpoint: https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/graphql.json\n\nCommon Operations\nOrders\n\nList orders:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/orders.json?status=any&limit=10\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\"\n\n\nGet specific order:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/orders/{order_id}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nProducts\n\nList products:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/products.json?limit=50\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\n\nSearch products:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/products.json?title={title}\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\n\nDelete product:\n\ncurl -s -X DELETE \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/products/{product_id}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCustomers\n\nList customers:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/customers.json?limit=50\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\n\nGet customer:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/customers/{customer_id}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nGraphQL Queries\n\nGet order with customer details:\n\ncurl -s -X POST \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/graphql.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"query\": \"query { order(id: \\\"gid://shopify/Order/{order_id}\\\") { id name customer { firstName lastName email } } }\"\n  }'\n\nMarketing & Analytics\nMarketing Events\n\nList marketing events (campaigns, UTMs):\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/marketing_events.json?limit=50\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\n\nGet specific marketing event:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/marketing_events/{event_id}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\n\nCreate marketing event (track campaign):\n\ncurl -s -X POST \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/marketing_events.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"marketing_event\": {\n      \"event_type\": \"ad\",\n      \"utm_campaign\": \"spring_sale\",\n      \"utm_source\": \"facebook\",\n      \"utm_medium\": \"cpc\",\n      \"started_at\": \"2026-01-15T00:00:00Z\"\n    }\n  }'\n\nReports & Analytics\n\nList available reports:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/reports.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\n\nGet report (sales, traffic, etc.):\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/reports/{report_id}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nShop Analytics (Sessions, Traffic)\n\nGet shop analytics/sessions data via GraphQL:\n\ncurl -s -X POST \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/graphql.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"query\": \"query { shop { name analytics { onlineStoreSessions { count } } } }\"\n  }'\n\n\nGet online store sessions (REST):\n\n# Note: Sessions data is typically available via Shopify Analytics API or Reports\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/shop.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" | jq '.shop'\n\nOrder Attribution (UTM tracking)\n\nGet order with attribution data:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/orders/{order_id}.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\" | jq '.order | {id, name, referring_site, landing_site, source_name}'\n\n\nList orders with UTM parameters:\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/orders.json?fields=id,name,referring_site,landing_site,source_name,created_at&limit=50\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nCustomer Events (Behavior tracking)\n\nList customer events (visits, actions):\n\ncurl -s \"https://$SHOPIFY_STORE_DOMAIN/admin/api/2026-01/customers/{customer_id}/events.json\" \\\n  -H \"X-Shopify-Access-Token: $SHOPIFY_ACCESS_TOKEN\"\n\nImportant Notes\nPII Access Limitations\nCustomer names, emails, addresses require Shopify plan or higher\nBasic plan: PII fields return null via API\nWeb UI always shows full customer data\nWorkaround: Use webhooks to capture PII before masking\nAPI Versions\nCurrent: 2026-01\nUpdate version in URL for newer features\nRate Limits\nREST: 2 calls/second (Shopify plan)\nGraphQL: Same bucket as REST\nCheck X-Shopify-Shop-Api-Call-Limit header\nResponse Codes\n200: Success\n201: Created\n204: Deleted (no body)\n429: Rate limited\n403: Permission denied (check scopes)\nScopes Required\nread_orders, write_orders\nread_products, write_products\nread_customers, write_customers\nread_analytics\nread_marketing_events, write_marketing_events\nread_customer_events\nread_reports\nTips\nUse jq for JSON parsing: | jq '.orders[0]'\nAdd -w \"\\nHTTP: %{http_code}\" to curl for status codes\nUse GraphQL for complex nested queries\nREST is simpler for basic CRUD operations"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/robsannaa/shopify-admin",
    "publisherUrl": "https://clawhub.ai/robsannaa/shopify-admin",
    "owner": "robsannaa",
    "version": "1.1.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/shopify-admin",
    "downloadUrl": "https://openagent3.xyz/downloads/shopify-admin",
    "agentUrl": "https://openagent3.xyz/skills/shopify-admin/agent",
    "manifestUrl": "https://openagent3.xyz/skills/shopify-admin/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/shopify-admin/agent.md"
  }
}