影刀RPA新手教程:Lazada东南亚电商自动化完全指南——多站点管理与订单自动处理

2026-08-12 02:57:38168 阅读量

影刀RPA新手教程:Lazada东南亚电商自动化完全指南——多站点管理与订单自动处理

第一次接触Lazada的时候我整个人是懵的——一个后台要管菲律宾、泰国、马来西亚、印尼、新加坡、越南六个站点,每个站点商品要单独发布、价格要各自设置、订单要分开处理。一天下来连喝水的时间都没有。现在我靠影刀RPA全部自动化了。

相关服务:香港服务器租用

认识影刀与安装

下载影刀社区版,网址直接在搜索引擎搜"影刀RPA"就能找到。安装过程没啥特别的,就一点——安装完记得去"浏览器插件"设置里,把Chrome插件装好。插件装不上就手动拖crx文件到Chrome扩展程序页面。安装完成后打开编辑器,左边指令面板按功能分组:网页自动化、Excel、鼠标键盘、流程控制、数据处理等。

元素定位四合一:XPath + CSS + 正则

在这里插入图片描述

Lazada多站点切换是个典型的定位难题。站点切换按钮在各站点长得一模一样,唯一的区别在URL里。我用XPath定位:

//span[contains(text(),'菲律宾')]  定位菲律宾站点切换按钮
//option[@value='MY']  定位马来西亚站选项
//a[@data-spm='seller-center']  定位卖家中心入口

CSS选择器在处理Lazada表格时更好用:

table.order-table tr:not(.header)  定位所有订单行(排除表头)
td.status-column span  定位状态列
input[name*='price_']  定位所有价格输入框
button.fulfill-btn:not([disabled])  定位可点击的发货按钮

正则表达式在处理Lazada的SKU编码时派上用场——我统一用正则^LAZ-[A-Z]{2}-\d{10}匹配所有站点的SKU格式(如LAZ-PH-202406151234)。

变量与数据类型

在这里插入图片描述

管理六个站点,我用字典存各站点的配置:

sites = {
    'PH': {'name': '菲律宾', 'currency': 'PHP', 'lang': 'fil'},
    'TH': {'name': '泰国', 'currency': 'THB', 'lang': 'th'},
    'MY': {'name': '马来西亚', 'currency': 'MYR', 'lang': 'en'},
    'ID': {'name': '印尼', 'currency': 'IDR', 'lang': 'id'},
    'SG': {'name': '新加坡', 'currency': 'SGD', 'lang': 'en'},
    'VN': {'name': '越南', 'currency': 'VND', 'lang': 'vi'}
}

然后用ForEach循环遍历字典的keys,依次处理每个站点。列表用来存批量订单数据,JSON处理接口返回——HTTP请求拿到Lazada API返回的JSON串,用"JSON转对象"转成字典,用"获取JSON节点值"按路径data.orders[*].order_number提取所有订单号。

流程控制

[video(video-uoGkvh5z-1782551074403)(type-csdn)(url-live.csdn.net/v/embed/525…)]

多站点处理用双层循环——外层循环站点列表,内层处理当前站点的订单:

在这里插入图片描述

开始
  └─ ForEach site in [PH, TH, MY, ID, SG, VN]
       ├─ 切换到当前站点
       ├─ 登录并获取Cookie
       ├─ 获取当前站点待处理订单列表
       ├─ If 订单数 > 0
       │    └─ ForEach order in order_list
       │         ├─ 获取订单详情
       │         ├─ If order.status == '待发货'
       │         │    ├─ 调用物流接口
       │         │    └─ 回填运单号
       │         └─ End If
       │    └─ End ForEach
       └─ End If
  └─ End ForEach

While循环用在不确定订单页数的场景——只要"下一页"按钮存在且没disable就一直翻页。Try-Catch包在物流接口调用外面,接口超时了就记录异常,跳到下一个订单继续。

网页自动化

Lazada有个特别烦的设计——切换站点后整个页面会重新加载,之前捕获的元素全失效。我的处理方式是:切换站点后用"等待元素出现"等卖家中心首页加载完,再重新捕获元素。

