{"id":"1f65317c-35c9-46d7-94d8-f1beb7fe4423","entityType":"agent","slug":"clawhub-linkfox-ai-linkfox-amazon-store-report","name":"亚马逊-店铺报表","canonicalUrl":"https://www.xpersona.co/agent/clawhub-linkfox-ai-linkfox-amazon-store-report","canonicalPath":"/agent/clawhub-linkfox-ai-linkfox-amazon-store-report","generatedAt":"2026-10-10T05:39:42.023Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T00:14:34.776Z","emptyReason":null},"description":"亚马逊卖家店铺报告获取与下载。支持库存、订单、销量与流量、FBA、财务结算、退货、Brand Analytics 等 95+ 种报告的请求、状态轮询、下载和解压，并生成可下载的已解压文件地址。用户提到拉取或下载亚马逊报告、库存报告、订单报告、销售与流量报告、Business Report、FBA 报告、结算报告、退货报告、Brand Analytics、ABA 搜索词、Amazon store report、pull or download Amazon report 时触发。即使未明确说“报告”，只要希望从 Amazon Seller Central 批量导出某一时间段的结构化经营数据，也应触发此技能；查询少量实时订单、商品或价格优先使用对应专用技能。本技能依赖 linkfox-amazon-store-auth。","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.8K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s171g8b6m2khwdy9ye8bxj0wx183vd4z:linkfox-amazon-store-report","sourceUrl":"https://clawhub.ai/linkfox-ai/linkfox-amazon-store-report","homepage":"https://clawhub.ai/linkfox-ai/skills/linkfox-amazon-store-report","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/linkfox-ai/linkfox-amazon-store-report","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/linkfox-ai/skills/linkfox-amazon-store-report","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":65,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"亚马逊-店铺报表 technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T00:14:34.776Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T00:14:34.776Z","emptyReason":null},"stars":null,"forks":null,"downloads":1848,"packageName":null,"latestVersion":"1.0.8","tractionLabel":"1.8K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T00:14:34.776Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T00:14:34.776Z","lastCrawledAt":"2026-10-10T00:14:34.776Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T00:14:34.776Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.8","createdAt":"2026-09-14T04:59:10.792Z","changelog":"Update from 1.0.7 to 1.0.8","fileCount":146,"zipByteSize":279531},{"version":"1.0.7","createdAt":"2026-08-14T14:48:42.884Z","changelog":"Update from 1.0.6 to 1.0.7","fileCount":146,"zipByteSize":278637},{"version":"1.0.6","createdAt":"2026-08-07T10:46:25.747Z","changelog":"Update from 1.0.5 to 1.0.6","fileCount":146,"zipByteSize":278450},{"version":"1.0.5","createdAt":"2026-07-13T12:06:34.810Z","changelog":"Update from 1.0.4 to 1.0.5","fileCount":144,"zipByteSize":269549},{"version":"1.0.4","createdAt":"2026-07-06T11:14:58.339Z","changelog":"Update from 1.0.3 to 1.0.4","fileCount":144,"zipByteSize":268834},{"version":"1.0.3","createdAt":"2026-07-03T08:13:51.287Z","changelog":"Update from 1.0.2 to 1.0.3","fileCount":143,"zipByteSize":267335},{"version":"1.0.2","createdAt":"2026-05-20T08:05:50.216Z","changelog":"Update from 1.0.1 to 1.0.2","fileCount":144,"zipByteSize":266320},{"version":"1.0.1","createdAt":"2026-05-08T02:18:50.160Z","changelog":"Update from 1.0.0 to 1.0.1","fileCount":143,"zipByteSize":264837}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s171g8b6m2khwdy9ye8bxj0wx183vd4z:linkfox-amazon-store-report","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s171g8b6m2khwdy9ye8bxj0wx183vd4z:linkfox-amazon-store-report` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/linkfox-ai/linkfox-amazon-store-report before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-store-report/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-store-report/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-store-report/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-store-report/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-store-report/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-store-report/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T05:39:42.019Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-store-report/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-store-report/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-store-report/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-linkfox-ai-linkfox-amazon-store-report/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T00:14:34.776Z","emptyReason":null},"readme":"Skill: 亚马逊-店铺报表\n\nOwner: linkfox-ai\n\nSummary: 亚马逊卖家店铺报告获取与下载。支持库存、订单、销量与流量、FBA、财务结算、退货、Brand Analytics 等 95+ 种报告的请求、状态轮询、下载和解压，并生成可下载的已解压文件地址。用户提到拉取或下载亚马逊报告、库存报告、订单报告、销售与流量报告、Business Report、FBA 报告、结算报告、退货报告、Brand Analytics、ABA 搜索词、Amazon store report、pull or download Amazon report 时触发。即使未明确说“报告”，只要希望从 Amazon Seller Central 批量导出某一时间段的结构化经营数据，也应触发此技能；查询少量实时订单、商品或价格优先使用对应专用技能。本技能依赖 linkfox-amazon-store-auth。\n\nTags: latest:1.0.8\n\nVersion history:\n\nv1.0.8 | 2026-09-14T04:59:10.792Z | user\n\nUpdate from 1.0.7 to 1.0.8\n\nv1.0.7 | 2026-08-14T14:48:42.884Z | user\n\nUpdate from 1.0.6 to 1.0.7\n\nv1.0.6 | 2026-08-07T10:46:25.747Z | user\n\nUpdate from 1.0.5 to 1.0.6\n\nv1.0.5 | 2026-07-13T12:06:34.810Z | user\n\nUpdate from 1.0.4 to 1.0.5\n\nv1.0.4 | 2026-07-06T11:14:58.339Z | user\n\nUpdate from 1.0.3 to 1.0.4\n\nv1.0.3 | 2026-07-03T08:13:51.287Z | user\n\nUpdate from 1.0.2 to 1.0.3\n\nv1.0.2 | 2026-05-20T08:05:50.216Z | user\n\nUpdate from 1.0.1 to 1.0.2\n\nv1.0.1 | 2026-05-08T02:18:50.160Z | user\n\nUpdate from 1.0.0 to 1.0.1\n\nv1.0.0 | 2026-04-30T08:55:15.734Z | user\n\nInitial release\n\nArchive index:\n\nArchive v1.0.8: 146 files, 279531 bytes\n\nFiles: _meta.json (146b), README.md (3232b), references/api.md (9041b), references/onboarding.md (1999b), references/report-requests/accountHealthReport-2020-11-18.md (2736b), references/report-requests/b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.md (2772b), references/report-requests/b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.md (2708b), references/report-requests/endUserDataReport.md (3105b), references/report-requests/marketplaceAsinPageViewMetrics.md (3219b), references/report-requests/promotionReport.md (3004b), references/report-requests/README.md (7506b), references/report-requests/sellerCouponReport.md (2877b), references/report-requests/sellerSalesAndTrafficReport.md (3106b), references/report-requests/sellingPartnerMarketBasketAnalysisReport.md (3563b), references/report-requests/sellingPartnerRepeatPurchaseReport.md (2929b), references/report-requests/sellingPartnerSearchCatalogPerformanceReport.md (3224b), references/report-requests/sellingPartnerSearchQueryPerformanceReport.md (3265b), references/report-requests/sellingPartnerSearchTermsReport.md (2969b), references/report-requests/types/END_USER_DATA_REPORT.md (1669b), references/report-requests/types/FBA_BULK_INVOICE.md (4153b), references/report-requests/types/FEE_DISCOUNTS_REPORT.md (2746b), references/report-requests/types/GET_AFN_INVENTORY_DATA_BY_COUNTRY.md (2900b), references/report-requests/types/GET_AFN_INVENTORY_DATA.md (2591b), references/report-requests/types/GET_AMAZON_FULFILLED_SHIPMENTS_DATA_GENERAL.md (3369b), references/report-requests/types/GET_AMAZON_FULFILLED_SHIPMENTS_DATA_INVOICING.md (3163b), references/report-requests/types/GET_AMAZON_FULFILLED_SHIPMENTS_DATA_TAX.md (3123b), references/report-requests/types/GET_B2B_PRODUCT_OPPORTUNITIES_NOT_YET_ON_AMAZON.md (1923b), references/report-requests/types/GET_B2B_PRODUCT_OPPORTUNITIES_RECOMMENDED_FOR_YOU.md (1965b), references/report-requests/types/GET_BRAND_ANALYTICS_MARKET_BASKET_REPORT.md (2037b), references/report-requests/types/GET_BRAND_ANALYTICS_REPEAT_PURCHASE_REPORT.md (1780b), references/report-requests/types/GET_BRAND_ANALYTICS_SEARCH_CATALOG_PERFORMANCE_REPORT.md (2074b), references/report-requests/types/GET_BRAND_ANALYTICS_SEARCH_QUERY_PERFORMANCE_REPORT.md (2055b), references/report-requests/types/GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT.md (1826b), references/report-requests/types/GET_CONVERGED_FLAT_FILE_PENDING_ORDERS_DATA.md (2645b), references/report-requests/types/GET_COUPON_PERFORMANCE_REPORT.md (1803b), references/report-requests/types/GET_CSV_MFN_PRIME_RETURNS_REPORT.md (3096b), references/report-requests/types/GET_DATE_RANGE_FINANCIAL_HOLDS_DATA.md (2986b), references/report-requests/types/GET_EASYSHIP_DOCUMENTS.md (2683b), references/report-requests/types/GET_EASYSHIP_PICKEDUP.md (2594b), references/report-requests/types/GET_EASYSHIP_WAITING_FOR_PICKUP.md (2686b), references/report-requests/types/GET_EPR_ANNUAL_REPORTS.md (3013b), references/report-requests/types/GET_EPR_MONTHLY_REPORTS.md (3044b), references/report-requests/types/GET_EPR_QUARTERLY_REPORTS.md (3037b), references/report-requests/types/GET_FBA_ESTIMATED_FBA_FEES_TXT_DATA.md (3003b), references/report-requests/types/GET_FBA_FULFILLMENT_CUSTOMER_RETURNS_DATA.md (2796b), references/report-requests/types/GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_PROMOTION_DATA.md (2868b), references/report-requests/types/GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_REPLACEMENT_DATA.md (2798b), references/report-requests/types/GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_SALES_DATA.md (3089b), references/report-requests/types/GET_FBA_FULFILLMENT_CUSTOMER_TAXES_DATA.md (2847b), references/report-requests/types/GET_FBA_FULFILLMENT_INBOUND_NONCOMPLIANCE_DATA.md (2786b), references/report-requests/types/GET_FBA_FULFILLMENT_LONGTERM_STORAGE_FEE_CHARGES_DATA.md (2955b), references/report-requests/types/GET_FBA_FULFILLMENT_REMOVAL_ORDER_DETAIL_DATA.md (3058b), references/report-requests/types/GET_FBA_FULFILLMENT_REMOVAL_SHIPMENT_DETAIL_DATA.md (3048b), references/report-requests/types/GET_FBA_INVENTORY_PLANNING_DATA.md (2897b), references/report-requests/types/GET_FBA_MYI_ALL_INVENTORY_DATA.md (2793b), references/report-requests/types/GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATA.md (2794b), references/report-requests/types/GET_FBA_OVERAGE_FEE_CHARGES_DATA.md (2737b), references/report-requests/types/GET_FBA_RECOMMENDED_REMOVAL_DATA.md (2920b), references/report-requests/types/GET_FBA_REIMBURSEMENTS_DATA.md (2767b), references/report-requests/types/GET_FBA_STORAGE_FEE_CHARGES_DATA.md (2765b), references/report-requests/types/GET_FLAT_FILE_ACTIONABLE_ORDER_DATA_SHIPPING.md (3023b), references/report-requests/types/GET_FLAT_FILE_ALL_ORDERS_DATA_BY_LAST_UPDATE_GENERAL.md (3111b), references/report-requests/types/GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL.md (3097b), references/report-requests/types/GET_FLAT_FILE_ARCHIVED_ORDERS_DATA_BY_ORDER_DATE.md (3073b), references/report-requests/types/GET_FLAT_FILE_MFN_SKU_RETURN_ATTRIBUTES_REPORT.md (3160b), references/report-requests/types/GET_FLAT_FILE_OPEN_LISTINGS_DATA.md (3856b), references/report-requests/types/GET_FLAT_FILE_ORDER_REPORT_DATA_INVOICING.md (3476b), references/report-requests/types/GET_FLAT_FILE_ORDER_REPORT_DATA_SHIPPING.md (3486b), references/report-requests/types/GET_FLAT_FILE_ORDER_REPORT_DATA_TAX.md (3423b), references/report-requests/types/GET_FLAT_FILE_PENDING_ORDERS_DATA.md (2615b), references/report-requests/types/GET_FLAT_FILE_RETURNS_DATA_BY_RETURN_DATE.md (3003b), references/report-requests/types/GET_FLAT_FILE_SALES_TAX_DATA.md (2811b), references/report-requests/types/GET_FLAT_FILE_VAT_INVOICE_DATA_REPORT.md (4622b), references/report-requests/types/GET_GST_MTR_B2B_CUSTOM.md (2705b), references/report-requests/types/GET_GST_MTR_B2C_CUSTOM.md (2740b), references/report-requests/types/GET_GST_STR_ADHOC.md (3052b), references/report-requests/types/GET_LEDGER_DETAIL_VIEW_DATA.md (3676b), references/report-requests/types/GET_LEDGER_SUMMARY_VIEW_DATA.md (3620b), references/report-requests/types/GET_MERCHANT_CANCELLED_LISTINGS_DATA.md (3755b), references/report-requests/types/GET_MERCHANT_LISTINGS_ALL_DATA.md (3736b)\n\nFile v1.0.8:SKILL.md\n\n---\nname: linkfox-amazon-store-report\ndescription: 亚马逊卖家店铺报告获取与下载。支持库存、订单、销量与流量、FBA、财务结算、退货、Brand Analytics 等 95+ 种报告的请求、状态轮询、下载和解压，并生成可下载的已解压文件地址。用户提到拉取或下载亚马逊报告、库存报告、订单报告、销售与流量报告、Business Report、FBA 报告、结算报告、退货报告、Brand Analytics、ABA 搜索词、Amazon store report、pull or download Amazon report 时触发。即使未明确说“报告”，只要希望从 Amazon Seller Central 批量导出某一时间段的结构化经营数据，也应触发此技能；查询少量实时订单、商品或价格优先使用对应专用技能。本技能依赖 linkfox-amazon-store-auth。\n---\n\n# Amazon 店铺报告获取\n\n本 skill 提供 **亚马逊卖家后台报告的端到端自动化获取**：请求 → 轮询 → 下载 → 解压 → 预览。支持 95+ 种报告类型（库存 / 订单 / 销售 / 财务 / FBA / 退货 / Brand Analytics 等）。\n\n---\n\n## ⚠️ Prerequisites — MUST READ FIRST\n\n本 skill **依赖** `linkfox-amazon-store-auth`（授权与店铺/令牌管理）。\n\n> 🛑 **如果 `linkfox-amazon-store-auth` 未安装 / 未加载，请先安装它，再回到本 skill。**\n\n### 怎样判断 `linkfox-amazon-store-auth` 是否可用\n\n在执行任何报告任务之前，agent **必须**先进行依赖检查：\n\n1. **读取下列任一路径**（skill 加载路径取决于运行环境；`scripts/check_auth_dependency.py` 会按相同规则自动探测）：\n   - 仓库 / 通用扁平目录：`<skills_dir>/linkfox-amazon-store-auth/SKILL.md`\n   - Claude：`~/.claude/skills/linkfox-amazon-store-auth/SKILL.md`\n   - Cursor：`~/.cursor/skills/...`、`~/.cursor/skills-cursor/...`\n   - **OpenClaw**：`<OPENCLAW_WORKSPACE>/skills/...`、`~/.openclaw/skills/...`、`~/.agents/skills/...`（与 [OpenClaw Skills 文档](https://docs.openclaw.ai/tools/skills) 的常见路径一致）\n   - **Hermes Agent**：`~/.hermes/skills/<category>/linkfox-amazon-store-auth/SKILL.md`，以及 `~/.hermes/plugins/<plugin>/skills/linkfox-amazon-store-auth/SKILL.md`（与 [Hermes Skills 文档](https://hermes-agent.nousresearch.com/docs/user-guide/features/skills) 的布局一致）\n2. **或直接运行脚本**：`python scripts/check_auth_dependency.py`，脚本会在缺失时以 **exit code `42`** 退出，并在 stderr 输出结构化提示（以 `DEPENDENCY_MISSING:` 开头）。脚本已内置 **OpenClaw / Hermes** 路径判断；若在 Hermes 的 `config.yaml` 里配置了 `skills.external_dirs`，请设置环境变量 `HERMES_SKILLS_EXTERNAL_DIRS`（使用系统路径分隔符串联多个目录）以便探测。\n3. 如果上述检查**全部失败**，则判定为 **`linkfox-amazon-store-auth` 未安装**。\n\n### 发现未安装时的标准处置\n\n当检测到 `linkfox-amazon-store-auth` 未安装时，agent **必须**按以下顺序执行：\n\n1. **尝试自动安装**（优先）：\n   - 如果当前运行时具备 skill 安装工具（例如 skill 市场 / skill 管理 MCP / `install_skill` 类工具），**立即调用**安装 `linkfox-amazon-store-auth`。\n   - 安装成功后，重新加载并从头执行本 skill。\n2. **引导用户手动安装**（兜底）：\n   - 向用户说明：「本技能依赖 `linkfox-amazon-store-auth`，尚未安装。请前往 [LinkFox Skills](https://skill.linkfox.com/) 安装该 skill，安装完成后告诉我一声，我会继续为你拉取报告。」\n   - **不要**绕过依赖直接去调 `/spApi/authorizeUrl`、`/spApi/storeTokens`、`/spApi/authorizedStores` 等接口——这些接口的选店铺、令牌流程属于 `linkfox-amazon-store-auth` 的职责，本 skill 只负责报告业务本身。\n3. **不得静默降级**：如果既无法自动安装也未获得用户确认，必须**停止执行**并把依赖缺失的事实回报给用户，不要擅自尝试替代方案。\n\n### 依赖已满足后的协作方式\n\n- 本 skill 依赖 auth 选店（`sellerId`+`region`），直接经 `/spApi/developerProxy` 执行报告生命周期（服务端解析 token）。\n- 授权、授权的前置选店铺、令牌刷新等操作——**交由 `linkfox-amazon-store-auth`**；本 skill 不重复做这些事。\n\n---\n\n## Core Concepts\n\n- **Report Type（报告类型）**：亚马逊官方报告类型枚举，例如 `GET_MERCHANT_LISTINGS_ALL_DATA`、`GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL`。完整列表见 `references/report-types.md`。\n- **Marketplace ID**：区域内具体站点 ID，例如 US = `ATVPDKIKX0DER`。\n- **Report lifecycle**：请求报告 → 轮询 `processingStatus`（`IN_QUEUE` / `IN_PROGRESS` / `DONE` / `FATAL` / `CANCELLED`）→ `DONE` 后拿到 `reportDocumentId` → 取下载 URL → 下载（多为 gzip TSV）→ 解压。\n- **Rate limits**：Reports API 约 0.0222 req/s；轮询需保留间隔（默认 30s）。\n\n## Data Fields\n\n### Report Request Input\n\n| Field | Type | Required | Description |\n|-------|------|----------|-------------|\n| sellerId | string | Yes | 已授权的 Amazon Seller ID |\n| region | string | Yes | NA / EU / FE |\n| reportType | string | Yes | 报告类型枚举值 |\n| marketplaceIds | array | Yes | 目标 marketplace ID 列表 |\n| dataStartTime | string | No | ISO 8601，报告起始时间 |\n| dataEndTime | string | No | ISO 8601，报告结束时间 |\n| lastUpdatedDate | string | No | 部分 Vendor 报告必填，见 `references/report-requests/` 对应 md |\n| reportOptions | object | No | 如 Brand Analytics 的 `reportPeriod`、`asin`/`asins`；销售流量的 `dateGranularity`/`asinGranularity` 等。**每一 `reportType` 说明**：`references/report-requests/types/<REPORT_TYPE>.md`（索引 [`types/README.md`](references/report-requests/types/README.md)）；有 JSON Schema 的另见 [`report-requests/README.md`](references/report-requests/README.md) |\n| pollInterval | int | No | 轮询间隔秒数（默认 30） |\n| maxAttempts | int | No | 最大轮询次数（默认 20） |\n\n### Report Output\n\n| Field | Type | Description |\n|-------|------|-------------|\n| reportId | string | 报告请求 ID |\n| reportDocumentId | string | 报告文档 ID |\n| downloadPath | string | 本地下载后的**绝对路径**（已解压，含文件名） |\n| fileName | string | 保存文件名（与 `downloadPath` 末段一致） |\n| localFileUri | string | 本机 `file://` URI，便于客户端打开本地文件 |\n| extractedFileHttpUrl | string | **本机临时 HTTP** 直链，用于在浏览器中下载**已解压**后的文件（默认 `serveExtractedFileHttp` 开启） |\n| extractedFileHttpServeSeconds | int | 本地 HTTP 服务保持时长（默认 300，最少 10） |\n| extractedFileHttpNote | string | 说明该链接仅本机、限时有效 |\n| amazonDownloadUrl | string | （可选）仅当 `includeAmazonSourceUrl: true` 时出现：Amazon 源地址，一般为压缩包，通常不必给终端用户 |\n| compressionAlgorithm | string | 若接口返回了压缩算法则带上（如 GZIP） |\n| tempDirectory | string | 临时目录 |\n| fileSize | int | 文件大小（字节） |\n\n## 调用方式\n\n- **API 端点**：`POST /spApi/developerProxy`（不同操作通过请求体区分；完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/<脚本名>.py '<JSON 参数>' [--inline]`（可用脚本见下文脚本一览）\n- **成本约束**：本工具会消耗算力；失败/空结果不得自动换关键词、翻页或连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n### Available Scripts\n\n- `scripts/get_report.py` ⭐ — 端到端自动化报告获取（**推荐**）\n- `scripts/check_auth_dependency.py` — 主动检测依赖 skill `linkfox-amazon-store-auth` 是否已安装\n\n## 解决认证和算力问题\n发生以下异常情况时，采用 references/onboarding.md 引导解决问题：\n\n### 异常情况\n- **未配置API Key**：环境变量未配置 `LINKFOX_AGENT_API_KEY`，也未配置 `LINKFOXAGENT_API_KEY`。\n- **响应401或402状态码**\n- **响应提示算力或余额不足**：消息含\"算力余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值\"，或类似含义的内容。\n\n## Usage Scenarios\n\n### Scenario 0: Dependency Check (MUST run first)\n\n**每次进入本 skill 都要先跑这一步。**\n\n1. 尝试读取 `linkfox-amazon-store-auth/SKILL.md`（若工具允许）\n2. 或执行：\n   ```bash\n   python scripts/check_auth_dependency.py\n   ```\n3. 若 exit code 非 0 或 stderr 含 `DEPENDENCY_MISSING:`，按上文「发现未安装时的标准处置」流程处理\n4. 依赖满足后再进入正常业务场景\n\n### Scenario 1: Pull Amazon Report (Automated, Recommended)\n\n**User request**：「我要拉库存报告」/「获取订单报告」/「下载销售流量报告」等\n\n**Steps**：\n1. **依赖检查**（Scenario 0）\n2. **前置选店铺**：委托 `linkfox-amazon-store-auth`\n   - 调 `/spApi/authorizedStores` 让用户选店铺，确定 `sellerId` + `region`\n   - **不要**先调 `/spApi/storeTokens` 取 raw token；脚本直接经 `developerProxy` 传选择器\n3. **识别报告类型**：按用户诉求匹配 `reportType`\n   - 库存：`GET_MERCHANT_LISTINGS_ALL_DATA`、`GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATA`\n   - 订单：`GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL`\n   - 销售流量：`GET_SALES_AND_TRAFFIC_REPORT`\n   - 财务：`GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE`\n   - 完整清单：`references/report-types.md`\n4. **执行脚本**：\n   ```bash\n   python scripts/get_report.py '{\n     \"sellerId\": \"A1EC6SZ7XAMURH\",\n     \"region\": \"NA\",\n     \"reportType\": \"GET_MERCHANT_LISTINGS_ALL_DATA\",\n     \"marketplaceIds\": [\"ATVPDKIKX0DER\"]\n   }'\n   ```\n5. 脚本会自动：以 `sellerId`+`region` 调 `developerProxy`（服务端解析 token）→ 请求报告 → 轮询 → 下载 → 解压 → 预览 → 输出 JSON；**完成后**在 stderr 与 JSON 中给出 **本地绝对路径**（`downloadPath`）、**本机 file URI**（`localFileUri`），并默认启动短时本机 HTTP 服务，生成 **`extractedFileHttpUrl`**（用于在**同一台机器**的浏览器里下载**已解压**文件）。向用户展示时至少给出 **`extractedFileHttpUrl`**、**`downloadPath`** 与 **`fileName`**；脚本在 `serveSeconds` 计时结束后会关闭服务，链接随即失效。若需 Amazon 源地址（多为压缩包），仅调试时设 `includeAmazonSourceUrl: true`。\n\n### Scenario 2: Manual Report Flow (Advanced)\n\n对需要精细控制的场景，可通过 `/spApi/developerProxy` 手工驱动：\n\n1. **取现有报告**（更快）：\n   ```\n   path: reports/2021-06-30/reports\n   method: GET\n   queryString: reportTypes=<type>&marketplaceIds=<ids>\n   ```\n2. **创建新报告**：\n   ```\n   path: reports/2021-06-30/reports\n   method: POST\n   body: {\"reportType\": \"...\", \"marketplaceIds\": [...]}\n   ```\n3. **查状态**：\n   ```\n   path: reports/2021-06-30/reports/{reportId}\n   method: GET\n   ```\n4. **取下载链接**：\n   ```\n   path: reports/2021-06-30/documents/{reportDocumentId}\n   method: GET\n   ```\n\n### Scenario 3: Custom Date Range / Polling\n\n```bash\npython scripts/get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"],\n  \"dataStartTime\": \"2024-01-01T00:00:00Z\",\n  \"dataEndTime\": \"2024-01-31T23:59:59Z\",\n  \"pollInterval\": 15,\n  \"maxAttempts\": 40\n}'\n```\n\n## Marketplace IDs by Region\n\n| Region | Country | Marketplace ID |\n|--------|---------|----------------|\n| NA | United States | ATVPDKIKX0DER |\n| NA | Canada | A2EUQ1WTGCTBG2 |\n| NA | Mexico | A1AM78C64UM0Y8 |\n| EU | United Kingdom | A1F83G8C2ARO7P |\n| EU | Germany | A1PA6795UKMFR9 |\n| FE | Japan | A1VC38T7YXB528 |\n\n更多 marketplace ID 详见 `references/report-types.md`。\n\n## Display Rules\n\n1. **先依赖后业务**：依赖检查未通过前，**不得**开始任何报告相关调用。\n2. **只呈现数据**：展示报告获取进度、下载路径、前几行预览；不做业务解读。\n3. **尊重用户选择的报告类型**：用户指定了报告类型就只拉那一种，不得擅自换其他类型。\n4. **错误清晰**：报告失败（`FATAL` / 403 等）时，解释原因并把决定权交还用户。\n5. **安全**：不输出/不传递 raw token；业务只依赖 `sellerId`+`region`。\n6. **完成后展示地址与本机下载链接**：脚本成功结束后，必须把 **`extractedFileHttpUrl`**（已解压文件的本机 HTTP 下载，限时）、**`downloadPath`**（本地绝对路径）、**`fileName`**（文件名）及 **`localFileUri`** 告知用户；并说明「仅在运行脚本的同一台电脑、在服务保持时间内可用」。不要默认把 Amazon 源 URL 当作用户下载入口；仅在用户明确要求或排障需要时使用 `includeAmazonSourceUrl`。\n\n## CRITICAL: Report Failure Handling Rules\n\n- **NEVER automatically try alternative report types** when user's specified report fails.\n- 报告请求失败（`FATAL`、403 等）时，**立即停止并把失败事实告知用户**。\n- **不要**替用户决定去拉别的报告类型。\n- 把失败原因说清楚，让用户决定下一步（重试 / 换类型 / 查权限等）。\n- 例：`GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT` 失败时，**不要**自动改拉 `GET_MERCHANT_LISTINGS_ALL_DATA`。\n\n### Common Report Failure Reasons\n\n- `403 Unauthorized`：缺少 API 权限或未加入 Amazon Brand Registry\n- `FATAL`：该店铺不支持此报告类型或数据不足\n- Brand Analytics 类报告需要品牌备案\n- Vendor 类报告仅限 Vendor 账号\n\n## Important Limitations\n\n- **依赖 `linkfox-amazon-store-auth`**：未安装则必须先安装，见 Prerequisites。\n- **Token expiration**：服务端令牌约 1 小时过期；`developerProxy` 可按 `sellerId`+`region` 自动解析/续签。过期时也可经 auth skill 的 `refreshToken` 后重试。\n- **Rate limits**：Reports API 0.0222 req/s，默认 30s 轮询是安全间隔。\n- **Report 时效**：部分财务报告可能需要 10–30 分钟，按需调大 `maxAttempts`。\n- **Path 白名单**：后端 `sp-api.developer-proxy.allowed-path-prefixes` 必须允许 `reports/2021-06-30/reports`。\n\n## User Expression & Scenario Quick Reference\n\n**Applicable** — 报告获取场景：\n\n| User Says | Scenario |\n|-----------|----------|\n| \"拉亚马逊库存报告\" / \"pull inventory report\" | Scenario 1 |\n| \"下载订单数据\" / \"download orders report\" | Scenario 1 |\n| \"获取销售流量报告\" / \"sales and traffic report\" | Scenario 1 |\n| \"拉财务结算报告\" / \"settlement report\" | Scenario 1 |\n| \"查 FBA 库存\" / \"FBA inventory report\" | Scenario 1 |\n| \"拉某时间段的订单报告\" / \"orders from 2024-01-01 to ...\" | Scenario 3 |\n\n**Not applicable** — 超出本 skill：\n\n- 授权新店铺、列已授权店铺、刷新/查询令牌 → 请使用 `linkfox-amazon-store-auth`\n- 商品 listing 管理、订单处理、广告投放 → 由其他 skill 负责\n\n**Boundary judgment**：\n- 本 skill 只负责「依赖检查 + 报告获取业务」，**授权/令牌属于依赖 skill**。\n- 任何进入本 skill 的调用都要先跑 Scenario 0。\n\n---\n\n## Amazon SP-API 接口保护与重试指引\n\n同一店铺连续收到 Amazon SP-API 的 400、403、404 或 429 时，网关会返回 450、453、454 或 459 并短暂冷却。这些自定义状态码不是 Amazon 原生状态，也不表示封号；目的是避免持续异常或高频调用扩大店铺风险。\n\n| 状态与 message | 范围 | 触发与冷却 | 处理 |\n|---|---|---|---|\n| `450`：`400，请求异常，请优化您的参数` | 店铺+接口 | 60 秒内超过 3 次：5 分钟；10 分钟内超过 4 次：20 分钟 | 停止原参数重试，检查必填字段、marketplace、ID、日期和请求体 |\n| `453`：`403，店铺未授权，请先授权` | 店铺全部接口 | 60 秒内超过 2 次：5 分钟；10 分钟内超过 4 次：30 分钟 | 停止该店铺调用，检查授权、权限、店铺归属和区域 |\n| `454`：`404，资源不存在，请优化您的参数` | 店铺+接口 | 60 秒内超过 3 次：5 分钟；10 分钟内超过 4 次：30 分钟 | 确认资源 ID、所属店铺/站点、资源状态和接口路径 |\n| `459`：`429限流中，请降低频率` | 店铺+接口 | 首次：15 秒；2 分钟内超过 2 次：30 秒；3 分钟内超过 4 次：2 分钟 | 降低并发、分页和轮询频率并逐级退避 |\n\n- 立即停止自动或并发重试，不得通过换脚本或重复创建任务绕过保护；优先遵循 `retryAfter`、`blockedUntil`，没有时按表中时长说明。\n- 450/453/454 必须先修正参数、授权或资源标识，冷却后最多谨慎重试一次；再次触发则停止调用。453 期间停止该店铺全部 SP-API。\n- 保留已有 `reportId`、`feedId` 等任务 ID；写操作结果不确定时先查询状态，不直接重放。\n- 向用户先说明店铺保护，再给原因、处理和等待时间。可回复：“为保护您的亚马逊店铺安全，检测到 Amazon SP-API 连续返回{原因}，当前已进入短暂保护。请先{处理动作}，预计{等待时间}后再试；这不代表封号，也不是套餐或算力限制。”不要只说“LinkFox 限流”或“服务器繁忙”。\n\n## 算力消耗规则\n\n不消耗算力。\n\n**Feedback**：\n\n出现以下任一情况时，自动调用 Feedback API 上报：\n1. 本 skill 功能描述与实际不符\n2. 结果与用户意图不符\n3. 用户表达了不满或赞赏\n4. 其他你认为可改进的点\n\n按 `references/api.md` 中的规范调用 Feedback API，不要打断用户主流程。\n\n---\n*For more high-quality, professional cross-border e-commerce skills, visit [LinkFox Skills](https://skill.linkfox.com/).*\n\nFile v1.0.8:README.md\n\n# Amazon Store Report Skill\n\n亚马逊店铺 **报告获取** Skill：端到端自动化拉取库存 / 订单 / 销售 / 财务 / FBA 等 95+ 种报告。\n\n> ⚠️ **本 skill 依赖 `linkfox-amazon-store-auth`**（授权与令牌管理）。未安装时请先安装依赖 skill，`scripts/get_report.py` 启动时会做自动校验。\n\n## 📋 目录结构\n\n```\nlinkfox-amazon-store-report/\n├── SKILL.md                          # Skill 主文档（含 Prerequisites）\n├── _meta.json                        # Skill 元数据（声明依赖）\n├── README.md                         # 本文件\n├── references/\n│   ├── api.md                        # Developer Proxy API 说明\n│   ├── report-types.md               # 完整报告类型（95+ 种）\n│   └── report-types-basic.md         # 常用报告精简版\n└── scripts/\n    ├── README.md                     # 脚本使用指南\n    ├── check_auth_dependency.py      # 依赖探测脚本\n    └── get_report.py                 # 报告获取（启动时自动跑依赖检查）\n```\n\n## 🔗 依赖关系\n\n| 本 Skill | 依赖 |\n|----------|------|\n| `linkfox-amazon-store-report` | `linkfox-amazon-store-auth` |\n\n**依赖未安装时的处置**：\n1. `get_report.py` 启动时以 **exit code 42** 退出，并在 stderr 以 `DEPENDENCY_MISSING:` 开头输出 JSON 指引\n2. 上层 agent 解析该信号后：优先调用本地 skill 安装工具自动装 `linkfox-amazon-store-auth`；否则引导用户手动安装\n3. **安装完成后再重跑本 skill**\n\n## 🚀 快速开始\n\n> 前置条件：已通过 `linkfox-amazon-store-auth` 授权了至少一个店铺。\n\n```bash\npython scripts/get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_MERCHANT_LISTINGS_ALL_DATA\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"]\n}'\n```\n\n成功结束后，脚本会启动短时 **本机 HTTP** 服务，在 **stderr** 与 **stdout JSON** 中给出 **`extractedFileHttpUrl`**，用于在浏览器下载**已解压**后的报告文件（默认保持 `serveSeconds` 秒，仅 `127.0.0.1` 可访问）；同时给出 **`downloadPath`** 与 **`localFileUri`**。详见 `scripts/README.md`。\n\n## 🌍 支持的区域\n\n- **NA**：美国、加拿大、墨西哥\n- **EU**：英国、德国、法国、意大利、西班牙等\n- **FE**：日本、澳大利亚、新加坡、印度\n\n## 🔄 版本历史\n\n- **v1.0.3**（2026-04-24）\n  - 展示保存位置时同时明确输出**文件名**（stderr + JSON 字段 `fileName`）\n\n- **v1.0.2**（2026-04-24）\n  - `get_report.py`：默认启动本机临时 HTTP，生成 **`extractedFileHttpUrl`** 供浏览器下载**已解压**文件；不再默认暴露 Amazon 源 URL（可选 `includeAmazonSourceUrl`）\n\n- **v1.0.1**（2026-04-24）\n  - `get_report.py`：完成后明确展示本地保存路径，并在 JSON / stderr 中输出 Amazon 预签名直链与本机 `file://` URI\n\n- **v1.0.0**（2026-04-24）\n  - 从早期综合亚马逊 skill 拆分而来（报告部分）\n  - 新增依赖探测脚本 `check_auth_dependency.py`\n  - `get_report.py` 启动时自动进行依赖校验\n\n## 📄 许可\n\n本 Skill 是 LinkFoxAgent 项目的一部分。\n\nFile v1.0.8:references/report-requests/README.md\n\n# 报告请求与文档格式（按 GitHub schema 分文件）\n\n> 与 [amzn/selling-partner-api-models/schemas/reports](https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports) 中的 JSON Schema **一一对应**。\n\n## `reportType` 全覆盖（含无 JSON 的 Flat File）\n\n`references/report-types.md` 表格中的 **每一个** `reportType` 均有专页 → **[types/README.md](./types/README.md)**（109 个：`types/<REPORT_TYPE>.md`）。  \n有 GitHub JSON 的条目会链回下表中的 `*.md`；其余条目给出最小 CreateReport 模板并指向 [Report type values](https://developer-docs.amazon.com/sp-api/docs/report-type-values)。\n\n## 索引（仅含官方 `schemas/reports/*.json`）\n\n| 文档 | 上游 Schema | 涉及 `reportType` |\n|------|-------------|-------------------|\n| [accountHealthReport-2020-11-18.md](./accountHealthReport-2020-11-18.md) | [`accountHealthReport-2020-11-18.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/accountHealthReport-2020-11-18.json) | 见专页（账户状况结果 JSON；`reportType` 以官方 Report Type Values 为准） |\n| [b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.md](./b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.md) | [`b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.json) | `GET_B2B_PRODUCT_OPPORTUNITIES_NOT_YET_ON_AMAZON` |\n| [b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.md](./b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.md) | [`b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.json) | `GET_B2B_PRODUCT_OPPORTUNITIES_RECOMMENDED_FOR_YOU` |\n| [endUserDataReport.md](./endUserDataReport.md) | [`endUserDataReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/endUserDataReport.json) | `END_USER_DATA_REPORT` |\n| [marketplaceAsinPageViewMetrics.md](./marketplaceAsinPageViewMetrics.md) | [`marketplaceAsinPageViewMetrics.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/marketplaceAsinPageViewMetrics.json) | `MARKETPLACE_ASIN_PAGE_VIEW_METRICS` |\n| [promotionReport.md](./promotionReport.md) | [`promotionReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/promotionReport.json) | `GET_PROMOTION_PERFORMANCE_REPORT` |\n| [sellerCouponReport.md](./sellerCouponReport.md) | [`sellerCouponReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellerCouponReport.json) | `GET_COUPON_PERFORMANCE_REPORT` |\n| [sellerSalesAndTrafficReport.md](./sellerSalesAndTrafficReport.md) | [`sellerSalesAndTrafficReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellerSalesAndTrafficReport.json) | `GET_SALES_AND_TRAFFIC_REPORT` |\n| [sellingPartnerMarketBasketAnalysisReport.md](./sellingPartnerMarketBasketAnalysisReport.md) | [`sellingPartnerMarketBasketAnalysisReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellingPartnerMarketBasketAnalysisReport.json) | `GET_BRAND_ANALYTICS_MARKET_BASKET_REPORT`（搜索词见 `sellingPartnerSearchTermsReport`） |\n| [sellingPartnerRepeatPurchaseReport.md](./sellingPartnerRepeatPurchaseReport.md) | [`sellingPartnerRepeatPurchaseReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellingPartnerRepeatPurchaseReport.json) | `GET_BRAND_ANALYTICS_REPEAT_PURCHASE_REPORT` |\n| [sellingPartnerSearchCatalogPerformanceReport.md](./sellingPartnerSearchCatalogPerformanceReport.md) | [`sellingPartnerSearchCatalogPerformanceReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellingPartnerSearchCatalogPerformanceReport.json) | `GET_BRAND_ANALYTICS_SEARCH_CATALOG_PERFORMANCE_REPORT` |\n| [sellingPartnerSearchQueryPerformanceReport.md](./sellingPartnerSearchQueryPerformanceReport.md) | [`sellingPartnerSearchQueryPerformanceReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellingPartnerSearchQueryPerformanceReport.json) | `GET_BRAND_ANALYTICS_SEARCH_QUERY_PERFORMANCE_REPORT` |\n| [sellingPartnerSearchTermsReport.md](./sellingPartnerSearchTermsReport.md) | [`sellingPartnerSearchTermsReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellingPartnerSearchTermsReport.json) | `GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT` |\n| [vendorCouponReport.md](./vendorCouponReport.md) | [`vendorCouponReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/vendorCouponReport.json) | `GET_COUPON_PERFORMANCE_REPORT` |\n| [vendorForecastingReport.md](./vendorForecastingReport.md) | [`vendorForecastingReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/vendorForecastingReport.json) | `GET_VENDOR_FORECASTING_REPORT` |\n| [vendorInventoryReport.md](./vendorInventoryReport.md) | [`vendorInventoryReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/vendorInventoryReport.json) | `GET_VENDOR_INVENTORY_REPORT` |\n| [vendorNetPureProductMarginReport.md](./vendorNetPureProductMarginReport.md) | [`vendorNetPureProductMarginReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/vendorNetPureProductMarginReport.json) | `GET_VENDOR_NET_PURE_PRODUCT_MARGIN_REPORT` |\n| [vendorRealTimeInventoryReport.md](./vendorRealTimeInventoryReport.md) | [`vendorRealTimeInventoryReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/vendorRealTimeInventoryReport.json) | `GET_VENDOR_REAL_TIME_INVENTORY_REPORT` |\n| [vendorRealTimeSalesReport.md](./vendorRealTimeSalesReport.md) | [`vendorRealTimeSalesReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/vendorRealTimeSalesReport.json) | `GET_VENDOR_REAL_TIME_SALES_REPORT` |\n| [vendorRealTimeTrafficReport.md](./vendorRealTimeTrafficReport.md) | [`vendorRealTimeTrafficReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/vendorRealTimeTrafficReport.json) | `GET_VENDOR_REAL_TIME_TRAFFIC_REPORT` |\n| [vendorSalesReport.md](./vendorSalesReport.md) | [`vendorSalesReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/vendorSalesReport.json) | `GET_VENDOR_SALES_REPORT` |\n| [vendorTrafficReport.md](./vendorTrafficReport.md) | [`vendorTrafficReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/vendorTrafficReport.json) | `GET_VENDOR_TRAFFIC_REPORT` |\n\n## 通用说明\n\n- **创建报告**：`references/api.md` 中的 `developerProxy` + `path=reports/2021-06-30/reports` + `method=POST`。\n- **本目录**：每个 `*.md` 对应一个 `*.json`，给出 `createReport` 请求体要点及 schema 摘要。\n- **未出现在上表中的 reportType**：见 **[types/](./types/)** 目录下按枚举命名的专页（全覆盖 `report-types.md`）。\n\nFile v1.0.8:references/report-requests/types/README.md\n\n# 按 `reportType` 全覆盖 — 请求说明专页\n\n本目录为 `references/report-types.md` 中**每一个**报告枚举提供一页说明：\n\n- 标注是否在 Amazon [`schemas/reports`](https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports) 有 JSON 结果 Schema，并链到 `references/report-requests/` 下对应专页。\n- 无独立 JSON 的类型：给出 **CreateReport 最小请求体** 与官方 [Report type values](https://developer-docs.amazon.com/sp-api/docs/report-type-values) 入口。\n- 每页顶部另有 **「官方说明」或「官方索引（Report type values）」**：从亚马逊各子类文档自动摘录；其中在 `report-requests/` 下**已有 GitHub Schema 专页**（`*.md` 与 `schemas/reports/*.json` 对应）的类型，仅保留 **Schema 链、Amazon 锚点、权限/站点类字段**，避免与专页中的 Schema 摘要、`reportOptions` 表重复。其余 Flat File 类型仍为完整「官方说明」。  \n  更新摘录：将 15 个子页 HTML 放入 `references/_spapi_docs_cache/`，运行 `scripts/merge_report_type_values_from_cache.py`（依赖见该脚本注释）。\n\n**共计**：109 个 `reportType`。\n\n## 索引\n\n| reportType | 分类（report-types.md） | 类型 | 专页 |\n|------------|-------------------------|------|------|\n| `FEE_DISCOUNTS_REPORT` | 1. Amazon Business Reports | Flat/XML（文档） | [FEE_DISCOUNTS_REPORT.md](./FEE_DISCOUNTS_REPORT.md) |\n| `GET_BRAND_ANALYTICS_SEARCH_CATALOG_PERFORMANCE_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_BRAND_ANALYTICS_SEARCH_CATALOG_PERFORMANCE_REPORT.md](./GET_BRAND_ANALYTICS_SEARCH_CATALOG_PERFORMANCE_REPORT.md) |\n| `GET_BRAND_ANALYTICS_SEARCH_QUERY_PERFORMANCE_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_BRAND_ANALYTICS_SEARCH_QUERY_PERFORMANCE_REPORT.md](./GET_BRAND_ANALYTICS_SEARCH_QUERY_PERFORMANCE_REPORT.md) |\n| `GET_BRAND_ANALYTICS_MARKET_BASKET_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_BRAND_ANALYTICS_MARKET_BASKET_REPORT.md](./GET_BRAND_ANALYTICS_MARKET_BASKET_REPORT.md) |\n| `GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT.md](./GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT.md) |\n| `GET_BRAND_ANALYTICS_REPEAT_PURCHASE_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_BRAND_ANALYTICS_REPEAT_PURCHASE_REPORT.md](./GET_BRAND_ANALYTICS_REPEAT_PURCHASE_REPORT.md) |\n| `GET_VENDOR_REAL_TIME_INVENTORY_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_REAL_TIME_INVENTORY_REPORT.md](./GET_VENDOR_REAL_TIME_INVENTORY_REPORT.md) |\n| `GET_VENDOR_REAL_TIME_TRAFFIC_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_REAL_TIME_TRAFFIC_REPORT.md](./GET_VENDOR_REAL_TIME_TRAFFIC_REPORT.md) |\n| `GET_VENDOR_REAL_TIME_SALES_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_REAL_TIME_SALES_REPORT.md](./GET_VENDOR_REAL_TIME_SALES_REPORT.md) |\n| `GET_VENDOR_SALES_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_SALES_REPORT.md](./GET_VENDOR_SALES_REPORT.md) |\n| `GET_VENDOR_NET_PURE_PRODUCT_MARGIN_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_NET_PURE_PRODUCT_MARGIN_REPORT.md](./GET_VENDOR_NET_PURE_PRODUCT_MARGIN_REPORT.md) |\n| `GET_VENDOR_TRAFFIC_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_TRAFFIC_REPORT.md](./GET_VENDOR_TRAFFIC_REPORT.md) |\n| `GET_VENDOR_FORECASTING_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_FORECASTING_REPORT.md](./GET_VENDOR_FORECASTING_REPORT.md) |\n| `GET_VENDOR_INVENTORY_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_INVENTORY_REPORT.md](./GET_VENDOR_INVENTORY_REPORT.md) |\n| `GET_SALES_AND_TRAFFIC_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_SALES_AND_TRAFFIC_REPORT.md](./GET_SALES_AND_TRAFFIC_REPORT.md) |\n| `GET_B2B_PRODUCT_OPPORTUNITIES_RECOMMENDED_FOR_YOU` | 3. B2B Product Opportunities | JSON Schema 专页 | [GET_B2B_PRODUCT_OPPORTUNITIES_RECOMMENDED_FOR_YOU.md](./GET_B2B_PRODUCT_OPPORTUNITIES_RECOMMENDED_FOR_YOU.md) |\n| `GET_B2B_PRODUCT_OPPORTUNITIES_NOT_YET_ON_AMAZON` | 3. B2B Product Opportunities | JSON Schema 专页 | [GET_B2B_PRODUCT_OPPORTUNITIES_NOT_YET_ON_AMAZON.md](./GET_B2B_PRODUCT_OPPORTUNITIES_NOT_YET_ON_AMAZON.md) |\n| `GET_XML_BROWSE_TREE_DATA` | 4. Browse Tree Reports | Flat/XML（文档） | [GET_XML_BROWSE_TREE_DATA.md](./GET_XML_BROWSE_TREE_DATA.md) |\n| `GET_EASYSHIP_DOCUMENTS` | 5. Easy Ship Reports | Flat/XML（文档） | [GET_EASYSHIP_DOCUMENTS.md](./GET_EASYSHIP_DOCUMENTS.md) |\n| `GET_EASYSHIP_PICKEDUP` | 5. Easy Ship Reports | Flat/XML（文档） | [GET_EASYSHIP_PICKEDUP.md](./GET_EASYSHIP_PICKEDUP.md) |\n| `GET_EASYSHIP_WAITING_FOR_PICKUP` | 5. Easy Ship Reports | Flat/XML（文档） | [GET_EASYSHIP_WAITING_FOR_PICKUP.md](./GET_EASYSHIP_WAITING_FOR_PICKUP.md) |\n| `GET_AMAZON_FULFILLED_SHIPMENTS_DATA_GENERAL` | 6.1 FBA Shipments | Flat/XML（文档） | [GET_AMAZON_FULFILLED_SHIPMENTS_DATA_GENERAL.md](./GET_AMAZON_FULFILLED_SHIPMENTS_DATA_GENERAL.md) |\n| `GET_AMAZON_FULFILLED_SHIPMENTS_DATA_INVOICING` | 6.1 FBA Shipments | Flat/XML（文档） | [GET_AMAZON_FULFILLED_SHIPMENTS_DATA_INVOICING.md](./GET_AMAZON_FULFILLED_SHIPMENTS_DATA_INVOICING.md) |\n| `GET_AMAZON_FULFILLED_SHIPMENTS_DATA_TAX` | 6.1 FBA Shipments | Flat/XML（文档） | [GET_AMAZON_FULFILLED_SHIPMENTS_DATA_TAX.md](./GET_AMAZON_FULFILLED_SHIPMENTS_DATA_TAX.md) |\n| `GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_SALES_DATA` | 6.1 FBA Shipments | Flat/XML（文档） | [GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_SALES_DATA.md](./GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_SALES_DATA.md) |\n| `GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_PROMOTION_DATA` | 6.1 FBA Shipments | Flat/XML（文档） | [GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_PROMOTION_DATA.md](./GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_PROMOTION_DATA.md) |\n| `GET_FBA_FULFILLMENT_CUSTOMER_TAXES_DATA` | 6.1 FBA Shipments | Flat/XML（文档） | [GET_FBA_FULFILLMENT_CUSTOMER_TAXES_DATA.md](./GET_FBA_FULFILLMENT_CUSTOMER_TAXES_DATA.md) |\n| `GET_AFN_INVENTORY_DATA` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_AFN_INVENTORY_DATA.md](./GET_AFN_INVENTORY_DATA.md) |\n| `GET_AFN_INVENTORY_DATA_BY_COUNTRY` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_AFN_INVENTORY_DATA_BY_COUNTRY.md](./GET_AFN_INVENTORY_DATA_BY_COUNTRY.md) |\n| `GET_LEDGER_SUMMARY_VIEW_DATA` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_LEDGER_SUMMARY_VIEW_DATA.md](./GET_LEDGER_SUMMARY_VIEW_DATA.md) |\n| `GET_LEDGER_DETAIL_VIEW_DATA` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_LEDGER_DETAIL_VIEW_DATA.md](./GET_LEDGER_DETAIL_VIEW_DATA.md) |\n| `GET_RESERVED_INVENTORY_DATA` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_RESERVED_INVENTORY_DATA.md](./GET_RESERVED_INVENTORY_DATA.md) |\n| `GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATA` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATA.md](./GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATA.md) |\n| `GET_FBA_MYI_ALL_INVENTORY_DATA` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_FBA_MYI_ALL_INVENTORY_DATA.md](./GET_FBA_MYI_ALL_INVENTORY_DATA.md) |\n| `GET_RESTOCK_INVENTORY_RECOMMENDATIONS_REPORT` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_RESTOCK_INVENTORY_RECOMMENDATIONS_REPORT.md](./GET_RESTOCK_INVENTORY_RECOMMENDATIONS_REPORT.md) |\n| `GET_STRANDED_INVENTORY_UI_DATA` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_STRANDED_INVENTORY_UI_DATA.md](./GET_STRANDED_INVENTORY_UI_DATA.md) |\n| `GET_STRANDED_INVENTORY_LOADER_DATA` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_STRANDED_INVENTORY_LOADER_DATA.md](./GET_STRANDED_INVENTORY_LOADER_DATA.md) |\n| `GET_FBA_INVENTORY_PLANNING_DATA` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_FBA_INVENTORY_PLANNING_DATA.md](./GET_FBA_INVENTORY_PLANNING_DATA.md) |\n| `GET_REMOTE_FULFILLMENT_ELIGIBILITY` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_REMOTE_FULFILLMENT_ELIGIBILITY.md](./GET_REMOTE_FULFILLMENT_ELIGIBILITY.md) |\n| `GET_FBA_STORAGE_FEE_CHARGES_DATA` | 6.3 FBA Fees & Charges | Flat/XML（文档） | [GET_FBA_STORAGE_FEE_CHARGES_DATA.md](./GET_FBA_STORAGE_FEE_CHARGES_DATA.md) |\n| `GET_FBA_OVERAGE_FEE_CHARGES_DATA` | 6.3 FBA Fees & Charges | Flat/XML（文档） | [GET_FBA_OVERAGE_FEE_CHARGES_DATA.md](./GET_FBA_OVERAGE_FEE_CHARGES_DATA.md) |\n| `GET_FBA_ESTIMATED_FBA_FEES_TXT_DATA` | 6.3 FBA Fees & Charges | Flat/XML（文档） | [GET_FBA_ESTIMATED_FBA_FEES_TXT_DATA.md](./GET_FBA_ESTIMATED_FBA_FEES_TXT_DATA.md) |\n| `GET_FBA_FULFILLMENT_LONGTERM_STORAGE_FEE_CHARGES_DATA` | 6.3 FBA Fees & Charges | Flat/XML（文档） | [GET_FBA_FULFILLMENT_LONGTERM_STORAGE_FEE_CHARGES_DATA.md](./GET_FBA_FULFILLMENT_LONGTERM_STORAGE_FEE_CHARGES_DATA.md) |\n| `GET_FBA_FULFILLMENT_CUSTOMER_RETURNS_DATA` | 6.4 FBA Returns & Reimbursements | Flat/XML（文档） | [GET_FBA_FULFILLMENT_CUSTOMER_RETURNS_DATA.md](./GET_FBA_FULFILLMENT_CUSTOMER_RETURNS_DATA.md) |\n| `GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_REPLACEMENT_DATA` | 6.4 FBA Returns & Reimbursements | Flat/XML（文档） | [GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_REPLACEMENT_DATA.md](./GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_REPLACEMENT_DATA.md) |\n| `GET_FBA_REIMBURSEMENTS_DATA` | 6.4 FBA Returns & Reimbursements | Flat/XML（文档） | [GET_FBA_REIMBURSEMENTS_DATA.md](./GET_FBA_REIMBURSEMENTS_DATA.md) |\n| `GET_FBA_RECOMMENDED_REMOVAL_DATA` | 6.5 FBA Removals | Flat/XML（文档） | [GET_FBA_RECOMMENDED_REMOVAL_DATA.md](./GET_FBA_RECOMMENDED_REMOVAL_DATA.md) |\n| `GET_FBA_FULFILLMENT_REMOVAL_ORDER_DETAIL_DATA` | 6.5 FBA Removals | Flat/XML（文档） | [GET_FBA_FULFILLMENT_REMOVAL_ORDER_DETAIL_DATA.md](./GET_FBA_FULFILLMENT_REMOVAL_ORDER_DETAIL_DATA.md) |\n| `GET_FBA_FULFILLMENT_REMOVAL_SHIPMENT_DETAIL_DATA` | 6.5 FBA Removals | Flat/XML（文档） | [GET_FBA_FULFILLMENT_REMOVAL_SHIPMENT_DETAIL_DATA.md](./GET_FBA_FULFILLMENT_REMOVAL_SHIPMENT_DETAIL_DATA.md) |\n| `GET_FBA_FULFILLMENT_INBOUND_NONCOMPLIANCE_DATA` | 6.6 FBA Compliance | Flat/XML（文档） | [GET_FBA_FULFILLMENT_INBOUND_NONCOMPLIANCE_DATA.md](./GET_FBA_FULFILLMENT_INBOUND_NONCOMPLIANCE_DATA.md) |\n| `GET_FLAT_FILE_OPEN_LISTINGS_DATA` | 7. Inventory Reports | Flat/XML（文档） | [GET_FLAT_FILE_OPEN_LISTINGS_DATA.md](./GET_FLAT_FILE_OPEN_LISTINGS_DATA.md) |\n| `GET_MERCHANT_LISTINGS_ALL_DATA` | 7. Inventory Reports | Flat/XML（文档） | [GET_MERCHANT_LISTINGS_ALL_DATA.md](./GET_MERCHANT_LISTINGS_ALL_DATA.md) |\n| `GET_MERCHANT_LISTINGS_DATA` | 7. Inventory Reports | Flat/XML（文档） | [GET_MERCHANT_LISTINGS_DATA.md](./GET_MERCHANT_LISTINGS_DATA.md) |\n| `GET_MERCHANT_LISTINGS_INACTIVE_DATA` | 7. Inventory Reports | Flat/XML（文档） | [GET_MERCHANT_LISTINGS_INACTIVE_DATA.md](./GET_MERCHANT_LISTINGS_INACTIVE_DATA.md) |\n| `GET_MERCHANT_LISTINGS_DATA_BACK_COMPAT` | 7. Inventory Reports | Flat/XML（文档） | [GET_MERCHANT_LISTINGS_DATA_BACK_COMPAT.md](./GET_MERCHANT_LISTINGS_DATA_BACK_COMPAT.md) |\n| `GET_MERCHANT_LISTINGS_DATA_LITE` | 7. Inventory Reports | Flat/XML（文档） | [GET_MERCHANT_LISTINGS_DATA_LITE.md](./GET_MERCHANT_LISTINGS_DATA_LITE.md) |\n| `GET_MERCHANT_LISTINGS_DATA_LITER` | 7. Inventory Reports | Flat/XML（文档） | [GET_MERCHANT_LISTINGS_DATA_LITER.md](./GET_MERCHANT_LISTINGS_DATA_LITER.md) |\n| `GET_MERCHANT_CANCELLED_LISTINGS_DATA` | 7. Inventory Reports | Flat/XML（文档） | [GET_MERCHANT_CANCELLED_LISTINGS_DATA.md](./GET_MERCHANT_CANCELLED_LISTINGS_DATA.md) |\n| `GET_MERCHANTS_LISTINGS_FYP_REPORT` | 7. Inventory Reports | Flat/XML（文档） | [GET_MERCHANTS_LISTINGS_FYP_REPORT.md](./GET_MERCHANTS_LISTINGS_FYP_REPORT.md) |\n| `GET_PAN_EU_OFFER_STATUS` | 7. Inventory Reports | Flat/XML（文档） | [GET_PAN_EU_OFFER_STATUS.md](./GET_PAN_EU_OFFER_STATUS.md) |\n| `GET_MFN_PANEU_OFFER_STATUS` | 7. Inventory Reports | Flat/XML（文档） | [GET_MFN_PANEU_OFFER_STATUS.md](./GET_MFN_PANEU_OFFER_STATUS.md) |\n| `GET_REFERRAL_FEE_PREVIEW_REPORT` | 7. Inventory Reports | Flat/XML（文档） | [GET_REFERRAL_FEE_PREVIEW_REPORT.md](./GET_REFERRAL_FEE_PREVIEW_REPORT.md) |\n| `GET_FLAT_FILE_VAT_INVOICE_DATA_REPORT` | 8. Invoice Reports | Flat/XML（文档） | [GET_FLAT_FILE_VAT_INVOICE_DATA_REPORT.md](./GET_FLAT_FILE_VAT_INVOICE_DATA_REPORT.md) |\n| `GET_XML_VAT_INVOICE_DATA_REPORT` | 8. Invoice Reports | Flat/XML（文档） | [GET_XML_VAT_INVOICE_DATA_REPORT.md](./GET_XML_VAT_INVOICE_DATA_REPORT.md) |\n| `GET_FLAT_FILE_ACTIONABLE_ORDER_DATA_SHIPPING` | 9. Order Reports | Flat/XML（文档） | [GET_FLAT_FILE_ACTIONABLE_ORDER_DATA_SHIPPING.md](./GET_FLAT_FILE_ACTIONABLE_ORDER_DATA_SHIPPING.md) |\n| `GET_ORDER_REPORT_DATA_INVOICING` | 9. Order Reports | Flat/XML（文档） | [GET_ORDER_REPORT_DATA_INVOICING.md](./GET_ORDER_REPORT_DATA_INVOICING.md) |\n| `GET_ORDER_REPORT_DATA_TAX` | 9. Order Reports | Flat/XML（文档） | [GET_ORDER_REPORT_DATA_TAX.md](./GET_ORDER_REPORT_DATA_TAX.md) |\n| `GET_ORDER_REPORT_DATA_SHIPPING` | 9. Order Reports | Flat/XML（文档） | [GET_ORDER_REPORT_DATA_SHIPPING.md](./GET_ORDER_REPORT_DATA_SHIPPING.md) |\n| `GET_FLAT_FILE_ORDER_REPORT_DATA_INVOICING` | 9. Order Reports | Flat/XML（文档） | [GET_FLAT_FILE_ORDER_REPORT_DATA_INVOICING.md](./GET_FLAT_FILE_ORDER_REPORT_DATA_INVOICING.md) |\n| `GET_FLAT_FILE_ORDER_REPORT_DATA_SHIPPING` | 9. Order Reports | Flat/XML（文档） | [GET_FLAT_FILE_ORDER_REPORT_DATA_SHIPPING.md](./GET_FLAT_FILE_ORDER_REPORT_DATA_SHIPPING.md) |\n| `GET_FLAT_FILE_ORDER_REPORT_DATA_TAX` | 9. Order Reports | Flat/XML（文档） | [GET_FLAT_FILE_ORDER_REPORT_DATA_TAX.md](./GET_FLAT_FILE_ORDER_REPORT_DATA_TAX.md) |\n| `GET_FLAT_FILE_ALL_ORDERS_DATA_BY_LAST_UPDATE_GENERAL` | 9. Order Reports | Flat/XML（文档） | [GET_FLAT_FILE_ALL_ORDERS_DATA_BY_LAST_UPDATE_GENERAL.md](./GET_FLAT_FILE_ALL_ORDERS_DATA_BY_LAST_UPDATE_GENERAL.md) |\n| `GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL` | 9. Order Reports | Flat/XML（文档） | [GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL.md](./GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL.md) |\n| `GET_FLAT_FILE_ARCHIVED_ORDERS_DATA_BY_ORDER_DATE` | 9. Order Reports | Flat/XML（文档） | [GET_FLAT_FILE_ARCHIVED_ORDERS_DATA_BY_ORDER_DATE.md](./GET_FLAT_FILE_ARCHIVED_ORDERS_DATA_BY_ORDER_DATE.md) |\n| `GET_XML_ALL_ORDERS_DATA_BY_LAST_UPDATE_GENERAL` | 9. Order Reports | Flat/XML（文档） | [GET_XML_ALL_ORDERS_DATA_BY_LAST_UPDATE_GENERAL.md](./GET_XML_ALL_ORDERS_DATA_BY_LAST_UPDATE_GENERAL.md) |\n| `GET_XML_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL` | 9. Order Reports | Flat/XML（文档） | [GET_XML_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL.md](./GET_XML_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL.md) |\n| `GET_FLAT_FILE_PENDING_ORDERS_DATA` | 9. Order Reports | Flat/XML（文档） | [GET_FLAT_FILE_PENDING_ORDERS_DATA.md](./GET_FLAT_FILE_PENDING_ORDERS_DATA.md) |\n| `GET_PENDING_ORDERS_DATA` | 9. Order Reports | Flat/XML（文档） | [GET_PENDING_ORDERS_DATA.md](./GET_PENDING_ORDERS_DATA.md) |\n| `GET_CONVERGED_FLAT_FILE_PENDING_ORDERS_DATA` | 9. Order Reports | Flat/XML（文档） | [GET_CONVERGED_FLAT_FILE_PENDING_ORDERS_DATA.md](./GET_CONVERGED_FLAT_FILE_PENDING_ORDERS_DATA.md) |\n| `GET_DATE_RANGE_FINANCIAL_HOLDS_DATA` | 10. Payment Reports | Flat/XML（文档） | [GET_DATE_RANGE_FINANCIAL_HOLDS_DATA.md](./GET_DATE_RANGE_FINANCIAL_HOLDS_DATA.md) |\n| `GET_SELLER_FEEDBACK_DATA` | 11. Performance Reports | Flat/XML（文档） | [GET_SELLER_FEEDBACK_DATA.md](./GET_SELLER_FEEDBACK_DATA.md) |\n| `GET_V1_SELLER_PERFORMANCE_REPORT` | 11. Performance Reports | Flat/XML（文档） | [GET_V1_SELLER_PERFORMANCE_REPORT.md](./GET_V1_SELLER_PERFORMANCE_REPORT.md) |\n| `GET_V2_SELLER_PERFORMANCE_REPORT` | 11. Performance Reports | Flat/XML（文档） | [GET_V2_SELLER_PERFORMANCE_REPORT.md](./GET_V2_SELLER_PERFORMANCE_REPORT.md) |\n| `GET_PROMOTION_PERFORMANCE_REPORT` | 11. Performance Reports | JSON Schema 专页 | [GET_PROMOTION_PERFORMANCE_REPORT.md](./GET_PROMOTION_PERFORMANCE_REPORT.md) |\n| `GET_COUPON_PERFORMANCE_REPORT` | 11. Performance Reports | JSON Schema 专页 | [GET_COUPON_PERFORMANCE_REPORT.md](./GET_COUPON_PERFORMANCE_REPORT.md) |\n| `END_USER_DATA_REPORT` | 12. Regulatory Compliance Reports | JSON Schema 专页 | [END_USER_DATA_REPORT.md](./END_USER_DATA_REPORT.md) |\n| `FBA_BULK_INVOICE` | 12. Regulatory Compliance Reports | Flat/XML（文档） | [FBA_BULK_INVOICE.md](./FBA_BULK_INVOICE.md) |\n| `MARKETPLACE_ASIN_PAGE_VIEW_METRICS` | 12. Regulatory Compliance Reports | JSON Schema 专页 | [MARKETPLACE_ASIN_PAGE_VIEW_METRICS.md](./MARKETPLACE_ASIN_PAGE_VIEW_METRICS.md) |\n| `GET_EPR_MONTHLY_REPORTS` | 12. Regulatory Compliance Reports | Flat/XML（文档） | [GET_EPR_MONTHLY_REPORTS.md](./GET_EPR_MONTHLY_REPORTS.md) |\n| `GET_EPR_QUARTERLY_REPORTS` | 12. Regulatory Compliance Reports | Flat/XML（文档） | [GET_EPR_QUARTERLY_REPORTS.md](./GET_EPR_QUARTERLY_REPORTS.md) |\n| `GET_EPR_ANNUAL_REPORTS` | 12. Regulatory Compliance Reports | Flat/XML（文档） | [GET_EPR_ANNUAL_REPORTS.md](./GET_EPR_ANNUAL_REPORTS.md) |\n| `GET_XML_RETURNS_DATA_BY_RETURN_DATE` | 13. Returns Reports | Flat/XML（文档） | [GET_XML_RETURNS_DATA_BY_RETURN_DATE.md](./GET_XML_RETURNS_DATA_BY_RETURN_DATE.md) |\n| `GET_FLAT_FILE_RETURNS_DATA_BY_RETURN_DATE` | 13. Returns Reports | Flat/XML（文档） | [GET_FLAT_FILE_RETURNS_DATA_BY_RETURN_DATE.md](./GET_FLAT_FILE_RETURNS_DATA_BY_RETURN_DATE.md) |\n| `GET_XML_MFN_PRIME_RETURNS_REPORT` | 13. Returns Reports | Flat/XML（文档） | [GET_XML_MFN_PRIME_RETURNS_REPORT.md](./GET_XML_MFN_PRIME_RETURNS_REPORT.md) |\n| `GET_CSV_MFN_PRIME_RETURNS_REPORT` | 13. Returns Reports | Flat/XML（文档） | [GET_CSV_MFN_PRIME_RETURNS_REPORT.md](./GET_CSV_MFN_PRIME_RETURNS_REPORT.md) |\n| `GET_XML_MFN_SKU_RETURN_ATTRIBUTES_REPORT` | 13. Returns Reports | Flat/XML（文档） | [GET_XML_MFN_SKU_RETURN_ATTRIBUTES_REPORT.md](./GET_XML_MFN_SKU_RETURN_ATTRIBUTES_REPORT.md) |\n| `GET_FLAT_FILE_MFN_SKU_RETURN_ATTRIBUTES_REPORT` | 13. Returns Reports | Flat/XML（文档） | [GET_FLAT_FILE_MFN_SKU_RETURN_ATTRIBUTES_REPORT.md](./GET_FLAT_FILE_MFN_SKU_RETURN_ATTRIBUTES_REPORT.md) |\n| `GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE` | 14. Settlement/Payments Reports | Flat/XML（文档） | [GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE.md](./GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE.md) |\n| `GET_V2_SETTLEMENT_REPORT_DATA_XML` | 14. Settlement/Payments Reports | Flat/XML（文档） | [GET_V2_SETTLEMENT_REPORT_DATA_XML.md](./GET_V2_SETTLEMENT_REPORT_DATA_XML.md) |\n| `GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2` | 14. Settlement/Payments Reports | Flat/XML（文档） | [GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2.md](./GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2.md) |\n| `GST_MTR_STOCK_TRANSFER_REPORT` | 15. Tax Reports | Flat/XML（文档） | [GST_MTR_STOCK_TRANSFER_REPORT.md](./GST_MTR_STOCK_TRANSFER_REPORT.md) |\n| `GST_MTR_B2B` | 15. Tax Reports | Flat/XML（文档） | [GST_MTR_B2B.md](./GST_MTR_B2B.md) |\n| `GST_MTR_B2C` | 15. Tax Reports | Flat/XML（文档） | [GST_MTR_B2C.md](./GST_MTR_B2C.md) |\n| `GET_FLAT_FILE_SALES_TAX_DATA` | 15. Tax Reports | Flat/XML（文档） | [GET_FLAT_FILE_SALES_TAX_DATA.md](./GET_FLAT_FILE_SALES_TAX_DATA.md) |\n| `SC_VAT_TAX_REPORT` | 15. Tax Reports | Flat/XML（文档） | [SC_VAT_TAX_REPORT.md](./SC_VAT_TAX_REPORT.md) |\n| `GET_VAT_TRANSACTION_DATA` | 15. Tax Reports | Flat/XML（文档） | [GET_VAT_TRANSACTION_DATA.md](./GET_VAT_TRANSACTION_DATA.md) |\n| `GET_GST_MTR_B2B_CUSTOM` | 15. Tax Reports | Flat/XML（文档） | [GET_GST_MTR_B2B_CUSTOM.md](./GET_GST_MTR_B2B_CUSTOM.md) |\n| `GET_GST_MTR_B2C_CUSTOM` | 15. Tax Reports | Flat/XML（文档） | [GET_GST_MTR_B2C_CUSTOM.md](./GET_GST_MTR_B2C_CUSTOM.md) |\n| `GET_GST_STR_ADHOC` | 15. Tax Reports | Flat/XML（文档） | [GET_GST_STR_ADHOC.md](./GET_GST_STR_ADHOC.md) |\n\nFile v1.0.8:scripts/README.md\n\n# Amazon Store Report Scripts Usage Guide\n\n本目录包含 **报告获取** 相关的 Python 脚本。若需要授权、查看店铺或获取令牌，请使用依赖 skill `linkfox-amazon-store-auth` 的脚本。\n\n## Prerequisites\n\n- Python 3.6+\n- `LINKFOXAGENT_API_KEY` 环境变量\n- 可访问 LinkFox 后端 API（默认 `https://tool-gateway.linkfox.com`）\n- ⚠️ **依赖 skill `linkfox-amazon-store-auth` 已安装**（`get_report.py` 启动会自动校验）\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"your-api-key-here\"\n```\n\n## Available Scripts\n\n### 1. check_auth_dependency.py ⭐\n\n探测依赖 skill `linkfox-amazon-store-auth` 是否可用。\n\n```bash\npython check_auth_dependency.py            # 默认输出\npython check_auth_dependency.py --json     # JSON 输出\n```\n\n**退出码**：\n- `0` → 依赖已满足\n- `42` → `DEPENDENCY_MISSING`：依赖未安装，agent 需触发安装流程\n\n**stderr 信号**：\n- 成功：`DEPENDENCY_OK: {...}`\n- 缺失：`DEPENDENCY_MISSING: {...}`\n\nAgent 检测到 `exit 42` 或 `DEPENDENCY_MISSING:` 时，应当：\n1. 优先调用本地的 skill 安装工具（如有）自动安装 `linkfox-amazon-store-auth`\n2. 否则向用户说明并建议从 https://skill.linkfox.com/ 安装\n\n### 2. get_report.py ⭐\n\n自动化的端到端报告获取脚本。\n\n**脚本启动时会先跑 `check_auth_dependency.py`**；若依赖缺失，会以退出码 `42` 退出并在 stderr 输出 `DEPENDENCY_MISSING:` 结构化信号。\n\n#### Basic Usage\n\n```bash\npython get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_MERCHANT_LISTINGS_ALL_DATA\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"]\n}'\n```\n\n#### Advanced Usage with Date Range\n\n```bash\npython get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"],\n  \"dataStartTime\": \"2024-01-01T00:00:00Z\",\n  \"dataEndTime\": \"2024-01-31T23:59:59Z\"\n}'\n```\n\n#### `reportOptions` / Brand Analytics / Sales & Traffic（见 `references/report-requests/`）\n\n```bash\npython get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_SALES_AND_TRAFFIC_REPORT\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"],\n  \"dataStartTime\": \"2024-06-01T00:00:00Z\",\n  \"dataEndTime\": \"2024-06-07T23:59:59Z\",\n  \"reportOptions\": {\"dateGranularity\": \"DAY\", \"asinGranularity\": \"SKU\"}\n}'\n```\n\n```bash\npython get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_BRAND_ANALYTICS_SEARCH_QUERY_PERFORMANCE_REPORT\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"],\n  \"dataStartTime\": \"2025-01-05\",\n  \"dataEndTime\": \"2025-01-11\",\n  \"reportOptions\": {\"reportPeriod\": \"WEEK\", \"asin\": \"B123456789\"}\n}'\n```\n\n（`reportPeriod` 与 `dataStartTime`/`dataEndTime` 的周起止须符合官方 schema，见 [sellingPartnerSearchQueryPerformanceReport.md](../references/report-requests/sellingPartnerSearchQueryPerformanceReport.md)。）\n\n#### Custom Polling\n\n```bash\npython get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_MERCHANT_LISTINGS_ALL_DATA\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"],\n  \"pollInterval\": 15,\n  \"maxAttempts\": 40\n}'\n```\n\n#### Parameters\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| sellerId | string | Yes | Amazon Seller ID |\n| region | string | Yes | NA / EU / FE |\n| reportType | string | Yes | Amazon report type enum |\n| marketplaceIds | array | Yes | 目标 marketplace IDs |\n| dataStartTime | string | No | ISO 8601 |\n| dataEndTime | string | No | ISO 8601 |\n| lastUpdatedDate | string | No | 部分 Vendor 报告；写入 createReport 请求体 |\n| reportOptions | object | No | 与 SP-API `reportOptions` 一致；键见 `references/report-requests/*.md` |\n| pollInterval | int | No | 轮询间隔秒数（默认 30） |\n| maxAttempts | int | No | 最大轮询次数（默认 20） |\n| skipDepCheck | bool | No | 跳过依赖检查（仅在确认依赖已满足时使用） |\n| serveExtractedFileHttp | bool | No | 是否为**已解压**文件启动本机临时 HTTP（默认 `true`） |\n| serveHost | string | No | 绑定地址，默认 `127.0.0.1` |\n| servePort | int | No | 端口；`0` 表示由系统分配空闲端口（默认 `0`） |\n| serveSeconds | int | No | JSON 打印后 HTTP 服务保持秒数（默认 `300`，最少 `10`） |\n| includeAmazonSourceUrl | bool | No | 为 `true` 时在 JSON 中附带 `amazonDownloadUrl`（Amazon 源，多为压缩包；默认 `false`） |\n| omitAmazonDownloadUrl | bool | No | **兼容旧参数**：`true` 等价于不输出 Amazon URL；`false` 等价于 `includeAmazonSourceUrl: true` |\n\n#### 成功后的输出\n\n- **stderr**：人类可读进度；结束时打印 **本地绝对路径**、**本机 `file://` URI**、**`extractedFileHttpUrl`**（浏览器下载已解压文件）；随后脚本会**阻塞** `serveSeconds` 秒以保持服务可用，结束后打印服务已停止。\n- **stdout**：JSON（便于管道解析），字段示例见下。\n\n```json\n{\n  \"success\": true,\n  \"reportId\": \"amzn1.spdoc.1.4.na.xxx\",\n  \"reportDocumentId\": \"amzn1.spdoc.1.4.na.yyy\",\n  \"reportType\": \"GET_MERCHANT_LISTINGS_ALL_DATA\",\n  \"downloadPath\": \"/tmp/amazon_report_xxx/report_data.txt\",\n  \"fileName\": \"report_data.txt\",\n  \"localFileUri\": \"file:///tmp/amazon_report_xxx/report_data.txt\",\n  \"extractedFileHttpUrl\": \"http://127.0.0.1:52431/download\",\n  \"extractedFileHttpServeSeconds\": 300,\n  \"extractedFileHttpNote\": \"本机临时 HTTP…\",\n  \"compressionAlgorithm\": \"GZIP\",\n  \"tempDirectory\": \"/tmp/amazon_report_xxx\",\n  \"fileSize\": 1234\n}\n```\n\n`extractedFileHttpUrl` 由脚本在**本机**起的短时 HTTP 服务提供，用于下载**已解压**后的文件；**仅在 `serveSeconds` 内、且与脚本同一台机器**可用。不需要给终端用户展示 Amazon 源地址时，不要设置 `includeAmazonSourceUrl`。\n\n#### Exit Codes\n\n| Code | Meaning |\n|------|---------|\n| 0 | 成功 |\n| 1 | 业务错误：参数错误、API 错误、报告 FATAL、超时等 |\n| 42 | **DEPENDENCY_MISSING**：依赖 skill `linkfox-amazon-store-auth` 未安装 |\n\n## Common Report Types\n\n| Report Type | Description |\n|-------------|-------------|\n| GET_MERCHANT_LISTINGS_ALL_DATA | 当前在售 listing |\n| GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL | 按下单日期的全部订单 |\n| GET_SALES_AND_TRAFFIC_REPORT | 销售与流量 |\n| GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE | 财务结算 |\n| GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATA | FBA 库存 |\n\n完整清单：`../references/report-types.md`。\n\n## Marketplace IDs\n\n| Region | Country | Marketplace ID |\n|--------|---------|----------------|\n| NA | US | ATVPDKIKX0DER |\n| NA | Canada | A2EUQ1WTGCTBG2 |\n| NA | Mexico | A1AM78C64UM0Y8 |\n| EU | UK | A1F83G8C2ARO7P |\n| EU | Germany | A1PA6795UKMFR9 |\n| FE | Japan | A1VC38T7YXB528 |\n\n## Environment Variables\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| LINKFOXAGENT_API_KEY | API 鉴权 key | 必需 |\n| STORE_API_BASE_URL / SPAPI_BASE_URL | 后端网关 base URL（优先读前者） | https://tool-gateway.linkfox.com |\n| LINKFOX_SKILLS_DIR / SKILLS_DIR / CURSOR_SKILLS_DIR | 可选：显式指定**扁平** skill 根目录（`<root>/<slug>/SKILL.md`） | — |\n| OPENCLAW_WORKSPACE / OPENCLAW_ROOT / OPENCLAW_WORKDIR | OpenClaw 工作区；会额外探测 `<ws>/skills` 与 `<ws>/.agents/skills` | — |\n| OPENCLAW_SKILLS_DIR | OpenClaw 全局 skills 目录（覆盖或补充 `~/.openclaw/skills`） | — |\n| HERMES_SKILLS_EXTERNAL_DIRS | 等价于 Hermes `config.yaml` 的 `skills.external_dirs`；用系统路径分隔符（macOS/Linux 为 `:`，Windows 为 `;`）拼接多个路径 | — |\n| HERMES_SKILLS_HOME | 若 Hermes 的 category 根不在默认 `~/.hermes/skills`，可指向该根目录 | — |\n\n## Troubleshooting\n\n**`DEPENDENCY_MISSING:` 或退出码 42**\n- 安装依赖 skill `linkfox-amazon-store-auth`\n- 或设置 `LINKFOX_SKILLS_DIR` 指向正确的 skill 根目录\n\n**403 Unauthorized**\n- 店铺缺少报告类型的权限\n- Brand Analytics 报告需要品牌备案\n- 重新授权时勾选更完整权限\n\n**FATAL 状态**\n- 该报告类型对该店铺不可用\n- 数据不足 / 时间范围无数据\n- **不要擅自改换报告类型**，按用户意图停下来回报\n\n**Report 耗时过长**\n- 增大 `maxAttempts` 或 `pollInterval`\n- 财务/结算类报告常常需要 10–30 分钟\n\n## Further Documentation\n\n- API Reference: `../references/api.md`\n- Report Types: `../references/report-types.md`\n- Skill 文档: `../SKILL.md`\n\nFile v1.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-amazon-store-report\",\n  \"version\": \"1.0.8\",\n  \"publishedAt\": 1789361950792\n}\n\nFile v1.0.8:references/api.md\n\n# Amazon 店铺报告 API Reference\n\n本文档描述 **报告获取** 相关的 API。授权与令牌相关接口（`/spApi/authorizeUrl`、`/spApi/storeTokens`、`/spApi/refreshToken` 等）属于 **依赖 skill** `linkfox-amazon-store-auth`，请参考该 skill 的 `references/api.md`。\n\n> ⚠️ **依赖提示**：在调用本 skill 接口前，请先确认 `linkfox-amazon-store-auth` 已安装（参见本 skill 的 `SKILL.md` 顶部 Prerequisites）。\n\n## Calling Conventions\n\n- **Base URL**: `${LINKFOX_TOOL_GATEWAY}`（默认 `https://tool-gateway.linkfox.com`；可用 `STORE_API_BASE_URL` 或兼容旧名 `SPAPI_BASE_URL` 覆盖）\n- **Request Method**: POST\n- **Content-Type**: `application/json`\n- **Authentication**: Header `Authorization: <api_key>`，读取环境变量 `LINKFOX_AGENT_API_KEY` 或 `LINKFOXAGENT_API_KEY`（如未配置 按 SKILL.md 的 **## 解决认证和算力问题** 处理）\n\n## API Endpoints\n\n### 1. Developer Proxy（转发亚马逊开放接口）\n\n**Endpoint**: `/spApi/developerProxy`\n\n报告相关的上游调用（列表 / 请求 / 查状态 / 取下载链接）都通过该代理接口转发。\n\n**Request Parameters** (JSON):\n\n| Parameter | Type | Required | Description | Example |\n|-----------|------|----------|-------------|---------|\n| region | string | Yes | 区域代码：NA/EU/FE | \"NA\" |\n| path | string | Yes | 上游 Reports 等 API 路径（不含域名与 developer-proxy/{region}/ 前缀） | \"reports/2021-06-30/reports\" |\n| method | string | Yes | HTTP 方法：GET/POST/PUT/DELETE | \"GET\" |\n| amzAccessToken | string | Yes | 访问令牌（来自 `/spApi/storeTokens`） | \"Atza\\|IwEBI...\" |\n| queryString | string | No | Query 参数（无 `?`） | \"marketplaceIds=ATVPDKIKX0DER\" |\n| body | string | No | POST/PUT 请求体（JSON 字符串） | `\"{\\\"reportType\\\":\\\"...\\\"}\"` |\n| contentType | string | No | Content-Type 头（默认 application/json） | \"application/json\" |\n\n**Response**:\n\n```json\n{\n  \"errcode\": 200,\n  \"errmsg\": \"ok\",\n  \"httpStatus\": 200,\n  \"contentType\": \"application/json\",\n  \"body\": \"{\\\"reports\\\":[...]}\"\n}\n```\n\n**Important Notes**:\n- `path` 必须在白名单内（后端 `sp-api.developer-proxy.allowed-path-prefixes`）\n- 默认白名单含 `reports/2021-06-30/reports`\n- `amzAccessToken` 必须与 `region` 匹配的店铺令牌一致\n- 速率限制按上游亚马逊接口端点执行\n\n---\n\n## createReport 请求体（`POST reports/2021-06-30/reports`）\n\n`developerProxy` 的 `body` 为 **JSON 字符串**，反序列化后与 Amazon **CreateReport** 请求体一致。\n\n### 通用字段\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| reportType | string | 是 | 报告类型枚举，见 `references/report-types.md` |\n| marketplaceIds | array[string] | 是 | 站点 ID 列表（多数报告至少一个） |\n| dataStartTime | string | 视报告 | ISO 8601；部分 schema 仅使用日期部分 `YYYY-MM-DD` |\n| dataEndTime | string | 视报告 | 同上 |\n| lastUpdatedDate | string | 视报告 | 部分 Vendor 报告要求，与日期字段组合以官方 schema 为准 |\n| reportOptions | object | 视报告 | **Brand Analytics、销售流量、促销/优惠券、部分 Vendor** 等必填；键与枚举见各报告专页 |\n\n### 与官方 JSON Schema 的对应关系\n\nAmazon 在仓库 [amzn/selling-partner-api-models/schemas/reports](https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports) 中为 **带 JSON 结果包裹** 的报告提供了 Schema（含 `reportSpecification` 示例与结果字段定义）。\n\n本 skill 在 `references/report-requests/` 下为 **每个 `*.json` 维护一份同名 `*.md`**，内容包括：\n\n- 上游 Raw 链接与摘要说明  \n- 从 schema 提取的 **`reportType`** 与 **`reportSpecification` 官方示例**（可直接作为 `body` 模板）  \n- **`reportOptions`** 键表（若有）  \n- 结果文档结构说明要点  \n\n**入口索引**：[report-requests/README.md](./report-requests/README.md)  \n**按 `reportType` 全覆盖（109 个）**：[report-requests/types/README.md](./report-requests/types/README.md)\n\n> 大量 **Flat File**（订单、库存等 TSV）报告在官方仓库中**无**独立 `schemas/reports/*.json` 时，请求体通常为 `reportType` + `marketplaceIds` + 可选 `dataStartTime`/`dataEndTime`，详见 [Report type values](https://developer-docs.amazon.com/sp-api/docs/report-type-values)。\n\n### 脚本参数映射（`scripts/get_report.py`）\n\n| JSON 参数 | 写入 createReport 体 |\n|-----------|------------------------|\n| reportType | reportType |\n| marketplaceIds | marketplaceIds |\n| dataStartTime | dataStartTime |\n| dataEndTime | dataEndTime |\n| lastUpdatedDate | lastUpdatedDate |\n| reportOptions | reportOptions（对象原样合并） |\n\n---\n\n## 与依赖 skill 的接力关系\n\n下面是典型调用序列（本 skill + `linkfox-amazon-store-auth`）：\n\n```\nlinkfox-amazon-store-auth/scripts/store_tokens.py    # 取 accessToken\n           │\n           ▼\nlinkfox-amazon-store-report/scripts/get_report.py    # 用 accessToken 拉报告\n  1. POST /spApi/developerProxy (method=POST,  path=reports/2021-06-30/reports)\n  2. POST /spApi/developerProxy (method=GET,   path=reports/2021-06-30/reports/{reportId})  # 轮询\n  3. POST /spApi/developerProxy (method=GET,   path=reports/2021-06-30/documents/{reportDocumentId})\n  4. 直接下载返回的 url 并解压\n```\n\n## Error Codes\n\n| errcode | 含义 | 建议动作 |\n|---------|------|----------|\n| 200 | 代理调用成功（还需看 `httpStatus`） | 继续解析 `body` |\n| 1002 | 缺参数或认证失败 | 检查必填参数与 API key |\n| 402 | 算力不足 | HTTP 402：按 SKILL.md 的 **## 解决认证和算力问题** 处理。|\n| 1003 | 第三方服务调用失败 | 稍后重试 |\n| 1005 | path 不在白名单 | 联系后端加白名单 |\n\n### Developer Proxy 上游状态码\n\n调用成功（`errcode=200`）后必须再检查 `httpStatus`：\n\n| httpStatus | 含义 | 建议动作 |\n|------------|------|----------|\n| 200 | 成功 | 正常解析 `body` |\n| 202 | 已接受（创建报告后返回） | 拿到 reportId 进入轮询 |\n| 400 | 参数错误 | 检查 reportType / marketplaceIds |\n| 403 | 未授权 | 检查 accessToken、店铺权限、品牌备案 |\n| 404 | 资源不存在 | 核对 reportId/reportDocumentId |\n| 429 | 请求过快 | 指数退避重试 |\n| 500 | 上游错误 | 延时重试 |\n\n---\n\n## curl Examples\n\n### 列出现有报告\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/spApi/developerProxy \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"region\": \"NA\",\n    \"path\": \"reports/2021-06-30/reports\",\n    \"method\": \"GET\",\n    \"amzAccessToken\": \"Atza|IwEBI...\",\n    \"queryString\": \"reportTypes=GET_MERCHANT_LISTINGS_ALL_DATA&marketplaceIds=ATVPDKIKX0DER\"\n  }'\n```\n\n### 请求新报告\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/spApi/developerProxy \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"region\": \"NA\",\n    \"path\": \"reports/2021-06-30/reports\",\n    \"method\": \"POST\",\n    \"amzAccessToken\": \"Atza|IwEBI...\",\n    \"body\": \"{\\\"reportType\\\":\\\"GET_MERCHANT_LISTINGS_ALL_DATA\\\",\\\"marketplaceIds\\\":[\\\"ATVPDKIKX0DER\\\"]}\",\n    \"contentType\": \"application/json\"\n  }'\n```\n\n### 查询报告状态\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/spApi/developerProxy \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"region\": \"NA\",\n    \"path\": \"reports/2021-06-30/reports/<reportId>\",\n    \"method\": \"GET\",\n    \"amzAccessToken\": \"Atza|IwEBI...\"\n  }'\n```\n\n### 获取下载链接\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/spApi/developerProxy \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"region\": \"NA\",\n    \"path\": \"reports/2021-06-30/documents/<reportDocumentId>\",\n    \"method\": \"GET\",\n    \"amzAccessToken\": \"Atza|IwEBI...\"\n  }'\n```\n\n---\n\n## Feedback API\n\n> 本接口与上面工具 API **不同 base URL**，不要混用。\n\n- **POST** `https://skill-api.linkfox.com/api/v1/public/feedback`\n- **Content-Type**: `application/json`\n\n```json\n{\n  \"skillName\": \"linkfox-amazon-store-report\",\n  \"sentiment\": \"NEGATIVE\",\n  \"category\": \"BUG\",\n  \"content\": \"Report FATAL for Brand Analytics, but store lacks brand registry — error not surfaced clearly.\"\n}\n```\n\n**Field rules**:\n- `skillName`: 使用本 skill frontmatter 的 `name`\n- `sentiment`: `POSITIVE` / `NEUTRAL` / `NEGATIVE`\n- `category`: `BUG` / `COMPLAINT` / `SUGGESTION` / `OTHER`\n- `content`: 用户说了什么、实际发生了什么、为什么是问题\n\n---\n\n## 报告类型索引\n\n完整列表见 `references/report-types.md`（95+ 种）。精简摘要见 `references/report-types-basic.md`。\n\n**带 schema 的请求/结果格式**：`references/report-requests/README.md`（与 [GitHub schemas/reports](https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports) 一一对应）。\n\nFile v1.0.8:references/onboarding.md\n\n# 解决认证和算力问题\n\n调用本 skill 时若网关返回 **auth** 或 **billing** 错误，走本 skill 自带的 `scripts/onboarding.py` 完成引导。\n\n**auth 场景**：`errcode=401` 或消息含 `authorized error`/`鉴权失败`/`未授权`/`unauthorized`；或 `LINKFOX_AGENT_API_KEY` 与 `LINKFOXAGENT_API_KEY` 均为空。\n1. 若已配置 key → 先让用户重启会话（最常见误判），仍失败让用户重新取 key 或换手机号重注册\n2. 未配置 → 询问：自助去 https://agent.linkfox.com/ 取 key，或提供手机号让脚本注册\n3. 手机号路径：\n   - `python scripts/onboarding.py send-code <phone>` → 展示 JSON 里的 phone/agreements\n   - 收到验证码后：`python scripts/onboarding.py login <phone> <code>`\n   - 拿到 `api_key` 后把下面三平台配置转发给用户，提示重启会话生效：\n     - Windows PowerShell（永久）：`setx LINKFOX_AGENT_API_KEY \"<key>\"`\n     - macOS zsh：`echo 'export LINKFOX_AGENT_API_KEY=\"<key>\"' >> ~/.zshrc && source ~/.zshrc`\n     - Linux bash：`echo 'export LINKFOX_AGENT_API_KEY=\"<key>\"' >> ~/.bashrc && source ~/.bashrc`\n     - 变量名 `LINKFOX_AGENT_API_KEY`（主推）或 `LINKFOXAGENT_API_KEY`（老规范）任一即可\n\n**billing 场景**：`errcode=402` 或消息含 `算力/余额/quota/insufficient/充值/套餐到期`。\n- `python scripts/onboarding.py list-plans` → 有 AskUserQuestion 就弹菜单，否则输出编号清单让用户选\n- 校验 `plan_id` ∈ 清单、支付方式 ∈ 该套餐 `available_methods`（通常 `wechat/alipay`）\n- `python scripts/onboarding.py order <plan_id> <method>` → 展示优先级 PNG > `pay_url` > `ascii_qr`（标注兜底）\n- 已付款可选调 `python scripts/onboarding.py query <order_id>`，不主动轮询\n\n排除 `errcode=403`（无权限，不归入这两类）。所有子命令输出 stdout JSON，`error` 字段已含阶段前缀，透传给用户即可。完整用法：`python scripts/onboarding.py --help`。\n\nFile v1.0.8:references/report-requests/accountHealthReport-2020-11-18.md\n\n# `accountHealthReport-2020-11-18.json` — 报告格式说明\n\n> 上游 JSON Schema 来自 Amazon [selling-partner-api-models/schemas/reports](https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports)。\n\n- **Raw**：[accountHealthReport-2020-11-18.json](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/accountHealthReport-2020-11-18.json)\n- **目录浏览**：https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports\n\n## Schema 摘要\n\nThe root schema comprises the entire JSON document.\n\n## 对应 `reportType`（SP-API）\n\n- （文档结构对应账户状况类报告；`reportType` 以 [Report Type Values](https://developer-docs.amazon.com/sp-api/docs/report-type-values) 为准，常见为账户状况/绩效相关枚举）\n\n本 JSON 主要为**报告结果文档**字段定义，文件中未嵌入 `reportSpecification` 示例。创建报告时的 `reportType`、是否需 `reportOptions` 请查阅官方 Report Type Values。\n\n## `createReport` 请求体（`POST .../reports/2021-06-30/reports`）\n\nLinkFox 网关通过 `developerProxy` 转发时，`body` 为 JSON 字符串，对象字段与 SP-API **CreateReport** 一致，常用结构如下：\n\n```json\n{\n  \"reportType\": \"<REPORT_TYPE>\",\n  \"marketplaceIds\": [\n    \"ATVPDKIKX0DER\"\n  ],\n  \"dataStartTime\": \"2025-01-01T00:00:00Z\",\n  \"dataEndTime\": \"2025-01-31T23:59:59Z\",\n  \"reportOptions\": {\n    \"...\": \"...\"\n  }\n}\n```\n\n- **`reportType`** / **`marketplaceIds`**：必填（多数报告）。\n- **`dataStartTime`** / **`dataEndTime`**：ISO 8601；部分报告 schema 使用 **仅日期** `YYYY-MM-DD`（Amazon 忽略时间分量），以本文件「官方示例」为准。\n- **`reportOptions`**：对象，键名/枚举因报告而异；Brand Analytics 等 **必填**，见下节。\n- **`lastUpdatedDate`**：部分 Vendor 报告使用（见 schema `reportSpecification`），需与 `dataStartTime`/`dataEndTime` 按官方要求组合。\n\n本仓库脚本 `scripts/get_report.py` 已支持：在 JSON 参数中传入 **`reportOptions`**（对象）以及 **`lastUpdatedDate`**（字符串），会合并进创建请求体。\n\n### 无内嵌 `reportSpecification` 示例\n\n创建请求请以 [Report Type Values](https://developer-docs.amazon.com/sp-api/docs/report-type-values) 为准；可先用最小字段试请求，再根据 400 错误补充 `reportOptions`。\n\n## 报告结果文档（下载/解压后的 JSON）\n\n- 顶层字段以本 schema 的 `properties` / `definitions` 为准（多为业务数据数组或对象）。\n- 若 schema 内含 `reportSpecification` + 数据数组（如 `dataByAsin`），下载文件常为 **带元数据包裹** 的结构，与 TSV 类平面报告不同。\n\nFile v1.0.8:references/report-requests/b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.md\n\n# `b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.json` — 报告格式说明\n\n> 上游 JSON Schema 来自 Amazon [selling-partner-api-models/schemas/reports](https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports)。\n\n- **Raw**：[b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.json](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.json)\n- **目录浏览**：https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports\n\n## Schema 摘要\n\nProvides B2B product recommendations based on predicted incremental units sold, unmet buyer demand, and other factors for products not yet listed on Amazon. The recommendations are personalized to the seller based on past sales activity.\n\n## 对应 `reportType`（SP-API）\n\n- `GET_B2B_PRODUCT_OPPORTUNITIES_NOT_YET_ON_AMAZON`\n\nSchema 描述输出 `recommendations` 结构。创建报告通常：`reportType` + `marketplaceIds`，日期字段以官方为准。\n\n## `createReport` 请求体（`POST .../reports/2021-06-30/reports`）\n\nLinkFox 网关通过 `developerProxy` 转发时，`body` 为 JSON 字符串，对象字段与 SP-API **CreateReport** 一致，常用结构如下：\n\n```json\n{\n  \"reportType\": \"<REPORT_TYPE>\",\n  \"marketplaceIds\": [\n    \"ATVPDKIKX0DER\"\n  ],\n  \"dataStartTime\": \"2025-01-01T00:00:00Z\",\n  \"dataEndTime\": \"2025-01-31T23:59:59Z\",\n  \"reportOptions\": {\n    \"...\": \"...\"\n  }\n}\n```\n\n- **`reportType`** / **`marketplaceIds`**：必填（多数报告）。\n- **`dataStartTime`** / **`dataEndTime`**：ISO 8601；部分报告 schema 使用 **仅日期** `YYYY-MM-DD`（Amazon 忽略时间分量），以本文件「官方示例」为准。\n- **`reportOptions`**：对象，键名/枚举因报告而异；Brand Analytics 等 **必填**，见下节。\n- **`lastUpdatedDate`**：部分 Vendor 报告使用（见 schema `reportSpecification`），需与 `dataStartTime`/`dataEndTime` 按官方要求组合。\n\n本仓库脚本 `scripts/get_report.py` 已支持：在 JSON 参数中传入 **`reportOptions`**（对象）以及 **`lastUpdatedDate`**（字符串），会合并进创建请求体。\n\n### 无内嵌 `reportSpecification` 示例\n\n创建请求请以 [Report Type Values](https://developer-docs.amazon.com/sp-api/docs/report-type-values) 为准；可先用最小字段试请求，再根据 400 错误补充 `reportOptions`。\n\n## 报告结果文档（下载/解压后的 JSON）\n\n- 顶层字段以本 schema 的 `properties` / `definitions` 为准（多为业务数据数组或对象）。\n- 若 schema 内含 `reportSpecification` + 数据数组（如 `dataByAsin`），下载文件常为 **带元数据包裹** 的结构，与 TSV 类平面报告不同。\n\nFile v1.0.8:references/report-requests/b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.md\n\n# `b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.json` — 报告格式说明\n\n> 上游 JSON Schema 来自 Amazon [selling-partner-api-models/schemas/reports](https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports)。\n\n- **Raw**：[b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.json](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.json)\n- **目录浏览**：https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports\n\n## Schema 摘要\n\nProvides B2B product recommendations based on predicted incremental units sold, unmet buyer demand, low offer count, and other factors for products already offered on Amazon. The recommendations are personalized to the Seller based on past sales activity.\n\n## 对应 `reportType`（SP-API）\n\n- `GET_B2B_PRODUCT_OPPORTUNITIES_RECOMMENDED_FOR_YOU`\n\n同上，输出为推荐列表结构。\n\n## `createReport` 请求体（`POST .../reports/2021-06-30/reports`）\n\nLinkFox 网关通过 `developerProxy` 转发时，`body` 为 JSON 字符串，对象字段与 SP-API **CreateReport** 一致，常用结构如下：\n\n```json\n{\n  \"reportType\": \"<REPORT_TYPE>\",\n  \"marketplaceIds\": [\n    \"ATVPDKIKX0DER\"\n  ],\n  \"dataStartTime\": \"2025-01-01T00:00:00Z\",\n  \"dataEndTime\": \"2025-01-31T23:59:59Z\",\n  \"reportOptions\": {\n    \"...\": \"...\"\n  }\n}\n```\n\n- **`reportType`** / **`marketplaceIds`**：必填（多数报告）。\n- **`dataStartTime`** / **`dataEndTime`**：ISO 8601；部分报告 schema 使用 **仅日期** `YYYY-MM-DD`（Amazon 忽略时间分量），以本文件「官方示例」为准。\n- **`reportOptions`**：对象，键名/枚举因报告而异；Brand Analytics 等 **必填**，见下节。\n- **`lastUpdatedDate`**：部分 Vendor 报告使用（见 schema `reportSpecification`），需与 `dataStartTime`/`dataEndTime` 按官方要求组合。\n\n本仓库脚本 `scripts/get_report.py` 已支持：在 JSON 参数中传入 **`reportOptions`**（对象）以及 **`lastUpdatedDate`**（字符串），会合并进创建请求体。\n\n### 无内嵌 `reportSpecification` 示例\n\n创建请求请以 [Report Type Values](https://developer-docs.amazon.com/sp-api/docs/report-type-values) 为准；可先用最小字段试请求，再根据 400 错误补充 `reportOptions`。\n\n## 报告结果文档（下载/解压后的 JSON）\n\n- 顶层字段以本 schema 的 `properties` / `definitions` 为准（多为业务数据数组或对象）。\n- 若 schema 内含 `reportSpecification` + 数据数组（如 `dataByAsin`），下载文件常为 **带元数据包裹** 的结构，与 TSV 类平面报告不同。\n\nFile v1.0.8:references/report-requests/endUserDataReport.md\n\n# `endUserDataReport.json` — 报告格式说明\n\n> 上游 JSON Schema 来自 Amazon [selling-partner-api-models/schemas/reports](https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports)。\n\n- **Raw**：[endUserDataReport.json](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/endUserDataReport.json)\n- **目录浏览**：https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports\n\n## Schema 摘要\n\nProvides end user (customer) data to IE, ES, FR, BE, NL, DE, IT, SE, and PL selling partners. The data contains customer personal data that includes contact information, page view (glance view), and order data for customers that elect to share this data with specific sellers. The customer data is accessible across various reporting periods (DAY, WEEK, and MONTH). Developers can choose start and end dates and the reporting period for data retrieval and aggregation. If the customer does not elect to share their data, the report does not generate data.\n\n## 对应 `reportType`（从 schema 中提取）\n\n- `END_USER_DATA_REPORT`\n\n## `createReport` 请求体（`POST .../reports/2021-06-30/reports`）\n\nLinkFox 网关通过 `developerProxy` 转发时，`body` 为 JSON 字符串，对象字段与 SP-API **CreateReport** 一致，常用结构如下：\n\n```json\n{\n  \"reportType\": \"<REPORT_TYPE>\",\n  \"marketplaceIds\": [\n    \"ATVPDKIKX0DER\"\n  ],\n  \"dataStartTime\": \"2025-01-01T00:00:00Z\",\n  \"dataEndTime\": \"2025-01-31T23:59:59Z\",\n  \"reportOptions\": {\n    \"...\": \"...\"\n  }\n}\n```\n\n- **`reportType`** / **`marketplaceIds`**：必填（多数报告）。\n- **`dataStartTime`** / **`dataEndTime`**：ISO 8601；部分报告 schema 使用 **仅日期** `YYYY-MM-DD`（Amazon 忽略时间分量），以本文件「官方示例」为准。\n- **`reportOptions`**：对象，键名/枚举因报告而异；Brand Analytics 等 **必填**，见下节。\n- **`lastUpdatedDate`**：部分 Vendor 报告使用（见 schema `reportSpecification`），需与 `dataStartTime`/`dataEndTime` 按官方要求组合。\n\n本仓库脚本 `scripts/get_report.py` 已支持：在 JSON 参数中传入 **`reportOptions`**（对象）以及 **`lastUpdatedDate`**（字符串），会合并进创建请求体。\n\n### 官方 `reportSpecification` 示例（摘自 schema `examples`）\n\n```json\n{\n  \"dataStartTime\": \"2023-09-10\",\n  \"dataEndTime\": \"2023-09-16\",\n  \"reportType\": \"END_USER_DATA_REPORT\",\n  \"reportOptions\": {\n    \"reportPeriod\": \"WEEK\"\n  },\n  \"marketplaceIds\": [\n    \"A1PA6795UKMFR9\",\n    \"APJ6JRA9NG5V4\"\n  ]\n}\n```\n\n### `reportOptions` 键说明（来自示例）\n\n| 键 | 示例值 | 说明 |\n|----|--------|------|\n| `reportPeriod` | `WEEK` | 详见上游 schema `reportSpecification.properties.reportOptions` |\n\n## 报告结果文档（下载/解压后的 JSON）\n\n- 顶层字段以本 schema 的 `properties` / `definitions` 为准（多为业务数据数组或对象）。\n- 若 schema 内含 `reportSpecification` + 数据数组（如 `dataByAsin`），下载文件常为 **带元数据包裹** 的结构，与 TSV 类平面报告不同。\n\nArchive v1.0.7: 146 files, 278637 bytes\n\nFiles: _meta.json (146b), README.md (3232b), references/api.md (9041b), references/onboarding.md (2046b), references/report-requests/accountHealthReport-2020-11-18.md (2736b), references/report-requests/b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.md (2772b), references/report-requests/b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.md (2708b), references/report-requests/endUserDataReport.md (3105b), references/report-requests/marketplaceAsinPageViewMetrics.md (3219b), references/report-requests/promotionReport.md (3004b), references/report-requests/README.md (7506b), references/report-requests/sellerCouponReport.md (2877b), references/report-requests/sellerSalesAndTrafficReport.md (3106b), references/report-requests/sellingPartnerMarketBasketAnalysisReport.md (3563b), references/report-requests/sellingPartnerRepeatPurchaseReport.md (2929b), references/report-requests/sellingPartnerSearchCatalogPerformanceReport.md (3224b), references/report-requests/sellingPartnerSearchQueryPerformanceReport.md (3265b), references/report-requests/sellingPartnerSearchTermsReport.md (2969b), references/report-requests/types/END_USER_DATA_REPORT.md (1669b), references/report-requests/types/FBA_BULK_INVOICE.md (4153b), references/report-requests/types/FEE_DISCOUNTS_REPORT.md (2746b), references/report-requests/types/GET_AFN_INVENTORY_DATA_BY_COUNTRY.md (2900b), references/report-requests/types/GET_AFN_INVENTORY_DATA.md (2591b), references/report-requests/types/GET_AMAZON_FULFILLED_SHIPMENTS_DATA_GENERAL.md (3369b), references/report-requests/types/GET_AMAZON_FULFILLED_SHIPMENTS_DATA_INVOICING.md (3163b), references/report-requests/types/GET_AMAZON_FULFILLED_SHIPMENTS_DATA_TAX.md (3123b), references/report-requests/types/GET_B2B_PRODUCT_OPPORTUNITIES_NOT_YET_ON_AMAZON.md (1923b), references/report-requests/types/GET_B2B_PRODUCT_OPPORTUNITIES_RECOMMENDED_FOR_YOU.md (1965b), references/report-requests/types/GET_BRAND_ANALYTICS_MARKET_BASKET_REPORT.md (2037b), references/report-requests/types/GET_BRAND_ANALYTICS_REPEAT_PURCHASE_REPORT.md (1780b), references/report-requests/types/GET_BRAND_ANALYTICS_SEARCH_CATALOG_PERFORMANCE_REPORT.md (2074b), references/report-requests/types/GET_BRAND_ANALYTICS_SEARCH_QUERY_PERFORMANCE_REPORT.md (2055b), references/report-requests/types/GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT.md (1826b), references/report-requests/types/GET_CONVERGED_FLAT_FILE_PENDING_ORDERS_DATA.md (2645b), references/report-requests/types/GET_COUPON_PERFORMANCE_REPORT.md (1803b), references/report-requests/types/GET_CSV_MFN_PRIME_RETURNS_REPORT.md (3096b), references/report-requests/types/GET_DATE_RANGE_FINANCIAL_HOLDS_DATA.md (2986b), references/report-requests/types/GET_EASYSHIP_DOCUMENTS.md (2683b), references/report-requests/types/GET_EASYSHIP_PICKEDUP.md (2594b), references/report-requests/types/GET_EASYSHIP_WAITING_FOR_PICKUP.md (2686b), references/report-requests/types/GET_EPR_ANNUAL_REPORTS.md (3013b), references/report-requests/types/GET_EPR_MONTHLY_REPORTS.md (3044b), references/report-requests/types/GET_EPR_QUARTERLY_REPORTS.md (3037b), references/report-requests/types/GET_FBA_ESTIMATED_FBA_FEES_TXT_DATA.md (3003b), references/report-requests/types/GET_FBA_FULFILLMENT_CUSTOMER_RETURNS_DATA.md (2796b), references/report-requests/types/GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_PROMOTION_DATA.md (2868b), references/report-requests/types/GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_REPLACEMENT_DATA.md (2798b), references/report-requests/types/GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_SALES_DATA.md (3089b), references/report-requests/types/GET_FBA_FULFILLMENT_CUSTOMER_TAXES_DATA.md (2847b), references/report-requests/types/GET_FBA_FULFILLMENT_INBOUND_NONCOMPLIANCE_DATA.md (2786b), references/report-requests/types/GET_FBA_FULFILLMENT_LONGTERM_STORAGE_FEE_CHARGES_DATA.md (2955b), references/report-requests/types/GET_FBA_FULFILLMENT_REMOVAL_ORDER_DETAIL_DATA.md (3058b), references/report-requests/types/GET_FBA_FULFILLMENT_REMOVAL_SHIPMENT_DETAIL_DATA.md (3048b), references/report-requests/types/GET_FBA_INVENTORY_PLANNING_DATA.md (2897b), references/report-requests/types/GET_FBA_MYI_ALL_INVENTORY_DATA.md (2793b), references/report-requests/types/GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATA.md (2794b), references/report-requests/types/GET_FBA_OVERAGE_FEE_CHARGES_DATA.md (2737b), references/report-requests/types/GET_FBA_RECOMMENDED_REMOVAL_DATA.md (2920b), references/report-requests/types/GET_FBA_REIMBURSEMENTS_DATA.md (2767b), references/report-requests/types/GET_FBA_STORAGE_FEE_CHARGES_DATA.md (2765b), references/report-requests/types/GET_FLAT_FILE_ACTIONABLE_ORDER_DATA_SHIPPING.md (3023b), references/report-requests/types/GET_FLAT_FILE_ALL_ORDERS_DATA_BY_LAST_UPDATE_GENERAL.md (3111b), references/report-requests/types/GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL.md (3097b), references/report-requests/types/GET_FLAT_FILE_ARCHIVED_ORDERS_DATA_BY_ORDER_DATE.md (3073b), references/report-requests/types/GET_FLAT_FILE_MFN_SKU_RETURN_ATTRIBUTES_REPORT.md (3160b), references/report-requests/types/GET_FLAT_FILE_OPEN_LISTINGS_DATA.md (3856b), references/report-requests/types/GET_FLAT_FILE_ORDER_REPORT_DATA_INVOICING.md (3476b), references/report-requests/types/GET_FLAT_FILE_ORDER_REPORT_DATA_SHIPPING.md (3486b), references/report-requests/types/GET_FLAT_FILE_ORDER_REPORT_DATA_TAX.md (3423b), references/report-requests/types/GET_FLAT_FILE_PENDING_ORDERS_DATA.md (2615b), references/report-requests/types/GET_FLAT_FILE_RETURNS_DATA_BY_RETURN_DATE.md (3003b), references/report-requests/types/GET_FLAT_FILE_SALES_TAX_DATA.md (2811b), references/report-requests/types/GET_FLAT_FILE_VAT_INVOICE_DATA_REPORT.md (4622b), references/report-requests/types/GET_GST_MTR_B2B_CUSTOM.md (2705b), references/report-requests/types/GET_GST_MTR_B2C_CUSTOM.md (2740b), references/report-requests/types/GET_GST_STR_ADHOC.md (3052b), references/report-requests/types/GET_LEDGER_DETAIL_VIEW_DATA.md (3676b), references/report-requests/types/GET_LEDGER_SUMMARY_VIEW_DATA.md (3620b), references/report-requests/types/GET_MERCHANT_CANCELLED_LISTINGS_DATA.md (3755b), references/report-requests/types/GET_MERCHANT_LISTINGS_ALL_DATA.md (3736b)\n\nFile v1.0.7:SKILL.md\n\n---\nname: linkfox-amazon-store-report\ndescription: 亚马逊店铺报告自动化获取技能，支持库存报告、订单报告、销售流量报告、FBA报告、财务结算报告等95+种报告类型的全流程自动获取（请求→轮询→下载→解压）；完成后默认启动本机短时HTTP服务，生成extractedFileHttpUrl供浏览器下载已解压文件。本技能依赖 linkfox-amazon-store-auth（授权与令牌管理）。当用户提到拉取亚马逊报告、下载Amazon报告、获取库存报告、获取订单报告、FBA报告、销售流量报告、财务结算报告、Brand Analytics报告、ABA搜索词报告、pull Amazon report, download Amazon report, fetch inventory report, fetch orders report, FBA report, sales and traffic report, settlement report, Amazon store report时触发此技能。只要其需求涉及从亚马逊卖家后台拉取任何形式的结构化数据（库存、订单、销量、财务、退货等），也应触发此技能。\n---\n\n# Amazon 店铺报告获取\n\n本 skill 提供 **亚马逊卖家后台报告的端到端自动化获取**：请求 → 轮询 → 下载 → 解压 → 预览。支持 95+ 种报告类型（库存 / 订单 / 销售 / 财务 / FBA / 退货 / Brand Analytics 等）。\n\n---\n\n## ⚠️ Prerequisites — MUST READ FIRST\n\n本 skill **依赖** `linkfox-amazon-store-auth`（授权与店铺/令牌管理）。\n\n> 🛑 **如果 `linkfox-amazon-store-auth` 未安装 / 未加载，请先安装它，再回到本 skill。**\n\n### 怎样判断 `linkfox-amazon-store-auth` 是否可用\n\n在执行任何报告任务之前，agent **必须**先进行依赖检查：\n\n1. **读取下列任一路径**（skill 加载路径取决于运行环境；`scripts/check_auth_dependency.py` 会按相同规则自动探测）：\n   - 仓库 / 通用扁平目录：`<skills_dir>/linkfox-amazon-store-auth/SKILL.md`\n   - Claude：`~/.claude/skills/linkfox-amazon-store-auth/SKILL.md`\n   - Cursor：`~/.cursor/skills/...`、`~/.cursor/skills-cursor/...`\n   - **OpenClaw**：`<OPENCLAW_WORKSPACE>/skills/...`、`~/.openclaw/skills/...`、`~/.agents/skills/...`（与 [OpenClaw Skills 文档](https://docs.openclaw.ai/tools/skills) 的常见路径一致）\n   - **Hermes Agent**：`~/.hermes/skills/<category>/linkfox-amazon-store-auth/SKILL.md`，以及 `~/.hermes/plugins/<plugin>/skills/linkfox-amazon-store-auth/SKILL.md`（与 [Hermes Skills 文档](https://hermes-agent.nousresearch.com/docs/user-guide/features/skills) 的布局一致）\n2. **或直接运行脚本**：`python scripts/check_auth_dependency.py`，脚本会在缺失时以 **exit code `42`** 退出，并在 stderr 输出结构化提示（以 `DEPENDENCY_MISSING:` 开头）。脚本已内置 **OpenClaw / Hermes** 路径判断；若在 Hermes 的 `config.yaml` 里配置了 `skills.external_dirs`，请设置环境变量 `HERMES_SKILLS_EXTERNAL_DIRS`（使用系统路径分隔符串联多个目录）以便探测。\n3. 如果上述检查**全部失败**，则判定为 **`linkfox-amazon-store-auth` 未安装**。\n\n### 发现未安装时的标准处置\n\n当检测到 `linkfox-amazon-store-auth` 未安装时，agent **必须**按以下顺序执行：\n\n1. **尝试自动安装**（优先）：\n   - 如果当前运行时具备 skill 安装工具（例如 skill 市场 / skill 管理 MCP / `install_skill` 类工具），**立即调用**安装 `linkfox-amazon-store-auth`。\n   - 安装成功后，重新加载并从头执行本 skill。\n2. **引导用户手动安装**（兜底）：\n   - 向用户说明：「本技能依赖 `linkfox-amazon-store-auth`，尚未安装。请前往 [LinkFox Skills](https://skill.linkfox.com/) 安装该 skill，安装完成后告诉我一声，我会继续为你拉取报告。」\n   - **不要**绕过依赖直接去调 `/spApi/authorizeUrl`、`/spApi/storeTokens`、`/spApi/authorizedStores` 等接口——这些接口的选店铺、令牌流程属于 `linkfox-amazon-store-auth` 的职责，本 skill 只负责报告业务本身。\n3. **不得静默降级**：如果既无法自动安装也未获得用户确认，必须**停止执行**并把依赖缺失的事实回报给用户，不要擅自尝试替代方案。\n\n### 依赖已满足后的协作方式\n\n- 本 skill 依赖 auth 选店（`sellerId`+`region`），直接经 `/spApi/developerProxy` 执行报告生命周期（服务端解析 token）。\n- 授权、授权的前置选店铺、令牌刷新等操作——**交由 `linkfox-amazon-store-auth`**；本 skill 不重复做这些事。\n\n---\n\n## Core Concepts\n\n- **Report Type（报告类型）**：亚马逊官方报告类型枚举，例如 `GET_MERCHANT_LISTINGS_ALL_DATA`、`GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL`。完整列表见 `references/report-types.md`。\n- **Marketplace ID**：区域内具体站点 ID，例如 US = `ATVPDKIKX0DER`。\n- **Report lifecycle**：请求报告 → 轮询 `processingStatus`（`IN_QUEUE` / `IN_PROGRESS` / `DONE` / `FATAL` / `CANCELLED`）→ `DONE` 后拿到 `reportDocumentId` → 取下载 URL → 下载（多为 gzip TSV）→ 解压。\n- **Rate limits**：Reports API 约 0.0222 req/s；轮询需保留间隔（默认 30s）。\n\n## Data Fields\n\n### Report Request Input\n\n| Field | Type | Required | Description |\n|-------|------|----------|-------------|\n| sellerId | string | Yes | 已授权的 Amazon Seller ID |\n| region | string | Yes | NA / EU / FE |\n| reportType | string | Yes | 报告类型枚举值 |\n| marketplaceIds | array | Yes | 目标 marketplace ID 列表 |\n| dataStartTime | string | No | ISO 8601，报告起始时间 |\n| dataEndTime | string | No | ISO 8601，报告结束时间 |\n| lastUpdatedDate | string | No | 部分 Vendor 报告必填，见 `references/report-requests/` 对应 md |\n| reportOptions | object | No | 如 Brand Analytics 的 `reportPeriod`、`asin`/`asins`；销售流量的 `dateGranularity`/`asinGranularity` 等。**每一 `reportType` 说明**：`references/report-requests/types/<REPORT_TYPE>.md`（索引 [`types/README.md`](references/report-requests/types/README.md)）；有 JSON Schema 的另见 [`report-requests/README.md`](references/report-requests/README.md) |\n| pollInterval | int | No | 轮询间隔秒数（默认 30） |\n| maxAttempts | int | No | 最大轮询次数（默认 20） |\n\n### Report Output\n\n| Field | Type | Description |\n|-------|------|-------------|\n| reportId | string | 报告请求 ID |\n| reportDocumentId | string | 报告文档 ID |\n| downloadPath | string | 本地下载后的**绝对路径**（已解压，含文件名） |\n| fileName | string | 保存文件名（与 `downloadPath` 末段一致） |\n| localFileUri | string | 本机 `file://` URI，便于客户端打开本地文件 |\n| extractedFileHttpUrl | string | **本机临时 HTTP** 直链，用于在浏览器中下载**已解压**后的文件（默认 `serveExtractedFileHttp` 开启） |\n| extractedFileHttpServeSeconds | int | 本地 HTTP 服务保持时长（默认 300，最少 10） |\n| extractedFileHttpNote | string | 说明该链接仅本机、限时有效 |\n| amazonDownloadUrl | string | （可选）仅当 `includeAmazonSourceUrl: true` 时出现：Amazon 源地址，一般为压缩包，通常不必给终端用户 |\n| compressionAlgorithm | string | 若接口返回了压缩算法则带上（如 GZIP） |\n| tempDirectory | string | 临时目录 |\n| fileSize | int | 文件大小（字节） |\n\n## 调用方式\n\n- **API 端点**：`POST /spApi/developerProxy`（不同操作通过请求体区分；完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/<脚本名>.py '<JSON 参数>' [--inline]`（可用脚本见下文脚本一览）\n- **成本约束**：本工具会消耗积分；失败/空结果不得自动换关键词、翻页或连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n### Available Scripts\n\n- `scripts/get_report.py` ⭐ — 端到端自动化报告获取（**推荐**）\n- `scripts/check_auth_dependency.py` — 主动检测依赖 skill `linkfox-amazon-store-auth` 是否已安装\n\n## 解决认证和积分问题\n发生以下异常情况时，采用 references/onboarding.md 引导解决问题：\n\n### 异常情况\n- **未配置API Key**：环境变量未配置 `LINKFOX_AGENT_API_KEY`，也未配置 `LINKFOXAGENT_API_KEY`。\n- **响应401或402状态码**\n- **响应提示积分或余额不足**：消息含\"积分余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值\"，或类似含义的内容。\n\n## Usage Scenarios\n\n### Scenario 0: Dependency Check (MUST run first)\n\n**每次进入本 skill 都要先跑这一步。**\n\n1. 尝试读取 `linkfox-amazon-store-auth/SKILL.md`（若工具允许）\n2. 或执行：\n   ```bash\n   python scripts/check_auth_dependency.py\n   ```\n3. 若 exit code 非 0 或 stderr 含 `DEPENDENCY_MISSING:`，按上文「发现未安装时的标准处置」流程处理\n4. 依赖满足后再进入正常业务场景\n\n### Scenario 1: Pull Amazon Report (Automated, Recommended)\n\n**User request**：「我要拉库存报告」/「获取订单报告」/「下载销售流量报告」等\n\n**Steps**：\n1. **依赖检查**（Scenario 0）\n2. **前置选店铺**：委托 `linkfox-amazon-store-auth`\n   - 调 `/spApi/authorizedStores` 让用户选店铺，确定 `sellerId` + `region`\n   - **不要**先调 `/spApi/storeTokens` 取 raw token；脚本直接经 `developerProxy` 传选择器\n3. **识别报告类型**：按用户诉求匹配 `reportType`\n   - 库存：`GET_MERCHANT_LISTINGS_ALL_DATA`、`GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATA`\n   - 订单：`GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL`\n   - 销售流量：`GET_SALES_AND_TRAFFIC_REPORT`\n   - 财务：`GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE`\n   - 完整清单：`references/report-types.md`\n4. **执行脚本**：\n   ```bash\n   python scripts/get_report.py '{\n     \"sellerId\": \"A1EC6SZ7XAMURH\",\n     \"region\": \"NA\",\n     \"reportType\": \"GET_MERCHANT_LISTINGS_ALL_DATA\",\n     \"marketplaceIds\": [\"ATVPDKIKX0DER\"]\n   }'\n   ```\n5. 脚本会自动：以 `sellerId`+`region` 调 `developerProxy`（服务端解析 token）→ 请求报告 → 轮询 → 下载 → 解压 → 预览 → 输出 JSON；**完成后**在 stderr 与 JSON 中给出 **本地绝对路径**（`downloadPath`）、**本机 file URI**（`localFileUri`），并默认启动短时本机 HTTP 服务，生成 **`extractedFileHttpUrl`**（用于在**同一台机器**的浏览器里下载**已解压**文件）。向用户展示时至少给出 **`extractedFileHttpUrl`**、**`downloadPath`** 与 **`fileName`**；脚本在 `serveSeconds` 计时结束后会关闭服务，链接随即失效。若需 Amazon 源地址（多为压缩包），仅调试时设 `includeAmazonSourceUrl: true`。\n\n### Scenario 2: Manual Report Flow (Advanced)\n\n对需要精细控制的场景，可通过 `/spApi/developerProxy` 手工驱动：\n\n1. **取现有报告**（更快）：\n   ```\n   path: reports/2021-06-30/reports\n   method: GET\n   queryString: reportTypes=<type>&marketplaceIds=<ids>\n   ```\n2. **创建新报告**：\n   ```\n   path: reports/2021-06-30/reports\n   method: POST\n   body: {\"reportType\": \"...\", \"marketplaceIds\": [...]}\n   ```\n3. **查状态**：\n   ```\n   path: reports/2021-06-30/reports/{reportId}\n   method: GET\n   ```\n4. **取下载链接**：\n   ```\n   path: reports/2021-06-30/documents/{reportDocumentId}\n   method: GET\n   ```\n\n### Scenario 3: Custom Date Range / Polling\n\n```bash\npython scripts/get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"],\n  \"dataStartTime\": \"2024-01-01T00:00:00Z\",\n  \"dataEndTime\": \"2024-01-31T23:59:59Z\",\n  \"pollInterval\": 15,\n  \"maxAttempts\": 40\n}'\n```\n\n## Marketplace IDs by Region\n\n| Region | Country | Marketplace ID |\n|--------|---------|----------------|\n| NA | United States | ATVPDKIKX0DER |\n| NA | Canada | A2EUQ1WTGCTBG2 |\n| NA | Mexico | A1AM78C64UM0Y8 |\n| EU | United Kingdom | A1F83G8C2ARO7P |\n| EU | Germany | A1PA6795UKMFR9 |\n| FE | Japan | A1VC38T7YXB528 |\n\n更多 marketplace ID 详见 `references/report-types.md`。\n\n## Display Rules\n\n1. **先依赖后业务**：依赖检查未通过前，**不得**开始任何报告相关调用。\n2. **只呈现数据**：展示报告获取进度、下载路径、前几行预览；不做业务解读。\n3. **尊重用户选择的报告类型**：用户指定了报告类型就只拉那一种，不得擅自换其他类型。\n4. **错误清晰**：报告失败（`FATAL` / 403 等）时，解释原因并把决定权交还用户。\n5. **安全**：不输出/不传递 raw token；业务只依赖 `sellerId`+`region`。\n6. **完成后展示地址与本机下载链接**：脚本成功结束后，必须把 **`extractedFileHttpUrl`**（已解压文件的本机 HTTP 下载，限时）、**`downloadPath`**（本地绝对路径）、**`fileName`**（文件名）及 **`localFileUri`** 告知用户；并说明「仅在运行脚本的同一台电脑、在服务保持时间内可用」。不要默认把 Amazon 源 URL 当作用户下载入口；仅在用户明确要求或排障需要时使用 `includeAmazonSourceUrl`。\n\n## CRITICAL: Report Failure Handling Rules\n\n- **NEVER automatically try alternative report types** when user's specified report fails.\n- 报告请求失败（`FATAL`、403 等）时，**立即停止并把失败事实告知用户**。\n- **不要**替用户决定去拉别的报告类型。\n- 把失败原因说清楚，让用户决定下一步（重试 / 换类型 / 查权限等）。\n- 例：`GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT` 失败时，**不要**自动改拉 `GET_MERCHANT_LISTINGS_ALL_DATA`。\n\n### Common Report Failure Reasons\n\n- `403 Unauthorized`：缺少 API 权限或未加入 Amazon Brand Registry\n- `FATAL`：该店铺不支持此报告类型或数据不足\n- Brand Analytics 类报告需要品牌备案\n- Vendor 类报告仅限 Vendor 账号\n\n## Important Limitations\n\n- **依赖 `linkfox-amazon-store-auth`**：未安装则必须先安装，见 Prerequisites。\n- **Token expiration**：服务端令牌约 1 小时过期；`developerProxy` 可按 `sellerId`+`region` 自动解析/续签。过期时也可经 auth skill 的 `refreshToken` 后重试。\n- **Rate limits**：Reports API 0.0222 req/s，默认 30s 轮询是安全间隔。\n- **Report 时效**：部分财务报告可能需要 10–30 分钟，按需调大 `maxAttempts`。\n- **Path 白名单**：后端 `sp-api.developer-proxy.allowed-path-prefixes` 必须允许 `reports/2021-06-30/reports`。\n\n## User Expression & Scenario Quick Reference\n\n**Applicable** — 报告获取场景：\n\n| User Says | Scenario |\n|-----------|----------|\n| \"拉亚马逊库存报告\" / \"pull inventory report\" | Scenario 1 |\n| \"下载订单数据\" / \"download orders report\" | Scenario 1 |\n| \"获取销售流量报告\" / \"sales and traffic report\" | Scenario 1 |\n| \"拉财务结算报告\" / \"settlement report\" | Scenario 1 |\n| \"查 FBA 库存\" / \"FBA inventory report\" | Scenario 1 |\n| \"拉某时间段的订单报告\" / \"orders from 2024-01-01 to ...\" | Scenario 3 |\n\n**Not applicable** — 超出本 skill：\n\n- 授权新店铺、列已授权店铺、刷新/查询令牌 → 请使用 `linkfox-amazon-store-auth`\n- 商品 listing 管理、订单处理、广告投放 → 由其他 skill 负责\n\n**Boundary judgment**：\n- 本 skill 只负责「依赖检查 + 报告获取业务」，**授权/令牌属于依赖 skill**。\n- 任何进入本 skill 的调用都要先跑 Scenario 0。\n\n---\n\n## 积分消耗规则\n\n不消耗积分。\n\n**Feedback**：\n\n出现以下任一情况时，自动调用 Feedback API 上报：\n1. 本 skill 功能描述与实际不符\n2. 结果与用户意图不符\n3. 用户表达了不满或赞赏\n4. 其他你认为可改进的点\n\n按 `references/api.md` 中的规范调用 Feedback API，不要打断用户主流程。\n\n---\n*For more high-quality, professional cross-border e-commerce skills, visit [LinkFox Skills](https://skill.linkfox.com/).*\n\nFile v1.0.7:README.md\n\n# Amazon Store Report Skill\n\n亚马逊店铺 **报告获取** Skill：端到端自动化拉取库存 / 订单 / 销售 / 财务 / FBA 等 95+ 种报告。\n\n> ⚠️ **本 skill 依赖 `linkfox-amazon-store-auth`**（授权与令牌管理）。未安装时请先安装依赖 skill，`scripts/get_report.py` 启动时会做自动校验。\n\n## 📋 目录结构\n\n```\nlinkfox-amazon-store-report/\n├── SKILL.md                          # Skill 主文档（含 Prerequisites）\n├── _meta.json                        # Skill 元数据（声明依赖）\n├── README.md                         # 本文件\n├── references/\n│   ├── api.md                        # Developer Proxy API 说明\n│   ├── report-types.md               # 完整报告类型（95+ 种）\n│   └── report-types-basic.md         # 常用报告精简版\n└── scripts/\n    ├── README.md                     # 脚本使用指南\n    ├── check_auth_dependency.py      # 依赖探测脚本\n    └── get_report.py                 # 报告获取（启动时自动跑依赖检查）\n```\n\n## 🔗 依赖关系\n\n| 本 Skill | 依赖 |\n|----------|------|\n| `linkfox-amazon-store-report` | `linkfox-amazon-store-auth` |\n\n**依赖未安装时的处置**：\n1. `get_report.py` 启动时以 **exit code 42** 退出，并在 stderr 以 `DEPENDENCY_MISSING:` 开头输出 JSON 指引\n2. 上层 agent 解析该信号后：优先调用本地 skill 安装工具自动装 `linkfox-amazon-store-auth`；否则引导用户手动安装\n3. **安装完成后再重跑本 skill**\n\n## 🚀 快速开始\n\n> 前置条件：已通过 `linkfox-amazon-store-auth` 授权了至少一个店铺。\n\n```bash\npython scripts/get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_MERCHANT_LISTINGS_ALL_DATA\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"]\n}'\n```\n\n成功结束后，脚本会启动短时 **本机 HTTP** 服务，在 **stderr** 与 **stdout JSON** 中给出 **`extractedFileHttpUrl`**，用于在浏览器下载**已解压**后的报告文件（默认保持 `serveSeconds` 秒，仅 `127.0.0.1` 可访问）；同时给出 **`downloadPath`** 与 **`localFileUri`**。详见 `scripts/README.md`。\n\n## 🌍 支持的区域\n\n- **NA**：美国、加拿大、墨西哥\n- **EU**：英国、德国、法国、意大利、西班牙等\n- **FE**：日本、澳大利亚、新加坡、印度\n\n## 🔄 版本历史\n\n- **v1.0.3**（2026-04-24）\n  - 展示保存位置时同时明确输出**文件名**（stderr + JSON 字段 `fileName`）\n\n- **v1.0.2**（2026-04-24）\n  - `get_report.py`：默认启动本机临时 HTTP，生成 **`extractedFileHttpUrl`** 供浏览器下载**已解压**文件；不再默认暴露 Amazon 源 URL（可选 `includeAmazonSourceUrl`）\n\n- **v1.0.1**（2026-04-24）\n  - `get_report.py`：完成后明确展示本地保存路径，并在 JSON / stderr 中输出 Amazon 预签名直链与本机 `file://` URI\n\n- **v1.0.0**（2026-04-24）\n  - 从早期综合亚马逊 skill 拆分而来（报告部分）\n  - 新增依赖探测脚本 `check_auth_dependency.py`\n  - `get_report.py` 启动时自动进行依赖校验\n\n## 📄 许可\n\n本 Skill 是 LinkFoxAgent 项目的一部分。\n\nFile v1.0.7:references/report-requests/README.md\n\n# 报告请求与文档格式（按 GitHub schema 分文件）\n\n> 与 [amzn/selling-partner-api-models/schemas/reports](https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports) 中的 JSON Schema **一一对应**。\n\n## `reportType` 全覆盖（含无 JSON 的 Flat File）\n\n`references/report-types.md` 表格中的 **每一个** `reportType` 均有专页 → **[types/README.md](./types/README.md)**（109 个：`types/<REPORT_TYPE>.md`）。  \n有 GitHub JSON 的条目会链回下表中的 `*.md`；其余条目给出最小 CreateReport 模板并指向 [Report type values](https://developer-docs.amazon.com/sp-api/docs/report-type-values)。\n\n## 索引（仅含官方 `schemas/reports/*.json`）\n\n| 文档 | 上游 Schema | 涉及 `reportType` |\n|------|-------------|-------------------|\n| [accountHealthReport-2020-11-18.md](./accountHealthReport-2020-11-18.md) | [`accountHealthReport-2020-11-18.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/accountHealthReport-2020-11-18.json) | 见专页（账户状况结果 JSON；`reportType` 以官方 Report Type Values 为准） |\n| [b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.md](./b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.md) | [`b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.json) | `GET_B2B_PRODUCT_OPPORTUNITIES_NOT_YET_ON_AMAZON` |\n| [b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.md](./b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.md) | [`b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.json) | `GET_B2B_PRODUCT_OPPORTUNITIES_RECOMMENDED_FOR_YOU` |\n| [endUserDataReport.md](./endUserDataReport.md) | [`endUserDataReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/endUserDataReport.json) | `END_USER_DATA_REPORT` |\n| [marketplaceAsinPageViewMetrics.md](./marketplaceAsinPageViewMetrics.md) | [`marketplaceAsinPageViewMetrics.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/marketplaceAsinPageViewMetrics.json) | `MARKETPLACE_ASIN_PAGE_VIEW_METRICS` |\n| [promotionReport.md](./promotionReport.md) | [`promotionReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/promotionReport.json) | `GET_PROMOTION_PERFORMANCE_REPORT` |\n| [sellerCouponReport.md](./sellerCouponReport.md) | [`sellerCouponReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellerCouponReport.json) | `GET_COUPON_PERFORMANCE_REPORT` |\n| [sellerSalesAndTrafficReport.md](./sellerSalesAndTrafficReport.md) | [`sellerSalesAndTrafficReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellerSalesAndTrafficReport.json) | `GET_SALES_AND_TRAFFIC_REPORT` |\n| [sellingPartnerMarketBasketAnalysisReport.md](./sellingPartnerMarketBasketAnalysisReport.md) | [`sellingPartnerMarketBasketAnalysisReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellingPartnerMarketBasketAnalysisReport.json) | `GET_BRAND_ANALYTICS_MARKET_BASKET_REPORT`（搜索词见 `sellingPartnerSearchTermsReport`） |\n| [sellingPartnerRepeatPurchaseReport.md](./sellingPartnerRepeatPurchaseReport.md) | [`sellingPartnerRepeatPurchaseReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellingPartnerRepeatPurchaseReport.json) | `GET_BRAND_ANALYTICS_REPEAT_PURCHASE_REPORT` |\n| [sellingPartnerSearchCatalogPerformanceReport.md](./sellingPartnerSearchCatalogPerformanceReport.md) | [`sellingPartnerSearchCatalogPerformanceReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellingPartnerSearchCatalogPerformanceReport.json) | `GET_BRAND_ANALYTICS_SEARCH_CATALOG_PERFORMANCE_REPORT` |\n| [sellingPartnerSearchQueryPerformanceReport.md](./sellingPartnerSearchQueryPerformanceReport.md) | [`sellingPartnerSearchQueryPerformanceReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellingPartnerSearchQueryPerformanceReport.json) | `GET_BRAND_ANALYTICS_SEARCH_QUERY_PERFORMANCE_REPORT` |\n| [sellingPartnerSearchTermsReport.md](./sellingPartnerSearchTermsReport.md) | [`sellingPartnerSearchTermsReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellingPartnerSearchTermsReport.json) | `GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT` |\n| [vendorCouponReport.md](./vendorCouponReport.md) | [`vendorCouponReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/vendorCouponReport.json) | `GET_COUPON_PERFORMANCE_REPORT` |\n| [vendorForecastingReport.md](./vendorForecastingReport.md) | [`vendorForecastingReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/vendorForecastingReport.json) | `GET_VENDOR_FORECASTING_REPORT` |\n| [vendorInventoryReport.md](./vendorInventoryReport.md) | [`vendorInventoryReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/vendorInventoryReport.json) | `GET_VENDOR_INVENTORY_REPORT` |\n| [vendorNetPureProductMarginReport.md](./vendorNetPureProductMarginReport.md) | [`vendorNetPureProductMarginReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/vendorNetPureProductMarginReport.json) | `GET_VENDOR_NET_PURE_PRODUCT_MARGIN_REPORT` |\n| [vendorRealTimeInventoryReport.md](./vendorRealTimeInventoryReport.md) | [`vendorRealTimeInventoryReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/vendorRealTimeInventoryReport.json) | `GET_VENDOR_REAL_TIME_INVENTORY_REPORT` |\n| [vendorRealTimeSalesReport.md](./vendorRealTimeSalesReport.md) | [`vendorRealTimeSalesReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/vendorRealTimeSalesReport.json) | `GET_VENDOR_REAL_TIME_SALES_REPORT` |\n| [vendorRealTimeTrafficReport.md](./vendorRealTimeTrafficReport.md) | [`vendorRealTimeTrafficReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/vendorRealTimeTrafficReport.json) | `GET_VENDOR_REAL_TIME_TRAFFIC_REPORT` |\n| [vendorSalesReport.md](./vendorSalesReport.md) | [`vendorSalesReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/vendorSalesReport.json) | `GET_VENDOR_SALES_REPORT` |\n| [vendorTrafficReport.md](./vendorTrafficReport.md) | [`vendorTrafficReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/vendorTrafficReport.json) | `GET_VENDOR_TRAFFIC_REPORT` |\n\n## 通用说明\n\n- **创建报告**：`references/api.md` 中的 `developerProxy` + `path=reports/2021-06-30/reports` + `method=POST`。\n- **本目录**：每个 `*.md` 对应一个 `*.json`，给出 `createReport` 请求体要点及 schema 摘要。\n- **未出现在上表中的 reportType**：见 **[types/](./types/)** 目录下按枚举命名的专页（全覆盖 `report-types.md`）。\n\nFile v1.0.7:references/report-requests/types/README.md\n\n# 按 `reportType` 全覆盖 — 请求说明专页\n\n本目录为 `references/report-types.md` 中**每一个**报告枚举提供一页说明：\n\n- 标注是否在 Amazon [`schemas/reports`](https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports) 有 JSON 结果 Schema，并链到 `references/report-requests/` 下对应专页。\n- 无独立 JSON 的类型：给出 **CreateReport 最小请求体** 与官方 [Report type values](https://developer-docs.amazon.com/sp-api/docs/report-type-values) 入口。\n- 每页顶部另有 **「官方说明」或「官方索引（Report type values）」**：从亚马逊各子类文档自动摘录；其中在 `report-requests/` 下**已有 GitHub Schema 专页**（`*.md` 与 `schemas/reports/*.json` 对应）的类型，仅保留 **Schema 链、Amazon 锚点、权限/站点类字段**，避免与专页中的 Schema 摘要、`reportOptions` 表重复。其余 Flat File 类型仍为完整「官方说明」。  \n  更新摘录：将 15 个子页 HTML 放入 `references/_spapi_docs_cache/`，运行 `scripts/merge_report_type_values_from_cache.py`（依赖见该脚本注释）。\n\n**共计**：109 个 `reportType`。\n\n## 索引\n\n| reportType | 分类（report-types.md） | 类型 | 专页 |\n|------------|-------------------------|------|------|\n| `FEE_DISCOUNTS_REPORT` | 1. Amazon Business Reports | Flat/XML（文档） | [FEE_DISCOUNTS_REPORT.md](./FEE_DISCOUNTS_REPORT.md) |\n| `GET_BRAND_ANALYTICS_SEARCH_CATALOG_PERFORMANCE_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_BRAND_ANALYTICS_SEARCH_CATALOG_PERFORMANCE_REPORT.md](./GET_BRAND_ANALYTICS_SEARCH_CATALOG_PERFORMANCE_REPORT.md) |\n| `GET_BRAND_ANALYTICS_SEARCH_QUERY_PERFORMANCE_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_BRAND_ANALYTICS_SEARCH_QUERY_PERFORMANCE_REPORT.md](./GET_BRAND_ANALYTICS_SEARCH_QUERY_PERFORMANCE_REPORT.md) |\n| `GET_BRAND_ANALYTICS_MARKET_BASKET_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_BRAND_ANALYTICS_MARKET_BASKET_REPORT.md](./GET_BRAND_ANALYTICS_MARKET_BASKET_REPORT.md) |\n| `GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT.md](./GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT.md) |\n| `GET_BRAND_ANALYTICS_REPEAT_PURCHASE_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_BRAND_ANALYTICS_REPEAT_PURCHASE_REPORT.md](./GET_BRAND_ANALYTICS_REPEAT_PURCHASE_REPORT.md) |\n| `GET_VENDOR_REAL_TIME_INVENTORY_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_REAL_TIME_INVENTORY_REPORT.md](./GET_VENDOR_REAL_TIME_INVENTORY_REPORT.md) |\n| `GET_VENDOR_REAL_TIME_TRAFFIC_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_REAL_TIME_TRAFFIC_REPORT.md](./GET_VENDOR_REAL_TIME_TRAFFIC_REPORT.md) |\n| `GET_VENDOR_REAL_TIME_SALES_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_REAL_TIME_SALES_REPORT.md](./GET_VENDOR_REAL_TIME_SALES_REPORT.md) |\n| `GET_VENDOR_SALES_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_SALES_REPORT.md](./GET_VENDOR_SALES_REPORT.md) |\n| `GET_VENDOR_NET_PURE_PRODUCT_MARGIN_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_NET_PURE_PRODUCT_MARGIN_REPORT.md](./GET_VENDOR_NET_PURE_PRODUCT_MARGIN_REPORT.md) |\n| `GET_VENDOR_TRAFFIC_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_TRAFFIC_REPORT.md](./GET_VENDOR_TRAFFIC_REPORT.md) |\n| `GET_VENDOR_FORECASTING_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_FORECASTING_REPORT.md](./GET_VENDOR_FORECASTING_REPORT.md) |\n| `GET_VENDOR_INVENTORY_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_INVENTORY_REPORT.md](./GET_VENDOR_INVENTORY_REPORT.md) |\n| `GET_SALES_AND_TRAFFIC_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_SALES_AND_TRAFFIC_REPORT.md](./GET_SALES_AND_TRAFFIC_REPORT.md) |\n| `GET_B2B_PRODUCT_OPPORTUNITIES_RECOMMENDED_FOR_YOU` | 3. B2B Product Opportunities | JSON Schema 专页 | [GET_B2B_PRODUCT_OPPORTUNITIES_RECOMMENDED_FOR_YOU.md](./GET_B2B_PRODUCT_OPPORTUNITIES_RECOMMENDED_FOR_YOU.md) |\n| `GET_B2B_PRODUCT_OPPORTUNITIES_NOT_YET_ON_AMAZON` | 3. B2B Product Opportunities | JSON Schema 专页 | [GET_B2B_PRODUCT_OPPORTUNITIES_NOT_YET_ON_AMAZON.md](./GET_B2B_PRODUCT_OPPORTUNITIES_NOT_YET_ON_AMAZON.md) |\n| `GET_XML_BROWSE_TREE_DATA` | 4. Browse Tree Reports | Flat/XML（文档） | [GET_XML_BROWSE_TREE_DATA.md](./GET_XML_BROWSE_TREE_DATA.md) |\n| `GET_EASYSHIP_DOCUMENTS` | 5. Easy Ship Reports | Flat/XML（文档） | [GET_EASYSHIP_DOCUMENTS.md](./GET_EASYSHIP_DOCUMENTS.md) |\n| `GET_EASYSHIP_PICKEDUP` | 5. Easy Ship Reports | Flat/XML（文档） | [GET_EASYSHIP_PICKEDUP.md](./GET_EASYSHIP_PICKEDUP.md) |\n| `GET_EASYSHIP_WAITING_FOR_PICKUP` | 5. Easy Ship Reports | Flat/XML（文档） | [GET_EASYSHIP_WAITING_FOR_PICKUP.md](./GET_EASYSHIP_WAITING_FOR_PICKUP.md) |\n| `GET_AMAZON_FULFILLED_SHIPMENTS_DATA_GENERAL` | 6.1 FBA Shipments | Flat/XML（文档） | [GET_AMAZON_FULFILLED_SHIPMENTS_DATA_GENERAL.md](./GET_AMAZON_FULFILLED_SHIPMENTS_DATA_GENERAL.md) |\n| `GET_AMAZON_FULFILLED_SHIPMENTS_DATA_INVOICING` | 6.1 FBA Shipments | Flat/XML（文档） | [GET_AMAZON_FULFILLED_SHIPMENTS_DATA_INVOICING.md](./GET_AMAZON_FULFILLED_SHIPMENTS_DATA_INVOICING.md) |\n| `GET_AMAZON_FULFILLED_SHIPMENTS_DATA_TAX` | 6.1 FBA Shipments | Flat/XML（文档） | [GET_AMAZON_FULFILLED_SHIPMENTS_DATA_TAX.md](./GET_AMAZON_FULFILLED_SHIPMENTS_DATA_TAX.md) |\n| `GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_SALES_DATA` | 6.1 FBA Shipments | Flat/XML（文档） | [GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_SALES_DATA.md](./GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_SALES_DATA.md) |\n| `GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_PROMOTION_DATA` | 6.1 FBA Shipments | Flat/XML（文档） | [GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_PROMOTION_DATA.md](./GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_PROMOTION_DATA.md) |\n| `GET_FBA_FULFILLMENT_CUSTOMER_TAXES_DATA` | 6.1 FBA Shipments | Flat/XML（文档） | [GET_FBA_FULFILLMENT_CUSTOMER_TAXES_DATA.md](./GET_FBA_FULFILLMENT_CUSTOMER_TAXES_DATA.md) |\n| `GET_AFN_INVENTORY_DATA` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_AFN_INVENTORY_DATA.md](./GET_AFN_INVENTORY_DATA.md) |\n| `GET_AFN_INVENTORY_DATA_BY_COUNTRY` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_AFN_INVENTORY_DATA_BY_COUNTRY.md](./GET_AFN_INVENTORY_DATA_BY_COUNTRY.md) |\n| `GET_LEDGER_SUMMARY_VIEW_DATA` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_LEDGER_SUMMARY_VIEW_DATA.md](./GET_LEDGER_SUMMARY_VIEW_DATA.md) |\n| `GET_LEDGER_DETAIL_VIEW_DATA` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_LEDGER_DETAIL_VIEW_DATA.md](./GET_LEDGER_DETAIL_VIEW_DATA.md) |\n| `GET_RESERVED_INVENTORY_DATA` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_RESERVED_INVENTORY_DATA.md](./GET_RESERVED_INVENTORY_DATA.md) |\n| `GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATA` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATA.md](./GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATA.md) |\n| `GET_FBA_MYI_ALL_INVENTORY_DATA` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_FBA_MYI_ALL_INVENTORY_DATA.md](./GET_FBA_MYI_ALL_INVENTORY_DATA.md) |\n| `GET_RESTOCK_INVENTORY_RECOMMENDATIONS_REPORT` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_RESTOCK_INVENTORY_RECOMMENDATIONS_REPORT.md](./GET_RESTOCK_INVENTORY_RECOMMENDATIONS_REPORT.md) |\n| `GET_STRANDED_INVENTORY_UI_DATA` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_STRANDED_INVENTORY_UI_DATA.md](./GET_STRANDED_INVENTORY_UI_DATA.md) |\n| `GET_STRANDED_INVENTORY_LOADER_DATA` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_STRANDED_INVENTORY_LOADER_DATA.md](./GET_STRANDED_INVENTORY_LOADER_DATA.md) |\n| `GET_FBA_INVENTORY_PLANNING_DATA` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_FBA_INVENTORY_PLANNING_DATA.md](./GET_FBA_INVENTORY_PLANNING_DATA.md) |\n| `GET_REMOTE_FULFILLMENT_ELIGIBILITY` | 6.2 FBA Inventory | Flat/XML（文档） | [GET_REMOTE_FULFILLMENT_ELIGIBILITY.md](./GET_REMOTE_FULFILLMENT_ELIGIBILITY.md) |\n| `GET_FBA_STORAGE_FEE_CHARGES_DATA` | 6.3 FBA Fees & Charges | Flat/XML（文档） | [GET_FBA_STORAGE_FEE_CHARGES_DATA.md](./GET_FBA_STORAGE_FEE_CHARGES_DATA.md) |\n| `GET_FBA_OVERAGE_FEE_CHARGES_DATA` | 6.3 FBA Fees & Charges | Flat/XML（文档） | [GET_FBA_OVERAGE_FEE_CHARGES_DATA.md](./GET_FBA_OVERAGE_FEE_CHARGES_DATA.md) |\n| `GET_FBA_ESTIMATED_FBA_FEES_TXT_DATA` | 6.3 FBA Fees & Charges | Flat/XML（文档） | [GET_FBA_ESTIMATED_FBA_FEES_TXT_DATA.md](./GET_FBA_ESTIMATED_FBA_FEES_TXT_DATA.md) |\n| `GET_FBA_FULFILLMENT_LONGTERM_STORAGE_FEE_CHARGES_DATA` | 6.3 FBA Fees & Charges | Flat/XML（文档） | [GET_FBA_FULFILLMENT_LONGTERM_STORAGE_FEE_CHARGES_DATA.md](./GET_FBA_FULFILLMENT_LONGTERM_STORAGE_FEE_CHARGES_DATA.md) |\n| `GET_FBA_FULFILLMENT_CUSTOMER_RETURNS_DATA` | 6.4 FBA Returns & Reimbursements | Flat/XML（文档） | [GET_FBA_FULFILLMENT_CUSTOMER_RETURNS_DATA.md](./GET_FBA_FULFILLMENT_CUSTOMER_RETURNS_DATA.md) |\n| `GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_REPLACEMENT_DATA` | 6.4 FBA Returns & Reimbursements | Flat/XML（文档） | [GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_REPLACEMENT_DATA.md](./GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_REPLACEMENT_DATA.md) |\n| `GET_FBA_REIMBURSEMENTS_DATA` | 6.4 FBA Returns & Reimbursements | Flat/XML（文档） | [GET_FBA_REIMBURSEMENTS_DATA.md](./GET_FBA_REIMBURSEMENTS_DATA.md) |\n| `GET_FBA_RECOMMENDED_REMOVAL_DATA` | 6.5 FBA Removals | Flat/XML（文档） | [GET_FBA_RECOMMENDED_REMOVAL_DATA.md](./GET_FBA_RECOMMENDED_REMOVAL_DATA.md) |\n| `GET_FBA_FULFILLMENT_REMOVAL_ORDER_DETAIL_DATA` | 6.5 FBA Removals | Flat/XML（文档） | [GET_FBA_FULFILLMENT_REMOVAL_ORDER_DETAIL_DATA.md](./GET_FBA_FULFILLMENT_REMOVAL_ORDER_DETAIL_DATA.md) |\n| `GET_FBA_FULFILLMENT_REMOVAL_SHIPMENT_DETAIL_DATA` | 6.5 FBA Removals | Flat/XML（文档） | [GET_FBA_FULFILLMENT_REMOVAL_SHIPMENT_DETAIL_DATA.md](./GET_FBA_FULFILLMENT_REMOVAL_SHIPMENT_DETAIL_DATA.md) |\n| `GET_FBA_FULFILLMENT_INBOUND_NONCOMPLIANCE_DATA` | 6.6 FBA Compliance | Flat/XML（文档） | [GET_FBA_FULFILLMENT_INBOUND_NONCOMPLIANCE_DATA.md](./GET_FBA_FULFILLMENT_INBOUND_NONCOMPLIANCE_DATA.md) |\n| `GET_FLAT_FILE_OPEN_LISTINGS_DATA` | 7. Inventory Reports | Flat/XML（文档） | [GET_FLAT_FILE_OPEN_LISTINGS_DATA.md](./GET_FLAT_FILE_OPEN_LISTINGS_DATA.md) |\n| `GET_MERCHANT_LISTINGS_ALL_DATA` | 7. Inventory Reports | Flat/XML（文档） | [GET_MERCHANT_LISTINGS_ALL_DATA.md](./GET_MERCHANT_LISTINGS_ALL_DATA.md) |\n| `GET_MERCHANT_LISTINGS_DATA` | 7. Inventory Reports | Flat/XML（文档） | [GET_MERCHANT_LISTINGS_DATA.md](./GET_MERCHANT_LISTINGS_DATA.md) |\n| `GET_MERCHANT_LISTINGS_INACTIVE_DATA` | 7. Inventory Reports | Flat/XML（文档） | [GET_MERCHANT_LISTINGS_INACTIVE_DATA.md](./GET_MERCHANT_LISTINGS_INACTIVE_DATA.md) |\n| `GET_MERCHANT_LISTINGS_DATA_BACK_COMPAT` | 7. Inventory Reports | Flat/XML（文档） | [GET_MERCHANT_LISTINGS_DATA_BACK_COMPAT.md](./GET_MERCHANT_LISTINGS_DATA_BACK_COMPAT.md) |\n| `GET_MERCHANT_LISTINGS_DATA_LITE` | 7. Inventory Reports | Flat/XML（文档） | [GET_MERCHANT_LISTINGS_DATA_LITE.md](./GET_MERCHANT_LISTINGS_DATA_LITE.md) |\n| `GET_MERCHANT_LISTINGS_DATA_LITER` | 7. Inventory Reports | Flat/XML（文档） | [GET_MERCHANT_LISTINGS_DATA_LITER.md](./GET_MERCHANT_LISTINGS_DATA_LITER.md) |\n| `GET_MERCHANT_CANCELLED_LISTINGS_DATA` | 7. Inventory Reports | Flat/XML（文档） | [GET_MERCHANT_CANCELLED_LISTINGS_DATA.md](./GET_MERCHANT_CANCELLED_LISTINGS_DATA.md) |\n| `GET_MERCHANTS_LISTINGS_FYP_REPORT` | 7. Inventory Reports | Flat/XML（文档） | [GET_MERCHANTS_LISTINGS_FYP_REPORT.md](./GET_MERCHANTS_LISTINGS_FYP_REPORT.md) |\n| `GET_PAN_EU_OFFER_STATUS` | 7. Inventory Reports | Flat/XML（文档） | [GET_PAN_EU_OFFER_STATUS.md](./GET_PAN_EU_OFFER_STATUS.md) |\n| `GET_MFN_PANEU_OFFER_STATUS` | 7. Inventory Reports | Flat/XML（文档） | [GET_MFN_PANEU_OFFER_STATUS.md](./GET_MFN_PANEU_OFFER_STATUS.md) |\n| `GET_REFERRAL_FEE_PREVIEW_REPORT` | 7. Inventory Reports | Flat/XML（文档） | [GET_REFERRAL_FEE_PREVIEW_REPORT.md](./GET_REFERRAL_FEE_PREVIEW_REPORT.md) |\n| `GET_FLAT_FILE_VAT_INVOICE_DATA_REPORT` | 8. Invoice Reports | Flat/XML（文档） | [GET_FLAT_FILE_VAT_INVOICE_DATA_REPORT.md](./GET_FLAT_FILE_VAT_INVOICE_DATA_REPORT.md) |\n| `GET_XML_VAT_INVOICE_DATA_REPORT` | 8. Invoice Reports | Flat/XML（文档） | [GET_XML_VAT_INVOICE_DATA_REPORT.md](./GET_XML_VAT_INVOICE_DATA_REPORT.md) |\n| `GET_FLAT_FILE_ACTIONABLE_ORDER_DATA_SHIPPING` | 9. Order Reports | Flat/XML（文档） | [GET_FLAT_FILE_ACTIONABLE_ORDER_DATA_SHIPPING.md](./GET_FLAT_FILE_ACTIONABLE_ORDER_DATA_SHIPPING.md) |\n| `GET_ORDER_REPORT_DATA_INVOICING` | 9. Order Reports | Flat/XML（文档） | [GET_ORDER_REPORT_DATA_INVOICING.md](./GET_ORDER_REPORT_DATA_INVOICING.md) |\n| `GET_ORDER_REPORT_DATA_TAX` | 9. Order Reports | Flat/XML（文档） | [GET_ORDER_REPORT_DATA_TAX.md](./GET_ORDER_REPORT_DATA_TAX.md) |\n| `GET_ORDER_REPORT_DATA_SHIPPING` | 9. Order Reports | Flat/XML（文档） | [GET_ORDER_REPORT_DATA_SHIPPING.md](./GET_ORDER_REPORT_DATA_SHIPPING.md) |\n| `GET_FLAT_FILE_ORDER_REPORT_DATA_INVOICING` | 9. Order Reports | Flat/XML（文档） | [GET_FLAT_FILE_ORDER_REPORT_DATA_INVOICING.md](./GET_FLAT_FILE_ORDER_REPORT_DATA_INVOICING.md) |\n| `GET_FLAT_FILE_ORDER_REPORT_DATA_SHIPPING` | 9. Order Reports | Flat/XML（文档） | [GET_FLAT_FILE_ORDER_REPORT_DATA_SHIPPING.md](./GET_FLAT_FILE_ORDER_REPORT_DATA_SHIPPING.md) |\n| `GET_FLAT_FILE_ORDER_REPORT_DATA_TAX` | 9. Order Reports | Flat/XML（文档） | [GET_FLAT_FILE_ORDER_REPORT_DATA_TAX.md](./GET_FLAT_FILE_ORDER_REPORT_DATA_TAX.md) |\n| `GET_FLAT_FILE_ALL_ORDERS_DATA_BY_LAST_UPDATE_GENERAL` | 9. Order Reports | Flat/XML（文档） | [GET_FLAT_FILE_ALL_ORDERS_DATA_BY_LAST_UPDATE_GENERAL.md](./GET_FLAT_FILE_ALL_ORDERS_DATA_BY_LAST_UPDATE_GENERAL.md) |\n| `GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL` | 9. Order Reports | Flat/XML（文档） | [GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL.md](./GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL.md) |\n| `GET_FLAT_FILE_ARCHIVED_ORDERS_DATA_BY_ORDER_DATE` | 9. Order Reports | Flat/XML（文档） | [GET_FLAT_FILE_ARCHIVED_ORDERS_DATA_BY_ORDER_DATE.md](./GET_FLAT_FILE_ARCHIVED_ORDERS_DATA_BY_ORDER_DATE.md) |\n| `GET_XML_ALL_ORDERS_DATA_BY_LAST_UPDATE_GENERAL` | 9. Order Reports | Flat/XML（文档） | [GET_XML_ALL_ORDERS_DATA_BY_LAST_UPDATE_GENERAL.md](./GET_XML_ALL_ORDERS_DATA_BY_LAST_UPDATE_GENERAL.md) |\n| `GET_XML_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL` | 9. Order Reports | Flat/XML（文档） | [GET_XML_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL.md](./GET_XML_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL.md) |\n| `GET_FLAT_FILE_PENDING_ORDERS_DATA` | 9. Order Reports | Flat/XML（文档） | [GET_FLAT_FILE_PENDING_ORDERS_DATA.md](./GET_FLAT_FILE_PENDING_ORDERS_DATA.md) |\n| `GET_PENDING_ORDERS_DATA` | 9. Order Reports | Flat/XML（文档） | [GET_PENDING_ORDERS_DATA.md](./GET_PENDING_ORDERS_DATA.md) |\n| `GET_CONVERGED_FLAT_FILE_PENDING_ORDERS_DATA` | 9. Order Reports | Flat/XML（文档） | [GET_CONVERGED_FLAT_FILE_PENDING_ORDERS_DATA.md](./GET_CONVERGED_FLAT_FILE_PENDING_ORDERS_DATA.md) |\n| `GET_DATE_RANGE_FINANCIAL_HOLDS_DATA` | 10. Payment Reports | Flat/XML（文档） | [GET_DATE_RANGE_FINANCIAL_HOLDS_DATA.md](./GET_DATE_RANGE_FINANCIAL_HOLDS_DATA.md) |\n| `GET_SELLER_FEEDBACK_DATA` | 11. Performance Reports | Flat/XML（文档） | [GET_SELLER_FEEDBACK_DATA.md](./GET_SELLER_FEEDBACK_DATA.md) |\n| `GET_V1_SELLER_PERFORMANCE_REPORT` | 11. Performance Reports | Flat/XML（文档） | [GET_V1_SELLER_PERFORMANCE_REPORT.md](./GET_V1_SELLER_PERFORMANCE_REPORT.md) |\n| `GET_V2_SELLER_PERFORMANCE_REPORT` | 11. Performance Reports | Flat/XML（文档） | [GET_V2_SELLER_PERFORMANCE_REPORT.md](./GET_V2_SELLER_PERFORMANCE_REPORT.md) |\n| `GET_PROMOTION_PERFORMANCE_REPORT` | 11. Performance Reports | JSON Schema 专页 | [GET_PROMOTION_PERFORMANCE_REPORT.md](./GET_PROMOTION_PERFORMANCE_REPORT.md) |\n| `GET_COUPON_PERFORMANCE_REPORT` | 11. Performance Reports | JSON Schema 专页 | [GET_COUPON_PERFORMANCE_REPORT.md](./GET_COUPON_PERFORMANCE_REPORT.md) |\n| `END_USER_DATA_REPORT` | 12. Regulatory Compliance Reports | JSON Schema 专页 | [END_USER_DATA_REPORT.md](./END_USER_DATA_REPORT.md) |\n| `FBA_BULK_INVOICE` | 12. Regulatory Compliance Reports | Flat/XML（文档） | [FBA_BULK_INVOICE.md](./FBA_BULK_INVOICE.md) |\n| `MARKETPLACE_ASIN_PAGE_VIEW_METRICS` | 12. Regulatory Compliance Reports | JSON Schema 专页 | [MARKETPLACE_ASIN_PAGE_VIEW_METRICS.md](./MARKETPLACE_ASIN_PAGE_VIEW_METRICS.md) |\n| `GET_EPR_MONTHLY_REPORTS` | 12. Regulatory Compliance Reports | Flat/XML（文档） | [GET_EPR_MONTHLY_REPORTS.md](./GET_EPR_MONTHLY_REPORTS.md) |\n| `GET_EPR_QUARTERLY_REPORTS` | 12. Regulatory Compliance Reports | Flat/XML（文档） | [GET_EPR_QUARTERLY_REPORTS.md](./GET_EPR_QUARTERLY_REPORTS.md) |\n| `GET_EPR_ANNUAL_REPORTS` | 12. Regulatory Compliance Reports | Flat/XML（文档） | [GET_EPR_ANNUAL_REPORTS.md](./GET_EPR_ANNUAL_REPORTS.md) |\n| `GET_XML_RETURNS_DATA_BY_RETURN_DATE` | 13. Returns Reports | Flat/XML（文档） | [GET_XML_RETURNS_DATA_BY_RETURN_DATE.md](./GET_XML_RETURNS_DATA_BY_RETURN_DATE.md) |\n| `GET_FLAT_FILE_RETURNS_DATA_BY_RETURN_DATE` | 13. Returns Reports | Flat/XML（文档） | [GET_FLAT_FILE_RETURNS_DATA_BY_RETURN_DATE.md](./GET_FLAT_FILE_RETURNS_DATA_BY_RETURN_DATE.md) |\n| `GET_XML_MFN_PRIME_RETURNS_REPORT` | 13. Returns Reports | Flat/XML（文档） | [GET_XML_MFN_PRIME_RETURNS_REPORT.md](./GET_XML_MFN_PRIME_RETURNS_REPORT.md) |\n| `GET_CSV_MFN_PRIME_RETURNS_REPORT` | 13. Returns Reports | Flat/XML（文档） | [GET_CSV_MFN_PRIME_RETURNS_REPORT.md](./GET_CSV_MFN_PRIME_RETURNS_REPORT.md) |\n| `GET_XML_MFN_SKU_RETURN_ATTRIBUTES_REPORT` | 13. Returns Reports | Flat/XML（文档） | [GET_XML_MFN_SKU_RETURN_ATTRIBUTES_REPORT.md](./GET_XML_MFN_SKU_RETURN_ATTRIBUTES_REPORT.md) |\n| `GET_FLAT_FILE_MFN_SKU_RETURN_ATTRIBUTES_REPORT` | 13. Returns Reports | Flat/XML（文档） | [GET_FLAT_FILE_MFN_SKU_RETURN_ATTRIBUTES_REPORT.md](./GET_FLAT_FILE_MFN_SKU_RETURN_ATTRIBUTES_REPORT.md) |\n| `GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE` | 14. Settlement/Payments Reports | Flat/XML（文档） | [GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE.md](./GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE.md) |\n| `GET_V2_SETTLEMENT_REPORT_DATA_XML` | 14. Settlement/Payments Reports | Flat/XML（文档） | [GET_V2_SETTLEMENT_REPORT_DATA_XML.md](./GET_V2_SETTLEMENT_REPORT_DATA_XML.md) |\n| `GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2` | 14. Settlement/Payments Reports | Flat/XML（文档） | [GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2.md](./GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE_V2.md) |\n| `GST_MTR_STOCK_TRANSFER_REPORT` | 15. Tax Reports | Flat/XML（文档） | [GST_MTR_STOCK_TRANSFER_REPORT.md](./GST_MTR_STOCK_TRANSFER_REPORT.md) |\n| `GST_MTR_B2B` | 15. Tax Reports | Flat/XML（文档） | [GST_MTR_B2B.md](./GST_MTR_B2B.md) |\n| `GST_MTR_B2C` | 15. Tax Reports | Flat/XML（文档） | [GST_MTR_B2C.md](./GST_MTR_B2C.md) |\n| `GET_FLAT_FILE_SALES_TAX_DATA` | 15. Tax Reports | Flat/XML（文档） | [GET_FLAT_FILE_SALES_TAX_DATA.md](./GET_FLAT_FILE_SALES_TAX_DATA.md) |\n| `SC_VAT_TAX_REPORT` | 15. Tax Reports | Flat/XML（文档） | [SC_VAT_TAX_REPORT.md](./SC_VAT_TAX_REPORT.md) |\n| `GET_VAT_TRANSACTION_DATA` | 15. Tax Reports | Flat/XML（文档） | [GET_VAT_TRANSACTION_DATA.md](./GET_VAT_TRANSACTION_DATA.md) |\n| `GET_GST_MTR_B2B_CUSTOM` | 15. Tax Reports | Flat/XML（文档） | [GET_GST_MTR_B2B_CUSTOM.md](./GET_GST_MTR_B2B_CUSTOM.md) |\n| `GET_GST_MTR_B2C_CUSTOM` | 15. Tax Reports | Flat/XML（文档） | [GET_GST_MTR_B2C_CUSTOM.md](./GET_GST_MTR_B2C_CUSTOM.md) |\n| `GET_GST_STR_ADHOC` | 15. Tax Reports | Flat/XML（文档） | [GET_GST_STR_ADHOC.md](./GET_GST_STR_ADHOC.md) |\n\nFile v1.0.7:scripts/README.md\n\n# Amazon Store Report Scripts Usage Guide\n\n本目录包含 **报告获取** 相关的 Python 脚本。若需要授权、查看店铺或获取令牌，请使用依赖 skill `linkfox-amazon-store-auth` 的脚本。\n\n## Prerequisites\n\n- Python 3.6+\n- `LINKFOXAGENT_API_KEY` 环境变量\n- 可访问 LinkFox 后端 API（默认 `https://tool-gateway.linkfox.com`）\n- ⚠️ **依赖 skill `linkfox-amazon-store-auth` 已安装**（`get_report.py` 启动会自动校验）\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"your-api-key-here\"\n```\n\n## Available Scripts\n\n### 1. check_auth_dependency.py ⭐\n\n探测依赖 skill `linkfox-amazon-store-auth` 是否可用。\n\n```bash\npython check_auth_dependency.py            # 默认输出\npython check_auth_dependency.py --json     # JSON 输出\n```\n\n**退出码**：\n- `0` → 依赖已满足\n- `42` → `DEPENDENCY_MISSING`：依赖未安装，agent 需触发安装流程\n\n**stderr 信号**：\n- 成功：`DEPENDENCY_OK: {...}`\n- 缺失：`DEPENDENCY_MISSING: {...}`\n\nAgent 检测到 `exit 42` 或 `DEPENDENCY_MISSING:` 时，应当：\n1. 优先调用本地的 skill 安装工具（如有）自动安装 `linkfox-amazon-store-auth`\n2. 否则向用户说明并建议从 https://skill.linkfox.com/ 安装\n\n### 2. get_report.py ⭐\n\n自动化的端到端报告获取脚本。\n\n**脚本启动时会先跑 `check_auth_dependency.py`**；若依赖缺失，会以退出码 `42` 退出并在 stderr 输出 `DEPENDENCY_MISSING:` 结构化信号。\n\n#### Basic Usage\n\n```bash\npython get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_MERCHANT_LISTINGS_ALL_DATA\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"]\n}'\n```\n\n#### Advanced Usage with Date Range\n\n```bash\npython get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"],\n  \"dataStartTime\": \"2024-01-01T00:00:00Z\",\n  \"dataEndTime\": \"2024-01-31T23:59:59Z\"\n}'\n```\n\n#### `reportOptions` / Brand Analytics / Sales & Traffic（见 `references/report-requests/`）\n\n```bash\npython get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_SALES_AND_TRAFFIC_REPORT\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"],\n  \"dataStartTime\": \"2024-06-01T00:00:00Z\",\n  \"dataEndTime\": \"2024-06-07T23:59:59Z\",\n  \"reportOptions\": {\"dateGranularity\": \"DAY\", \"asinGranularity\": \"SKU\"}\n}'\n```\n\n```bash\npython get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_BRAND_ANALYTICS_SEARCH_QUERY_PERFORMANCE_REPORT\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"],\n  \"dataStartTime\": \"2025-01-05\",\n  \"dataEndTime\": \"2025-01-11\",\n  \"reportOptions\": {\"reportPeriod\": \"WEEK\", \"asin\": \"B123456789\"}\n}'\n```\n\n（`reportPeriod` 与 `dataStartTime`/`dataEndTime` 的周起止须符合官方 schema，见 [sellingPartnerSearchQueryPerformanceReport.md](../references/report-requests/sellingPartnerSearchQueryPerformanceReport.md)。）\n\n#### Custom Polling\n\n```bash\npython get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_MERCHANT_LISTINGS_ALL_DATA\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"],\n  \"pollInterval\": 15,\n  \"maxAttempts\": 40\n}'\n```\n\n#### Parameters\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| sellerId | string | Yes | Amazon Seller ID |\n| region | string | Yes | NA / EU / FE |\n| reportType | string | Yes | Amazon report type enum |\n| marketplaceIds | array | Yes | 目标 marketplace IDs |\n| dataStartTime | string | No | ISO 8601 |\n| dataEndTime | string | No | ISO 8601 |\n| lastUpdatedDate | string | No | 部分 Vendor 报告；写入 createReport 请求体 |\n| reportOptions | object | No | 与 SP-API `reportOptions` 一致；键见 `references/report-requests/*.md` |\n| pollInterval | int | No | 轮询间隔秒数（默认 30） |\n| maxAttempts | int | No | 最大轮询次数（默认 20） |\n| skipDepCheck | bool | No | 跳过依赖检查（仅在确认依赖已满足时使用） |\n| serveExtractedFileHttp | bool | No | 是否为**已解压**文件启动本机临时 HTTP（默认 `true`） |\n| serveHost | string | No | 绑定地址，默认 `127.0.0.1` |\n| servePort | int | No | 端口；`0` 表示由系统分配空闲端口（默认 `0`） |\n| serveSeconds | int | No | JSON 打印后 HTTP 服务保持秒数（默认 `300`，最少 `10`） |\n| includeAmazonSourceUrl | bool | No | 为 `true` 时在 JSON 中附带 `amazonDownloadUrl`（Amazon 源，多为压缩包；默认 `false`） |\n| omitAmazonDownloadUrl | bool | No | **兼容旧参数**：`true` 等价于不输出 Amazon URL；`false` 等价于 `includeAmazonSourceUrl: true` |\n\n#### 成功后的输出\n\n- **stderr**：人类可读进度；结束时打印 **本地绝对路径**、**本机 `file://` URI**、**`extractedFileHttpUrl`**（浏览器下载已解压文件）；随后脚本会**阻塞** `serveSeconds` 秒以保持服务可用，结束后打印服务已停止。\n- **stdout**：JSON（便于管道解析），字段示例见下。\n\n```json\n{\n  \"success\": true,\n  \"reportId\": \"amzn1.spdoc.1.4.na.xxx\",\n  \"reportDocumentId\": \"amzn1.spdoc.1.4.na.yyy\",\n  \"reportType\": \"GET_MERCHANT_LISTINGS_ALL_DATA\",\n  \"downloadPath\": \"/tmp/amazon_report_xxx/report_data.txt\",\n  \"fileName\": \"report_data.txt\",\n  \"localFileUri\": \"file:///tmp/amazon_report_xxx/report_data.txt\",\n  \"extractedFileHttpUrl\": \"http://127.0.0.1:52431/download\",\n  \"extractedFileHttpServeSeconds\": 300,\n  \"extractedFileHttpNote\": \"本机临时 HTTP…\",\n  \"compressionAlgorithm\": \"GZIP\",\n  \"tempDirectory\": \"/tmp/amazon_report_xxx\",\n  \"fileSize\": 1234\n}\n```\n\n`extractedFileHttpUrl` 由脚本在**本机**起的短时 HTTP 服务提供，用于下载**已解压**后的文件；**仅在 `serveSeconds` 内、且与脚本同一台机器**可用。不需要给终端用户展示 Amazon 源地址时，不要设置 `includeAmazonSourceUrl`。\n\n#### Exit Codes\n\n| Code | Meaning |\n|------|---------|\n| 0 | 成功 |\n| 1 | 业务错误：参数错误、API 错误、报告 FATAL、超时等 |\n| 42 | **DEPENDENCY_MISSING**：依赖 skill `linkfox-amazon-store-auth` 未安装 |\n\n## Common Report Types\n\n| Report Type | Description |\n|-------------|-------------|\n| GET_MERCHANT_LISTINGS_ALL_DATA | 当前在售 listing |\n| GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL | 按下单日期的全部订单 |\n| GET_SALES_AND_TRAFFIC_REPORT | 销售与流量 |\n| GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE | 财务结算 |\n| GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATA | FBA 库存 |\n\n完整清单：`../references/report-types.md`。\n\n## Marketplace IDs\n\n| Region | Country | Marketplace ID |\n|--------|---------|----------------|\n| NA | US | ATVPDKIKX0DER |\n| NA | Canada | A2EUQ1WTGCTBG2 |\n| NA | Mexico | A1AM78C64UM0Y8 |\n| EU | UK | A1F83G8C2ARO7P |\n| EU | Germany | A1PA6795UKMFR9 |\n| FE | Japan | A1VC38T7YXB528 |\n\n## Environment Variables\n\n| Variable | Description | Default |\n|----------|-------------|---------|\n| LINKFOXAGENT_API_KEY | API 鉴权 key | 必需 |\n| STORE_API_BASE_URL / SPAPI_BASE_URL | 后端网关 base URL（优先读前者） | https://tool-gateway.linkfox.com |\n| LINKFOX_SKILLS_DIR / SKILLS_DIR / CURSOR_SKILLS_DIR | 可选：显式指定**扁平** skill 根目录（`<root>/<slug>/SKILL.md`） | — |\n| OPENCLAW_WORKSPACE / OPENCLAW_ROOT / OPENCLAW_WORKDIR | OpenClaw 工作区；会额外探测 `<ws>/skills` 与 `<ws>/.agents/skills` | — |\n| OPENCLAW_SKILLS_DIR | OpenClaw 全局 skills 目录（覆盖或补充 `~/.openclaw/skills`） | — |\n| HERMES_SKILLS_EXTERNAL_DIRS | 等价于 Hermes `config.yaml` 的 `skills.external_dirs`；用系统路径分隔符（macOS/Linux 为 `:`，Windows 为 `;`）拼接多个路径 | — |\n| HERMES_SKILLS_HOME | 若 Hermes 的 category 根不在默认 `~/.hermes/skills`，可指向该根目录 | — |\n\n## Troubleshooting\n\n**`DEPENDENCY_MISSING:` 或退出码 42**\n- 安装依赖 skill `linkfox-amazon-store-auth`\n- 或设置 `LINKFOX_SKILLS_DIR` 指向正确的 skill 根目录\n\n**403 Unauthorized**\n- 店铺缺少报告类型的权限\n- Brand Analytics 报告需要品牌备案\n- 重新授权时勾选更完整权限\n\n**FATAL 状态**\n- 该报告类型对该店铺不可用\n- 数据不足 / 时间范围无数据\n- **不要擅自改换报告类型**，按用户意图停下来回报\n\n**Report 耗时过长**\n- 增大 `maxAttempts` 或 `pollInterval`\n- 财务/结算类报告常常需要 10–30 分钟\n\n## Further Documentation\n\n- API Reference: `../references/api.md`\n- Report Types: `../references/report-types.md`\n- Skill 文档: `../SKILL.md`\n\nFile v1.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn7dmc1t4j28hem1twwyav85p182pb1j\",\n  \"slug\": \"linkfox-amazon-store-report\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1786718922884\n}\n\nFile v1.0.7:references/api.md\n\n# Amazon 店铺报告 API Reference\n\n本文档描述 **报告获取** 相关的 API。授权与令牌相关接口（`/spApi/authorizeUrl`、`/spApi/storeTokens`、`/spApi/refreshToken` 等）属于 **依赖 skill** `linkfox-amazon-store-auth`，请参考该 skill 的 `references/api.md`。\n\n> ⚠️ **依赖提示**：在调用本 skill 接口前，请先确认 `linkfox-amazon-store-auth` 已安装（参见本 skill 的 `SKILL.md` 顶部 Prerequisites）。\n\n## Calling Conventions\n\n- **Base URL**: `${LINKFOX_TOOL_GATEWAY}`（默认 `https://tool-gateway.linkfox.com`；可用 `STORE_API_BASE_URL` 或兼容旧名 `SPAPI_BASE_URL` 覆盖）\n- **Request Method**: POST\n- **Content-Type**: `application/json`\n- **Authentication**: Header `Authorization: <api_key>`，读取环境变量 `LINKFOX_AGENT_API_KEY` 或 `LINKFOXAGENT_API_KEY`（如未配置 按 SKILL.md 的 **## 解决认证和积分问题** 处理）\n\n## API Endpoints\n\n### 1. Developer Proxy（转发亚马逊开放接口）\n\n**Endpoint**: `/spApi/developerProxy`\n\n报告相关的上游调用（列表 / 请求 / 查状态 / 取下载链接）都通过该代理接口转发。\n\n**Request Parameters** (JSON):\n\n| Parameter | Type | Required | Description | Example |\n|-----------|------|----------|-------------|---------|\n| region | string | Yes | 区域代码：NA/EU/FE | \"NA\" |\n| path | string | Yes | 上游 Reports 等 API 路径（不含域名与 developer-proxy/{region}/ 前缀） | \"reports/2021-06-30/reports\" |\n| method | string | Yes | HTTP 方法：GET/POST/PUT/DELETE | \"GET\" |\n| amzAccessToken | string | Yes | 访问令牌（来自 `/spApi/storeTokens`） | \"Atza\\|IwEBI...\" |\n| queryString | string | No | Query 参数（无 `?`） | \"marketplaceIds=ATVPDKIKX0DER\" |\n| body | string | No | POST/PUT 请求体（JSON 字符串） | `\"{\\\"reportType\\\":\\\"...\\\"}\"` |\n| contentType | string | No | Content-Type 头（默认 application/json） | \"application/json\" |\n\n**Response**:\n\n```json\n{\n  \"errcode\": 200,\n  \"errmsg\": \"ok\",\n  \"httpStatus\": 200,\n  \"contentType\": \"application/json\",\n  \"body\": \"{\\\"reports\\\":[...]}\"\n}\n```\n\n**Important Notes**:\n- `path` 必须在白名单内（后端 `sp-api.developer-proxy.allowed-path-prefixes`）\n- 默认白名单含 `reports/2021-06-30/reports`\n- `amzAccessToken` 必须与 `region` 匹配的店铺令牌一致\n- 速率限制按上游亚马逊接口端点执行\n\n---\n\n## createReport 请求体（`POST reports/2021-06-30/reports`）\n\n`developerProxy` 的 `body` 为 **JSON 字符串**，反序列化后与 Amazon **CreateReport** 请求体一致。\n\n### 通用字段\n\n| 字段 | 类型 | 必填 | 说明 |\n|------|------|------|------|\n| reportType | string | 是 | 报告类型枚举，见 `references/report-types.md` |\n| marketplaceIds | array[string] | 是 | 站点 ID 列表（多数报告至少一个） |\n| dataStartTime | string | 视报告 | ISO 8601；部分 schema 仅使用日期部分 `YYYY-MM-DD` |\n| dataEndTime | string | 视报告 | 同上 |\n| lastUpdatedDate | string | 视报告 | 部分 Vendor 报告要求，与日期字段组合以官方 schema 为准 |\n| reportOptions | object | 视报告 | **Brand Analytics、销售流量、促销/优惠券、部分 Vendor** 等必填；键与枚举见各报告专页 |\n\n### 与官方 JSON Schema 的对应关系\n\nAmazon 在仓库 [amzn/selling-partner-api-models/schemas/reports](https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports) 中为 **带 JSON 结果包裹** 的报告提供了 Schema（含 `reportSpecification` 示例与结果字段定义）。\n\n本 skill 在 `references/report-requests/` 下为 **每个 `*.json` 维护一份同名 `*.md`**，内容包括：\n\n- 上游 Raw 链接与摘要说明  \n- 从 schema 提取的 **`reportType`** 与 **`reportSpecification` 官方示例**（可直接作为 `body` 模板）  \n- **`reportOptions`** 键表（若有）  \n- 结果文档结构说明要点  \n\n**入口索引**：[report-requests/README.md](./report-requests/README.md)  \n**按 `reportType` 全覆盖（109 个）**：[report-requests/types/README.md](./report-requests/types/README.md)\n\n> 大量 **Flat File**（订单、库存等 TSV）报告在官方仓库中**无**独立 `schemas/reports/*.json` 时，请求体通常为 `reportType` + `marketplaceIds` + 可选 `dataStartTime`/`dataEndTime`，详见 [Report type values](https://developer-docs.amazon.com/sp-api/docs/report-type-values)。\n\n### 脚本参数映射（`scripts/get_report.py`）\n\n| JSON 参数 | 写入 createReport 体 |\n|-----------|------------------------|\n| reportType | reportType |\n| marketplaceIds | marketplaceIds |\n| dataStartTime | dataStartTime |\n| dataEndTime | dataEndTime |\n| lastUpdatedDate | lastUpdatedDate |\n| reportOptions | reportOptions（对象原样合并） |\n\n---\n\n## 与依赖 skill 的接力关系\n\n下面是典型调用序列（本 skill + `linkfox-amazon-store-auth`）：\n\n```\nlinkfox-amazon-store-auth/scripts/store_tokens.py    # 取 accessToken\n           │\n           ▼\nlinkfox-amazon-store-report/scripts/get_report.py    # 用 accessToken 拉报告\n  1. POST /spApi/developerProxy (method=POST,  path=reports/2021-06-30/reports)\n  2. POST /spApi/developerProxy (method=GET,   path=reports/2021-06-30/reports/{reportId})  # 轮询\n  3. POST /spApi/developerProxy (method=GET,   path=reports/2021-06-30/documents/{reportDocumentId})\n  4. 直接下载返回的 url 并解压\n```\n\n## Error Codes\n\n| errcode | 含义 | 建议动作 |\n|---------|------|----------|\n| 200 | 代理调用成功（还需看 `httpStatus`） | 继续解析 `body` |\n| 1002 | 缺参数或认证失败 | 检查必填参数与 API key |\n| 402 | 积分不足 | HTTP 402：按 SKILL.md 的 **## 解决认证和积分问题** 处理。|\n| 1003 | 第三方服务调用失败 | 稍后重试 |\n| 1005 | path 不在白名单 | 联系后端加白名单 |\n\n### Developer Proxy 上游状态码\n\n调用成功（`errcode=200`）后必须再检查 `httpStatus`：\n\n| httpStatus | 含义 | 建议动作 |\n|------------|------|----------|\n| 200 | 成功 | 正常解析 `body` |\n| 202 | 已接受（创建报告后返回） | 拿到 reportId 进入轮询 |\n| 400 | 参数错误 | 检查 reportType / marketplaceIds |\n| 403 | 未授权 | 检查 accessToken、店铺权限、品牌备案 |\n| 404 | 资源不存在 | 核对 reportId/reportDocumentId |\n| 429 | 请求过快 | 指数退避重试 |\n| 500 | 上游错误 | 延时重试 |\n\n---\n\n## curl Examples\n\n### 列出现有报告\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/spApi/developerProxy \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"region\": \"NA\",\n    \"path\": \"reports/2021-06-30/reports\",\n    \"method\": \"GET\",\n    \"amzAccessToken\": \"Atza|IwEBI...\",\n    \"queryString\": \"reportTypes=GET_MERCHANT_LISTINGS_ALL_DATA&marketplaceIds=ATVPDKIKX0DER\"\n  }'\n```\n\n### 请求新报告\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/spApi/developerProxy \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"region\": \"NA\",\n    \"path\": \"reports/2021-06-30/reports\",\n    \"method\": \"POST\",\n    \"amzAccessToken\": \"Atza|IwEBI...\",\n    \"body\": \"{\\\"reportType\\\":\\\"GET_MERCHANT_LISTINGS_ALL_DATA\\\",\\\"marketplaceIds\\\":[\\\"ATVPDKIKX0DER\\\"]}\",\n    \"contentType\": \"application/json\"\n  }'\n```\n\n### 查询报告状态\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/spApi/developerProxy \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"region\": \"NA\",\n    \"path\": \"reports/2021-06-30/reports/<reportId>\",\n    \"method\": \"GET\",\n    \"amzAccessToken\": \"Atza|IwEBI...\"\n  }'\n```\n\n### 获取下载链接\n\n```bash\ncurl -X POST https://tool-gateway.linkfox.com/spApi/developerProxy \\\n  -H \"Authorization: $LINKFOXAGENT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"region\": \"NA\",\n    \"path\": \"reports/2021-06-30/documents/<reportDocumentId>\",\n    \"method\": \"GET\",\n    \"amzAccessToken\": \"Atza|IwEBI...\"\n  }'\n```\n\n---\n\n## Feedback API\n\n> 本接口与上面工具 API **不同 base URL**，不要混用。\n\n- **POST** `https://skill-api.linkfox.com/api/v1/public/feedback`\n- **Content-Type**: `application/json`\n\n```json\n{\n  \"skillName\": \"linkfox-amazon-store-report\",\n  \"sentiment\": \"NEGATIVE\",\n  \"category\": \"BUG\",\n  \"content\": \"Report FATAL for Brand Analytics, but store lacks brand registry — error not surfaced clearly.\"\n}\n```\n\n**Field rules**:\n- `skillName`: 使用本 skill frontmatter 的 `name`\n- `sentiment`: `POSITIVE` / `NEUTRAL` / `NEGATIVE`\n- `category`: `BUG` / `COMPLAINT` / `SUGGESTION` / `OTHER`\n- `content`: 用户说了什么、实际发生了什么、为什么是问题\n\n---\n\n## 报告类型索引\n\n完整列表见 `references/report-types.md`（95+ 种）。精简摘要见 `references/report-types-basic.md`。\n\n**带 schema 的请求/结果格式**：`references/report-requests/README.md`（与 [GitHub schemas/reports](https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports) 一一对应）。\n\nFile v1.0.7:references/onboarding.md\n\n# 解决认证和积分问题\n\n调用本 skill 时若网关返回 **auth** 或 **billing** 错误，走本 skill 自带的 `scripts/onboarding.py` 完成引导。\n\n**auth 场景**：`errcode=401` 或消息含 `authorized error`/`鉴权失败`/`未授权`/`unauthorized`；或 `LINKFOX_AGENT_API_KEY` 与 `LINKFOXAGENT_API_KEY` 均为空。\n1. 若已配置 key → 先让用户重启会话（最常见误判），仍失败让用户重新取 key 或换手机号重注册\n2. 未配置 → 询问：自助去 https://agent.linkfox.com/ 取 key，或提供手机号让脚本注册\n3. 手机号路径：\n   - `python scripts/onboarding.py send-code <phone>` → 展示 JSON 里的 phone/agreements\n   - 收到验证码后：`python scripts/onboarding.py login <phone> <code>`（workbuddy 宿主加 `--channel workbuddy`）\n   - 拿到 `api_key` 后把下面三平台配置转发给用户，提示重启会话生效：\n     - Windows PowerShell（永久）：`setx LINKFOX_AGENT_API_KEY \"<key>\"`\n     - macOS zsh：`echo 'export LINKFOX_AGENT_API_KEY=\"<key>\"' >> ~/.zshrc && source ~/.zshrc`\n     - Linux bash：`echo 'export LINKFOX_AGENT_API_KEY=\"<key>\"' >> ~/.bashrc && source ~/.bashrc`\n     - 变量名 `LINKFOX_AGENT_API_KEY`（主推）或 `LINKFOXAGENT_API_KEY`（老规范）任一即可\n\n**billing 场景**：`errcode=402` 或消息含 `积分/余额/quota/insufficient/充值/套餐到期`。\n- `python scripts/onboarding.py list-plans` → 有 AskUserQuestion 就弹菜单，否则输出编号清单让用户选\n- 校验 `plan_id` ∈ 清单、支付方式 ∈ 该套餐 `available_methods`（通常 `wechat/alipay`）\n- `python scripts/onboarding.py order <plan_id> <method>` → 展示优先级 PNG > `pay_url` > `ascii_qr`（标注兜底）\n- 已付款可选调 `python scripts/onboarding.py query <order_id>`，不主动轮询\n\n排除 `errcode=403`（无权限，不归入这两类）。所有子命令输出 stdout JSON，`error` 字段已含阶段前缀，透传给用户即可。完整用法：`python scripts/onboarding.py --help`。\n\nFile v1.0.7:references/report-requests/accountHealthReport-2020-11-18.md\n\n# `accountHealthReport-2020-11-18.json` — 报告格式说明\n\n> 上游 JSON Schema 来自 Amazon [selling-partner-api-models/schemas/reports](https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports)。\n\n- **Raw**：[accountHealthReport-2020-11-18.json](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/accountHealthReport-2020-11-18.json)\n- **目录浏览**：https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports\n\n## Schema 摘要\n\nThe root schema comprises the entire JSON document.\n\n## 对应 `reportType`（SP-API）\n\n- （文档结构对应账户状况类报告；`reportType` 以 [Report Type Values](https://developer-docs.amazon.com/sp-api/docs/report-type-values) 为准，常见为账户状况/绩效相关枚举）\n\n本 JSON 主要为**报告结果文档**字段定义，文件中未嵌入 `reportSpecification` 示例。创建报告时的 `reportType`、是否需 `reportOptions` 请查阅官方 Report Type Values。\n\n## `createReport` 请求体（`POST .../reports/2021-06-30/reports`）\n\nLinkFox 网关通过 `developerProxy` 转发时，`body` 为 JSON 字符串，对象字段与 SP-API **CreateReport** 一致，常用结构如下：\n\n```json\n{\n  \"reportType\": \"<REPORT_TYPE>\",\n  \"marketplaceIds\": [\n    \"ATVPDKIKX0DER\"\n  ],\n  \"dataStartTime\": \"2025-01-01T00:00:00Z\",\n  \"dataEndTime\": \"2025-01-31T23:59:59Z\",\n  \"reportOptions\": {\n    \"...\": \"...\"\n  }\n}\n```\n\n- **`reportType`** / **`marketplaceIds`**：必填（多数报告）。\n- **`dataStartTime`** / **`dataEndTime`**：ISO 8601；部分报告 schema 使用 **仅日期** `YYYY-MM-DD`（Amazon 忽略时间分量），以本文件「官方示例」为准。\n- **`reportOptions`**：对象，键名/枚举因报告而异；Brand Analytics 等 **必填**，见下节。\n- **`lastUpdatedDate`**：部分 Vendor 报告使用（见 schema `reportSpecification`），需与 `dataStartTime`/`dataEndTime` 按官方要求组合。\n\n本仓库脚本 `scripts/get_report.py` 已支持：在 JSON 参数中传入 **`reportOptions`**（对象）以及 **`lastUpdatedDate`**（字符串），会合并进创建请求体。\n\n### 无内嵌 `reportSpecification` 示例\n\n创建请求请以 [Report Type Values](https://developer-docs.amazon.com/sp-api/docs/report-type-values) 为准；可先用最小字段试请求，再根据 400 错误补充 `reportOptions`。\n\n## 报告结果文档（下载/解压后的 JSON）\n\n- 顶层字段以本 schema 的 `properties` / `definitions` 为准（多为业务数据数组或对象）。\n- 若 schema 内含 `reportSpecification` + 数据数组（如 `dataByAsin`），下载文件常为 **带元数据包裹** 的结构，与 TSV 类平面报告不同。\n\nFile v1.0.7:references/report-requests/b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.md\n\n# `b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.json` — 报告格式说明\n\n> 上游 JSON Schema 来自 Amazon [selling-partner-api-models/schemas/reports](https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports)。\n\n- **Raw**：[b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.json](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.json)\n- **目录浏览**：https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports\n\n## Schema 摘要\n\nProvides B2B product recommendations based on predicted incremental units sold, unmet buyer demand, and other factors for products not yet listed on Amazon. The recommendations are personalized to the seller based on past sales activity.\n\n## 对应 `reportType`（SP-API）\n\n- `GET_B2B_PRODUCT_OPPORTUNITIES_NOT_YET_ON_AMAZON`\n\nSchema 描述输出 `recommendations` 结构。创建报告通常：`reportType` + `marketplaceIds`，日期字段以官方为准。\n\n## `createReport` 请求体（`POST .../reports/2021-06-30/reports`）\n\nLinkFox 网关通过 `developerProxy` 转发时，`body` 为 JSON 字符串，对象字段与 SP-API **CreateReport** 一致，常用结构如下：\n\n```json\n{\n  \"reportType\": \"<REPORT_TYPE>\",\n  \"marketplaceIds\": [\n    \"ATVPDKIKX0DER\"\n  ],\n  \"dataStartTime\": \"2025-01-01T00:00:00Z\",\n  \"dataEndTime\": \"2025-01-31T23:59:59Z\",\n  \"reportOptions\": {\n    \"...\": \"...\"\n  }\n}\n```\n\n- **`reportType`** / **`marketplaceIds`**：必填（多数报告）。\n- **`dataStartTime`** / **`dataEndTime`**：ISO 8601；部分报告 schema 使用 **仅日期** `YYYY-MM-DD`（Amazon 忽略时间分量），以本文件「官方示例」为准。\n- **`reportOptions`**：对象，键名/枚举因报告而异；Brand Analytics 等 **必填**，见下节。\n- **`lastUpdatedDate`**：部分 Vendor 报告使用（见 schema `reportSpecification`），需与 `dataStartTime`/`dataEndTime` 按官方要求组合。\n\n本仓库脚本 `scripts/get_report.py` 已支持：在 JSON 参数中传入 **`reportOptions`**（对象）以及 **`lastUpdatedDate`**（字符串），会合并进创建请求体。\n\n### 无内嵌 `reportSpecification` 示例\n\n创建请求请以 [Report Type Values](https://developer-docs.amazon.com/sp-api/docs/report-type-values) 为准；可先用最小字段试请求，再根据 400 错误补充 `reportOptions`。\n\n## 报告结果文档（下载/解压后的 JSON）\n\n- 顶层字段以本 schema 的 `properties` / `definitions` 为准（多为业务数据数组或对象）。\n- 若 schema 内含 `reportSpecification` + 数据数组（如 `dataByAsin`），下载文件常为 **带元数据包裹** 的结构，与 TSV 类平面报告不同。\n\nFile v1.0.7:references/report-requests/b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.md\n\n# `b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.json` — 报告格式说明\n\n> 上游 JSON Schema 来自 Amazon [selling-partner-api-models/schemas/reports](https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports)。\n\n- **Raw**：[b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.json](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.json)\n- **目录浏览**：https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports\n\n## Schema 摘要\n\nProvides B2B product recommendations based on predicted incremental units sold, unmet buyer demand, low offer count, and other factors for products already offered on Amazon. The recommendations are personalized to the Seller based on past sales activity.\n\n## 对应 `reportType`（SP-API）\n\n- `GET_B2B_PRODUCT_OPPORTUNITIES_RECOMMENDED_FOR_YOU`\n\n同上，输出为推荐列表结构。\n\n## `createReport` 请求体（`POST .../reports/2021-06-30/reports`）\n\nLinkFox 网关通过 `developerProxy` 转发时，`body` 为 JSON 字符串，对象字段与 SP-API **CreateReport** 一致，常用结构如下：\n\n```json\n{\n  \"reportType\": \"<REPORT_TYPE>\",\n  \"marketplaceIds\": [\n    \"ATVPDKIKX0DER\"\n  ],\n  \"dataStartTime\": \"2025-01-01T00:00:00Z\",\n  \"dataEndTime\": \"2025-01-31T23:59:59Z\",\n  \"reportOptions\": {\n    \"...\": \"...\"\n  }\n}\n```\n\n- **`reportType`** / **`marketplaceIds`**：必填（多数报告）。\n- **`dataStartTime`** / **`dataEndTime`**：ISO 8601；部分报告 schema 使用 **仅日期** `YYYY-MM-DD`（Amazon 忽略时间分量），以本文件「官方示例」为准。\n- **`reportOptions`**：对象，键名/枚举因报告而异；Brand Analytics 等 **必填**，见下节。\n- **`lastUpdatedDate`**：部分 Vendor 报告使用（见 schema `reportSpecification`），需与 `dataStartTime`/`dataEndTime` 按官方要求组合。\n\n本仓库脚本 `scripts/get_report.py` 已支持：在 JSON 参数中传入 **`reportOptions`**（对象）以及 **`lastUpdatedDate`**（字符串），会合并进创建请求体。\n\n### 无内嵌 `reportSpecification` 示例\n\n创建请求请以 [Report Type Values](https://developer-docs.amazon.com/sp-api/docs/report-type-values) 为准；可先用最小字段试请求，再根据 400 错误补充 `reportOptions`。\n\n## 报告结果文档（下载/解压后的 JSON）\n\n- 顶层字段以本 schema 的 `properties` / `definitions` 为准（多为业务数据数组或对象）。\n- 若 schema 内含 `reportSpecification` + 数据数组（如 `dataByAsin`），下载文件常为 **带元数据包裹** 的结构，与 TSV 类平面报告不同。\n\nFile v1.0.7:references/report-requests/endUserDataReport.md\n\n# `endUserDataReport.json` — 报告格式说明\n\n> 上游 JSON Schema 来自 Amazon [selling-partner-api-models/schemas/reports](https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports)。\n\n- **Raw**：[endUserDataReport.json](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/endUserDataReport.json)\n- **目录浏览**：https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports\n\n## Schema 摘要\n\nProvides end user (customer) data to IE, ES, FR, BE, NL, DE, IT, SE, and PL selling partners. The data contains customer personal data that includes contact information, page view (glance view), and order data for customers that elect to share this data with specific sellers. The customer data is accessible across various reporting periods (DAY, WEEK, and MONTH). Developers can choose start and end dates and the reporting period for data retrieval and aggregation. If the customer does not elect to share their data, the report does not generate data.\n\n## 对应 `reportType`（从 schema 中提取）\n\n- `END_USER_DATA_REPORT`\n\n## `createReport` 请求体（`POST .../reports/2021-06-30/reports`）\n\nLinkFox 网关通过 `developerProxy` 转发时，`body` 为 JSON 字符串，对象字段与 SP-API **CreateReport** 一致，常用结构如下：\n\n```json\n{\n  \"reportType\": \"<REPORT_TYPE>\",\n  \"marketplaceIds\": [\n    \"ATVPDKIKX0DER\"\n  ],\n  \"dataStartTime\": \"2025-01-01T00:00:00Z\",\n  \"dataEndTime\": \"2025-01-31T23:59:59Z\",\n  \"reportOptions\": {\n    \"...\": \"...\"\n  }\n}\n```\n\n- **`reportType`** / **`marketplaceIds`**：必填（多数报告）。\n- **`dataStartTime`** / **`dataEndTime`**：ISO 8601；部分报告 schema 使用 **仅日期** `YYYY-MM-DD`（Amazon 忽略时间分量），以本文件「官方示例」为准。\n- **`reportOptions`**：对象，键名/枚举因报告而异；Brand Analytics 等 **必填**，见下节。\n- **`lastUpdatedDate`**：部分 Vendor 报告使用（见 schema `reportSpecification`），需与 `dataStartTime`/`dataEndTime` 按官方要求组合。\n\n本仓库脚本 `scripts/get_report.py` 已支持：在 JSON 参数中传入 **`reportOptions`**（对象）以及 **`lastUpdatedDate`**（字符串），会合并进创建请求体。\n\n### 官方 `reportSpecification` 示例（摘自 schema `examples`）\n\n```json\n{\n  \"dataStartTime\": \"2023-09-10\",\n  \"dataEndTime\": \"2023-09-16\",\n  \"reportType\": \"END_USER_DATA_REPORT\",\n  \"reportOptions\": {\n    \"reportPeriod\": \"WEEK\"\n  },\n  \"marketplaceIds\": [\n    \"A1PA6795UKMFR9\",\n    \"APJ6JRA9NG5V4\"\n  ]\n}\n```\n\n### `reportOptions` 键说明（来自示例）\n\n| 键 | 示例值 | 说明 |\n|----|--------|------|\n| `reportPeriod` | `WEEK` | 详见上游 schema `reportSpecification.properties.reportOptions` |\n\n## 报告结果文档（下载/解压后的 JSON）\n\n- 顶层字段以本 schema 的 `properties` / `definitions` 为准（多为业务数据数组或对象）。\n- 若 schema 内含 `reportSpecification` + 数据数组（如 `dataByAsin`），下载文件常为 **带元数据包裹** 的结构，与 TSV 类平面报告不同。\n\nArchive v1.0.6: 146 files, 278450 bytes\n\nFiles: _meta.json (146b), README.md (3232b), references/api.md (9041b), references/onboarding.md (2046b), references/report-requests/accountHealthReport-2020-11-18.md (2736b), references/report-requests/b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.md (2772b), references/report-requests/b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.md (2708b), references/report-requests/endUserDataReport.md (3105b), references/report-requests/marketplaceAsinPageViewMetrics.md (3219b), references/report-requests/promotionReport.md (3004b), references/report-requests/README.md (7506b), references/report-requests/sellerCouponReport.md (2877b), references/report-requests/sellerSalesAndTrafficReport.md (3106b), references/report-requests/sellingPartnerMarketBasketAnalysisReport.md (3563b), references/report-requests/sellingPartnerRepeatPurchaseReport.md (2929b), references/report-requests/sellingPartnerSearchCatalogPerformanceReport.md (3224b), references/report-requests/sellingPartnerSearchQueryPerformanceReport.md (3265b), references/report-requests/sellingPartnerSearchTermsReport.md (2969b), references/report-requests/types/END_USER_DATA_REPORT.md (1669b), references/report-requests/types/FBA_BULK_INVOICE.md (4153b), references/report-requests/types/FEE_DISCOUNTS_REPORT.md (2746b), references/report-requests/types/GET_AFN_INVENTORY_DATA_BY_COUNTRY.md (2900b), references/report-requests/types/GET_AFN_INVENTORY_DATA.md (2591b), references/report-requests/types/GET_AMAZON_FULFILLED_SHIPMENTS_DATA_GENERAL.md (3369b), references/report-requests/types/GET_AMAZON_FULFILLED_SHIPMENTS_DATA_INVOICING.md (3163b), references/report-requests/types/GET_AMAZON_FULFILLED_SHIPMENTS_DATA_TAX.md (3123b), references/report-requests/types/GET_B2B_PRODUCT_OPPORTUNITIES_NOT_YET_ON_AMAZON.md (1923b), references/report-requests/types/GET_B2B_PRODUCT_OPPORTUNITIES_RECOMMENDED_FOR_YOU.md (1965b), references/report-requests/types/GET_BRAND_ANALYTICS_MARKET_BASKET_REPORT.md (2037b), references/report-requests/types/GET_BRAND_ANALYTICS_REPEAT_PURCHASE_REPORT.md (1780b), references/report-requests/types/GET_BRAND_ANALYTICS_SEARCH_CATALOG_PERFORMANCE_REPORT.md (2074b), references/report-requests/types/GET_BRAND_ANALYTICS_SEARCH_QUERY_PERFORMANCE_REPORT.md (2055b), references/report-requests/types/GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT.md (1826b), references/report-requests/types/GET_CONVERGED_FLAT_FILE_PENDING_ORDERS_DATA.md (2645b), references/report-requests/types/GET_COUPON_PERFORMANCE_REPORT.md (1803b), references/report-requests/types/GET_CSV_MFN_PRIME_RETURNS_REPORT.md (3096b), references/report-requests/types/GET_DATE_RANGE_FINANCIAL_HOLDS_DATA.md (2986b), references/report-requests/types/GET_EASYSHIP_DOCUMENTS.md (2683b), references/report-requests/types/GET_EASYSHIP_PICKEDUP.md (2594b), references/report-requests/types/GET_EASYSHIP_WAITING_FOR_PICKUP.md (2686b), references/report-requests/types/GET_EPR_ANNUAL_REPORTS.md (3013b), references/report-requests/types/GET_EPR_MONTHLY_REPORTS.md (3044b), references/report-requests/types/GET_EPR_QUARTERLY_REPORTS.md (3037b), references/report-requests/types/GET_FBA_ESTIMATED_FBA_FEES_TXT_DATA.md (3003b), references/report-requests/types/GET_FBA_FULFILLMENT_CUSTOMER_RETURNS_DATA.md (2796b), references/report-requests/types/GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_PROMOTION_DATA.md (2868b), references/report-requests/types/GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_REPLACEMENT_DATA.md (2798b), references/report-requests/types/GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_SALES_DATA.md (3089b), references/report-requests/types/GET_FBA_FULFILLMENT_CUSTOMER_TAXES_DATA.md (2847b), references/report-requests/types/GET_FBA_FULFILLMENT_INBOUND_NONCOMPLIANCE_DATA.md (2786b), references/report-requests/types/GET_FBA_FULFILLMENT_LONGTERM_STORAGE_FEE_CHARGES_DATA.md (2955b), references/report-requests/types/GET_FBA_FULFILLMENT_REMOVAL_ORDER_DETAIL_DATA.md (3058b), references/report-requests/types/GET_FBA_FULFILLMENT_REMOVAL_SHIPMENT_DETAIL_DATA.md (3048b), references/report-requests/types/GET_FBA_INVENTORY_PLANNING_DATA.md (2897b), references/report-requests/types/GET_FBA_MYI_ALL_INVENTORY_DATA.md (2793b), references/report-requests/types/GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATA.md (2794b), references/report-requests/types/GET_FBA_OVERAGE_FEE_CHARGES_DATA.md (2737b), references/report-requests/types/GET_FBA_RECOMMENDED_REMOVAL_DATA.md (2920b), references/report-requests/types/GET_FBA_REIMBURSEMENTS_DATA.md (2767b), references/report-requests/types/GET_FBA_STORAGE_FEE_CHARGES_DATA.md (2765b), references/report-requests/types/GET_FLAT_FILE_ACTIONABLE_ORDER_DATA_SHIPPING.md (3023b), references/report-requests/types/GET_FLAT_FILE_ALL_ORDERS_DATA_BY_LAST_UPDATE_GENERAL.md (3111b), references/report-requests/types/GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL.md (3097b), references/report-requests/types/GET_FLAT_FILE_ARCHIVED_ORDERS_DATA_BY_ORDER_DATE.md (3073b), references/report-requests/types/GET_FLAT_FILE_MFN_SKU_RETURN_ATTRIBUTES_REPORT.md (3160b), references/report-requests/types/GET_FLAT_FILE_OPEN_LISTINGS_DATA.md (3856b), references/report-requests/types/GET_FLAT_FILE_ORDER_REPORT_DATA_INVOICING.md (3476b), references/report-requests/types/GET_FLAT_FILE_ORDER_REPORT_DATA_SHIPPING.md (3486b), references/report-requests/types/GET_FLAT_FILE_ORDER_REPORT_DATA_TAX.md (3423b), references/report-requests/types/GET_FLAT_FILE_PENDING_ORDERS_DATA.md (2615b), references/report-requests/types/GET_FLAT_FILE_RETURNS_DATA_BY_RETURN_DATE.md (3003b), references/report-requests/types/GET_FLAT_FILE_SALES_TAX_DATA.md (2811b), references/report-requests/types/GET_FLAT_FILE_VAT_INVOICE_DATA_REPORT.md (4622b), references/report-requests/types/GET_GST_MTR_B2B_CUSTOM.md (2705b), references/report-requests/types/GET_GST_MTR_B2C_CUSTOM.md (2740b), references/report-requests/types/GET_GST_STR_ADHOC.md (3052b), references/report-requests/types/GET_LEDGER_DETAIL_VIEW_DATA.md (3676b), references/report-requests/types/GET_LEDGER_SUMMARY_VIEW_DATA.md (3620b), references/report-requests/types/GET_MERCHANT_CANCELLED_LISTINGS_DATA.md (3755b), references/report-requests/types/GET_MERCHANT_LISTINGS_ALL_DATA.md (3736b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: linkfox-amazon-store-report\ndescription: 亚马逊店铺报告自动化获取技能，支持库存报告、订单报告、销售流量报告、FBA报告、财务结算报告等95+种报告类型的全流程自动获取（请求→轮询→下载→解压）；完成后默认启动本机短时HTTP服务，生成extractedFileHttpUrl供浏览器下载已解压文件。本技能依赖 linkfox-amazon-store-auth（授权与令牌管理）。当用户提到拉取亚马逊报告、下载Amazon报告、获取库存报告、获取订单报告、FBA报告、销售流量报告、财务结算报告、Brand Analytics报告、ABA搜索词报告、pull Amazon report, download Amazon report, fetch inventory report, fetch orders report, FBA report, sales and traffic report, settlement report, Amazon store report时触发此技能。只要其需求涉及从亚马逊卖家后台拉取任何形式的结构化数据（库存、订单、销量、财务、退货等），也应触发此技能。\n---\n\n# Amazon 店铺报告获取\n\n本 skill 提供 **亚马逊卖家后台报告的端到端自动化获取**：请求 → 轮询 → 下载 → 解压 → 预览。支持 95+ 种报告类型（库存 / 订单 / 销售 / 财务 / FBA / 退货 / Brand Analytics 等）。\n\n---\n\n## ⚠️ Prerequisites — MUST READ FIRST\n\n本 skill **依赖** `linkfox-amazon-store-auth`（授权与店铺/令牌管理）。\n\n> 🛑 **如果 `linkfox-amazon-store-auth` 未安装 / 未加载，请先安装它，再回到本 skill。**\n\n### 怎样判断 `linkfox-amazon-store-auth` 是否可用\n\n在执行任何报告任务之前，agent **必须**先进行依赖检查：\n\n1. **读取下列任一路径**（skill 加载路径取决于运行环境；`scripts/check_auth_dependency.py` 会按相同规则自动探测）：\n   - 仓库 / 通用扁平目录：`<skills_dir>/linkfox-amazon-store-auth/SKILL.md`\n   - Claude：`~/.claude/skills/linkfox-amazon-store-auth/SKILL.md`\n   - Cursor：`~/.cursor/skills/...`、`~/.cursor/skills-cursor/...`\n   - **OpenClaw**：`<OPENCLAW_WORKSPACE>/skills/...`、`~/.openclaw/skills/...`、`~/.agents/skills/...`（与 [OpenClaw Skills 文档](https://docs.openclaw.ai/tools/skills) 的常见路径一致）\n   - **Hermes Agent**：`~/.hermes/skills/<category>/linkfox-amazon-store-auth/SKILL.md`，以及 `~/.hermes/plugins/<plugin>/skills/linkfox-amazon-store-auth/SKILL.md`（与 [Hermes Skills 文档](https://hermes-agent.nousresearch.com/docs/user-guide/features/skills) 的布局一致）\n2. **或直接运行脚本**：`python scripts/check_auth_dependency.py`，脚本会在缺失时以 **exit code `42`** 退出，并在 stderr 输出结构化提示（以 `DEPENDENCY_MISSING:` 开头）。脚本已内置 **OpenClaw / Hermes** 路径判断；若在 Hermes 的 `config.yaml` 里配置了 `skills.external_dirs`，请设置环境变量 `HERMES_SKILLS_EXTERNAL_DIRS`（使用系统路径分隔符串联多个目录）以便探测。\n3. 如果上述检查**全部失败**，则判定为 **`linkfox-amazon-store-auth` 未安装**。\n\n### 发现未安装时的标准处置\n\n当检测到 `linkfox-amazon-store-auth` 未安装时，agent **必须**按以下顺序执行：\n\n1. **尝试自动安装**（优先）：\n   - 如果当前运行时具备 skill 安装工具（例如 skill 市场 / skill 管理 MCP / `install_skill` 类工具），**立即调用**安装 `linkfox-amazon-store-auth`。\n   - 安装成功后，重新加载并从头执行本 skill。\n2. **引导用户手动安装**（兜底）：\n   - 向用户说明：「本技能依赖 `linkfox-amazon-store-auth`，尚未安装。请前往 [LinkFox Skills](https://skill.linkfox.com/) 安装该 skill，安装完成后告诉我一声，我会继续为你拉取报告。」\n   - **不要**绕过依赖直接去调 `/spApi/authorizeUrl`、`/spApi/storeTokens`、`/spApi/authorizedStores` 等接口——这些接口的选店铺、令牌流程属于 `linkfox-amazon-store-auth` 的职责，本 skill 只负责报告业务本身。\n3. **不得静默降级**：如果既无法自动安装也未获得用户确认，必须**停止执行**并把依赖缺失的事实回报给用户，不要擅自尝试替代方案。\n\n### 依赖已满足后的协作方式\n\n- 本 skill 依赖 auth 选店（`sellerId`+`region`），直接经 `/spApi/developerProxy` 执行报告生命周期（服务端解析 token）。\n- 授权、授权的前置选店铺、令牌刷新等操作——**交由 `linkfox-amazon-store-auth`**；本 skill 不重复做这些事。\n\n---\n\n## Core Concepts\n\n- **Report Type（报告类型）**：亚马逊官方报告类型枚举，例如 `GET_MERCHANT_LISTINGS_ALL_DATA`、`GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL`。完整列表见 `references/report-types.md`。\n- **Marketplace ID**：区域内具体站点 ID，例如 US = `ATVPDKIKX0DER`。\n- **Report lifecycle**：请求报告 → 轮询 `processingStatus`（`IN_QUEUE` / `IN_PROGRESS` / `DONE` / `FATAL` / `CANCELLED`）→ `DONE` 后拿到 `reportDocumentId` → 取下载 URL → 下载（多为 gzip TSV）→ 解压。\n- **Rate limits**：Reports API 约 0.0222 req/s；轮询需保留间隔（默认 30s）。\n\n## Data Fields\n\n### Report Request Input\n\n| Field | Type | Required | Description |\n|-------|------|----------|-------------|\n| sellerId | string | Yes | 已授权的 Amazon Seller ID |\n| region | string | Yes | NA / EU / FE |\n| reportType | string | Yes | 报告类型枚举值 |\n| marketplaceIds | array | Yes | 目标 marketplace ID 列表 |\n| dataStartTime | string | No | ISO 8601，报告起始时间 |\n| dataEndTime | string | No | ISO 8601，报告结束时间 |\n| lastUpdatedDate | string | No | 部分 Vendor 报告必填，见 `references/report-requests/` 对应 md |\n| reportOptions | object | No | 如 Brand Analytics 的 `reportPeriod`、`asin`/`asins`；销售流量的 `dateGranularity`/`asinGranularity` 等。**每一 `reportType` 说明**：`references/report-requests/types/<REPORT_TYPE>.md`（索引 [`types/README.md`](references/report-requests/types/README.md)）；有 JSON Schema 的另见 [`report-requests/README.md`](references/report-requests/README.md) |\n| pollInterval | int | No | 轮询间隔秒数（默认 30） |\n| maxAttempts | int | No | 最大轮询次数（默认 20） |\n\n### Report Output\n\n| Field | Type | Description |\n|-------|------|-------------|\n| reportId | string | 报告请求 ID |\n| reportDocumentId | string | 报告文档 ID |\n| downloadPath | string | 本地下载后的**绝对路径**（已解压，含文件名） |\n| fileName | string | 保存文件名（与 `downloadPath` 末段一致） |\n| localFileUri | string | 本机 `file://` URI，便于客户端打开本地文件 |\n| extractedFileHttpUrl | string | **本机临时 HTTP** 直链，用于在浏览器中下载**已解压**后的文件（默认 `serveExtractedFileHttp` 开启） |\n| extractedFileHttpServeSeconds | int | 本地 HTTP 服务保持时长（默认 300，最少 10） |\n| extractedFileHttpNote | string | 说明该链接仅本机、限时有效 |\n| amazonDownloadUrl | string | （可选）仅当 `includeAmazonSourceUrl: true` 时出现：Amazon 源地址，一般为压缩包，通常不必给终端用户 |\n| compressionAlgorithm | string | 若接口返回了压缩算法则带上（如 GZIP） |\n| tempDirectory | string | 临时目录 |\n| fileSize | int | 文件大小（字节） |\n\n## 调用方式\n\n- **API 端点**：`POST /spApi/developerProxy`（不同操作通过请求体区分；完整参数/响应/错误码见 `references/api.md`）\n- **Python 脚本**：`python scripts/<脚本名>.py '<JSON 参数>' [--inline]`（可用脚本见下文脚本一览）\n- **成本约束**：本工具会消耗积分；失败/空结果不得自动换关键词、翻页或连续试探；需要继续检索时先向用户说明会产生额外消耗。\n\n**输出策略（脚本默认行为）**：\n- **始终**将完整响应写入 `<cwd>/linkfox/<YYYY-MM-DD>/<session>/data/<skill-name>-<timestamp>.json`（`<cwd>` 为脚本执行时的工作目录，在 Claude Code 里即当前项目目录；`<session>` 取自环境变量 `SESSION_ID`，按用户任务自动聚合；**禁止写入 /tmp**，当前目录不可写则报错）\n- 响应体 ≤ 8 KB：落盘后把完整 JSON 打印到 stdout\n- 响应体 > 8 KB：落盘后 stdout 只输出摘要（顶层字段、常见计数如 `total`/`costToken`、最大列表字段的长度 + 前 3 条样本）\n- 加 `--inline` 强制全量打印到 stdout（同样落盘）\n\n**读数据建议**：先看摘要判断是否足够；需要具体字段时优先用 `jq`或`ConvertFrom-Json`或`ConvertFrom-Json` 从保存的 json 文件按需抽取，避免整份 JSON 进入上下文。\n\n### Available Scripts\n\n- `scripts/get_report.py` ⭐ — 端到端自动化报告获取（**推荐**）\n- `scripts/check_auth_dependency.py` — 主动检测依赖 skill `linkfox-amazon-store-auth` 是否已安装\n\n## 解决认证和积分问题\n发生以下异常情况时，采用 references/onboarding.md 引导解决问题：\n\n### 异常情况\n- **未配置API Key**：环境变量未配置 `LINKFOX_AGENT_API_KEY`，也未配置 `LINKFOXAGENT_API_KEY`。\n- **响应401或402状态码**\n- **响应提示积分或余额不足**：消息含\"积分余额不足/计费不足/余额不足/quota exceeded/insufficient balance/套餐到期/需充值/请充值\"，或类似含义的内容。\n\n## Usage Scenarios\n\n### Scenario 0: Dependency Check (MUST run first)\n\n**每次进入本 skill 都要先跑这一步。**\n\n1. 尝试读取 `linkfox-amazon-store-auth/SKILL.md`（若工具允许）\n2. 或执行：\n   ```bash\n   python scripts/check_auth_dependency.py\n   ```\n3. 若 exit code 非 0 或 stderr 含 `DEPENDENCY_MISSING:`，按上文「发现未安装时的标准处置」流程处理\n4. 依赖满足后再进入正常业务场景\n\n### Scenario 1: Pull Amazon Report (Automated, Recommended)\n\n**User request**：「我要拉库存报告」/「获取订单报告」/「下载销售流量报告」等\n\n**Steps**：\n1. **依赖检查**（Scenario 0）\n2. **前置选店铺**：委托 `linkfox-amazon-store-auth`\n   - 调 `/spApi/authorizedStores` 让用户选店铺，确定 `sellerId` + `region`\n   - **不要**先调 `/spApi/storeTokens` 取 raw token；脚本直接经 `developerProxy` 传选择器\n3. **识别报告类型**：按用户诉求匹配 `reportType`\n   - 库存：`GET_MERCHANT_LISTINGS_ALL_DATA`、`GET_FBA_MYI_UNSUPPRESSED_INVENTORY_DATA`\n   - 订单：`GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL`\n   - 销售流量：`GET_SALES_AND_TRAFFIC_REPORT`\n   - 财务：`GET_V2_SETTLEMENT_REPORT_DATA_FLAT_FILE`\n   - 完整清单：`references/report-types.md`\n4. **执行脚本**：\n   ```bash\n   python scripts/get_report.py '{\n     \"sellerId\": \"A1EC6SZ7XAMURH\",\n     \"region\": \"NA\",\n     \"reportType\": \"GET_MERCHANT_LISTINGS_ALL_DATA\",\n     \"marketplaceIds\": [\"ATVPDKIKX0DER\"]\n   }'\n   ```\n5. 脚本会自动：以 `sellerId`+`region` 调 `developerProxy`（服务端解析 token）→ 请求报告 → 轮询 → 下载 → 解压 → 预览 → 输出 JSON；**完成后**在 stderr 与 JSON 中给出 **本地绝对路径**（`downloadPath`）、**本机 file URI**（`localFileUri`），并默认启动短时本机 HTTP 服务，生成 **`extractedFileHttpUrl`**（用于在**同一台机器**的浏览器里下载**已解压**文件）。向用户展示时至少给出 **`extractedFileHttpUrl`**、**`downloadPath`** 与 **`fileName`**；脚本在 `serveSeconds` 计时结束后会关闭服务，链接随即失效。若需 Amazon 源地址（多为压缩包），仅调试时设 `includeAmazonSourceUrl: true`。\n\n### Scenario 2: Manual Report Flow (Advanced)\n\n对需要精细控制的场景，可通过 `/spApi/developerProxy` 手工驱动：\n\n1. **取现有报告**（更快）：\n   ```\n   path: reports/2021-06-30/reports\n   method: GET\n   queryString: reportTypes=<type>&marketplaceIds=<ids>\n   ```\n2. **创建新报告**：\n   ```\n   path: reports/2021-06-30/reports\n   method: POST\n   body: {\"reportType\": \"...\", \"marketplaceIds\": [...]}\n   ```\n3. **查状态**：\n   ```\n   path: reports/2021-06-30/reports/{reportId}\n   method: GET\n   ```\n4. **取下载链接**：\n   ```\n   path: reports/2021-06-30/documents/{reportDocumentId}\n   method: GET\n   ```\n\n### Scenario 3: Custom Date Range / Polling\n\n```bash\npython scripts/get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"],\n  \"dataStartTime\": \"2024-01-01T00:00:00Z\",\n  \"dataEndTime\": \"2024-01-31T23:59:59Z\",\n  \"pollInterval\": 15,\n  \"maxAttempts\": 40\n}'\n```\n\n## Marketplace IDs by Region\n\n| Region | Country | Marketplace ID |\n|--------|---------|----------------|\n| NA | United States | ATVPDKIKX0DER |\n| NA | Canada | A2EUQ1WTGCTBG2 |\n| NA | Mexico | A1AM78C64UM0Y8 |\n| EU | United Kingdom | A1F83G8C2ARO7P |\n| EU | Germany | A1PA6795UKMFR9 |\n| FE | Japan | A1VC38T7YXB528 |\n\n更多 marketplace ID 详见 `references/report-types.md`。\n\n## Display Rules\n\n1. **先依赖后业务**：依赖检查未通过前，**不得**开始任何报告相关调用。\n2. **只呈现数据**：展示报告获取进度、下载路径、前几行预览；不做业务解读。\n3. **尊重用户选择的报告类型**：用户指定了报告类型就只拉那一种，不得擅自换其他类型。\n4. **错误清晰**：报告失败（`FATAL` / 403 等）时，解释原因并把决定权交还用户。\n5. **安全**：不输出/不传递 raw token；业务只依赖 `sellerId`+`region`。\n6. **完成后展示地址与本机下载链接**：脚本成功结束后，必须把 **`extractedFileHttpUrl`**（已解压文件的本机 HTTP 下载，限时）、**`downloadPath`**（本地绝对路径）、**`fileName`**（文件名）及 **`localFileUri`** 告知用户；并说明「仅在运行脚本的同一台电脑、在服务保持时间内可用」。不要默认把 Amazon 源 URL 当作用户下载入口；仅在用户明确要求或排障需要时使用 `includeAmazonSourceUrl`。\n\n## CRITICAL: Report Failure Handling Rules\n\n- **NEVER automatically try alternative report types** when user's specified report fails.\n- 报告请求失败（`FATAL`、403 等）时，**立即停止并把失败事实告知用户**。\n- **不要**替用户决定去拉别的报告类型。\n- 把失败原因说清楚，让用户决定下一步（重试 / 换类型 / 查权限等）。\n- 例：`GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT` 失败时，**不要**自动改拉 `GET_MERCHANT_LISTINGS_ALL_DATA`。\n\n### Common Report Failure Reasons\n\n- `403 Unauthorized`：缺少 API 权限或未加入 Amazon Brand Regi...","readmeExcerpt":"Skill: 亚马逊-店铺报表 Owner: linkfox-ai Summary: 亚马逊卖家店铺报告获取与下载。支持库存、订单、销量与流量、FBA、财务结算、退货、Brand Analytics 等 95+ 种报告的请求、状态轮询、下载和解压，并生成可下载的已解压文件地址。用户提到拉取或下载亚马逊报告、库存报告、订单报告、销售与流量报告、Business Report、FBA 报告、结算报告、退货报告、Brand Analytics、ABA 搜索词、Amazon store report、pull or download Amazon report 时触发。即使未明确说“报告”，只要希望从 Amazon Seller Central 批量导出某一时间段的结构化经营数据，也应触发此技能；查询少量实时订单、商品或价格优先使用对应专用技能。本技能依赖 linkfox-amazon-store-auth。 Tags: latest:","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python scripts/check_auth_dependency.py"},{"language":"bash","snippet":"python scripts/get_report.py '{\n     \"sellerId\": \"A1EC6SZ7XAMURH\",\n     \"region\": \"NA\",\n     \"reportType\": \"GET_MERCHANT_LISTINGS_ALL_DATA\",\n     \"marketplaceIds\": [\"ATVPDKIKX0DER\"]\n   }'"},{"language":"text","snippet":"path: reports/2021-06-30/reports\n   method: GET\n   queryString: reportTypes=<type>&marketplaceIds=<ids>"},{"language":"text","snippet":"path: reports/2021-06-30/reports\n   method: POST\n   body: {\"reportType\": \"...\", \"marketplaceIds\": [...]}"},{"language":"text","snippet":"path: reports/2021-06-30/reports/{reportId}\n   method: GET"},{"language":"text","snippet":"path: reports/2021-06-30/documents/{reportDocumentId}\n   method: GET"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: linkfox-amazon-store-report\ndescription: 亚马逊卖家店铺报告获取与下载。支持库存、订单、销量与流量、FBA、财务结算、退货、Brand Analytics 等 95+ 种报告的请求、状态轮询、下载和解压，并生成可下载的已解压文件地址。用户提到拉取或下载亚马逊报告、库存报告、订单报告、销售与流量报告、Business Report、FBA 报告、结算报告、退货报告、Brand Analytics、ABA 搜索词、Amazon store report、pull or download Amazon report 时触发。即使未明确说“报告”，只要希望从 Amazon Seller Central 批量导出某一时间段的结构化经营数据，也应触发此技能；查询少量实时订单、商品或价格优先使用对应专用技能。本技能依赖 linkfox-amazon-store-auth。\n---\n\n# Amazon 店铺报告获取\n\n本 skill 提供 **亚马逊卖家后台报告的端到端自动化获取**：请求 → 轮询 → 下载 → 解压 → 预览。支持 95+ 种报告类型（库存 / 订单 / 销售 / 财务 / FBA / 退货 / Brand Analytics 等）。\n\n---\n\n## ⚠️ Prerequisites — MUST READ FIRST\n\n本 skill **依赖** `linkfox-amazon-store-auth`（授权与店铺/令牌管理）。\n\n> 🛑 **如果 `linkfox-amazon-store-auth` 未安装 / 未加载，请先安装它，再回到本 skill。**\n\n### 怎样判断 `linkfox-amazon-store-auth` 是否可用\n\n在执行任何报告任务之前，agent **必须**先进行依赖检查：\n\n1. **读取下列任一路径**（skill 加载路径取决于运行环境；`scripts/check_auth_dependency.py` 会按相同规则自动探测）：\n   - 仓库 / 通用扁平目录：`<skills_dir>/linkfox-amazon-store-auth/SKILL.md`\n   - Claude：`~/.claude/skills/linkfox-amazon-store-auth/SKILL.md`\n   - Cursor：`~/.cursor/skills/...`、`~/.cursor/skills-cursor/...`\n   - **OpenClaw**：`<OPENCLAW_WORKSPACE>/skills/...`、`~/.openclaw/skills/...`、`~/.agents/skills/...`（与 [OpenClaw Skills 文档](https://docs.openclaw.ai/tools/skills) 的常见路径一致）\n   - **Hermes Agent**：`~/.hermes/skills/<category>/linkfox-amazon-store-auth/SKILL.md`，以及 `~/.hermes/plugins/<plugin>/skills/linkfox-amazon-store-auth/SKILL.md`（与 [Hermes Skills 文档](https://hermes-agent.nousresearch.com/docs/user-guide/features/skills) 的布局一致）\n2. **或直接运行脚本**：`python scripts/check_auth_dependency.py`，脚本会在缺失时以 **exit code `42`** 退出，并在 stderr 输出结构化提示（以 `DEPENDENCY_MISSING:` 开头）。脚本已内置 **OpenClaw / Hermes** 路径判断；若在 Hermes 的 `config.yaml` 里配置了 `skills.external_dirs`，请设置环境变量 `HERMES_SKILLS_EXTERNAL_DIRS`（使用系统路径分隔符串联多个目录）以便探测。\n3. 如果上述检查**全部失败**，则判定为 **`linkfox-amazon-store-auth` 未安装**。\n\n### 发现未安装时的标准处置\n\n当检测到 `linkfox-amazon-store-auth` 未安装时，agent **必须**按以下顺序执行：\n\n1. **尝试自动安装**（优先）：\n   - 如果当前运行时具备 skill 安装工具（例如 skill 市场 / skill 管理 MCP / `install_skill` 类工具），**立即调用**安装 `linkfox-amazon-store-auth`。\n   - 安装成功后，重新加载并从头执行本 skill。\n2. **引导用户手动安装**（兜底）：\n   - 向用户说明：「本技能依赖 `linkfox-amazon-store-auth`，尚未安装。请前往 [LinkFox Skills](https://skill.linkfox.com/) 安装该 skill，安装完成后告诉我一声，我会继续为你拉取报告。」\n   - **不要**绕过依赖直接去调 `/spApi/authorizeUrl`、`/spApi/storeTokens`、`/spApi/authorizedStores` 等接口——这些接口的选店铺、令牌流程属于 `linkfox-amazon-store-auth` 的职责，本 skill 只负责报告业务本身。\n3. **不得静默降级**：如果既无法自动安装也未获得用户确认，必须**停止执行**并把依赖缺失的事实回报给用户，不要擅自尝试替代方案。\n\n### 依赖已满足后的协作方式\n\n- 本 skill 依赖 auth 选店（`sellerId`+`region`），直接经 `/spApi/developerProxy` 执行报告生命周期（服务端解析 token）。\n- 授权、授权的前置选店铺、令牌刷新等操作——**交由 `linkfox-amazon-store-auth`**；本 skill 不重复做这些事。\n\n---\n\n## Core Concepts\n\n- **Report Type（报告类型）**：亚马逊官方报告类型枚举，例如 `GET_MERCHANT_LISTINGS_ALL_DATA`、`GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL`。完整列表见 `references/report-types.md`。\n- **Marketplace ID**：区域内具体站点 ID，例如 US = `ATVPDKIKX0DER`。\n- **Report lifecycle**：请求报告 → 轮询 `processingStatus`（`IN_QUEUE` / `IN_PROGRESS` / `DONE"},{"path":"README.md","content":"# Amazon Store Report Skill\n\n亚马逊店铺 **报告获取** Skill：端到端自动化拉取库存 / 订单 / 销售 / 财务 / FBA 等 95+ 种报告。\n\n> ⚠️ **本 skill 依赖 `linkfox-amazon-store-auth`**（授权与令牌管理）。未安装时请先安装依赖 skill，`scripts/get_report.py` 启动时会做自动校验。\n\n## 📋 目录结构\n\n```\nlinkfox-amazon-store-report/\n├── SKILL.md                          # Skill 主文档（含 Prerequisites）\n├── _meta.json                        # Skill 元数据（声明依赖）\n├── README.md                         # 本文件\n├── references/\n│   ├── api.md                        # Developer Proxy API 说明\n│   ├── report-types.md               # 完整报告类型（95+ 种）\n│   └── report-types-basic.md         # 常用报告精简版\n└── scripts/\n    ├── README.md                     # 脚本使用指南\n    ├── check_auth_dependency.py      # 依赖探测脚本\n    └── get_report.py                 # 报告获取（启动时自动跑依赖检查）\n```\n\n## 🔗 依赖关系\n\n| 本 Skill | 依赖 |\n|----------|------|\n| `linkfox-amazon-store-report` | `linkfox-amazon-store-auth` |\n\n**依赖未安装时的处置**：\n1. `get_report.py` 启动时以 **exit code 42** 退出，并在 stderr 以 `DEPENDENCY_MISSING:` 开头输出 JSON 指引\n2. 上层 agent 解析该信号后：优先调用本地 skill 安装工具自动装 `linkfox-amazon-store-auth`；否则引导用户手动安装\n3. **安装完成后再重跑本 skill**\n\n## 🚀 快速开始\n\n> 前置条件：已通过 `linkfox-amazon-store-auth` 授权了至少一个店铺。\n\n```bash\npython scripts/get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_MERCHANT_LISTINGS_ALL_DATA\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"]\n}'\n```\n\n成功结束后，脚本会启动短时 **本机 HTTP** 服务，在 **stderr** 与 **stdout JSON** 中给出 **`extractedFileHttpUrl`**，用于在浏览器下载**已解压**后的报告文件（默认保持 `serveSeconds` 秒，仅 `127.0.0.1` 可访问）；同时给出 **`downloadPath`** 与 **`localFileUri`**。详见 `scripts/README.md`。\n\n## 🌍 支持的区域\n\n- **NA**：美国、加拿大、墨西哥\n- **EU**：英国、德国、法国、意大利、西班牙等\n- **FE**：日本、澳大利亚、新加坡、印度\n\n## 🔄 版本历史\n\n- **v1.0.3**（2026-04-24）\n  - 展示保存位置时同时明确输出**文件名**（stderr + JSON 字段 `fileName`）\n\n- **v1.0.2**（2026-04-24）\n  - `get_report.py`：默认启动本机临时 HTTP，生成 **`extractedFileHttpUrl`** 供浏览器下载**已解压**文件；不再默认暴露 Amazon 源 URL（可选 `includeAmazonSourceUrl`）\n\n- **v1.0.1**（2026-04-24）\n  - `get_report.py`：完成后明确展示本地保存路径，并在 JSON / stderr 中输出 Amazon 预签名直链与本机 `file://` URI\n\n- **v1.0.0**（2026-04-24）\n  - 从早期综合亚马逊 skill 拆分而来（报告部分）\n  - 新增依赖探测脚本 `check_auth_dependency.py`\n  - `get_report.py` 启动时自动进行依赖校验\n\n## 📄 许可\n\n本 Skill 是 LinkFoxAgent 项目的一部分。"},{"path":"references/report-requests/README.md","content":"# 报告请求与文档格式（按 GitHub schema 分文件）\n\n> 与 [amzn/selling-partner-api-models/schemas/reports](https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports) 中的 JSON Schema **一一对应**。\n\n## `reportType` 全覆盖（含无 JSON 的 Flat File）\n\n`references/report-types.md` 表格中的 **每一个** `reportType` 均有专页 → **[types/README.md](./types/README.md)**（109 个：`types/<REPORT_TYPE>.md`）。  \n有 GitHub JSON 的条目会链回下表中的 `*.md`；其余条目给出最小 CreateReport 模板并指向 [Report type values](https://developer-docs.amazon.com/sp-api/docs/report-type-values)。\n\n## 索引（仅含官方 `schemas/reports/*.json`）\n\n| 文档 | 上游 Schema | 涉及 `reportType` |\n|------|-------------|-------------------|\n| [accountHealthReport-2020-11-18.md](./accountHealthReport-2020-11-18.md) | [`accountHealthReport-2020-11-18.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/accountHealthReport-2020-11-18.json) | 见专页（账户状况结果 JSON；`reportType` 以官方 Report Type Values 为准） |\n| [b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.md](./b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.md) | [`b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/b2bProductOpportunitiesNotYetOnAmazonReport-2020-11-19.json) | `GET_B2B_PRODUCT_OPPORTUNITIES_NOT_YET_ON_AMAZON` |\n| [b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.md](./b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.md) | [`b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/b2bProductOpportunitiesRecommendedForYouReport-2020-11-19.json) | `GET_B2B_PRODUCT_OPPORTUNITIES_RECOMMENDED_FOR_YOU` |\n| [endUserDataReport.md](./endUserDataReport.md) | [`endUserDataReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/endUserDataReport.json) | `END_USER_DATA_REPORT` |\n| [marketplaceAsinPageViewMetrics.md](./marketplaceAsinPageViewMetrics.md) | [`marketplaceAsinPageViewMetrics.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/marketplaceAsinPageViewMetrics.json) | `MARKETPLACE_ASIN_PAGE_VIEW_METRICS` |\n| [promotionReport.md](./promotionReport.md) | [`promotionReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/promotionReport.json) | `GET_PROMOTION_PERFORMANCE_REPORT` |\n| [sellerCouponReport.md](./sellerCouponReport.md) | [`sellerCouponReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellerCouponReport.json) | `GET_COUPON_PERFORMANCE_REPORT` |\n| [sellerSalesAndTrafficReport.md](./sellerSalesAndTrafficReport.md) | [`sellerSalesAndTrafficReport.json`](https://raw.githubusercontent.com/amzn/selling-partner-api-models/main/schemas/reports/sellerSalesAndTrafficReport.json) | `GET_SALES_AND_TRAFFIC_REPORT` |\n| [sellingPartnerMarketBasketAnalysisReport.md](./sel"},{"path":"references/report-requests/types/README.md","content":"# 按 `reportType` 全覆盖 — 请求说明专页\n\n本目录为 `references/report-types.md` 中**每一个**报告枚举提供一页说明：\n\n- 标注是否在 Amazon [`schemas/reports`](https://github.com/amzn/selling-partner-api-models/tree/main/schemas/reports) 有 JSON 结果 Schema，并链到 `references/report-requests/` 下对应专页。\n- 无独立 JSON 的类型：给出 **CreateReport 最小请求体** 与官方 [Report type values](https://developer-docs.amazon.com/sp-api/docs/report-type-values) 入口。\n- 每页顶部另有 **「官方说明」或「官方索引（Report type values）」**：从亚马逊各子类文档自动摘录；其中在 `report-requests/` 下**已有 GitHub Schema 专页**（`*.md` 与 `schemas/reports/*.json` 对应）的类型，仅保留 **Schema 链、Amazon 锚点、权限/站点类字段**，避免与专页中的 Schema 摘要、`reportOptions` 表重复。其余 Flat File 类型仍为完整「官方说明」。  \n  更新摘录：将 15 个子页 HTML 放入 `references/_spapi_docs_cache/`，运行 `scripts/merge_report_type_values_from_cache.py`（依赖见该脚本注释）。\n\n**共计**：109 个 `reportType`。\n\n## 索引\n\n| reportType | 分类（report-types.md） | 类型 | 专页 |\n|------------|-------------------------|------|------|\n| `FEE_DISCOUNTS_REPORT` | 1. Amazon Business Reports | Flat/XML（文档） | [FEE_DISCOUNTS_REPORT.md](./FEE_DISCOUNTS_REPORT.md) |\n| `GET_BRAND_ANALYTICS_SEARCH_CATALOG_PERFORMANCE_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_BRAND_ANALYTICS_SEARCH_CATALOG_PERFORMANCE_REPORT.md](./GET_BRAND_ANALYTICS_SEARCH_CATALOG_PERFORMANCE_REPORT.md) |\n| `GET_BRAND_ANALYTICS_SEARCH_QUERY_PERFORMANCE_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_BRAND_ANALYTICS_SEARCH_QUERY_PERFORMANCE_REPORT.md](./GET_BRAND_ANALYTICS_SEARCH_QUERY_PERFORMANCE_REPORT.md) |\n| `GET_BRAND_ANALYTICS_MARKET_BASKET_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_BRAND_ANALYTICS_MARKET_BASKET_REPORT.md](./GET_BRAND_ANALYTICS_MARKET_BASKET_REPORT.md) |\n| `GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT.md](./GET_BRAND_ANALYTICS_SEARCH_TERMS_REPORT.md) |\n| `GET_BRAND_ANALYTICS_REPEAT_PURCHASE_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_BRAND_ANALYTICS_REPEAT_PURCHASE_REPORT.md](./GET_BRAND_ANALYTICS_REPEAT_PURCHASE_REPORT.md) |\n| `GET_VENDOR_REAL_TIME_INVENTORY_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_REAL_TIME_INVENTORY_REPORT.md](./GET_VENDOR_REAL_TIME_INVENTORY_REPORT.md) |\n| `GET_VENDOR_REAL_TIME_TRAFFIC_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_REAL_TIME_TRAFFIC_REPORT.md](./GET_VENDOR_REAL_TIME_TRAFFIC_REPORT.md) |\n| `GET_VENDOR_REAL_TIME_SALES_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_REAL_TIME_SALES_REPORT.md](./GET_VENDOR_REAL_TIME_SALES_REPORT.md) |\n| `GET_VENDOR_SALES_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_SALES_REPORT.md](./GET_VENDOR_SALES_REPORT.md) |\n| `GET_VENDOR_NET_PURE_PRODUCT_MARGIN_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_NET_PURE_PRODUCT_MARGIN_REPORT.md](./GET_VENDOR_NET_PURE_PRODUCT_MARGIN_REPORT.md) |\n| `GET_VENDOR_TRAFFIC_REPORT` | 2. Analytics Reports | JSON Schema 专页 | [GET_VENDOR_TRAFFIC_REPORT.md](./GET_VENDOR_TRAFFIC_REPORT.md) |\n| `GET_VENDOR_FORECASTING_REPORT"},{"path":"scripts/README.md","content":"# Amazon Store Report Scripts Usage Guide\n\n本目录包含 **报告获取** 相关的 Python 脚本。若需要授权、查看店铺或获取令牌，请使用依赖 skill `linkfox-amazon-store-auth` 的脚本。\n\n## Prerequisites\n\n- Python 3.6+\n- `LINKFOXAGENT_API_KEY` 环境变量\n- 可访问 LinkFox 后端 API（默认 `https://tool-gateway.linkfox.com`）\n- ⚠️ **依赖 skill `linkfox-amazon-store-auth` 已安装**（`get_report.py` 启动会自动校验）\n\n```bash\nexport LINKFOXAGENT_API_KEY=\"your-api-key-here\"\n```\n\n## Available Scripts\n\n### 1. check_auth_dependency.py ⭐\n\n探测依赖 skill `linkfox-amazon-store-auth` 是否可用。\n\n```bash\npython check_auth_dependency.py            # 默认输出\npython check_auth_dependency.py --json     # JSON 输出\n```\n\n**退出码**：\n- `0` → 依赖已满足\n- `42` → `DEPENDENCY_MISSING`：依赖未安装，agent 需触发安装流程\n\n**stderr 信号**：\n- 成功：`DEPENDENCY_OK: {...}`\n- 缺失：`DEPENDENCY_MISSING: {...}`\n\nAgent 检测到 `exit 42` 或 `DEPENDENCY_MISSING:` 时，应当：\n1. 优先调用本地的 skill 安装工具（如有）自动安装 `linkfox-amazon-store-auth`\n2. 否则向用户说明并建议从 https://skill.linkfox.com/ 安装\n\n### 2. get_report.py ⭐\n\n自动化的端到端报告获取脚本。\n\n**脚本启动时会先跑 `check_auth_dependency.py`**；若依赖缺失，会以退出码 `42` 退出并在 stderr 输出 `DEPENDENCY_MISSING:` 结构化信号。\n\n#### Basic Usage\n\n```bash\npython get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_MERCHANT_LISTINGS_ALL_DATA\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"]\n}'\n```\n\n#### Advanced Usage with Date Range\n\n```bash\npython get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_FLAT_FILE_ALL_ORDERS_DATA_BY_ORDER_DATE_GENERAL\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"],\n  \"dataStartTime\": \"2024-01-01T00:00:00Z\",\n  \"dataEndTime\": \"2024-01-31T23:59:59Z\"\n}'\n```\n\n#### `reportOptions` / Brand Analytics / Sales & Traffic（见 `references/report-requests/`）\n\n```bash\npython get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_SALES_AND_TRAFFIC_REPORT\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"],\n  \"dataStartTime\": \"2024-06-01T00:00:00Z\",\n  \"dataEndTime\": \"2024-06-07T23:59:59Z\",\n  \"reportOptions\": {\"dateGranularity\": \"DAY\", \"asinGranularity\": \"SKU\"}\n}'\n```\n\n```bash\npython get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_BRAND_ANALYTICS_SEARCH_QUERY_PERFORMANCE_REPORT\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"],\n  \"dataStartTime\": \"2025-01-05\",\n  \"dataEndTime\": \"2025-01-11\",\n  \"reportOptions\": {\"reportPeriod\": \"WEEK\", \"asin\": \"B123456789\"}\n}'\n```\n\n（`reportPeriod` 与 `dataStartTime`/`dataEndTime` 的周起止须符合官方 schema，见 [sellingPartnerSearchQueryPerformanceReport.md](../references/report-requests/sellingPartnerSearchQueryPerformanceReport.md)。）\n\n#### Custom Polling\n\n```bash\npython get_report.py '{\n  \"sellerId\": \"A1EC6SZ7XAMURH\",\n  \"region\": \"NA\",\n  \"reportType\": \"GET_MERCHANT_LISTINGS_ALL_DATA\",\n  \"marketplaceIds\": [\"ATVPDKIKX0DER\"],\n  \"pollInterval\": 15,\n  \"maxAttempts\": 40\n}'\n```\n\n#### Parameters\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| sellerId | string | Yes | Amazon Seller ID |\n| region | string | Yes | NA / EU / FE |\n| reportType | string | Yes | Amazon "}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1209,"uniquenessScore":37,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T00:14:34.776Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T00:14:34.776Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T05:39:42.023Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}