4.2 KiB
4.2 KiB
aliChoice(速卖通全托管)配方 — 已跑通(批量进行中)
路由:https://www.dianxiaomi.com/web/smtChoice/add 列表:/web/smtChoice/{draft=采集箱, offline=待发布}
已经打通的(批量脚本 alcbatch.mjs,单条已验证保存成功)
- 店铺:
店铺名称下拉(实测 2 家:XYZ Store/UniStyle Bag Store),取第一家 →shopId=4393191 - 备货类型:下拉
国内履约/海外备货→ 取第一个(→productType='1') - 类目:
选择分类弹窗 → 用sh_build.selectCategory(c, cat_kw, cat_kw)(与 SHEIN/Temu 同一套) - 标题 →
smtChoiceAddBasicStore.formState.subject(⚠️ 不是 Joom 的name) - 主图 →
smtChoiceAddProductStore.formState.mainImage[](吃{url,imgUrl,name,width,height}) - PC端描述 →
smtChoiceAddStore.describeInfoData.detail+ CKEditor setData(见下) - SKU 行 →
smtChoiceSkuDataStore.formState.skuDataList[]字段:skuPrice / skuCode / scItemBarCode / packageWeight / packageLength / packageWidth / packageHeight / logisticAttrListJson / logisticAttrList / imageList - 必填类目属性(品牌 / 高关注化学品 / 产地)→
fillRequiredSelects()现已能自动填 (产地会输「中国」过滤后选中国大陆)
✅ 「请选择物流属性」已解(保存两遍)
保存时钩子给 MYJ.error: 校验失败,DOM 里是一个没有 label 的报错块:
<div class="ant-form-item-has-error">
<span></span><i class="iconfont icon_edit2 link ml-4"></i>
<div class="text-red-500 font-size-12 mr-[20px]">请选择物流属性</div>
</div>
解法(保存两遍):
- 先点一次保存 → 报错块出现
- 点报错块里的
i.icon_edit2→ 弹出「修改物流属性」modal(20 个复选框,按大类分组: 禁运 / 普货 / 纯电 / 强磁 / 特货(液体·粉末·膏体·其他) / 特敏 / 内电(8 种电池) / 外电 / 弱磁) - 勾 普货 → 点「确定」→ 再点保存 →
您的产品已保存到「待发布」
对应 SKU 行的 logisticAttrListJson / logisticAttrList 两个字段。
✅ PC端描述是 CKEditor,写 textarea 没用
DOM 里那个 TEXTAREA 是 display:none 的藏匿字段,真实控件是 CKEditor
(aria-label「所见即所得编辑器, cked…」)。两种赋值方式,实测都写上才稳:
// 1) 给编辑器实例 setData(本例 window.CKEDITOR.instances 有 2 个实例)
Object.values(window.CKEDITOR.instances).forEach(x => x.setData(html));
// 2) 同时写 store
pinia._s.get('smtChoiceAddStore').$state.describeInfoData.detail = html;
另一个未验证项:4 个规格组都是 0 选项## 另一个未验证项:4 个规格组都是 0 选项
smtChoiceSkuAttrStore.formState.skuAttrs 有 4 组:
Ships From(200007763) / Color(14) / Number of Pcs(200116262) / Bulk Buy(200483263),
但 options 都是 0(值在 _options 或要异步加载),DOM 里能看到值(卡其色/粉红/6Pc/Set…)。
实测:不选变种值也能保存成功(保存链路里没有因为变种报错),所以批量里先不选。
单条顺序(批量脚本里的固定顺序)
店铺 → 备货类型 → 类目 → 标题/主图/SKU行 → 必填属性(品牌/高关注化学品/产地) → PC端描述(CKEditor) → 保存① → 物流属性(普货) → 保存② → 待发布
本轮顺手修好的共享 bug(shein建品/sh_build.mjs 的 fillRequiredSelects)
之前它在 aliChoice 上一个必填属性都填不上,三个原因,都已修:
- select 分支的必填判断只看
label.ant-form-item-required,而速卖通系的属性是.attr-label.required(label 上还常带*前缀)→ 现在三种标记都认 - 容器项「产品属性」本身也带
*,会被当成一个字段去点 → 现在跳过含嵌套.ant-form-item的项 - 点开下拉后按
.pop()取最后一个可见下拉,容易读到上一个字段残留的列表 (曾把化学物列表当国家列表)→ 现在①每次点前先Esc②按与点击点的距离挑下拉 ③产地/Origin 先Input.insertText('中国')过滤