如何实现ecshop后台订单自动确认功能
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章将为大家详细讲解有关如何实现ecshop后台订单自动确认功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。ecshop栏目介绍ecshop后台订单自动确认开
千家信息网最后更新 2025年12月01日如何实现ecshop后台订单自动确认功能
这篇文章将为大家详细讲解有关如何实现ecshop后台订单自动确认功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
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安全错误
数据库的锁怎样保障安全
光纤报警数据采集服务器
web软件开发面试自我介绍
微信收款服务器为什么老断开
网络安全信息化责任分工
网络技术对教育的利弊
方舟服务器模组玩家怎么删
moba连接服务器超时
湛江自主可控软件开发优化价格
自动投注挂机软件开发
lol进游戏无法连接服务器
软件开发服务业需要结转成本吗
甘肃省村庄规划数据库建设标准
一般写入数据库怎么写代码
mysql备份数据库到另外
西子奥蒂斯服务器no110ac
上海大数据网络技术咨询机构
服务器站群系统机房
进销存软件开发论坛
华三网络安全考试费
盐城营销软件开发哪家好
广州智能照明软件开发定制
怎么看服务器linux重启了没
一般写入数据库怎么写代码
小刀网络技术有限公司
关系数据库四个范式举例
行政部门网络安全
用云服务器挂机安全吗
软件开发pgm是什么的缩写
网络安全文明上网直播
联想服务器规格