ecshop如何实现后台订单自动确认功能
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,小编给大家分享一下ecshop如何实现后台订单自动确认功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!CREATE TA
千家信息网最后更新 2025年12月03日ecshop如何实现后台订单自动确认功能
小编给大家分享一下ecshop如何实现后台订单自动确认功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

CREATE TABLE `order_auto_confirm` (`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,`order_id` INT(10) UNSIGNED NOT NULL DEFAULT '0',`order_sn` VARCHAR(20) NOT NULL,`execute_time` INT(10) UNSIGNED NOT NULL DEFAULT '0',`order_status` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' COMMENT '0未确定,1已经确定',`addtime` INT(10) UNSIGNED NOT NULL DEFAULT '0',`update_time` INT(10) UNSIGNED NOT NULL DEFAULT '0',PRIMARY KEY (`id`),UNIQUE INDEX `order_id` (`order_id`),INDEX `execute_time` (`execute_time`))COMMENT='订单定期自动确定'COLLATE='utf8_general_ci'ENGINE=MyISAM;
一、
/admin/order.php加入以下代码:
elseif($_REQUEST['act'] == 'order_cron'){$act1 = empty($_POST['act1']) ? 0 : $_POST['act1'];if(empty($act1) || !in_array($act1, array('add', 'cancel'))) make_json_response('', -1, '未知请求act1'); $order_id = intval($_POST['order_id']);$order = order_info($order_id);if(empty($order)) make_json_response('', -2, '没有此订单ID'); if($order['order_status']) make_json_response('', -3, '此订单已经确认,不用自动确认'); if($order['pay_status']) make_json_response('', -4, '此订单支付状态已经变动,无法添加任务'); if($act1 == 'add'){$order_cron_time = empty($_POST['order_cron_time']) ? 0 : $_POST['order_cron_time']; if(empty($order_cron_time)) make_json_response('', -10, '请求的时间错误'); $sql = 'select order_id from '.$ecs->table('order_auto_confirm').' where order_id='.$order_id;$rs = $db->getRow($sql);if($rs['order_id'] == $order_id){make_json_response('', -30, '此订单任务已经存在,不能重复添加');}$execute_time = local_strtotime($order_cron_time);$sql = "insert into ".$ecs->table('order_auto_confirm')."(order_id, order_sn, execute_time, order_status, addtime) values(".$order_id.",'".$order['order_sn']."',".$execute_time.", 0, ".local_gettime().")";$result = $db->query($sql);if($result){make_json_response('', 0, '');}make_json_response('', -9, '添加任务计划失败');}elseif($act1 == 'cancel'){$sql = 'delete from '.$ecs->table('order_auto_confirm').' where order_id='.$order_id.' and order_status=0 ';$db->query($sql);make_json_response('', 0, '');}}二、
在elseif($_REQUEST['act'] == 'info')里加入:
//取自动确定订单信息$sql = 'select order_status, execute_time, addtime, update_time from '.$ecs->table('order_auto_confirm').' where order_id='.$order['order_id'];$cron= $db->getRow($sql);if(!empty($cron)){if($cron['order_status'] == 1)$cron['update_time'] = sprintf($_LANG['order_auto_croned'], local_date('Y-m-d H:i:s', $cron['update_time']));else$cron['execute_time']= sprintf($_LANG['order_auto_cron'], local_date('Y-m-d H:i:s', $cron['execute_time']));}$smarty->assign('cron', $cron);三、
/includes/modules/cron/order_auto_confirm.php
if (!defined('IN_ECS')){die('Hacking attempt');}require_once(ROOT_PATH . 'includes/lib_order.php');$cron_lang = ROOT_PATH . 'languages/' .$GLOBALS['_CFG']['lang']. '/cron/order_auto_confirm.php';if (file_exists($cron_lang)){global $_LANG; include_once($cron_lang);}/* 模块的基本信息 */if (isset($set_modules) && $set_modules == TRUE){$i = isset($modules) ? count($modules) : 0; /* 代码 */$modules[$i]['code'] = basename(__FILE__, '.php'); /* 描述对应的语言项 */$modules[$i]['desc'] = 'order_auto_confirm_desc'; /* 作者 */$modules[$i]['author'] = 'wjzhhr'; /* 网址 */$modules[$i]['website'] = 'http://www.wodeqingchun.com'; /* 版本号 */$modules[$i]['version'] = '1.0.0'; /* 配置信息 */$modules[$i]['config'] = array(array('name' => 'order_auto_confirm_count', 'type' => 'select', 'value' => '10'),); return;}$time = gmtime();//$time = local_gettime();$limit = empty($cron['order_auto_confirm_count']) ? 5 : $cron['order_auto_confirm_count'];$sql = "SELECT * FROM " . $GLOBALS['ecs']->table('order_auto_confirm') . " WHERE execute_time <= ".$time." and order_status=0 LIMIT $limit";$autodb= $db->getAll($sql);$i = 0;foreach ($autodb as $key => $val){$order_id = $val['order_id'];$order_sn = $val['order_sn'];/* 标记订单为已确认 */$update_status = update_order($order_id, array('order_status' => OS_CONFIRMED, 'confirm_time' => gmtime()));update_order_amount($order_id); /* 记录log */$action_note = "计划任务:定期自动确定订单,订单号:".$order_sn.",执行状态:".($update_status ? '成功' : '失败');order_action($order_sn, OS_CONFIRMED, SS_UNSHIPPED, PS_UNPAYED, $action_note, 'system_cron'); /* 如果原来状态不是"未确认",且使用库存,且下订单时减库存,则减少库存 */if ($val['order_status'] != OS_UNCONFIRMED && $_CFG['use_storage'] == '1' && $_CFG['stock_dec_time'] == SDT_PLACE){change_order_goods_storage($order_id, true, SDT_PLACE);} if($update_status){$i += 1;$sql = "update " . $GLOBALS['ecs']->table('order_auto_confirm') . " set order_status=1, update_time=".$time." where order_id=".$order_id;$db->query($sql);}}$string = '此次共更新:'.$i.'条数据';echo $string;file_put_contents('./a.txt', $time . '----' . date('Y-m-d H:i:s').$string."\r\n", FILE_APPEND);/*** 更新订单总金额* @param int $order_id 订单id* @return bool//zuimoban.com*/function update_order_amount($order_id){include_once(ROOT_PATH . 'includes/lib_order.php');//更新订单总金额$sql = "UPDATE " . $GLOBALS['ecs']->table('order_info') ." SET order_amount = " . order_due_field() ." WHERE order_id = '$order_id' LIMIT 1"; return $GLOBALS['db']->query($sql);}?>四、
/languages/zh_cn/admin/order.php里加入:
//$_LANG['order_auto_croned'] = '此订单于 %s 已被确认';$_LANG['order_auto_cron'] = '此订单于 %s 进行定时确认';$_LANG['order_auto'] = '将此订单加入自动定时确认';$_LANG['order_auto_time'] = '自动确认时间:';
五、
/admin/themes/order_info.htm在:{$lang.base_info}后面加入:
在此页面的JS里面加入:
function order_cron(order_id, act){ var order_cron_time = 0; if(act == 'add'){ order_cron_time = document.getElementById('order_cron_time').value; if(!order_cron_time){ alert('无法获取时间'); return false; } } Ajax.call('order.php?act=order_cron', 'order_id=' + order_id + '&act1=' + act + '&order_cron_time=' + order_cron_time, order_cron_response, 'POST', 'JSON');}function order_cron_response(res){ if (res.error == 0) { alert('保存成功'); } else { alert(res.message); } return false;}还有/themes/default/footer.dwt里是否含有:{insert name='query_info'}
这一句,比较重要,前人把这句去掉了,害最模板到处找原因。共涉及5个文件,两个新添加的
以上是"ecshop如何实现后台订单自动确认功能"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
订单
任务
信息
库存
时间
状态
篇文章
更新
功能
后台
成功
代码
内容
金额
单于
里加
重要
不怎么
不用
两个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
mc服务器指令
河南专业软件开发正规平台
自制web服务器代码
上海软件开发几家
数据库修改 微擎 后台密码
dell服务器 内部详细图
服务器我的世界手机版
我的世服务器怎么注册
公司加大安全生产软件开发
魔兽世界奇葩服务器
上海工控软件开发费用是多少
移动网络技术服务行业标准
青山区方便网络安全维护要多少钱
开关软件开发模板
西安网络安全周2021
网络安全民俗漫画
er图描述数据库的
怎么解压服务器里的压缩包
工行软件开发北研面试
数据库表改动sql查询
oc是什么服务器
成功向数据库表插入5条记录
飞客的服务器
游戏软件开发的流程图
社交软件开发者的建议
淮安电子商务软件开发
有哪些大型软件开发项目
浙商银行软件开发面试经验
通常的数据库接口技术
如何找数据库端口