webportal 商城产品编辑自动化

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

凡科/华可商城(*.webportal.top 系后台)产品编辑自动化:把本地 AI 图批量上传进素材库并绑定到指定产品, 同时脚本化填写卖点、产品编码、详情介绍,最后触发保存并校验落库。当用户要求「脚本化给 webportal 商城 后台产品传图/填详情/改字段」,或遇到素材库弹窗点选无效、ueditor 详情写不进、ant 输入框 v-model 不更新、 直传文件 input 不回写 CDN 地址等问题时触发。 覆盖范围:FaiUpload advance 分块上传协议、素材弹窗受信点选、ueditor iframe 直写、ant 受控组件原生 setter。

一句话选型结论

按资料字段整理

webportal 商城产品编辑自动化是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_6af9f15b/webportal-mall-product-edit
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_6af9f15b仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791681725
正文体量8.8 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
webportal 商城产品编辑自动化当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

8.8 KB
模型实际读到的说明书原文,来自技能仓库

凡科/华可商城(webportal.top)产品编辑自动化

把「本地 AI 图 → 上传素材库 → 绑定产品 → 填卖点/编码/详情 → 保存校验」整条链路脚本化、无头自动化。

适用后台特征:
- 顶层管理框架 i.mall.vip.webportal.top(如 siteId=6、__aacct=aluo01)
- 商城 *.mall.vip.webportal.top,素材/上传走 mall-upload.webportal.top
- 产品编辑页在 productEditV2 子 iframe 内

四大坑(趟平了,照做即可)

  1. 产品「产品图片」隐藏 input[type=file] 直传是死路
    直传只把图填进组件的本地 picPathList(base64 缩略图),保存时 pic:[] 为空,不回写 CDN url。
    → 必须走「添加图片 → 素材库(我的文件)选图」弹窗,选中的素材带真实 CDN url 才会写进 pic。

  2. 素材弹窗选中必须用 Playwright 受信点击 .fa-basic-upload-file-view-list-item--content
    - 合成 el.click()(在 page.evaluate 里点)不触发 Vue 的 @click 处理器,计数器 已选择(N/50) 不变。
    - class 必须精确是 --content(少 --content 前缀会点错元素)。
    - 受信点击:const h = await page.evaluateHandle(findContentByAbui); await h.asElement().click({force:true})。

  3. ueditor 详情:要点「精确文本=详情介绍」的 tab 才会挂载编辑器
    [class*=tab] 首个匹配「详情介绍」的是整段容器(innerText 是「基本信息 产品规格 详情介绍 其它设置」),
    点它不切 tab。要找 innerText.trim()==='详情介绍'。挂载后写 baidu_editor_0 iframe 的 body。
    window.UE.getEditor 在此环境是 undefined(实例键是 ueditorInstant0),不能用,直接写 iframe body 最稳。

  4. 产品编码/卖点是 ant 受控组件:直接 input.value=x 不触发 v-model
    必须用原生 setter 触发:Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,'value').set.call(el,x)
    再 dispatch input/change。否则保存时该字段为空(产品 11 曾因此编码存空)。

一、FaiUpload advance 分块上传协议(把图传进素材库)

图片进素材库有两步:① 取 accessKey;② 分块上传。

1.1 取 accessKey(GET,不是 POST)

GET https://i.mall.vip.webportal.top/api/manage/fileupload/getAccessKey?siteId=6&_lcid=2052&_TOKEN=<TOKEN>
Cookie: <登录态>

返回 JSON,取 data.accessKey(或顶层 accessKey),是 urlsafe-base64:

ak = base64urlsafe_decode(accessKey)  →  {token, aid:34133765, app:21, cmd:"mall-fileUpload", visitType:"v", url:"mall-upload.webportal.top"}

1.2 分块上传(手工 multipart,禁用 fetch+FormData)

> 坑:Node 全局 fetch + FormData 拼 multipart 会让分块 POST 返回 404;必须用 https.request 手工拼。

POST https://<url>/v/<app>/advance?cmd=mall-fileUpload&token=<token>
multipart body:
  fields: fileMd5, totalSize, index:"0", chunkSize, totalChunks:"1", complete:"true", fileName, accessKey
  file field:  "ctrl"  (binary chunk, Content-Type: application/octet-stream)

单文件(<2MB)可一次传: totalChunks:&quot;1&quot;, index:&quot;0&quot;, complete:&quot;true&quot;。分块大小 splitSize=2097152(取自 /advance/info 端点)。
成功返回:

