{"skill":{"slug":"fecify-site-manager-v1","displayName":"fecify-site-manager-v1","summary":"管理多个 Fecify 独立站。每个会话绑定一个站点（URL + API Token），配置持久化， 重启不丢失。支持商品、订单及 CSV 批量导入等业务操作。","description":"---\nname: fecify-site-manager-v1\nversion: \"1\"\ndescription: >\n  管理多个 Fecify 独立站。每个会话绑定一个站点（URL + API Token），配置持久化，\n  重启不丢失。支持商品、订单及 CSV 批量导入等业务操作。\n---\n\n# Fecify 站群管家 v1\n\n> 版本: v1 | 配置数据存储于 `data/fecify-shared/`，发版升级不影响已有配置\n\n## 0. 会话隔离\n\n**所有 exec 调用必须带 `env: { FECIFY_SESSION: \"<标识>\" }`。**\n\n会话标识：用户指定 → 用指定名称；未指定 → 用 session key 后 8 位。\n\n```\nexec({ env: { FECIFY_SESSION: \"agent-a\" }, command: \"node scripts/base/check-config.js\" })\n```\n\n## 1. 会话启动\n\n```\nnode scripts/base/check-config.js\n```\n\n**未配置** → 提示用户提交 `站点URL` + `AccessToken`（任意格式），然后：\n\n```\nnode scripts/base/save-config.js \"<URL>\" \"<Token>\"\n```\n\n该脚本自动保存配置并拉取 init 数据。配置持久化，不受重启影响。\n\n**已配置** → 显示站点 URL 和 init 状态。\n\n## 2. 模块速查\n\n### API 操作\n\n| 模块 | 文档 | API |\n|------|------|-----|\n| 商品 | [products.md](docs/products.md) | 列表/详情/创建/更新 |\n| 图片 | [base-image.md](docs/base-image.md) | 列表/上传（跨模块公用） |\n| 订单 | [orders.md](docs/orders.md) | 待补充 |\n| 优惠券 | [coupons.md](docs/coupons.md) | 待补充 |\n\n### 业务场景\n\n| 场景 | 文档 | 说明 |\n|------|------|------|\n| CSV 导入 | [csv-import.md](docs/csv-import.md) | 所有平台 CSV 商品导入入口 |\n\n### 参考\n\n| 文档 | 说明 |\n|------|------|\n| [architecture.md](docs/architecture.md) | 目录结构 / api-client / site-config |\n| [extending.md](docs/extending.md) | 新增模块 / 新增 CSV 格式 |\n\n## 3. API 调用\n\n```\nnode scripts/proxy/api-call.js <METHOD> <PATH> [BODY_JSON]\n```\n\n示例：\n\n```\nnode scripts/proxy/api-call.js GET /api/skill/product/list '{\"pageNum\":1,\"pageSize\":20}'\nnode scripts/proxy/api-call.js POST /api/skill/product/create '{\"product\":{...}}'\n```\n\n先读 `docs/` 下对应文档获取参数说明，再调用。\n\n### 响应判断\n\n**`code === 200` → 成功；否则 → 失败。**\n\n```json\n// 成功\n{ \"code\": 200, \"message\": \"success\", \"data\": { ... } }\n// 业务错误\n{ \"code\": 100701001, \"message\": \"product save fail | ...\" }\n// PHP 异常（HTML 响应）\n{ \"code\": -1, \"message\": \"服务端返回 HTML 异常...\", \"_raw\": \"...\" }\n```\n\n- `code === 200` → 读 `data`\n- `code === -1` → 网络/解析层错误\n- 其他 `code` → 业务错误，看 `message`\n\n## 4. CSV 导入（两步交互）\n\n用户上传 CSV → **先检测再导入，不可跳过检测**。\n检测分两步：① 表格格式识别 ② 数据行校验。有异常 → 提示修复重新上传；无异常 → 展示选项等用户确认。\n完整交互模板见 [shopify-csv-product-import.md](docs/csv-import/shopify-csv-product-import.md#用户交互提示agent-参考)。\n\n```\n# Step 1 — 检测\nnode scripts/csv-import/detect-shopify-csv.js <CSV文件>\n\n# Step 2 — 执行（根据用户选择组装参数）\nnode scripts/csv-import/import-shopify-csv.js <CSV> [--max=N] [--skip=N] [--dry-run] [--use-network-images] [--gen-tags=none|auto|force] [--tag-count=N] [--img-concurrency=N] [--img-retries=N] [--import-concurrency=N] [--skip-validation]\n```\n","topics":["CSV","会话"],"tags":{"latest":"1.0.0"},"stats":{"comments":0,"downloads":333,"installsAllTime":12,"installsCurrent":0,"stars":0,"versions":1},"createdAt":1778072659388,"updatedAt":1779076308232},"latestVersion":{"version":"1.0.0","createdAt":1778072659388,"changelog":"- 初始发布，支持多站点 Fecify 独立站管理，每个会话绑定一个站点，配置持久化。\n- 商品、订单、CSV 批量导入等核心业务操作组件化、文档化。\n- 会话隔离机制，确保操作互不干扰。\n- API 调用统一流程与响应判断标准，便于扩展与故障排查。\n- CSV 商品导入支持两步交互，错误提示友好，流程透明。","license":"MIT-0"},"metadata":null,"owner":{"handle":"fancyecommerce","userId":"s17cfwfh2sz68dqbvchth0sdcx866j74","displayName":"Terry","image":"https://avatars.githubusercontent.com/u/16605599?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1780090753331}}