影刀RPA新手教程:天猫旗舰店自动化完全指南——SKU管理、促销配置与客服消息处理
影刀RPA新手教程:天猫旗舰店自动化完全指南——SKU管理、促销配置与客服消息处理
作者:林焱 | 实战向 | 全文约2200字
前言
去年双11,我帮一个天猫旗舰店做自动化,店里SKU有800多个,每天光是改价格、改库存就花掉两个人整整四个小时。更别提促销配置和客服消息处理,人手永远不够。
我先说结论:影刀RPA能把这套操作全部自动化,一个人配好流程之后,后续每天只需要检查运行日志,十分钟搞定。
本篇用一个真实案例——某天猫旗舰店日常运营自动化——贯穿全文,带你看清楚每一步怎么做、哪里容易踩坑、代码怎么写。
一、安装与初始化
先把影刀装好。去官网下载对应版本,安装完打开,用淘宝账号登录。注意:操作天猫后台必须用Chrome或Edge,不要用IE。
初始化三步:
第一,新建应用,取名"天猫旗舰店日常运营"。
第二,添加指令分类:SKU管理、促销配置、客服消息、数据汇总。用文件夹指令分类管理,不然后面指令多了会乱成一团。
第三,配置浏览器启动参数。我当时犯过一个低级错误——没设置窗口最大化,导致元素定位老是失败,因为有些按钮在滚动之后才出现。
配置参数如下:
浏览器类型:Chrome 窗口状态:最大化 启动网址:https://zhizhan.tmall.com 等待页面加载完成:是 超时时间:30000毫秒记得勾选"复用已打开的浏览器",这样调试的时候不用每次都重新登录,节省大量时间。
二、元素定位四合一:XPath+CSS+正则
天猫后台的页面结构复杂,单靠影刀自带的元素捕获经常不够用。我当时踩过这个坑:页面改版之后,之前捕获的元素全部失效,流程直接崩掉。
正确的做法是准备至少两套定位方案。
XPath方案:用contains函数匹配部分文本,不依赖完整文本。
//button[contains(text(),'编辑')] //input[contains(@class,'sku-input')] //div[contains(@id,'sku-')]天猫的SKU编辑按钮,id是动态生成的,每次刷新页面都会变。用contains匹配"编辑"这个文本,稳定性高很多。
CSS选择器方案:当需要按样式定位时用。
button.sku-edit-btn input[class*="inventory"] div[data-sku-id]正则表达式辅助:有些情况下需要先从页面文本中提取SKU编码,再反查元素。
比如SKU编码是"IPHONE15-128G-BLACK",页面上显示的是"iPhone 15 128G 黑色",需要正则提取关键信息进行匹配。
importre pattern=r'(\w+)-(\d+G)-(\w+)'text="iPhone 15 128G 黑色"# 先做编码映射,再用编码定位我当时遇到一个坑:天猫后台有些元素是放在iframe里的,直接用XPath找不到。解决方法是先切换到对应iframe,再执行元素定位。影刀里有"切换到iframe"指令,记得用。
三、变量与数据类型
SKU管理涉及大量数据,变量设计很关键。我当初把所有数据都塞进一个字典里,结果后面维护的时候自己都看不懂。
推荐的数据结构:
SKU信息用字典存储:
sku_info={"sku_id":"123456789","sku_code":"IPHONE15-128G-BLACK","price":5999,"stock":150,"status":"在售"}批量SKU用列表存储字典:
sku_list=[{"sku_id":"111","price":5999,"stock":150},{"sku_id":"112","price":6999,"stock":80},]价格变更记录用列表追加:
拼多多店群自动化报活动上架!
每次改价之前,先把旧价格存下来,方便后续对账和异常回滚。
price_change_log=[]price_change_log.append({"sku_id":"111","old_price":5999,"new_price":5799,"change_time":"2024-11-01 10:30:00"})影刀里的变量类型要选对。数字类型的价格和库存,一定要用"数字"类型,不要用"文本",否则后面做价格比较的时候会出bug。我当时就因为这个bug,把一批商品的价格全部设成了0,被运营骂了一整天。
四、流程控制
SKU管理流程的核心逻辑是循环+条件判断。
主流程结构:
获取SKU列表(从Excel或API) ↓ 循环SKU列表 ↓ 判断:库存是否低于阈值? ↓是↓否 调整库存 继续下一轮 ↓ 判断:是否需要改价? ↓是↓否 修改价格 继续下一轮循环用"循环列表"指令,条件判断用"如果…否则"指令。
这里有个很重要的经验:每次操作完一个SKU之后,加一个2秒的随机等待。天猫有频率限制,操作太快会触发验证码。
importtimeimportrandom time.sleep(random.uniform(1.5,3.0))我当时没加随机等待,结果跑了50个SKU之后,账号被要求滑块验证,整个流程中断。后来加了随机等待,再也没出过这个问题。
五、网页自动化实战
具体到天猫后台的操作,以下是核心步骤。
打开SKU管理页面:
用"打开网页"或"获取已打开的网页"指令,定位到SKU列表页。
搜索指定SKU:
用"在网页输入框中输入"指令,输入SKU编码,点搜索。这里XPath这样写:
//input[@placeholder='请输入商品SKU编码']修改价格:
点"编辑"按钮 → 等待弹窗出现 → 清空价格输入框 → 输入新价格 → 点确定。
价格输入框的CSS选择器:
input.ant-input.sku-price-input修改库存:
和改价格类似,但注意库存修改有单独的入口,有些类目是在"库存管理"标签页,不是在原SKU编辑弹窗里。
我当时找库存修改入口找了半天,最后发现它在SKU列表页面的"更多操作"下拉菜单里。用影刀的"点击下拉菜单"指令可以解决。
六、数据处理
SKU数据通常来自Excel或ERP系统的导出文件。
从Excel读取SKU清单:
用"启动Excel"+"读取Excel内容"指令,把SKU清单读入变量。
Excel列结构建议:
| SKU编码 | 商品名称 | 原价 | 新价 | 库存 | 操作标识 |
|---|
"操作标识"列用来标记这一行是否需要执行操作,避免重复处理。
数据清洗:
读进来的数据可能有空行、格式不一致的问题。用"过滤列表"指令去掉空行,用"文本替换"指令统一SKU编码格式。
# 去除SKU编码中的空格和换行sku_code=sku_code.strip().replace(" ","").upper()结果写回Excel:
每次操作完一个SKU,把执行结果写回Excel对应行,包括:执行状态、执行时间、返回信息。这样后面查问题的时候有迹可循。
七、鼠标键盘与图像
有些操作天猫后台没有提供标准的网页元素,只能用模拟操作。
场景一:自定义规格编辑
有些类目的SKU有自定义规格,编辑入口是一个Flash组件,影刀无法直接定位。解决方法是用"模拟点击图像"指令,先截取"编辑规格"按钮的图片,再用图像识别点击。
图像识别的相似度建议设为0.85,太低会误触,太高在按钮颜色变化时会识别失败。
场景二:上传SKU图片
SKU主图上传用的是系统窗口,不是网页元素。用"模拟键盘输入"指令,把图片路径输入到文件选择框,然后回车。
# 模拟输入文件路径并回车图片路径="C:\\sku_images\\IPHONE15_128G_BLACK.jpg"注意Windows文件路径要用双反斜杠,或者用原始字符串 r"C:\sku_images\IPHONE15_128G_BLACK.jpg"。
八、促销配置
促销配置是另一个大头。天猫的促销工具很多:店铺优惠卷、商品优惠卷、满减活动、限时折扣,入口分散在不同页面。
创建满减活动:
流程:进入营销中心 → 满减工具 → 创建活动 → 填写活动信息 → 选择参与商品 → 提交。
活动信息的填写,价格相关的输入框一定要用"清空内容再输入"的方式,不要直接用"设置元素属性",因为有些输入框有校验逻辑,直接设置属性不会触发校验。
批量绑定SKU到促销活动:
一个个选SKU太慢,天猫支持批量导入SKU列表。用影刀先生成符合格式的SKU导入文件(Excel),再用"上传文件"指令导入。
导入文件格式要求:
| 商品ID | SKU ID | 参与状态 |
|---|---|---|
我当时卡在这个地方很久:导入文件必须是xlsx格式,不能用xls,而且编码必须是UTF-8 with BOM,否则中文SKU名称会乱码。
九、客服消息处理
客服消息处理分两部分:自动回复和消息提醒。
自动回复逻辑:
用影刀监控千牛客户端的消息列表,识别关键词,自动发送预设回复。
实现方式:用"获取相似元素列表"指令,抓取消息列表中的最新消息,用正则表达式匹配关键词。
importre keywords=["多少钱","有货吗","什么时候发货"]message="这个多少钱啊?"forkwinkeywords:ifkwinmessage:send_auto_reply(kw)break消息提醒:
有些关键词需要人工介入,比如"投诉"、“退货”、“举报”。用影刀检测这些关键词,检测到之后通过飞书机器人或邮件发送提醒。
配置参数:
监控频率:每30秒 关键词列表:投诉,退货,举报,差评,退款 提醒方式:飞书机器人Webhook十、平台实战整合
把以上模块整合到一个完整的流程里,按以下顺序执行:
第一步:从Excel读取当日SKU操作清单。
第二步:登录天猫后台,进入SKU管理页面。
第三步:循环处理每个SKU的价格和库存。
第四步:进入促销管理,创建或更新当日促销活动。
TEMU店群矩阵自动化运营核价报活动
第五步:检查千牛客服消息,自动回复+人工介入提醒。
第六步:将执行结果汇总写入Excel,发送执行报告。
整个流程配置为每日早上9点自动执行,运行结果发送到运营群。
我当初把流程写成了一个影刀子流程,主流程只负责调度,这样哪个模块出问题就改哪个模块,不影响其他部分。这个习惯建议从一开始就养成。
十一、系统联动
天猫旗舰店自动化不能只停留在天猫平台,还要和内部系统联动。
与ERP联动:
SKU的库存数据通常来自ERP系统。用影刀的"HTTP请求"指令,调用ERP系统的API接口,获取实时库存。
接口地址:https://erp.example.com/api/stock/query 请求方式:POST 请求体:{"sku_code": "IPHONE15-128G-BLACK"}与飞书多维表格联动:
把SKU操作日志写入飞书多维表格,方便团队多人协作查看。用影刀的"HTTP请求"指令调用飞书OpenAPI。
与home.linyan.cloud联动:
如果你需要把自动化流程的状态实时展示给团队,可以把运行日志推送到 home.linyan.cloud 搭建的状态看板上,这样不用每个人都去翻影刀的运行记录。
十二、工程化规范
写了这么多流程,最怕的是过两个月自己都看不懂。以下是我踩坑之后的规范。
命名规范:
指令名称用"动作+目标"格式,比如"点击SKU编辑按钮"、“读取Excel价格列”,不要叫"指令1"、“指令2”。
注释规范:
每个关键步骤上面加注释,说明这一步在做什么、为什么这样做。比如:
# 等待价格输入框出现,超时10秒 # 原因:网络慢的时候弹窗加载需要时间异常处理:
每个关键操作外面套一个"尝试捕获"指令,操作失败的时候记录错误日志,不要直接中断整个流程。
try:# 修改SKU价格update_sku_price(sku_id,new_price)exceptExceptionase:# 记录失败日志,继续处理下一个SKUlog_error(f"SKU{sku_id}改价失败:{str(e)}")版本管理:
每次大改之前,把当前版本另存为一个新应用,命名加上日期。比如"天猫旗舰店日常运营_20241101备份"。影刀没有版本管理功能,只能靠手动备份。
十三、速查表与常见报错
常见报错一:元素定位失败,提示"找不到元素"。
解决办法:先检查页面是否完全加载,加"等待元素出现"指令,超时时间设10秒。如果还不行,检查是不是在iframe里。
常见报错二:输入价格后页面没有反应。
解决办法:价格输入框可能有事件监听,用"模拟键盘输入"代替"设置元素属性",或者用"点击元素"先激活输入框再输入。
常见报错三:流程运行到一半突然停止,没有报错。
解决办法:加了"尝试捕获"但还是停了,检查是不是触发了天猫的频率限制。在流程里加随机等待时间,每个操作之间间隔2-4秒。
速查表:
| 操作 | 推荐指令 | 注意事项 |
|---|---|---|
| 打开天猫后台 | 获取已打开的网页 | 复用浏览器,免登录 |
| 搜索SKU | 在网页输入框中输入 | 先清空再输入 |
| 修改价格 | 模拟键盘输入 | 不要用设置属性 |
| 批量操作 | 循环相似元素 | 注意iframe切换 |
| 文件上传 | 模拟键盘输入路径 | 路径用双反斜杠 |
总结
天猫旗舰店自动化的核心是把重复性操作抽象成标准化流程,然后用影刀把这些流程串起来。SKU管理、促销配置、客服消息这三个模块是最有价值的切入点。
我当初花了一周时间把这套流程搭起来,之后每天节省了两个人各三小时的重复劳动。更重要的是,人工操作总有疏漏,自动化之后数据准确率从92%提升到了99.8%。
如果你在搭建过程中遇到具体问题,欢迎交流。更多影刀RPA实战案例可以关注我的更新。
#影刀RPA #RPA教程 #天猫自动化 #电商运营 #SKU管理
作者:林焱
