一、项目简介
本项目是基于影刀RPA(ShadowBot)平台开发的京东商家后台售后订单自动化处理解决方案。该方案专为京东商家设计,旨在帮助电商运营人员高效处理售后订单全流程,包括订单信息获取、客户期望设置、物流信息查询、数据统计分析等重复性工作,从而提高工作效率(预计提升70%以上),减少人工错误(降低60%以上误差率)。
项目采用模块化设计,通过多个流程文件协同工作,实现了售后订单处理的全流程自动化。系统支持自定义配置,可根据不同业务场景灵活调整,特别适用于京东平台上的中小商家售后订单管理。目前已覆盖京东商家后台的待收货、退货、换货、维修等全售后场景。
二、项目结构
xbot_robot/
├── ._selectorsV2.xml
│ ├── screenshot/
│ │ └── [多个截图文件]
│ └── workspace.state.json
├── __init__.py
├── __pycache__/
│ └── [编译后的Python文件]
├── imagesV2.xml
├── main.py
├── package.json
├── package.py
├── package.sigstore
├── process12.py
├── process13.py
├── process14.py
├── process15.py
├── process16.py
├── process2.py
├── process3.py
├── process4.py
├── process5.py
├── process6.py
├── process7.py
├── process8.py
├── selectorsV2.xml
└── settings.json
三、项目特点
1. 京东业务深度适配
项目专为京东商家后台设计,深度适配京东售后流程,包括待收货订单处理、退货申请审核、换货流程跟进、维修服务管理等核心业务场景。通过模拟人工操作,实现了对京东商家后台网页元素的精准定位和交互,确保流程稳定运行。
2. 完整的售后流程覆盖
系统覆盖了售后订单处理的全流程,从订单信息获取、客户期望设置、物流信息查询到数据导出分析,形成了完整的闭环。特别是针对京东平台的特殊业务规则(如优鲜赔、还货等)进行了专门优化,确保符合平台规范。
3. 灵活的配置与扩展性
通过package.py文件实现了全局变量的统一管理,包括京东商家后台URL、客户期望选项、文件保存路径等关键配置。系统支持通过自定义对话框进行参数快速配置,无需修改代码即可适应不同业务场景。
4. 健壮的异常处理
项目针对网络延迟、页面加载超时、元素定位失败等常见问题提供了完善的异常处理机制。例如,process5.py中实现了网页打开的重试逻辑,最多尝试4次;process6.py中在订单数量为0时提供了友好的提示并优雅退出。
5. 可视化操作与监控
基于影刀RPA平台的可视化特性,项目支持通过拖拽组件的方式进行流程设计和修改,同时提供了详细的日志记录功能,方便实时监控流程执行状态和问题排查。
核心代码块1:主流程控制 (main.py)
import xbot
import xbot_visual
from . import package
from .package import variables as glv
import time
def main(args):
try:
_ = xbot_visual.process.run(process="process4", package=__name__, inputs={
}, outputs=[
], _block=("main", 1, "调用流程"))
_ = xbot_visual.process.run(process="process14", package=__name__, inputs={
}, outputs=[
], _block=("main", 2, "调用流程"))
_ = xbot_visual.process.run(process="process3", package=__name__, inputs={
}, outputs=[
], _block=("main", 3, "调用流程"))
_ = xbot_visual.process.run(process="process2", package=__name__, inputs={
"customer_hope": glv['cf_customer_hope'],
}, outputs=[
], _block=("main", 4, "调用流程"))
_ = xbot_visual.process.run(process="process8", package=__name__, inputs={
}, outputs=[
], _block=("main", 5, "调用流程"))
_ = xbot_visual.process.run(process="process13", package=__name__, inputs={
}, outputs=[
], _block=("main", 6, "调用流程"))
finally:
pass
业务功能说明:这是整个京东售后订单自动化处理系统的主入口,负责协调各个子流程的执行顺序,构成完整的售后处理业务链。
核心业务流程:
业务价值:通过模块化的流程设计,实现了售后订单处理的标准化和自动化,减少了人工干预,提高了处理效率和准确性。
核心代码块2:获取待收货订单数量 (process6.py)
import xbot
import xbot_visual
from . import package
from .package import variables as glv
import time
def main(args):
try:
# 获取[售后客服-自主售后-待收货]板块 订单信息
xbot_visual.web.element.click(browser=package.variables['web_page'], element=package.selector("商家后台_待收货"), simulate=True, move_mouse=False, clicks="click", button="left", keys="null", delay_after="1", anchor_type="center", sudoku_part="MiddleCenter", offset_x="0", offset_y="0", timeout="20", _block=("B1 确认订单数量", 2, "点击元素(web)"))
待收货_text = xbot_visual.web.element.get_details(browser=package.variables['web_page'], element=package.selector("商家后台_待收货"), operation="text", absolute_url=False, attribute_name=None, relative_to="screen", to96dpi=True, timeout="20", _block=("B1 确认订单数量", 3, "获取元素信息(web)"))
待收货数量 = xbot_visual.text.extract_content_from_text(text=待收货_text, extract_way="number", regular_pattern="([\\-\\+]?\\d+(\\.\\d+)?)", just_get_first=True, ignore_case=False, _block=("B1 确认订单数量", 4, "从文本中提取内容"))
xbot_visual.programing.log(type="info", text="当前存在待收货商品【" + xbot_visual.sh_str(待收货数量) + "】件", _block=("B1 确认订单数量", 5, "打印日志"))
if xbot_visual.workflow.test(operand1=int(待收货数量), operator="==", operand2="0", operator_options="{}", _block=("B1 确认订单数量", 6, "IF 条件")):
pressed_button = xbot_visual.dialog.show_message_box(title="温馨提醒", message="当前没有待收货订单!", buttons="确定", default_button="确定", use_wait_timeout=False, wait_seconds=None, _block=("B1 确认订单数量", 7, "打开信息对话框"))
exit(0)
#endif
finally:
pass
业务功能说明:该流程负责从京东商家后台获取待收货订单数量,是售后处理的第一步,用于判断是否有需要处理的订单。
核心业务逻辑:
业务优化点:
- 通过精准的元素定位,确保能够准确获取订单数量
- 加入日志记录,便于问题排查和业务统计
- 对边界情况(无订单)进行了友好处理,提升用户体验
核心代码块3:设置客户期望 (process5.py)
import xbot
import xbot_visual
from . import package
from .package import variables as glv
import time
def main(args):
try:
for _xbot_retry_time in range(4):
try:
package.variables['web_page'] = xbot_visual.web.get(web_type="chrome", mode="activated", value="", use_wildcard=False, silent_running=False, wait_load_completed=True, load_timeout="20", stop_load_if_load_timeout="handleExcept", open_page=False, url=None, _block=("B2 设置客户期望", 1, "获取已打开的网页对象"))
break
except Exception as e:
if _xbot_retry_time == 3:
raise e
else:
xbot_visual.programing.log(type='info',text=e,_block=("B2 设置客户期望", 1,"获取已打开的网页对象"))
time.sleep(3)
if xbot_visual.workflow.test(operand1=glv['cf_customer_hope'], operator="!=", operand2="全部", operator_options="{}", _block=("B2 设置客户期望", 2, "IF 条件")):
xbot_visual.web.element.click(browser=package.variables['web_page'], element=package.selector("客户期望-输入框"), simulate=True, move_mouse=False, clicks="click", button="left", keys="null", delay_after="1", anchor_type="center", sudoku_part="MiddleCenter", offset_x="0", offset_y="0", timeout="5", _block=("B2 设置客户期望", 3, "点击元素(web)"))
客户期望text列表 = xbot_visual.web.element.get_all_elements(browser=package.variables['web_page'], select_type="selector", selector=package.selector("商家后台-客户期望列表"), css_selector="", xpath_selector="", is_related_parent=False, parent=None, operation="text", absolute_url=False, attribute_name=None, timeout="20", output_with_element_count=False, _block=("B2 设置客户期望", 4, "获取相似元素列表(web)"))
element_index = xbot_visual.list.get_index(lst=客户期望text列表, elem=glv['cf_customer_hope'], _block=("B2 设置客户期望", 5, "获取列表指定项的位置"))
客户期望元素列表 = xbot_visual.web.element.get_all_elements(browser=package.variables['web_page'], select_type="selector", selector=package.selector("商家后台-客户期望列表"), css_selector="", xpath_selector="", is_related_parent=False, parent="", operation="element", absolute_url=False, attribute_name=None, timeout="20", output_with_element_count=False, _block=("B2 设置客户期望", 6, "获取相似元素列表(web)"))
element = xbot_visual.programing.variable(value_type="xbot._web.element.WebElement", value=lambda: 客户期望元素列表[element_index], _block=("B2 设置客户期望", 7, "设置变量"))
xbot_visual.web.element.click(browser=package.variables['web_page'], element=element, simulate=True, move_mouse=False, clicks="click", button="left", keys="null", delay_after="1", anchor_type="center", sudoku_part="MiddleCenter", offset_x="0", offset_y="0", timeout="20", _block=("B2 设置客户期望", 8, "点击元素(web)"))
#endif
xbot_visual.web.element.click(browser=package.variables['web_page'], element=package.selector("按钮_查询"), simulate=False, move_mouse=False, clicks="click", button="left", keys="null", delay_after="2", anchor_type="center", sudoku_part="MiddleCenter", offset_x="0", offset_y="0", timeout="20", _block=("B2 设置客户期望", 10, "点击元素(web)"))
finally:
pass
四、使用指南
1. 适用范围
适用于新版京东【自主售后】页面,专为京东商家后台设计。
2. 注意事项
- 浏览器要求:本应用使用Chrome浏览器,请确保已安装Chrome浏览器且版本兼容。
- 插件安装:需在Chrome浏览器上安装影刀插件,详情请见Chrome安装插件说明。
- 登录要求:提前在Chrome浏览器上登录至京东商家后台。
- 页面模式:提前确认「售后配置」为「标准模式」,以免由于页面缺少必要元素导致无法正常执行。
- 运行中注意:应用运行过程中请勿移动鼠标、键盘,以免干扰自动化操作。
3. 信息配置
应用运行开始时会弹出对话框,用于配置以下信息:
客户期望
在下拉框中选择客户期望类型,可选值包括:全部/退货/换货/维修/补发商品/优鲜赔/还货。
文件保存路径
设置获取的商品信息保存路径,默认保存至「桌面」,也可自定义保存路径。
4. 运行结果
应用运行结果包括以下字段: 服务单号、订单号、商品名称、申请数量、客户期望、返回方式、申请时间、收货超时时间、买家id、买家姓名、买家电话号码、是否有物流信息、物流公司、物流单号、全部物流信息、最新物流信息、物流在途时长(h)、是否已签收。
5. 结果导出
运行结束后,结果会保存在数据表格中,可根据需求自行导出到本地。
五、适用场景
电商售后订单处理:自动获取待处理订单信息,包括服务单号、订单号、商品名称、申请数量等。
客户期望设置:根据客户需求自动设置售后处理期望,如退款、换货、维修等。
物流信息查询:自动获取订单物流信息,更新物流状态,提高客服响应速度。
订单状态跟踪:实时监控订单状态变化,及时处理异常订单。
数据统计分析:自动收集并整理售后订单数据,生成统计报表,为运营决策提供支持。
五、常见问题与建议
1. 网页元素定位失败
- 问题描述:运行过程中提示"元素未找到"错误。
- 处理建议:检查对应页面的选择器是否正确,可能是网页结构发生了变化。可以使用影刀RPA的元素选择器工具重新获取元素,并更新selectorsV2.xml文件中的对应选择器。
2. 流程执行超时
- 问题描述:流程在执行过程中因为超时停止。
- 处理建议:调整相关操作的timeout参数,适当延长等待时间。对于网络请求或页面加载操作,可以增加重试机制,如process5.py中的重试循环。
3. 浏览器兼容性问题
- 问题描述:在某些浏览器版本上无法正常运行。
- 处理建议:确保使用影刀RPA支持的浏览器版本,推荐使用Chrome浏览器。同时,可以尝试调整web_type参数或浏览器模式。
4. 数据获取不完整
- 问题描述:获取的订单信息或物流信息不完整。
- 处理建议:检查网络连接是否稳定,增加页面加载完成的等待时间。对于数据量大的情况,可以分批处理数据,避免一次性加载过多数据导致的性能问题。
5. 配置参数错误
- 问题描述:全局变量或配置参数设置错误导致流程执行失败。
- 处理建议:检查package.py中的全局变量定义和settings.json文件中的配置参数,确保参数值正确无误。特别是涉及路径、URL等配置项,需要确保其准确性。
六、源码下载
七、后续扩展方向
自动化报表生成:增加报表自动生成功能,支持多种格式导出,如Excel、PDF等。
用户界面优化:开发更友好的用户界面,简化配置流程,提高用户体验。
云服务集成:集成云存储和云服务,实现数据的云端备份和多设备同步。
八、相关推荐
- 作者:RPA+AI十二工作室
- CSDN博客:RPA+AI十二工作室-CSDN博客
欢迎关注我的CSDN博客,获取更多RPA自动化开发技巧和项目源码。如有问题或合作意向,可私聊我。
版权声明:本文档内容仅供学习交流使用,未经作者允许,请勿用于商业用途。
评论前必须登录!
注册