Files
dianxiaomi-crossborder-play…/shein建品/RECIPE.md
T

58 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 条(含此前手工首条等)。