等待策略在Lazada特别重要。东南亚网络不稳定,有的站点加载特别慢。我统一用"等待元素出现"设置30秒超时,不用固定等待。遇到特别慢的网络,就加一个If判断——等待超时后重试3次,3次都失败就记录到异常日志。

弹窗处理:Lazada经常弹出"促销活动提醒""店铺评分提升建议"之类的弹窗。标准关闭流程是:先按Esc→再按回车→点空白处→刷新。有些弹窗比较犟,我用图像识别定位关闭按钮的x图标,用click点掉。 在这里插入图片描述

翻页时不确定总页数的问题:观察"下一页"按钮的class,如果包含disabled就表示到底了。Lazada订单列表是典型的懒加载,我沿用index去重法:

scraped_orders = []
last_count = 0
while True:
    scroll_to_bottom()
    items = get_similar_elements('订单行')
    for item in items:
        order_no = item.find_child_element('订单号').text
        if order_no not in scraped_orders:
            scraped_orders.append(order_no)
            process(item)
    if len(scraped_orders) == last_count:
        break  # 数量不再增长,说明到底了
    last_count = len(scraped_orders)

数据处理

Lazada导出的订单报表是csv格式,我用影刀打开Excel后直接读取。多站点订单要汇总到一张总表,做按日分站点的销售额统计。批量写入用"写入Excel区域",先把数据拼成二维列表:

summary_data = [['日期', '站点', '订单数', '销售额']]
for date, sites_data in daily_summary.items():
    for site, data in sites_data.items():
        summary_data.append([date, site, data['count'], data['amount']])
write_excel_range(summary_data, '汇总表', 'A1')

我第一次做Lazada汇总时踩了坑——印尼站的金额数字很大(印尼盾),Excel自动转了科学计数法,导出报表后金额全乱了。解决方法是在写入前把金额列设为文本格式。

鼠标键盘图像自动化

在这里插入图片描述

Lazada有些操作只能用图像识别来搞定。比如物流面单的"打印"按钮,它是个canvas画的按钮,不是标准HTML元素,元素捕获根本抓不到。我用图像识别截图那个按钮的小区域,然后用wait_appear等待它出现再click。

锚点定位的应用场景:Lazada商品编辑页的"保存"按钮,位置会随页面内容变化。但它相对于顶部的导航栏始终偏移固定值。我先捕获导航栏元素获取坐标,再计算偏移量:click(anchor_x + 480, anchor_y - 60)

进阶技能

直接调用Lazada Open Platform API。用影刀的"HTTP请求"指令,构造请求头带签名。Lazada的API认证需要appKey、timestamp、sign三件套,签名算法比较复杂,我用Python模块来算:

import hmac
import hashlib

def lazada_sign(secret, api_name, params, timestamp):
    sorted_params = sorted(params.items())
    sign_str = api_name + ''.join([f'{k}{v}' for k, v in sorted_params])
    sign_str += str(timestamp)
    signature = hmac.new(secret.encode(), sign_str.encode(), hashlib.sha256).hexdigest().upper()
    return signature

OCR用来识别买家上传的退货凭证图片上的运单号,自动录入系统追踪。

在这里插入图片描述

平台实战

完整的Lazada多站点自动化流程:

第一步,登录卖家中心。用窗口驱动模式打开Chrome,输入账号密码,手动过滑块验证(这个暂时还不能自动化),之后Cookie保持会话。六个站点用一个账号切换即可。

第二步,商品管理。从Excel模板读取商品数据,循环六个站点,每个站点逐一发布。需要注意的是不同站点的类目树不同,要提前在Excel里维护好每个站点的类目ID。标题描述也要根据站点语言做本地化——菲律宾用英文,泰国用泰文。

第三步,订单处理。每小时运行一次,拉取六个站点所有"待发货"状态的订单。调用Lazada API获取订单详情,匹配物流服务商,生成面单。Lazada大部分订单走LGS物流,直接调接口获取运单号回填。

