Files
dianxiaomi-crossborder-play…/shopee建品/RECIPE-2026-09-30.md
T

4.6 KiB
Raw Blame History

Shopee(全球)「选品建listing」现状:卡在店铺授权,脚本已就绪

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. 授权后跑预检确认下拉有店:
    node listing-spec/platform-shared/preflight-shops.mjs --routes /web/shopeeGlobal/add
    
  3. 有店之后再跑:
    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 家)。