# ecshop: #### 参考ecshop官方前端源码 >[success] 操作返回 ~~~ $_LANG['act_ok'] = '操作成功'; $_LANG['act_false'] = '操作失败'; ~~~ >[success]订单状态 ~~~ define('OS_UNCONFIRMED', 0); // 未确认 define('OS_CONFIRMED', 1); // 已确认 define('OS_CANCELED', 2); // 已取消 define('OS_INVALID', 3); // 无效 define('OS_RETURNED', 4); // 退货 define('OS_SPLITED', 5); // 已分单 define('OS_SPLITING_PART', 6); // 部分分单 ~~~ >[success]配送状态 ~~~ define('SS_UNSHIPPED', 0); // 未发货 define('SS_SHIPPED', 1); // 已发货 define('SS_RECEIVED', 2); // 已收货 define('SS_PREPARING', 3); // 备货中 define('SS_SHIPPED_PART', 4); // 已发货(部分商品) define('SS_SHIPPED_ING', 5); // 发货中(处理分单) define('OS_SHIPPED_PART', 6); // 已发货(部分商品) ~~~ >[success]支付状态 ~~~ define('PS_UNPAYED', 0); // 未付款 define('PS_PAYING', 1); // 付款中 define('PS_PAYED', 2); // 已付款 ~~~ >[success]ECSHOP订单号生成函数 ~~~ /** * 得到新订单号 * @return string */ function get_order_sn() { /* 选择一个随机的方案 */ mt_srand((double) microtime() * 1000000); return date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT); } ~~~ >[success]ECSHOP订单号唯一性 ~~~ /* 插入订单表 */ $error_no = 0; do { $order['order_sn'] = get_order_sn(); //获取新订单号 $GLOBALS['db']->autoExecute($GLOBALS['ecs'] ->table('order_info'), $order, 'INSERT'); $error_no = $GLOBALS['db']->errno(); if ($error_no > 0 && $error_no != 1062) { die($GLOBALS['db']->errorMsg()); } } while ($error_no == 1062); //如果是订单号重复则重新提交数据 ~~~ >[success]ECSHOP订单核心表 [》](http://book.ecmoban.com/images/db.htm) ~~~ order_info 订单的表 pay_log 系统支付记录 order_goods 订单的商品信息 ~~~