影刀RPA实操指南_电商订单自动对账与差异标记

影刀RPA实操指南:电商订单自动对账与差异标记

做电商的都知道,月底对账是噩梦。

平台后台导出的订单数据,要跟自己的 ERP 或表格里的数据对一遍,看看金额对不对、有没有退款、有没有异常订单。以前手动对账要半天,RPA 可以把这变成 5 分钟的事。

这篇文章给一套完整的对账自动化方案。


一、对账的本质------两个数据源的差集比对

对账的逻辑其实就一句话:

我有两份订单数据,找出不一致的地方。

展开就是三个问题:

  1. 哪些订单平台有、我这边没有?
  2. 金额对得上吗?
  3. 退款/售后状态一致吗?

拼多多店群自动化报活动上架!


二、数据准备------统一两边的格式

对账的第一步不是写逻辑,是让两边数据能"对齐"。

平台后台导出的字段 你自己的数据字段 对齐后的统一字段
订单编号 订单ID 订单号
实付金额(元) 结算金额 金额
订单状态 状态 状态
售后状态 退款状态 售后
python 复制代码
import pandas as pd

# 1. 读取两边数据
平台数据 = pd.read_excel(r"D:\对账\拼多多导出订单.xlsx")
内部数据 = pd.read_excel(r"D:\对账\ERP订单数据.xlsx")

# 2. 统一列名
平台数据 = 平台数据.rename(columns={
    "订单编号": "订单号",
    "实付金额(元)": "金额",
    "订单状态": "状态"
})

内部数据 = 内部数据.rename(columns={
    "订单ID": "订单号",
    ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/f84b820d94ec4df2bfaeae1e78f51d87.png#pic_center)

    "结算金额": "金额"
})

# 3. 统一金额格式(有的带¥有的不带)
平台数据["金额"] = 平台数据["金额"].astype(str).str.replace("¥", "").str.replace("¥", "").astype(float)
内部数据["金额"] = 内部数据["金额"].astype(float)

# 4. 去空格和不可见字符
平台数据["订单号"] = 平台数据["订单号"].astype(str).str.strip()
内部数据["订单号"] = 内部数据["订单号"].astype(str).str.strip()

print(f"平台数据:{len(平台数据)}条 | 内部数据:{len(内部数据)}条")

三、三步对账法

第一步:找缺失订单

python 复制代码
# 平台有,内部没有 → 可能漏录入了
平台独有 = 平台数据[~平台数据["订单号"].isin(内部数据["订单号"])]
# 内部有,平台没有 → 可能是测试订单或已删除
内部独有 = 内部数据[~内部数据["订单号"].isin(平台数据["订单号"])]

print(f"平台独有(漏录入):{len(平台独有)}条")
print(f"内部独有(多出的):{len(内部独有)}条")

第二步:核对金额

python 复制代码
# 合并两张表,按订单号对齐
合并 = pd.merge(平台数据, 内部数据, on="订单号", how="inner", suffixes=("_平台", "_内部"))

# 计算金额差
合并["金额差"] = abs(合并["金额_平台"] - 合并["金额_内部"])

# 找出金额不一致的
金额差异 = 合并[合并["金额差"] > 0.01]  # 0.01元以内的算系统误差,忽略

print(f"金额不一致:{len(金额差异)}条")
if len(金额差异) > 0:
    print(金额差异[["订单号", "金额_平台", "金额_内部", "金额差"]].head(10))

第三步:标记结果

python 复制代码
# 给每条订单打标记
def classify_order(row):
    """判断订单对账状态"""
    订单号 = row["订单号"]
    
    if 订单号 in 平台独有["订单号"].values:
        return "漏录入"
    if 订单号 in 内部独有["订单号"].values:
        return "多出"
    if 订单号 in 金额差异["订单号"].values:
        差 = 金额差异[金额差异["订单号"] == 订单号]["金额差"].values[0]
        return f"金额差异{差:.2f}元"
    return "正常"

平台数据["对账标记"] = 平台数据.apply(classify_order, axis=1)

# 统计
print(平台数据["对账标记"].value_counts())

四、生成对账报告

python 复制代码
# 生成差异明细表
report_path = r"D:\对账\对账报告_20260609.xlsx"

