# 电子面单驱动扩展开发指南 ## 概述 电子面单驱动扩展位于 `driver/express/{Driver}/` 目录,负责对接各类电子面单打印服务(一号通、测试面单等),用于订单发货时自动打印快递面单。 系统通过 `crmeb\services\driver\DriverRegistry` 扫描各驱动包的 `plugin.json` 完成驱动注册。 ## 已有驱动 | 驱动目录 | 驱动标识 | 说明 | |---------|---------|------| | [Yihaotong](file:///Users/xurongyao/web/crmeb_bz/crumb-bz-v6.0/crmebbz/backend/driver/express/Yihaotong/) | `yihaotong` | 一号通电子面单 | | [TestExpress](file:///Users/xurongyao/web/crmeb_bz/crumb-bz-v6.0/crmebbz/backend/driver/express/TestExpress/) | `test_express` | 测试电子面单 | ## 开发步骤 ### 1. 创建驱动目录 ```bash mkdir -p driver/express/{DriverName} ``` ### 2. 创建 plugin.json ```json { "key": "your_driver_key", "name": "驱动名称", "description": "驱动功能简述", "version": "1.0.0", "author": "CRMEB", "type": "driver", "path": "driver/express/YourDriver", "driver": { "name": "面单驱动名称", "driver_key": "your_driver_key", "class_name": "Driver", "icon": "icon-xxx", "is_builtin": true, "sort": 100, "config_fields": [ { "field": "open", "label": "开启电子面单", "type": "switch", "group": "接口配置", "tip": "开启后可在订单发货时使用电子面单打印" }, { "field": "api_key", "label": "应用Key", "type": "text", "required": true, "group": "基础配置" }, { "field": "api_secret", "label": "应用密钥", "type": "password", "required": true, "group": "基础配置" } ], "help_doc": { "title": "使用说明", "steps": ["步骤1", "步骤2"], "link": "https://example.com" } } } ``` #### plugin.json driver 子对象字段说明 | 字段 | 类型 | 必填 | 说明 | |------|------|------|------| | `name` | string | ✅ | 驱动显示名称 | | `driver_key` | string | ✅ | 驱动唯一标识 | | `class_name` | string | ❌ | 驱动类名,默认 `Driver` | | `icon` | string | ❌ | 图标类名 | | `is_builtin` | bool | ❌ | 是否内置驱动 | | `sort` | int | ❌ | 排序权重 | | `config_fields` | array | ❌ | 配置字段定义(后台动态渲染表单;`open` 为 switch 开关字段,控制功能启用) | | `help_doc` | object | ❌ | 帮助文档(`{title, steps, link}`) | > 顶层字段(`key`/`name`/`description`/`version`/`author`/`type`/`path`/`require`)为各驱动类型通用结构,完整说明见[短信驱动开发指南](../sms/DEVELOPMENT.md#pluginjson-字段说明)。 ### 3. 创建 Driver.php ```php