# 二开行为说明
文档最后更新时间:2021-08-18 13:26:35
### 商城行为列表
| 钩子名称 | 解释 |
| --- | --- |
| order\_create\_before | 订单创建前,检测用户购买限制等 |
| order\_create\_after | 订单创建后,删除购物车,添加自动关闭队列等 |
| order\_payed\_after | 订单支付成功,只是付款成功 |
| order\_close\_before | 订单关闭前,订单将自动关闭 |
| order\_close\_after | 订单关闭后,将积分优惠券等退回 |
| order\_cancel\_before | 订单取消前,用户手动取消订单 |
| order\_cancel\_after | 订单取消后,将积分优惠券等退回 |
| order\_send\_before | 订单发货前,后台发货前 |
| order\_send\_after | 订单发货后,添加自动收货队列 |
| order\_confirm\_before | 订单确认收货前 |
| order\_confirm\_after | 订单确认收货后,(多个商品会走多次)添加自动评价队列 |
| order\_confirm\_finish | 订单全部确认收货(只会走一次) |
| order\_finish | 订单完成行为,订单交易完成(评价完成) |
| order\_comment\_before | 订单评价前 |
| order\_comment\_after | 订单评价后,判断并完成订单 |
| order\_refund\_before | 订单退款前 |
| order\_refund\_after | 订单退款后 |
| aftersale\_finish\_before | 售后完成前 |
| aftersale\_finish\_after | 售后完成后 |
| aftersale\_refuse\_before | 售后拒绝前 |
| aftersale\_refuse\_after | 售后拒绝后 |
| aftersale\_change | 售后变动(包含售后完成/拒绝) |
| activity\_update\_after | 活动更新后,将活动缓存到 redis,添加活动结束队列 |
| activity\_delete\_after | 活动删除之后,将活动从 redis 删除 |
| activity\_groupon\_finish | 拼团成功 |
| activity\_groupon\_fail | 拼团失败 |
### 二次开发方式
**!!!注意,在研究清楚钩子逻辑之前,请不要置顶自己定义的行为,更不要覆盖商城行为**
**!!!注意,在研究清楚钩子逻辑之前,请不要置顶自己定义的行为,更不要覆盖商城行为**
**!!!注意,在研究清楚钩子逻辑之前,请不要置顶自己定义的行为,更不要覆盖商城行为**
4iOr0rBUjmNJANXa0L5QHg==
**推荐方法**
8lOAJSGVEqCJu8BMzh8grg==
~~~
application/tags.php
return [
// 应用初始化
'app_init' => [],
// 应用开始
'app_begin' => [],
// 模块初始化
'module_init' => [
'app\\common\\behavior\\Common',
],
// 插件开始
'addon_begin' => [
'app\\common\\behavior\\Common',
],
// 操作开始执行
'action_begin' => [],
// 视图内容过滤
'view_filter' => [],
// 日志写入
'log_write' => [],
// 应用结束
'app_end' => [],
// 在此处追加 shopro 的行为,例如
'order_finish' => [
// 自定义类1
// 自定义类2
]
];
~~~
**手动注册**
Z91n5ribrc3acALIQ5vgQw==
~~~
Hook::add('order_finish','自定义类');
示例
Hook::add('order_finish','app\\index\\behavior\\CheckLang');
~~~
### 重要钩子说明
#### order\_finish
> 订单交易完成
**执行时机**
YPjc1MA1dM2ic39jTuoLQw==
* 订单全部确认收货,并且全部评价完成,订单状态变为交易完成时候执行
**检测时机**
m56O7zdPHNI8fq/OST+xIQ==
* 订单里面的商品评价后,检测用户订单是否全部评价完成
* 系统自动好评,检测用户订单是否全部评价完成
**钩子作用**
+7Uj6eM0iwasgOZHYHHRmQ==
* 可以在这里添加分佣逻辑
**注意**
byhkclnvmUmxI7vjiTlQqA==
* 注意订单状态必须变为交易完成才会执行
#### order\_confirm\_finish
> 订单确认收货完成
**执行时机**
ECLAWyGh4mZ8AoVnFWBdJw==
* 订单全部确认收货完成,不论是否进行了评价
**检测时机**
Fryfa2bPHAcVqBUawJE+uA==
* 自动发货订单已支付,自动确认收货后检测是否全部确认收货
* 用户手动确认收货,检测是否全部确认收货
* 系统自动确认收货,检测是否全部确认收货
**钩子作用**
XCAcWejQcb827o28Bl+NMw==
* 可以在这里添加分佣逻辑
**注意**
czM8yynCySoOnCOgAHtwKw==
* 注意这里并不是订单的状态,这时订单状态为待评价状态
#### order\_confirm\_after
> 订单确认收货之后
**执行时机**
xd0txsNGt8szXcttvUgCmQ==
* 用户自己点击确认收货
* 系统自动确认收货
* 自动发货订单,自动确认收货
**注意**
slAkcD8Ow2SZJTBFpDGDdQ==
* 一个订单如果购买了多个商品会执行多次,因为订单根据商品单独确认收货