5.4 KiB
Temu 全托管(①Alimingpro, shopId 4021529)进展
已勘明
- 类目:1038 个,直接从
temuAddBasicStore.dataState.categories读(不用滚动) - 选类目:下拉需先 scrollTop=0(默认残留上次滚动位置)→ 滚动找
.ant-select-item-option - 外包装形状:不规则 / 长方体 / 圆柱体
- 外包装类型:硬包装 / 软包装+硬物 / 软包装+软物
- 字段落点:
temuAddProductStore.formState.mainImage→ 数组temuAddProductStore.formState.materialImage→ 对象(单个)temuAddOtherStore.packageFormState→{packageShape, packageType, packageImages, inventoryRegion}temuAddSkuAttrStore.formState.skuAttrs→[{type:2,parentSpecId:1001,parentSpecName:"颜色",options:[]}]temuAddSkuDataStore.formState.skuDataList→ SKU 行
- 必填 9 项:店铺/分类/标题/产地/轮播图/素材图/外包装形状/外包装类型/外包装图片
未解(卡点)
- 点「保存」不发任何 POST,且无校验红字 → 静默拦截
- 程序化塞
skuAttrs[0].options不生成skuDataList行(需走 UI) - 变种区只渲染出主题选择器(颜色/风格/材质…),值输入控件没找到;变种本身也非必填
产品素材图在 DOM 里仍显示为空(store 已设)- 表单下方未发现价格/库存输入(可能随变种行生成)
更新:静默拦截已定位(用 MYJ.message.error 钩子)
Temu 被吞掉的报错是层层递进的:
→ 已解决 路径:产地选择中国时,省份必填,请完善后提交temuAddProductStore.formState.region2Id(候选在region2Id同级regionCode,31 个省) 注意:直接赋值 store 当时不生效,但异步同步后 UI 会显示「北京市」,再点保存即通过产品变种不能为空!← 当前唯一剩下的卡点 需要真正生成变种行(temuAddSkuDataStore.formState.skuDataList) 程序化塞temuAddSkuAttrStore.skuAttrs[0].options无效
变种区控件(待继续)
.ant-select#16 = 颜色主题选择器(主题候选:颜色/风格/材质/口味/…共18个).ant-select#17 = 尺码- 未找到独立的值输入框;值控件可能随主题选中后异步渲染
更新2:照 SHEIN 的解法推进,报错序列已剥到最后一层
Temu 的规格机制和 SHEIN 不同构——没有 theme-select-box,
而是 两个 .theme-value-add 块(颜色 / 尺码),每块各有「值输入框(input[class*="!w-200"]) + 添加按钮」。
值必须手动输进去再点「添加」,程序化塞进 skuAttrs[0].options 完全无效。
报错序列(每修完一层才露出下一层)
| # | 报错 | 状态 | 解法 |
|---|---|---|---|
| 1 | 产地选择中国时,省份必填 | ✅ | temuAddProductStore.formState.region2Id(异步同步,需再点一次保存) |
| 2 | 产品变种不能为空! | ✅ | 两个 theme-value-add 各输一个值点「添加」→ skuDataList 生成 2 行 |
| 3 | 尺寸不能为0或空 | ✅ | SKU 表「尺寸(cm)」列每行有 3 个子输入(长/宽/高),要全填 |
| 4 | 净重必须小于重量 | ✅ | 净重填 90、重量填 100(不能相等) |
| 5 | 请上传预览图 | ⬜ 当前 | SKU 表「预览图」列需真实图片,不是文本 |
SKU 表列(Temu 全托管)
预览图 | 颜色 | 尺码 | SKU货号 | EAN UPC ISBN | 申报价格(CNY) | 尺寸(cm) | 重量(g) | 净重(g) | 建议售价 | SKU分类
⚠️ EAN 用公司台账下一段:pc 3447 起(Walmart 已用 3400~3446)
更新3:预览图已解 → 首条已保存进待发布(2026-09-20)
解法(点单元格,不是点表头)
表头那个「批量」下拉是通用图片工具(批量传图/压缩/加水印…),跟预览图无关,别点它。 真正的入口是单元格本身:
- 用真实鼠标事件点
.sku-image单元格(mouseMoved→mousePressed→mouseReleased; DOM click 打不开) - 弹出下拉
.myj-image-drop:本地图片 / 空间图片 / 网络图片 / **引用产品轮播图** / 引用采集图片 - 点「引用产品轮播图」→ 弹窗「引用产品图片」(列出产品轮播图,每个带「选择图片」)
- 勾「全部」→ 点「选择」
- 行数据出现
image: {url, imgUrl, name, width, height},单元格变成真图
关键坑:这个弹窗是「单格」的——勾全部只作用当前那一行。N 行就要走 N 遍。
(全部 = 把那 5 张轮播图都塞给这一格,单元格只显示第一张。)
现成脚本:tmpv.mjs(node tmpv.mjs 给所有 SKU 行挂图,node tmpv.mjs 1 3 只挂指定行)
结果
/web/temu/choiceTemuList/offline(待发布)搜标题命中:
Hair Clips Set for Women Girls Fashion Hair Accessories 「①Alimingpro」 ... TM-TEST-1 TM-TEST-2 CNY 12.90
保存成功弹「您的产品已保存到「待发布」,请在待发布页完成发布!」
⚠️ 路由纠正
店小秘的列表路由是 /draft = 采集箱、/offline = 待发布(之前搜 /draft 找不到东西就是这个原因)。
Temu 全托管列表 = /web/temu/choiceTemuList/{draft|offline|online};
Temu 半托管 POP = /web/popTemu/pageList/*。保存接口是 /api/pddkjProduct/add*.json(拼多多跨境=Temu 全托管)。