---
name: etsy-category-search
description: "Etsy 类目数据。"
compatibility: Requires the oo CLI and OOMOL Marketplace access.
metadata:
  title: "Etsy类目搜索"
  icon: ':lucide:shopping-bag:'
  packageName: "@leina/etsy-category-search"
  version: "0.1.0"
---
# Etsy类目搜索

## 固定使用内置市场

所有业务动作明确使用 `--connection-name marketplace_oomol`，不能省略，也不能替换为用户自建 LinkFox 连接。首次在当前账户/团队执行时，读取 `oo connector apps linkfox --json`，确认 `connectionName=marketplace_oomol`、`authType=marketplace` 且状态可用；用户指定团队时，连接列表和业务命令使用同一个 `--team`。

未找到该市场连接或无权使用时，停止并报告内置市场不可用。不得改用户默认连接，不得退回无选择器命令、其它连接或直连来源接口。`oo file upload/download` 是文件中转命令，不属于 LinkFox 连接选择。

## 业务流程

按用户类目词、ID 或父级线索填写 keyword，分页读取 `response.data.categories`。记录 id、name、categoryLevel、parentId、parentIds；parentIds 可能是逗号分隔文本，不把它当作单一父 ID。只把实际返回的类目 ID 用于后续筛选。

这是已同步目录的查询，空结果不能证明 Etsy 没有该类目。来源平台内部同步任务不迁移；数据源尚未同步时报告限制，不尝试调用隐藏同步接口。

## 选择动作并执行

先读 [当前调用契约](references/calls.md)，选择能完成当前步骤的 action，确认必填值、枚举、分页和结果容器。单动作 skill 直接使用该动作；多动作 skill 按上述业务顺序选择必要分支，不默认把动作表全部跑一遍。

将用户的真实参数写入当前任务目录中的 payload.json。执行 calls.md 中所选动作的完整命令。CLI 返回 `response.data` 为业务结果，`response.meta.executionId` 为执行标识。保存响应和查询条件用于后续衔接，不把旧平台 errcode/渲染元数据当作新的 CLI 输出契约。

结果解释遵循 [业务规则](references/business.md)。公开 schema 中的开放记录字段未逐字段保证；本轮仅做静态核对，未真实试跑。缺失或 null 标注未提供，不补零、不猜 ID、URL、币种或单位。数值比较只在单位和时间窗一致时进行。

## 分页、文件与交付

有分页参数的动作保持筛选与排序不变，根据本动作返回的总数/hasNextPage（若有）和用户范围推进；空页、重复页或达到用户要求时停止。total 的含义按所选端点说明；本页计数不能当作全集计数。无分页动作不自行发明 page/cursor。

仅在图片 URL 输入而用户只有本地文件时，先执行 `oo file upload "本地文件路径" --json`，将实际返回的 downloadUrl 写入该图片字段。已有可访问 URL 直接复用。不要把本地路径当远程 URL，也不要要求用户配置来源平台密钥。

仅对动作明确返回的文件下载字段执行 `oo file download "返回的文件URL" "用户指定的输出目录"`；下载命令不带 --json。网页、播放页、详情页和元数据 URL 不是下载地址。保存后确认文件类型与实际路径并提供可点击链接；图片/视频在环境支持时预览。签名 URL 留在任务文件中，不在汇报里展开。

依据用户需求交付查询摘要、对比表或本地 Markdown/CSV/JSON 文件。说明数据来源、查询时间、覆盖范围及未返回项。长数据先摘要，保留完整响应供检查，不硬编码原平台输出目录。

## 失败处理

失败时报告实际错误，保留已成功数据。鉴权、权限、余额或不支持的输入阻塞时按 OOMOL 错误指引处理，不运行源平台充值、余额检查、反馈、直接 HTTP 兜底或隐藏接口。不能把空结果说成已证明不存在，也不连续换条件或重跑已完成请求来掩盖失败。

## 读取业务字段

解释结果和构造后续请求前，读取 [结果字段与业务衔接](references/result-fields.md)，按端点保留关键输出、嵌套指标和关联 ID。
