如何实现ecshop后台订单自动确认功能
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章将为大家详细讲解有关如何实现ecshop后台订单自动确认功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。ecshop栏目介绍ecshop后台订单自动确认开
千家信息网最后更新 2025年01月24日如何实现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的服务器
2017 网络安全报告
网络安全员会叫加微信吗
职业招聘网络安全工程师
文献数据库的报价依据
鬼鬼的领域服务器
云盯网络技术
武侠q传数据库
数据库锁会自动阻塞吗
计算机网络安全等级考试视频
服务器端建立网络共享文件夹
许平君小说软件开发
天津河北区网络安全信息化
未来数据库设计操作题
聊城互联网养老软件开发公司
看盘软件开发数据来源
口碑好的网络技术咨询热线
四川数字化城管软件开发
数据网络安全课程
郑州七色汇网络技术公司
安卓平台 数据库
怎样看懂网络安全
微众互联网金融科技
魔兽世界装备中英文数据库
江苏电力应急软件开发应用