zen-cart版:按时间+随机数结合产生订单号 (订单方便管理与确认)

Zen Cart的安装、设置、升级讨论和使用技巧交流

版主: 赞拓拓, shaning, 美拓拓

zen-cart版:按时间+随机数结合产生订单号 (订单方便管理与确认)

帖子radnows » 2005-08-14 0:19

注意:

修改前一定要备份好自己的数据库!!!


1、把orders字段中orders_id 的 Auto_increment 关闭;

2、把以下代码插入到order.php中;
查找:function create($zf_ot_modules, $zf_mode = 2) {
global $db;

插入意下代码:

$t1 = date("YmdGis");
srand ((float) microtime() * 10000000);
$input = array ("1", "2", "3", "4", "5", "6", "7", "8", "9", "0");
$rand_keys = array_rand ($input, 2);
$l1 = $input[$rand_keys[0]];
$l2 = $input[$rand_keys[1]];
$r1 = rand(0,9);

$ordernum = $t1.$l1.$l2.$r1;

在这里添加orders_id字段,手工插入:
$sql_data_array = array('orders_id' => $ordernum,

查找:zen_db_perform(TABLE_ORDERS, $sql_data_array);

插入:
/*修改原来的调用自动插入函数为$ordernum变量*/
$insert_id = $ordernum;

以上简单的修改后,订单号会输出如:20050613235934985
表示:2005年06月13日23时59分34秒985随机数
原mod出处:www.oscommerce.com;我修改了日期显示及订单号排列顺序。
头像
radnows
论坛版主
论坛版主
 
帖子: 3128
注册: 2005-08-09 23:57
地址: radnows.com

Re: zen-cart版:按时间+随机数结合产生订单号 (订单方便管理与确认)

帖子Jack » 2005-08-14 8:58

我想很多朋友会喜欢这个模块的,我是不喜欢zencart从零开始的顺序订单号。谢谢提供这么好的资料!
头像
Jack
论坛版主
论坛版主
 
帖子: 11665
注册: 2004-12-16 10:04

Re: zen-cart版:按时间+随机数结合产生订单号 (订单方便管理与确认)

帖子seethrou » 2005-08-14 10:57

还有一个详细一点的,不过是英文版,修改亦包括在管理页、帐单、订单和装贷单。
如果有朋友有时间,可以的请比较一下那一个比较好用!

现时这个插件设定的模式基于 ( 可修改 ) :
YYMMDD-SSmmHH-0001

输出例子:
ORDER NUMBER: 040919-474718-0001
seethrou
普通会员
普通会员
 
帖子: 22
注册: 2005-01-07 1:41

Re: zen-cart版:按时间+随机数结合产生订单号 (订单方便管理与确认)

帖子radnows » 2005-08-14 14:26

如果按YYMMDD-SSmmHH-0001的写法的话,要修改的地方真的很多,字段类型要改,代码参数要改,相关调用也要改....

不利于升级与维护啊

现在我提供的代码只是对order.php修改了一点,其他代码无须修改照旧调用正常。这也是我不要字母及斜杠等字符做分割号的原因。
头像
radnows
论坛版主
论坛版主
 
帖子: 3128
注册: 2005-08-09 23:57
地址: radnows.com

Re: zen-cart版:按时间+随机数结合产生订单号 (订单方便管理与确认)

帖子seethrou » 2005-08-14 15:58

这个要看个人取舍了! :-)

比较一下效果
--------------

订单号会输出如:20050613235934985

订单号会输出如:040919-474718-0001



有关要加入和修改的档案

New files:
======================================================
admin/includes/functions/extra_functions/improved_order_numbers_function.php
includes/functions/extra_functions/improved_order_numbers_function.php


Template files to change:
======================================================
You will need to modify the following files:

includes/templates/YOURTEMPLATENAME/templates/tpl_block_previous_orders_default.php
includes/templates/YOURTEMPLATENAME/templates/tpl_block_account_history_default.php
includes/templates/YOURTEMPLATENAME/templates/tpl_account_history_info_default.php
includes/templates/YOURTEMPLATENAME/templates/tpl_checkout_success_info_default.php


Files to change:
======================================================
You will need to modify the following files:
/includes/modules/checkout_process.php
/includes/modules/pages/account_history_info/header.php
/includes/modules/pages/checkout_success/header.php

/admin/invoice.php
/admin/orders.php
/admin/packingslip.php
seethrou
普通会员
普通会员
 
帖子: 22
注册: 2005-01-07 1:41

Re: zen-cart版:按时间+随机数结合产生订单号 (订单方便管理与确认)

帖子radnows » 2005-08-14 16:21

要修改那么多是当然的了!
因为改了数据库字段类型哦;
原来是int的改为char的话所有原来用int类型调用的程序都得改为char类型的或去掉int类型识别;否则,不会显示订单号!
头像
radnows
论坛版主
论坛版主
 
帖子: 3128
注册: 2005-08-09 23:57
地址: radnows.com

Re: zen-cart版:按时间+随机数结合产生订单号 (订单方便管理与确认)

帖子foxangel » 2005-08-15 14:25

老兄,我比较喜欢你这种不用更改格式的方法,但是您能不能写的具体一点?我对这个zen-cart还不是太熟,让我去改order.php,我知道他在哪里啊?还有就是你能不能把修改写的明确一些,最简单的方法就是把没修改之前的代码和修改之后的代码都贴出来,这样才能明了是吧,不然我看得确实比较糊涂。谢谢!
foxangel
新手上路
新手上路
 
帖子: 14
注册: 2005-08-07 10:00

Re: zen-cart版:按时间+随机数结合产生订单号 (订单方便管理与确认)

帖子cking » 2005-10-10 21:41

楼主,这个方法不行!int型数据最大是2的32次方,只能到10位,超过就出错了,最后还是改了数据库,将orders_id改成bigint就可以了
cking
中级会员
中级会员
 
帖子: 57
注册: 2005-10-06 10:40

Re: zen-cart版:按时间+随机数结合产生订单号 (订单方便管理与确认)

帖子cking » 2005-10-11 13:15

惨啊!按照楼主老兄所谓的简单办法修改,出来一堆问题!
cking
中级会员
中级会员
 
帖子: 57
注册: 2005-10-06 10:40

Re: zen-cart版:按时间+随机数结合产生订单号 (订单方便管理与确认)

帖子radnows » 2005-10-12 14:19

[quote]
cking 写道:
惨啊!按照楼主老兄所谓的简单办法修改,出来一堆问题![/quote]

嘿嘿 问题在于原来代码中的int值是显式指定的 如改了int为bigint 那代码也要显式的改为bigint
头像
radnows
论坛版主
论坛版主
 
帖子: 3128
注册: 2005-08-09 23:57
地址: radnows.com

下一页

回到 安装设置

 


  • 相关话题
    回复总数
    阅读次数
    最新文章

在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客