企业发卡网源码的高级售卡跟踪(AST)容许您向订单增加跟踪信息,并为您的客户提供跟踪订单的简略办法。AST提供了弱小的性能,让每个商户都可能更好地治理和自动化他们的发货后订单流,缩小客户服务工夫,进步客户满意度并能助店铺以更正式的形式治理WooCommerce订单,并使发货后的操作自动化。
源码演示及获取形式:w12.ink
基于知宇发卡零碎源码次要特点
1、轻松地向订单增加跟踪信息
很容易将跟踪信息增加到您的订单中,企业发卡网源码容许您从WooCommerce订单管理员或单个订单管理员增加跟踪,咱们还容许您在增加跟踪信息时将订单标记为已实现。
2、定制订单电子邮件上的跟踪显示
您能够齐全自定义订单电子邮件及其帐户上的跟踪信息显示。咱们的定制程序提供实时预览,您能够抉择设计布局、显示/暗藏跟踪信息、编辑内容、字体、色彩等。。
3、放弃你的跟踪链接是最新的
企业发卡网源码系统维护此列表,您能够同步运送提供商列表,以使其与运送提供商信息中的任何更改放弃最新。
4、WooCommerce REST API反对
AST创立了一个装运跟踪WooCommerce REST API端点,因而您能够从任何内部零碎或装运标签服务轻松更新WooCommerce订单中的跟踪信息,并主动执行日常工作流程。。
5、从CSV批量上载
如果您的发货人在文件中提供跟踪信息,并且您心愿防止将它们手动增加到订单中,那么AST提供了一个疾速而简略的界面,能够从CSV将多个跟踪号批量导入订单。
6、自定义订单状态
改良您的订单治理流程,应用自定义订单状态,为您在不同工夫以独自的软件包发货的订单启用局部已发货,或启用已交付订单状态(如果应用)轨道船用于跟踪和交付自动化。
企业发卡网源码领取外围内核:
namespace app\common;
use app\common\util\notify\Sell;
use think\Db;
use think\Exception;
class Pay {
protected $error = '';
public function getError() {
return $this->error;
}
/**
* @var array 缓存的实例
*/
public static $instance = [];
public static function load($channel, $account = []) {
$code = $channel->code;
if (!isset($account['params']->refer)) {
$account['params']->refer = '';
}
$class = '\\app\\common\\pay\\' . $code;
if (!isset(SELF::$instance[$code])) {
// 实例化领取渠道
SELF::$instance[$code] = new $class();
// 加载渠道账户
SELF::$instance[$code]->channel = $channel;
// 加载渠道账户
SELF::$instance[$code]->account = $account;
}
return SELF::$instance[$code];
}
/**
* 实现订单
*
* @param string $order 订单
*/
public function completeOrder(&$order) {
Db::startTrans();
try {
$time = time();
// 实现订单
$res = Db::table('order')->where(['id' => $order->id, 'status' => 0])->update(['status' => 1, 'success_at' => $time]);
if (!$res) {
Db::rollback();
exit;
}
// 用户加钱
$user = Db::table('user')->lock(true)->where('id', $order->user_id)->find();
if ($user) {
$money = $order->total_product_price; //加的钱为产品总价
Db::table('user')->where('id', $order->user_id)->update(['money' => ['exp', 'money+' . $money]]);
//以后余额
$balance = round($user['money'] + $money, 3);
// 记录金额日志
record_user_money_log('goods_sold', $user['id'], $money, $balance, "胜利售出商品{$order->goods_name}({$order->quantity}张)");
// 扣除手续费
if ($order->fee_payer == 1 && $order->fee > 0) {
Db::table('user')->where('id', $order->user_id)->update(['money' => ['exp', 'money-' . $order->fee]]);
//以后余额
$balance = round($balance - $order->fee, 3);
if ($balance < 0) {
throw new Exception("商家余额不足以扣除手续费");
}
// 记录金额日志
record_user_money_log('goods_sold', $user['id'], -$order->fee, $balance, "扣除交易手续费,订单:{$order->trade_no}");
// 扣除下级佣金
}
if ($user['parent_id'] > 0) {
$parent = Db::table('user')->lock(true)->where('id', $user['parent_id'])->find();
$spreadRebateRate = get_spread_rebate_rate();
$rebate = round($order->fee * $spreadRebateRate, 3);
if ($parent && $rebate > 0) {
// 返佣
Db::table('user')->where('id', $parent['id'])->update(['money' => ['exp', 'money+' . $rebate], 'rebate' => ['exp', 'rebate+' . $rebate]]);
// 记录金额日志
record_user_money_log('sub_sold_rebate', $parent['id'], $rebate, round($parent['money'] + $rebate, 3), "上级[{$user['username']}]售出商品,返佣{$rebate}元");
}
}
$smsPrice = 0;
if ($order->sms_payer == 1) {
//判断是否发送了短信
if ($order->sms_notify == 1) {
$smsPrice = get_sms_cost();
Db::table('user')->where('id', $order->user_id)->update(['money' => ['exp', 'money-' . $smsPrice]]);
//以后余额
$balance = round($balance - $smsPrice, 3);
if ($balance < 0) {
throw new Exception('商家余额不足以扣除短信费');
}
// 记录金额日志
record_user_money_log('goods_sold', $user['id'], -$smsPrice, $balance, "扣除短信费,订单:{$order->trade_no}");
//扣完短信费,更新到订单信息中
Db::table('order')->where('id', $order->id)->update(['sms_price' => $smsPrice]);
}
}
//交易实现先冻结资金,T+1日再冻结
if ($order->fee_payer == 1) {
$freezeMoney = round($money - $order->fee - $smsPrice, 3);
} else {
$freezeMoney = round($money - $smsPrice, 3);
}
//记录这张订单最终的商家支出是多少
$order->finally_money = $freezeMoney;
$order->save();
if ($freezeMoney >= 0) {
//退出主动冻结队列
// $unfreezeTime = time() + 86400; //订单解冻24小时
$unfreezeTime = strtotime(date('Y-m-d', $time)) + 86400; //次日凌晨冻结
if (1 == $order->settlement_type) {
// T1 结算
//解冻金额
Db::table('user')->where('id', $user['id'])->update(['money' => ['exp', 'money-' . $freezeMoney], 'freeze_money' => ['exp', 'freeze_money+' . $freezeMoney]]);
//以后余额
$balance = round($balance - $freezeMoney, 3);
record_user_money_log('freeze', $user['id'], -$freezeMoney, $balance, "解冻订单:{$order->trade_no},解冻金额:{$freezeMoney}元");
Db::table('auto_unfreeze')->insert([
'trade_no' => $order->trade_no,
'user_id' => $user['id'],
'money' => $freezeMoney,
'unfreeze_time' => $unfreezeTime,
'created_at' => $time,
]);
} elseif (0 == $order->settlement_type) {
// T0 结算,补一张0元解冻记录,用于投诉
record_user_money_log('freeze', $user['id'], 0, $balance, "解冻订单:{$order->trade_no},解冻金额:0元(T0 计算)");
Db::table('auto_unfreeze')->insert([
'trade_no' => $order->trade_no,
'user_id' => $user['id'],
'money' => 0,
'unfreeze_time' => $unfreezeTime,
'created_at' => $time,
]);
}
}
}
Db::commit();
$notify = new Sell();
$notify->notify($order, $freezeMoney);
} catch (\Exception $e) {
Db::rollback();
// 记录谬误订单
record_file_log('complete_error', $order->trade_no . $e->getMessage());
record_file_log('complete_error', $e->getTraceAsString());
die('error');
}
}
企业发卡网源码高级附加内核
1、跟踪每个我的项目加载内核
每个我的项目跟踪附加模块容许您将跟踪编号附加到特定订单我的项目,还能够将跟踪编号附加到同一行我的项目的不同数量。
2、PayPal跟踪加载内核
节俭手动工作工夫,应用PayPal API主动将跟踪号和相干信息从WooCommerce发送到PayPal。发送跟踪信息到贝宝能够帮忙缩小退单,并将帮忙您疾速解决贝宝领取暂停。
3、WooCommerce发货跟踪内核
节俭人工工作工夫,主动将跟踪信息增加到WooCommerce Shipping发货的AST发货跟踪中。此附加组件提供与WooCommerce运输和税务跟踪集成插件。
4、ShipStation跟踪内核
节俭人工工作工夫,主动将跟踪信息增加到ShipStation发货跟踪中。此附加组件提供与WooCommerce船舶站集成插件
发表回复