影刀RPA新手教程:Shopify跨境电商自动化完全指南——商品同步订单处理与库存管理
作者:林焱
案例主线:阿杰的Shopify店铺全自动运营
阿杰经营一家Shopify跨境饰品店,面向欧美市场,每天要同步20-30款新品到Shopify,处理15-25个海外订单,并实时更新库存。人工操作每天耗时5小时以上。本教程用影刀RPA搭建Shopify全链路自动化系统。
一、认识影刀与安装配置
影刀RPA是零代码自动化工具,支持网页自动化、桌面软件自动化、Excel处理、HTTP请求等核心能力,特别适合Shopify等跨境电商平台的自动化需求。
Shopify环境准备
Shopify后台地址为admin.shopify.com,需要在Chrome浏览器中操作。在影刀设置中,将默认浏览器设置为Chrome,并开启"自动携带登录态"选项。
首次需要手动登录Shopify后台,建议使用"保持登录"选项。登录后Cookie有效期为30天,是主流电商平台中最长的。
安装配置要点
下载影刀安装包,安装路径必须为纯英文,例如C:\YingdaoRPA\。安装完成后重启电脑,确保浏览器插件正确加载。首次打开影刀时,按照向导完成设备激活和账号登录。
二、元素定位四合一
Shopify后台使用Ruby on Rails + React混合架构,元素定位需要四种方式组合使用。
1. 智能匹配
Shopify后台的"Products"、“Orders”、"Customers"等主导航按钮非常稳定,优先使用智能匹配。捕获后无需特殊设置,Shopify的后台元素ID通常是稳定的。
2. XPath定位
产品列表中的"Edit"按钮可以使用XPath按文字定位:
//a[text()='Edit'] //button[contains(text(),'Add product')]Shopify常用XPath语法:
//input[@name='product[title]']按name属性定位//textarea[@id='product-description']按ID定位描述框//select[@name='product[type]']按name定位类型下拉框
3. CSS选择器
Shopify后台的CSS类名非常稳定,使用CSS选择器是最优选择:
input[name="product[title]"] textarea#product-description button.btn-primary4. 图像识别
Shopify的某些图标按钮(如"拖拽排序")没有文字标识,使用图像识别。截取按钮截图,使用"点击图像"指令,设置相似度0.85。
实战:定位Shopify产品变体
产品变体(如不同颜色、尺寸)是动态生成的。正确做法是:先点击"Add another option"按钮,等待DOM更新完成后,使用//input[contains(@name,'options')]定位最新生成的输入框。
三、变量与数据类型
阿杰的产品数据来自国内供应商的Excel表,需要转换为Shopify所需的格式。
数据表结构
拼多多店群自动化报活动上架!
使用"启动Excel"指令打开产品表,字段包括:产品名称(中英文)、描述(中英文)、价格(美元)、库存数量、变体属性、图片URL、重量。使用"读取Excel内容"指令读取A2到H200区域,保存为数据表变量product_table。
JSON数据处理
Shopify Admin API返回的数据是JSON格式。使用"解析JSON"指令将响应解析为字典。访问嵌套字段语法:response["product"]["variants"][0]["price"]。
货币转换
人民币转美元需要实时汇率。使用"发送HTTP请求"指令调用免费汇率API:
GET https://api.exchangerate-api.com/v4/latest/CNY从响应中解析conversion_rates.USD字段,得到1人民币兑美元的汇率。
四、流程控制
条件判断
Shopify产品发布需要根据库存状态决定。使用"如果…否则"指令:
如果 库存数量 > 0 执行:设置产品状态为"Active",跟踪库存 否则 执行:设置产品状态为"Draft",不跟踪库存 结束如果循环遍历
批量上传产品使用"循环Excel内容"指令。对每个产品,执行:填写产品信息、上传图片、设置变体、保存并发布。
异常重试机制
Shopify API有速率限制(每秒2次请求)。使用"For次数循环"配合"尝试捕获错误"实现重试:设置最大重试3次,每次重试前等待2秒。
五、网页自动化——商品同步全流程
登录态保持
Shopify登录后Cookie有效期为30天。使用"获取浏览器Cookie"指令,将Cookie保存为JSON格式到本地文件:C:\yingdao_workspace\shopify\cookies.json。每次运行前用"设置浏览器Cookie"指令注入。
产品信息填写
进入Shopify后台-Products-Add product页面。按字段依次填写:
- 产品标题:使用"在网页输入框中输入"指令,输入Excel中的英文产品名
- 产品描述:输入英文描述(需要提前翻译)
- 产品价格:输入美元价格
- 库存数量:输入库存
- 产品图片:点击"Add images"按钮,上传本地图片或输入图片URL
每个输入框填写后等待500毫秒,避免页面响应不及时导致内容丢失。
图片上传实战
Shopify支持图片URL上传和本地上传。使用"点击元素"指令点击"Add images"按钮,然后使用"在输入框中输入"指令,将图片URL填入弹窗中的URL输入框,按回车确认。
如果使用本地上传,需要将图片文件路径填入隐藏的file input元素,然后触发change事件。
六、数据处理
中英文翻译
产品描述需要从中文翻译为英文。使用"发送HTTP请求"指令调用免费翻译API(如Google Translate API或DeepL免费版):
POST https://translation.googleapis.com/language/translate/v2 Headers: Content-Type: application/json Body: { "q": "{{中文描述}}", "target": "en", "format": "text" }价格计算
使用"计算表达式"指令,将人民币进货价转为美元售价:
美元售价 = (人民币进货价 * 汇率 * 1.35) + 国际运费计算结果使用"四舍五入"指令保留2位小数。
变体数据处理
Shopify变体需要生成所有组合。使用"Python脚本"指令生成变体组合:
importitertoolsdefgenerate_variants(options):# options格式: {"Color": ["Red","Blue"], "Size": ["S","M","L"]}keys=list(options.keys())values=list(options.values())combinations=list(itertools.product(*values))variants=[]forcomboincombinations:variant=dict(zip(keys,combo))variants.append(variant)returnvariants七、鼠标键盘图像自动化
处理Shopify弹窗
Shopify偶尔弹出"Try Shopify Payments"等营销弹窗。使用"按键盘按键"指令发送Esc键关闭弹窗。在关键操作前先发送一次Esc。
页面滚动
产品编辑页面较长时需要滚动。使用"执行JavaScript"指令执行滚动:
function(element,input){window.scrollTo(0,document.body.scrollHeight);return"滚动完成";}图像识别确认
产品保存成功后会显示"Product was successfully saved"的Toast提示。截取该提示的图片,使用"查找图像"指令确认保存是否成功。
八、进阶技能
定时同步
阿杰希望每小时同步一次供应商的新产品。在影刀"计划任务"中新建定时任务,触发方式选择"按间隔执行",间隔设置为60分钟。
多店铺管理
如果同时经营多个Shopify店铺,需要管理多套Cookie。在Excel配置表中添加"店铺名称"和"Cookie文件路径"两列,循环中根据当前行读取对应Cookie文件并注入。
邮件通知
产品同步完成后,使用"发送邮件"指令,将同步汇总发送给阿杰。邮件内容包含:同步成功数、失败数、失败原因列表。
九、平台实战——订单处理自动化
订单抓取
进入Shopify后台-Orders页面。使用"循环网页相似元素"指令,遍历订单列表中的每一行。对每个订单,使用"获取网页元素内容"指令读取:订单号、产品名称、买家姓名、收货地址、支付金额、下单时间、订单状态、快递单号。
订单状态处理
使用"获取元素属性"指令,读取订单状态单元格的内容:
Unfulfilled:未发货,需要打印快递单并发货Fulfilled:已发货,无需处理Partially fulfilled:部分发货,需要检查Refunded:已退款,记录到退款表
快递单自动生成
Shopify支持通过API创建快递单。使用"发送HTTP请求"指令,POST请求到Shopify Fulfillment API:
TEMU店群矩阵自动化运营核价报活动
POST https://your-shop.myshopify.com/admin/api/2023-10/orders/{{order_id}}/fulfillments.json Headers: Content-Type: application/json X-Shopify-Access-Token: {{access_token}} Body: { "fulfillment": { "location_id": 123456, "tracking_number": "{{tracking_no}}", "tracking_company": "UPS" } }十、系统联动
Excel订单报表
每天自动生成订单报表。使用"写入Excel内容"指令,在订单报表中追加一行:日期、订单号、产品名、买家、金额、状态、快递单号。
库存自动同步
当Shopify有订单产生时,需要同步扣减供应商处的库存。使用"发送HTTP请求"指令调用供应商API,更新库存数量。
企业微信通知
有新订单时,使用"发送企业微信消息"指令,向运营群发送新订单通知。消息内容包含:订单号、产品名、金额、买家国家。
十一、工程化与规范
应用结构规范
规范的应用结构:配置区(读取配置、校验Cookie)、主流程区(产品同步、订单处理、库存管理)、异常处理区(错误捕获与记录)、收尾区(生成报表、发送通知)。
敏感信息管理
Shopify Private App的API密钥、访问令牌等敏感信息,必须存储在外部配置文件中,不能硬编码在应用里。使用"读取配置文件"指令从INI文件读取配置。
配置文件示例(shopify_config.ini):
[Shopify] shop_name=your-shop-name access_token=shppa_your_token_here api_version=2023-10  [ExchangeRate] api_key=your_api_key_here运行日志
使用"写入日志"指令记录关键操作。日志文件按日期命名,保存在C:\yingdao_logs\shopify\目录下。
十二、速查表与常见报错
常见报错速查
| 报错信息 | 原因 | 解决方法 |
|---|---|---|
| 429 Too Many Requests | API速率限制 | 增加请求间隔时间至1秒以上 |
| TimeoutException | 页面加载超时 | 增加等待时间至20秒 |
| ElementNotInteractable | 元素被遮挡 | 先滚动页面使元素可见 |
| Cookie失效 | 登录态过期 | 重新手动登录并更新Cookie |
| 403 Forbidden | API权限不足 | 在Shopify后台检查App权限 |
Shopify元素定位速查
# 产品标题 //input[@name='product[title]'] # 保存按钮 //button[@name='commit'] # 订单号链接 //a[contains(@href,'/orders/')] # 按文字定位 //span[text()='Add product']/* Shopify后台常用样式 */.btn-primary/* 主要按钮 */.input-large/* 大输入框 */.table-row/* 表格行 */Shopify API调用示例
// 获取产品列表GET/admin/api/2023-10/products.json// 创建新产品POST/admin/api/2023-10/products.json{"product":{"title":"Sample Product","body_html":"<p>Product description</p>","vendor":"Vendor Name","product_type":"Electronics","variants":[{"price":"19.99"}]}}// 获取订单列表GET/admin/api/2023-10/orders.json?status=any调试技巧
Shopify后台页面加载较慢,调试时建议将"等待元素出现"的超时时间设置为15秒以上。在"循环网页相似元素"内打断点会导致每次循环都暂停,建议将断点打在循环外部。
总结
通过本文搭建的Shopify全链路自动化系统,阿杰每天5小时的重复工作压缩到30分钟。系统自动完成商品同步、订单处理、库存管理,异常情况才需要人工介入。
影刀RPA让普通跨境电商卖家也能拥有企业级的自动化运营能力,把时间用在选品和营销上。
#影刀RPA #RPA教程 #Shopify #跨境电商 #自动化运营
作者:林焱