3.2 KiB
3.2 KiB
aliChoice(速卖通全托管)配方 — 差最后一步,下一轮从「物流属性」接着做
路由:https://www.dianxiaomi.com/web/smtChoice/add 列表:/web/smtChoice/{draft=采集箱, offline=待发布}
已经打通的(alc_try1.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(DOM 里是个TEXTAREA) - 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>
- 它带一个
icon_edit2 link的编辑入口 → 点开大概率是「物流属性」弹窗/抽屉 - SKU 行里有
logisticAttrListJson/logisticAttrList两个字段空着,应该就是它要填的 - 下一步:点那个
icon_edit2,dump 弹窗结构(很可能要按类目选物流渠道/时效)
另一个未验证项:4 个规格组都是 0 选项
smtChoiceSkuAttrStore.formState.skuAttrs 有 4 组:
Ships From(200007763) / Color(14) / Number of Pcs(200116262) / Bulk Buy(200483263),
但 options 都是 0(值在 _options 或要异步加载),DOM 里能看到值(卡其色/粉红/6Pc/Set…)。
未验证变种值是否必须选——先解物流属性,再看保存是否又冒出新的一层。
本轮顺手修好的共享 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('中国')过滤