58 lines
3.8 KiB
Markdown
58 lines
3.8 KiB
Markdown
# SHEIN 建品配方(已跑通第一条)
|
||
|
||
## 完整流程
|
||
1. `https://www.dianxiaomi.com/web/sheinProduct/add`
|
||
2. **选店铺**(按品类分店,见 shein_route.json)
|
||
3. **选类目**:点「选择分类」→ 弹窗 `input[placeholder="搜索分类名称"]` → 搜索 → 点 `.search-result-item`
|
||
4. **标题**:`sheinAddProductStore.formState.productName`
|
||
5. **★ 加第二个规格**:点 `.theme-select-box` 里的 `尺寸(Size)`
|
||
—— 这是之前一直卡住的关键!类目要求**颜色+尺寸两个规格**,只选颜色不行
|
||
6. **选规格值**:两个 `.sku-info-box` 里各点一个 `.sku-option`(要点里面的 `label.d-checkbox`)
|
||
7. **填 SKU 行**:`sheinSkuDataStore.formState.skuDataList[]`
|
||
`skcSupplierCode / skcRetailPrice / supplyPrice / stockVariety / weight / length / width / height`
|
||
⚠️ **加第二个规格会重建 SKU 行,之前的填充会丢** —— 必须在规格选完之后再填
|
||
8. **尺码表**:点「编辑尺码表」→ 弹窗内 6 个 `placeholder="请输入"` 的 input → 点「确定」
|
||
9. **图片**:`sheinImgStore.formState.mainImgData.multipleSpuImgs` → **数组**
|
||
10. **保存** → `POST /api/sheinProduct/add.json`
|
||
|
||
## 关键教训
|
||
- 报错 `有必选规格未选择` 的真实含义是:**类目定义的规格没选全**,不是主规格没值
|
||
- 加规格会重置 SKU 行 → **顺序不能错**:先规格、后 SKU、再尺码表
|
||
- 所有报错都会被 `MYJ.message.error` 吞掉,必须挂钩子才看得到
|
||
|
||
## 待批量
|
||
- 40 条按品类分到 4 家店(美妆18 / 文具13 / 箱包8 / 内睡袜子1)
|
||
- 需要把上述流程写成 `shbatch.mjs`,逐条跑
|
||
|
||
---
|
||
|
||
# 批量(已完成:40/40 进待发布,2026-09-20)
|
||
|
||
`node shbatch.mjs`(全部)· `node shbatch.mjs <pid>`(单条)· `node shbatch.mjs --dry <pid>`(只构建不保存)
|
||
|
||
- 数据源:`/home/admin9webs/tiktok建品/tk_input.json`(48 商品:title/imgs/cost/price_cny)
|
||
- 路由:`shein_route.json`(4 家店 × 每条的类目关键词),`sh_done.json` 记逐条结果,可断点续跑
|
||
- 公共库:`sh_lib.mjs`(newPage/closePage/wait/installHook/readHook)· `sh_build.mjs`(各步骤函数)
|
||
|
||
## 单条固定顺序(不能换)
|
||
`选店铺 → 选类目 → 标题 → 加规格(≤3) → 选规格值 → 填 SKU 行 → 尺码表 → 图片 → 填必填属性 → 保存`
|
||
|
||
## 这次新踩的坑
|
||
1. **选类目弹窗必须确认关掉**:`搜索` → 点 `.search-result-item`(它里面嵌 `<span class="f-red">`,
|
||
所以别用 `children.length===0` 过滤)→ 若弹窗还在就点「选择/确定」或右上角 ×、按 Esc。
|
||
弹窗没关时后面的点击全被挡,最终报的却是别的错(Temu 那边表现为「请上传预览图」)。
|
||
2. **SHEIN 一个产品最多 3 个规格**(颜色已占 1 个)→ `addSpecs` 里加满 3 个就停,
|
||
否则报「规格最多选择3个,请移除后再添加」。
|
||
3. **规格要去重**:按标签去重,否则会点出「款式/款式」两个同名规格。
|
||
4. **类目动态必填属性**用 `.attr-label.required` 标记(不是 `.ant-form-item-required`):
|
||
- 下拉型空着 → 选第一项
|
||
- 勾选组(如箱包的「特征 Features」,`.checkbox-group-with-search`)一个都没勾 → 勾第一个
|
||
- 不填只会得到一句「产品信息中有错误,请检查」
|
||
5. **店铺发品额度**:①Shein-武汉九个网-箱包 报「商家无可用的发品额度,暂时无法发布商品」,
|
||
把那条改挂 ②Shein-易世通达-箱包(`SHOP_OVERRIDE='②Shein-易世通达-箱包'`)后成功。
|
||
该类目在 ② 店只有「不保温午餐包」,与路由表写的「保温午餐包」不完全一致。
|
||
|
||
## 结果
|
||
40 条全部「已保存到待发布」(39 条在路由指定店铺 + 1 条改挂 ② 店)。
|
||
店小秘 SHEIN 待发布列表核对:共 44 条(含此前手工首条等)。
|