自动分成功能在ecshop系统自带是没有的,如果我们需要对一单添加分成功能我们是需要进入二次开发的,下面小编来为各位介绍一个例子。
大概逻辑:
后台操作一个订单发货的时候进行自动分成,后台取消发货,退货,改为未发货的时候去掉自动分成部分。
核心代码:lib_common.php
//分成积分计算
<?php function fenchenjifen($usertype = 3, $point) { $affiliate = unserialize($GLOBALS['_CFG']['affiliate']); if ($usertype == 3) { //采购 if ($affiliate['config']['level_register_up']) { $affiliate['config']['level_register_up']/= 100; } $point_cg = round($affiliate['config']['level_register_up'] * intval($point) , 0); return $point_cg; } if ($usertype == 1) { //经销商 if ($affiliate['config']['level_money_all']) { $affiliate['config']['level_money_all']/= 100; } $point_cg = round($affiliate['config']['level_money_all'] * intval($point) , 0); return $point_cg; } if ($usertype == 2) { //财务 if ($affiliate['config']['level_register_all']) { $affiliate['config']['level_register_all']/= 100; } $point_cg = round($affiliate['config']['level_register_all'] * intval($point) , 0); return $point_cg; } } /** * * @param undefined $order 订单信息 * @param undefined $buyuser 购买者信息 * @param undefined $integral 计算积分 * $type = 1 增加 $type=-1 撤销 * 分成log状态99 */ function fun_fencheng_change($order, $buyuser, $integral = array() , $type = 1) { //店铺分成计算 if (intval($order['parent_shopid']) == 0) return false; if (!is_array($buyuser)) return false; $order_id = $order['order_id']; $separate_by = 99; switch ($buyuser['usertype']) { case '0': //购买者类型 $row = $GLOBALS['db']->getRow("SELECT * from " . $GLOBALS['ecs']->table('users') . " u " . " WHERE u.shopid =" . $order['parent_shopid'] . " and u.usertype=1"); //获取pid $up_uid = $row['user_id']; if (!empty($up_uid) && $up_uid > 0) { $money = $point = 0; $point = fenchenjifen(1, $integral['custom_points']); // $info = sprintf($GLOBALS['_LANG']['separate_info'], $order['order_sn'], $money, $point); $info = "订单" . $order['order_sn'] . "分成获得积分:" . $point; log_account_change($up_uid, $money, 0, ($type) * $point, ($type) * $point, $info); //var_dump($info); if ($type == 1) { write_affiliate_log1($order_id, $up_uid, $row['user_name'], $money, $point, $separate_by); } else { rollback_affiliate_log($order_id); } $orderupdate['is_separate'] = $type == 1 ? $separate_by : 0; $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_info') , $orderupdate, 'UPDATE', "order_id = '$order_id'"); } break; case '3': $row = $GLOBALS['db']->getAll("SELECT u.shopid,u.user_id,u.usertype, u.user_name FROM " . $GLOBALS['ecs']->table('users') . " u " . " WHERE u.shopid= " . $order['parent_shopid'] . " and u.usertype in (1,2)"); foreach ($row as $val) { // 经销商和财务获得分成 if ($val['usertype'] == 1) { $pointf = fenchenjifen(1, $integral['custom_points']); } if ($val['usertype'] == 2) { $pointf = fenchenjifen(2, $integral['custom_points']); } $up_uid = $val['user_id']; //$info = sprintf($GLOBALS['_LANG']['separate_info'], $order['order_sn'], $money, $pointf); $info = "订单" . $order['order_sn'] . "分成获得积分:" . $pointf; log_account_change($up_uid, $money, 0, ($type) * $pointf, ($type) * $pointf, $info); if ($type == 1) { write_affiliate_log1($order_id, $up_uid, $val['user_name'], $money, $pointf, $separate_by); } else { rollback_affiliate_log($order_id); } $orderupdate['is_separate'] = $type == 1 ? $separate_by : 0; $GLOBALS['db']->autoExecute($GLOBALS['ecs']->table('order_info') , $orderupdate, 'UPDATE', "order_id = '$order_id'"); } break; } return true; } /** * * @param undefined $oid * @param undefined $uid * @param undefined $username * @param undefined $money * @param undefined $point * @param undefined $separate_by * 写入订单分成 log */ function write_affiliate_log1($oid, $uid, $username, $money, $point, $separate_by) { $time = gmtime(); $sql = "INSERT INTO " . $GLOBALS['ecs']->table('affiliate_log') . "( order_id, user_id, user_name, time, money, point, separate_type)" . " VALUES ( '$oid', '$uid', '$username', '$time', '$money', '$point', $separate_by)"; if ($oid) { $GLOBALS['db']->query($sql); } } //撤销订单分成 function rollback_affiliate_log($order_id, $falg = - 2) { $sql = "UPDATE " . $GLOBALS['ecs']->table('affiliate_log') . " SET separate_type = '$falg'" . " WHERE order_id = '$order_id'"; $GLOBALS['db']->query($sql); }
需要注意的点:后台发货程序在admin / order . php需要修改的地方有:发货866行,取消发货1035行改为未发货3961行退货4132行。本代码只计算分成部分。自己下单部分另外。这个代码是按照店铺ID分成,多商户的。为ecshop二次开发版。无法用于原版。调用分成:fun_fencheng_change($order, $user, $integral, 1);
取消分成:fun_fencheng_change($order, $user, $integral, -1);
永久地址:
转载随意~请带上教程地址吧^^

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna