店小秘多平台铺货配方:7 平台建品脚本 + 静默拦截诊断法 + 项目状态
- TikTok/Shopee/速卖通/Walmart 各 46-47 条已在待发布 - Ozon 47 条已建、改价 40/47 - SHEIN 配方跑通第一条;Temu 差「预览图」一步 - 核心产出:MYJ.message.error 钩子诊断法(解开了三个平台的保存静默拦截) - 含下一轮提示词 NEXT-ROUND-PROMPT.md
This commit is contained in:
commit
f5720ad613
94 files changed
+21561
No files matched your search
@@ -0,0 +1,93 @@
|
||||
# 店小秘多平台铺货配方(dianxiaomi crossborder playbook)
|
||||
|
||||
同一批 **48 个 1688 商品**铺到店小秘各平台的「待发布」。本仓库是**可复用的配方 + 踩坑记录**,
|
||||
不是一次性脚本堆积——每个平台一个目录,含配方脚本、输入数据、逐条结果。
|
||||
|
||||
## 战果
|
||||
|
||||
| 平台 | 店铺 | 待发布 | 状态 |
|
||||
|---|---|---|---|
|
||||
| TikTok | AutoMavenShop_MY | **47** | 完成 |
|
||||
| Shopee | Ljbgkj | **47** | 完成 |
|
||||
| 速卖通 | 4024039 | **47** | 完成(含清理 4 份重复) |
|
||||
| Walmart | Snowmountain | **46** | 完成 |
|
||||
| Ozon | Yejet | **47** | 已建;改价 40/47 |
|
||||
| SHEIN | 4 家分品类 | 0 | 配方跑通第一条,40 条待批量 |
|
||||
| Temu 全托管 | ①Alimingpro | 0 | 差「预览图」一步 |
|
||||
|
||||
> `601964534137`(遥控器保护套)18 张图全带水印、无干净图,所有平台统一跳过。
|
||||
|
||||
## ⭐ 最重要的一节:保存静默拦截诊断法
|
||||
|
||||
**症状**:点「保存」→ 不发 POST、无界面提示、无 `.ant-form-item-has-error`。
|
||||
|
||||
**根因**:校验确实失败了,但报错被 **`MYJ.message.error` 吞掉**;而且报错是**层层递进**的
|
||||
(修完 A 才显示 B),所以肉眼和 DOM 扫描都抓不到。
|
||||
|
||||
**解法**——在点保存**之前**挂钩子:
|
||||
|
||||
```js
|
||||
window.__cap = [];
|
||||
function wrap(o, n, l) {
|
||||
const f = o[n];
|
||||
o[n] = function () {
|
||||
window.__cap.push(l + ': ' + [...arguments].map(a => typeof a === 'string' ? a : JSON.stringify(a)).join(' '));
|
||||
return f.apply(o, arguments);
|
||||
};
|
||||
}
|
||||
['error','warning','info','success'].forEach(k => wrap(MYJ.message, k, 'MYJ.' + k));
|
||||
['error','warning','info','success'].forEach(k => wrap(antd.message, k, 'antd.' + k));
|
||||
```
|
||||
|
||||
点保存 → 读 `window.__cap`。
|
||||
|
||||
**为什么之前的「必填扫描」不够**:扫 `.ant-form-item-required` 且为空,漏掉两类——
|
||||
**条件必填**(Temu 的省份,只有「产地=中国」才出现)和**类目相关的文件字段**
|
||||
(速卖通的商品说明书,有些类目强制、有些不强制)。
|
||||
|
||||
详见 `静默拦截诊断/HOOK.md`。
|
||||
|
||||
## 各平台要点速查
|
||||
|
||||
| 平台 | 目录 | 最独特的一点 |
|
||||
|---|---|---|
|
||||
| Ozon | `ozon改价/` | 保存按钮是**「保存并移入待发布」**;价格是 **CNY**;改价必须同时抬高原价,否则报「售价需小于原价」 |
|
||||
| TikTok | `tiktok建品/` | 价格 **MYR**;图片 store 直接吃**外链数组** |
|
||||
| Shopee | `shopee建品/` | 用**单件模式**绕开变种;价格 **CNY**;列表字段是 `itemName` 不是 title |
|
||||
| Walmart | `walmart建品/` | 保存体是 **zip 的 multipart**;Brand 必须点「无品牌」;图片必须 **hover** 开下拉走「网络图片」 |
|
||||
| 速卖通 | `速卖通建品/` | `check_box` 属性值**必须是数组**;`idStr ≠ id` |
|
||||
| SHEIN | `shein建品/` | 店铺**锁品类**;类目要**两个规格**;**加规格会重建 SKU 行** |
|
||||
| Temu | `temu建品/` | 类目 1038 个从 store 直读;规格是 `.theme-value-add`(与 SHEIN 不同构) |
|
||||
|
||||
## 通用技术事实
|
||||
|
||||
- Chrome CDP 端口 **9223**,profile `/tmp/dxm7`
|
||||
- 站点是 Vue3 + Pinia:
|
||||
`document.querySelector('#app').__vue_app__.config.globalProperties.$pinia._s.get('<store>').$state`
|
||||
- CDP helper:`cdp3.mjs`(`newTarget`/`attach`/`CDP`/`SAN`),ESM,**不能用 require**
|
||||
- VNC:`http://192.168.9.122:6097/vnc.html` 或 `:6100`(免密)
|
||||
|
||||
## 十条会重复踩的坑
|
||||
|
||||
1. **保存静默拦截** → 挂钩子,别猜
|
||||
2. **`idStr ≠ id`** → 大整数精度丢失,服务端操作一律用 `idStr`
|
||||
3. **`!w-200` 不是合法 CSS 类选择器** → 用 `input[class*="!w-200"]`
|
||||
4. **antd select 吃 DOM click**,但有些组件只吃真实鼠标事件
|
||||
5. **hover 触发的下拉**点不开 → 先 `mouseMoved` 再 `click`
|
||||
6. **加规格会重建 SKU 行** → 顺序「规格 → SKU → 尺码表」
|
||||
7. **store 赋值后 UI 异步同步** → 当次校验可能仍失败,再点一次保存
|
||||
8. **类目决定是否强制资质文件**(速卖通某些类目要上传说明书)
|
||||
9. **SHEIN 店铺锁品类** → 不能用「首字母第一家店」
|
||||
10. `pkill -f <pat>` 会自杀 → 用 `[.]` 技巧(`pgrep -f 'foo[.]sh'`)
|
||||
|
||||
## EAN-13 台账(湖北易千亿彩 · 69803093 段)
|
||||
|
||||
- 结构:8 位前缀 `69803093` + 4 位产品码 + 1 位校验
|
||||
- 校验位:`(10 - sum(d*(1 if i%2==0 else 3) for i,d in enumerate(d12)) % 10) % 10`
|
||||
(左起权重 1,3,1,3…;UPC-A 权重相反,别混用)
|
||||
- 台账唯一来源:**S03 主机 `/root/ean_*.txt`**(KVM-2 够不到)
|
||||
- 已用 3190,下一号 pc 3400 → `6980309334003`
|
||||
- **本批已分配**:Walmart pc **3400~3446**(见 `walmart建品/ean_69803093_3400-3446.txt`);
|
||||
Temu 拟用 pc **3447+**
|
||||
- ⚠️ **必须在 S03 落盘**,否则下次续号会撞号
|
||||
- 说明书 §1 的例子 `pc 1000 → 6980309310004` **是错的**,正确是 `6980309310007`
|
||||
Reference in new issue
Block a user