{&quot;code&quot;:200,&quot;msg&quot;:&quot;上传成功&quot;,&quot;data&quot;:{&quot;p&quot;:&quot;//34133765.s21i.faimallusr.com/2/6/&lt;ABUI&gt;.jpg&quot;,&quot;i&quot;:&quot;&lt;ABUI id&gt;&quot;, ...}}

CDN 根:34133765.s21i.faimallusr.com,真实图地址 https://34133765.s21i.faimallusr.com/2/6/&lt;ABUI&gt;.jpg。

> 多文件/大文件:先 POST /v/&lt;app&gt;/advance/info?&lt;qs&gt;(form-urlencoded fileMd5,fileSize,fileName,accessKey)取分块规划,再按 splitSize 切片逐块传,最后一块 complete:&quot;true&quot;。本 skill 单文件上传器已覆盖常见 <2MB 产品图。

二、端到端脚本(bind_product.js)

一键完成:上传本地图 → 弹窗选图绑定 → 填卖点/编码/详情 → 保存 → 重开校验。

// 配置读 configs.json(见 README),每条:
{ id, nameSub, sell, code, imgs:[本地文件名...], detail }
// imgs 本地文件放 &lt;OUT&gt;/products/ 下
node scripts/bind_product.js

脚本内部关键点(照四大坑实现):
- uploadImage(file):取 accessKey → 手工 multipart 传 → 返回 {abui, p}。
- openEdit(page,nameSub,id):进列表 iframe productManageV2 → 点行内 .operate_wrap .text 编辑 → 等 productEditV2 编辑 iframe。
- clearImages(ef):循环点 .fa-upload-list-item-delete-action 清空旧图。
- selectFromMaterial(page,abuiIds):切「我的文件」tab → 按 img.src 含 ABUI id 找 item--content → 受信点击 → 读 已选择(N/50) 计数器确认。
- fillDetail(ef,txt):精确点「详情介绍」tab → 等 baidu_editor_0 iframe → 写 body.innerHTML。
- 受控组件用原生 setter 写卖点/编码。
- 保存:点 .fk_confirmBar 内文案等于「确认」的 button;抓 setProductV2 请求解码 productInfo 坐实落库。
- 校验:重开编辑框,数 .fa-upload-list-item 与 CDN 图、回读卖点/详情。

二-b、发现其它 SKU(list_products.js)

套到更多产品前,先列出后台全部产品的 id/名称/编码,把目标条目抄进 configs.json 即可批量绑定:

node scripts/list_products.js
# 输出每行: {&quot;id&quot;:13,&quot;name&quot;:&quot;冰嘎精酿啤酒11°P瓶装456ml*12&quot;,&quot;code&quot;:&quot;BGPJ-11P-456ML-12&quot;,&quot;imgInList&quot;:0}
# 并保存 &lt;WM_OUT&gt;/product_list.json

> 实测:aluo01 账号(siteId=6)当前仅有 2 款产品(id 13 啤酒、id 11 果汁),均已由本 skill 绑定完成。
> 新增产品后重跑本命令即可拿到新 id。

三、凭据与运行环境

  • 需要登录态:state.json(Playwright context.cookies() 导出),含 _TOKEN 等 cookie。从浏览器导出或让 session 工具落盘。
  • getAccessKey 的 _TOKEN 优先从 state.json cookies 取 _TOKEN,缺失时回退 process.env.WM_TOKEN。
  • Chromium:用 playwright-core + 本地 Chrome 路径(env WM_CHROME,默认 C:/Users/Administrator/.agent-browser/browsers/chrome-152.0.7977.82/chrome.exe)。
  • 脚本内必须 delete 所有 proxy 环境变量(HTTP_PROXY 等),否则直连 404。
  • 路径可配:env WM_OUT(默认脚本旁 out/)。products/ 放本地待传图,state.json/accesskey.json 放 WM_OUT。

四、验证清单

  • [ ] FaiUpload 上传返回 上传成功 + data.p 含 s21i.faimallusr.com(图已进素材库)
  • [ ] 弹窗 已选择(N/50) 计数器 == 目标图数
  • [ ] 关闭弹窗后 .fa-upload-list-item 数 == N 且 CDN 图数 == N
  • [ ] 抓到 setProductV2,解码 productInfo.pic.length==N、productCode 非空、descInfo 有值
  • [ ] 重开编辑框回读一致(图片/卖点/详情)

五、易错速查

现象 根因 修法
分块 POST 404 fetch+FormData 拼 multipart 失败 改用 https.request 手工拼
getAccessKey rt:-2 误用 POST 改成 GET
弹窗点图计数器不变 合成 click / class 错 受信点击 item--content
保存后 pic:[] 文件 input 直传不回写 CDN 走素材弹窗选图
详情写不进 点了整段容器 tab 精确点 innerText===&#x27;详情介绍&#x27;
产品编码存空 input.value= 不触发 v-model 原生 setter + dispatch

六、安全

  • state.json / accesskey.json 含会话凭据,勿入库、勿外传;本 skill 包默认不随附这些文件。
  • _TOKEN 是会话令牌,过期需重新导出 state.json。
  • 操作会真实改写线上产品,先在小批量 SKU 验证再批量。

常见问题

5 问
答案由本站依据条目字段整理
webportal 商城产品编辑自动化怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_6af9f15b/webportal-mall-product-edit。安装方式为未标注。装完刷新技能列表或重开客户端。

webportal 商城产品编辑自动化支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

webportal 商城产品编辑自动化权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

webportal 商城产品编辑自动化收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

webportal 商城产品编辑自动化用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。