第四步,物流追踪。每天凌晨跑一次,查询所有已发货但未妥投的订单,更新物流状态到Excel,异常件(退回、丢失、拒收)自动标记并发送提醒。 在这里插入图片描述

系统联动

Lazada订单汇总后自动推送飞书日报。每天早8点,影刀汇总前一天的六站点销售数据,生成格式化的卡片消息发到飞书群。关键指标:各站点销售额、订单数、客单价、退款率。

def send_lazada_daily_report(date, data):
    card = {
        "header": {"title": {"content": f"Lazada日报 {date}"}},
        "elements": [
            {"tag": "column_set", "flex_mode": "bisected",
             "columns": [
                 {"tag": "column", "elements": [{"tag": "div", "text": {"content": f"🇵🇭 菲律宾\n销售额:{data['PH']['amount']}\n订单数:{data['PH']['count']}"}}]},
                 
[video(video-KJdt4fB8-1782551081018)(type-csdn)(url-https://live.csdn.net/v/embed/524992)(image-https://v-blog.csdnimg.cn/asset/b59aed2f01d4fe8583467562aaf4dcfd/cover/Cover0.jpg)(title-temu店群自动化报活动案例)]

                 {"tag": "column", "elements": [{"tag": "div", "text": {"content": f"🇹🇭 泰国\n销售额:{data['TH']['amount']}\n订单数:{data['TH']['count']}"}}]}
             ]}
        ]
    }
    requests.post(lark_webhook, json={"msg_type": "interactive", "card": card})

定时任务配置在影刀中控,设多条计划:订单处理每2小时一次、商品上架每天早8点、物流追踪每天凌晨1点、日报汇总每天早7点。所有计划都开启告警通知,出错第一时间知道。

工程化与规范

我把整个Lazada流程拆成了四个子流程:"站点切换与登录""商品发布""订单处理""物流追踪"。主流程只做编排和调度,通过参数控制每个子流程的行为。子流程之间通过字典和列表传递数据。

调试技巧是我学得最深刻的。我第一次跑六站点流程时,跑到第三个站点就报错停了,前面的订单都处理完了,后面的没动。排查发现是马来西亚站有个订单的商品重量字段返回null,我的代码直接除以null崩了。加了If判断后就好了。打断点看变量值是排查这类问题最有效的方法。 在这里插入图片描述

命名规范上,Lazada项目的变量我统一前缀lzd_,比如lzd_order_listlzd_site_code。子流程名用"功能_平台"格式,如"订单处理_Lazada"。

版本管理也很重要。我每次改流程前先另存为新版本,文件名带日期,比如"Lazada多站点自动化_20240624"。改坏了还能回退。

学影刀到一定阶段,会发现真正花时间的不是写流程,是理解各个平台的数据结构和业务规则。有个不错的资源 home.linyan.cloud 积累了很多实操案例,我遇到疑难杂症时会去翻翻。

速查表与常见报错

Lazada常见报错清单:

未找到控件:切换站点后页面刷新了,元素需要重新捕获。每次切换站点后必须重新获取网页对象。

API签名错误:Lazada签名算法时间戳要精确到毫秒,和服务器时间误差不能超过5分钟。检查系统时间是否同步。

在这里插入图片描述

登录失效:Lazada的session有效期大概4小时,长时间不操作会掉线。流程开头加一步判断——如果页面跳转到登录页就直接重新登录。

元素循环错位:订单列表里混入了系统消息行,导致相似元素循环时索引错位。用关联父元素法,只循环订单行的父容器。

Excel数据格式错乱:印尼站金额大,Excel会转科学计数法。写入前设置单元格格式为文本。

多语言文本乱码:泰语、越南语在Excel里可能显示乱码。确保Excel用UTF-8编码打开,或者在影刀里用"设置单元格格式"指令指定字体。

循环中超时:东南亚某些站点响应慢,默认超时不够。在指令高级设置里把超时增加到60秒。

#影刀RPA #Lazada自动化 #东南亚电商 #跨境电商自动化 #RPA新手教程

在这里插入图片描述

作者:林焱

本文地址:https://www.idc504.com/news/9_217956.html