with pd.ExcelWriter(report_path, engine="openpyxl") as writer:
    # Sheet1: 汇总统计
    汇总 = pd.DataFrame({
        "项目": ["平台总订单", "内部总订单", "正常匹配", "漏录入", "多出", "金额差异"],
        "数量": [
            len(平台数据),
            len(内部数据),
            len(平台数据[平台数据["对账标记"] == "正常"]),
            len(平台独有),
            len(内部独有),
            len(金额差异)
        ]
    })
    汇总.to_excel(writer, sheet_name="汇总", index=False)
    
    # Sheet2: 漏录入明细
    平台独有.to_excel(writer, sheet_name="漏录入", index=False)
    
    # Sheet3: 金额差异明细
    金额差异.to_excel(writer, sheet_name="金额差异", index=False)
    
    # Sheet4: 全部标记结果
    平台数据.to_excel(writer, sheet_name="全部", index=False)

print(f"对账报告已生成:{report_path}")

五、发送对账通知

python 复制代码
# 汇总成通知消息
total = len(平台数据)
正常 = len(平台数据[平台数据["对账标记"] == "正常"])
漏录入 = len(平台独有)
多出 = len(内部独有)
金额异 = len(金额差异)

msg = f"""
📊 今日订单对账报告
时间:{当前日期}
━━━━━━━━━━━━━━━
总订单:{total}条
✅ 正常:{正常}条 ({正常/total*100:.1f}%)

[video(video-l6TBmaFO-1781074524910)(type-csdn)(url-https://live.csdn.net/v/embed/526817)(image-https://v-blog.csdnimg.cn/asset/1d3c3709da119dd8c13ab01e9b282520/cover/Cover0.jpg)(title-TEMU店群矩阵自动化运营核价报活动)]

❌ 漏录入:{漏录入}条
➕ 多出:{多出}条
💰 金额差异:{金额异}条
━━━━━━━━━━━━━━━
详情见:{report_path}
"""

发送企业微信通知(webhook_url, msg)

如果 漏录入 > 0 或 金额异 > 0:
    发送企业微信通知(webhook_url, "⚠️ 存在异常订单,请尽快处理!")

六、全自动化流程串联

把上述步骤用影刀串成一个完整流程:

复制代码
A: 浏览器打开平台后台 → 导出订单Excel → 下载到本地
B: 读取平台数据和内部数据 → Pandas合并比对
C: 生成对账报告Excel
D: 发送企业微信通知

关键细节

  • 平台导出文件名通常带时间戳,需要先获取下载文件夹里最新的 .xlsx 文件
  • 对账周期参数化,输入"2026-06-01"到"2026-06-09",方便按不同周期对账
  • 如果漏录入很多(超过10%),大概率是数据源有问题,加阈值告警

七、常见坑

金额精度问题 :浮点数对比别用 ==,用 abs(a-b) < 0.01 容忍 1 分钱误差。

订单号重复 :两边数据可能都有重复订单号(比如同一个订单的多个子单),先 drop_duplicates 或者按订单号+商品ID联合去重。

Excel 大文件性能:订单过万条时 Pandas 处理没问题,但写 Excel 会慢,可以只输出差异数据,全量数据存 CSV。

平台导出按钮不固定 :后台页面动不动就改版,导出按钮的 XPath 建议用文本匹配 //button[contains(text(),'导出')]//span[contains(text(),'下载报表')]


作者:林焱

本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。

相关推荐
linyanRPA1 天前
影刀RPA实操指南_淘宝天猫商品数据自动化采集
办公自动化·浏览器自动化·ai助手·rpa自动化·电商自动化·提效神器·店群自动化运营
linyanRPA1 天前
影刀RPA完全指南_流程备份与迁移完整操作
效率工具·浏览器自动化·影刀rpa·拼多多运营工具·爬虫自动化·提效神器·店群自动化运营
linyanRPA1 天前
影刀RPA实操指南_小红书笔记批量采集完整流程
效率工具·自动化脚本·电商运营·rpa自动化·爬虫自动化·店群自动化·店群自动化运营
linyanRPA1 天前
影刀RPA实操指南_京东商品数据自动化采集
电商运营·rpa自动化·拼多多运营工具·爬虫自动化·店群自动化·提效神器·店群自动化运营
linyanRPA1 天前
影刀RPA完全指南_非技术人员学习自动化的心智模型
效率工具·浏览器自动化·自动化脚本·电商自动化·拼多多运营工具·爬虫自动化·店群自动化运营
linyanRPA2 天前
影刀RPA店群自动化实战:多店铺活动自动报名与促销管理架构设计
运维·自动化·办公自动化·rpa·python脚本·爬虫自动化·店群自动化
Solo社区2 天前
不做通用AI助手,先做好一个垂直Agent
agent·ai助手·独立开发者
linyanRPA2 天前
影刀RPA店群自动化实战:多店铺商品批量类目迁移与属性映射系统设计
办公自动化·效率工具·python脚本·浏览器自动化·rpa自动化·电商自动化·店群自动化