docs: 建品配方迁至 kb/handbook(留指针)

This commit is contained in:
kb-bot committed 2026-10-21 17:29:56 +08:00
1 parent 917df5b2d6
commit ced43b19d3
9 files changed
+27 -1842

No files matched your search

+3 -66
View File
@@ -1,67 +1,4 @@
# Shopee(全球)「选品建listing」现状:**卡在店铺授权,脚本已就绪**
> **本文已迁至内网知识库**:`kb/handbook:docs/ecommerce/dianxiaomi/shopee.md`(2026-10-21)。
> 请到 http://192.168.9.206:3000/kb/handbook 阅读最新版;本仓不再维护这份内容。
> 2026-09-30 实测结论:`/web/shopeeGlobal/add` 的「商家账号」下拉是 **「暂无数据」** ——
> 店小秘账号下**没有 Shopee 授权店铺**。没有店铺 → 类目树打不开(类目随站点)、保存必失败。
> 因此**本轮 Shopee 0 条**,不是脚本问题,是账号/授权问题。
> 脚本 `platform-shopee/spbatch.mjs` 已写好并在预检处**硬拦**(无店铺直接跳过、不产生垃圾数据)。
## 1. 已探明的页面事实(可直接复用)
| 项 | 值 |
|---|---|
| 路由 | `/web/shopeeGlobal/add`(标题「店小秘--添加Shopee全球产品」) |
| 保存接口 | `POST /api/shopeeGlobalProduct/add.json` |
| 站点限价 | `POST /api/shopeeCategory/getLimitBySite.json`、`/api/shopeeCategory/getPriceLimit.json` |
| 字段 | 商家账号 / **上架后自动发布到店铺(checkbox)** / 产品分类 / 产品属性 / 店小秘分类 / 来源URL / **类型(radio)** / ParentSKU / 产品标题 / 产品描述 / 产品图片 / 产品视频 / 货源价格→价格 / 库存 / 最低购买数量 / 最高购买数量 / 重量 / 尺寸规格(长宽高) / 产品保存状况(全新) / 是否预购(否) |
| 类型 radio | `input[type=radio][value=single]` = **单品**,`value=mutiple` = 多变种(**默认 mutiple**) |
| 图片模块 | `.shopee-global-product-image-module`(头是 `<header class="product-image-header">`,不是 `.header`) |
| 描述 | `textarea.product-desc-textarea`(placeholder「请输入产品描述」,上限 5000) |
| 列表字段 | `itemName` **不是** title |
## 2. 三条必须在代码里守住的规则
1. **「上架后自动发布到店铺」是 checkbox,必须不勾**:
`section.send-site label.ant-checkbox-wrapper input[type=checkbox]`。
勾上 = 保存后直接发布,违反第一原则(目标只到待发布)。→ `ensureCheckboxOff(c, /自动发布|自动上架/)`。
2. **类型切「单品」**(`setRadioByText(c,'单品','single')`)绕开变种表:多变种模式下价格/库存只能按变种填。
切完等 2.5–3s 让表格重渲染,价格/库存/最低最高购买数量/重量/尺寸规格 才出现在单品表单里。
3. **尺寸规格是整数 cm**:输入 `27.5` 会被吃成 `27`(不是四舍五入)。脚本里 `Math.round` 后再填。
## 3. 解除阻塞需要做的事
1. 让主账号在店小秘「平台授权」里完成 Shopee 店铺授权(子账号 `ejetZhangjiafen` 打开
`/web/system/authorization/platform?go=shopee` 只会看到「没有该功能访问权限」→ 必须主账号操作)。
2. 授权后跑预检确认下拉有店:
```bash
node listing-spec/platform-shared/preflight-shops.mjs --routes /web/shopeeGlobal/add
```
3. 有店之后再跑:
```bash
python3 listing-spec/platform-shared/build-add-input.py <package>.json --platform Shopee-全球 --out /tmp/sp_input.json --min-side 400
node listing-spec/platform-smt/../platform-shopee/spbatch.mjs --input /tmp/sp_input.json --only <oid> --dry
node listing-spec/platform-shopee/spbatch.mjs --input /tmp/sp_input.json --only <oid>
```
(回读:`POST /api/shopeeGlobalProduct/pageList.json`,待发布口径同速卖通 `dxmState=offline&dxmOfflineState=waitPublish`;
注意 Shopee 图片门槛 **单边 ≥400、主图建议 ≥800**,以及「附图最多9张」+ 主图 = 10。)
## 4. 同类风险平台
同一轮预检里 **Mercado / Shopify / Amazon 路由也拿不到店铺下拉**(`no-dropdown` / 无该字段),
**TikTok 有 10 家店、速卖通有 10 家店**。→ **每轮批量前先跑 `preflight-shops.mjs`**,
不要等到填完一屏才在保存时发现没有店铺。预检结果落 `/tmp/shop-preflight.json`。
## 附:账号级证据(2026-09-30 实测,一次接口)
`GET /api/userIn.json` → `data.shopMap`(key=shopId,value 含 `platform`):
```
256 家店 → smt:61 tiktok:98 tiktokGlobal:24 aliChoice:65 ozon:5 walmart:3
```
**没有任何 `shopee`/`shopeeGlobal` 店铺** —— 与 Shopee 建listing 页「商家账号」下拉「暂无数据」完全一致。
即:**当前登录(子账号 ejetZhangjiafen)在账号层面就没有 Shopee 店铺**,
而 playbook 历史记录里 Shopee `Ljbgkj` 47 条进待发布是在**当时可见该店铺的登录态**下完成的
→ 结论仍是「授权异常/范围变化」,需**主账号**处理。
用 `platform-shared/dxm-add-lib.mjs` 的 `readAccountShops(c)` 一行拿到全平台店铺数。
★ 注意页面下拉只是子集(速卖通页 10 家 vs 账号 61 家)。
(原文件内容已移出,历史见本仓 git 记录。)