ecs_order_info表
| 订单状态 | 未确认 | 取消 | 确认 | 已付款 | 配货中 | 已发货 | 已收货 | 退货 |
|---|---|---|---|---|---|---|---|---|
| order_status | 0 | 2 | 1 | 1 | 1 | 5 | 5 | 4 |
| shipping_status | 0 | 0 | 0 | 0 | 3 | 1 | 2 | 0 |
| pay_status | 0 | 0 | 0 | 2 | 2 | 2 | 2 | 0 |
/* 订单状态 */
define(‘OS_UNCONFIRMED’, 0); // 未确认
define(‘OS_CONFIRMED’, 1); // 已确认
define(‘OS_CANCELED’, 2); // 已取消
define(‘OS_INVALID’, 3); // 无效
define(‘OS_RETURNED’, 4); // 退货
/* 支付类型 */
define(‘PAY_ORDER’, 0); // 订单支付
define(‘PAY_SURPLUS’, 1); // 会员预付款
/* 配送状态 */
define(‘SS_UNSHIPPED’, 0); // 未发货
define(‘SS_SHIPPED’, 1); // 已发货
define(‘SS_RECEIVED’, 2); // 已收货
define(‘SS_PREPARING’, 3); // 备货中
/* 支付状态 */
define(‘PS_UNPAYED’, 0); // 未付款
define(‘PS_PAYING’, 1); // 付款中
define(‘PS_PAYED’, 2); // 已付款
$_LANG['os'][OS_UNCONFIRMED] = ‘未确认’;0
$_LANG['os'][OS_CONFIRMED] = ‘已确认’;1
$_LANG['os'][OS_CANCELED] = ‘ 取消‘;2
$_LANG['os'][OS_INVALID] = ‘无效‘;3
$_LANG['os'][OS_RETURNED] = ‘退货‘;4
$_LANG['ss'][SS_UNSHIPPED] = ‘未发货’;
$_LANG['ss'][SS_PREPARING] = ‘配货中’;
$_LANG['ss'][SS_SHIPPED] = ‘已发货’;
$_LANG['ss'][SS_RECEIVED] = ‘收货确认’;
$_LANG['ps'][PS_UNPAYED] = ‘未付款’;
$_LANG['ps'][PS_PAYING] = ‘付款中’;
$_LANG['ps'][PS_PAYED] = ‘已付款’;
订单的处理判断
while ($row = $GLOBALS['db']->fetchRow($res))
{
//
if ($row['order_status'] == OS_UNCONFIRMED)
{
$row['handler'] = "<a href=\"user.php?act=cancel_order&order_id=" .$row['order_id']. "\" onclick=\"if (!confirm('".$GLOBALS['_LANG']['confirm_cancel']."')) return false;\">".$GLOBALS['_LANG']['cancel']."</a>";
}
else if ($row['order_status'] == OS_CONFIRMED)
{
/* 对配送状态的处理 */
if ($row['shipping_status'] == SS_SHIPPED)
{
@$row['handler'] = "<a href=\"user.php?act=affirm_received&order_id=" .$row['order_id']. "\" onclick=\"if (!confirm('".$GLOBALS['_LANG']['confirm_received']."')) return false;\">".$GLOBALS['_LANG']['received']."</a>";
}
elseif ($row['shipping_status'] == SS_RECEIVED)
{
@$row['handler'] = '<span style="color:red">'.$GLOBALS['_LANG']['ss_received'] .'</span>';
}
else
{
if ($row['pay_status'] == PS_UNPAYED)
{
@$row['handler'] = "<a href=\"user.php?act=order_detail&order_id=" .$row['order_id']. '">' .$GLOBALS['_LANG']['pay_money']. '</a>';
}
else
{
@$row['handler'] = "<a href=\"user.php?act=order_detail&order_id=" .$row['order_id']. '">' .$GLOBALS['_LANG']['view_order']. '</a>';
}
}
}
else
{
$row['handler'] = '<span style="color:red">'.$GLOBALS['_LANG']['os'][$row['order_status']] .'</span>';
}
| 字段 | 类型 | Null/默认 | 注释 |
|---|---|---|---|
| order_id | mediumint(8) | 否 | 自增ID |
| order_sn | varchar(20) | 否 | 订单号,唯一 |
| user_id | mediumint(8) | 否 | 用户id,同users的user_id |
| order_status | tinyint(1) | 否 | 订单的状态;0未确认,1确认,2已取消,3无效,4退货 |
| shipping_status | tinyint(1) | 否 | 商品配送情况;0未发货,1已发货,2已收货,4退货 |
| pay_status | tinyint(1) | 否 | 支付状态;0未付款;1付款中;2已付款 |
| consignee | varchar(60) | 否 | 收货人的姓名,用户页面填写,默认取值表user_address |
| country | smallint(5) | 否 | 收货人的国家,用户页面填写,默认取值于表user_address,其id对应的值在region |
| province | smallint(5) | 否 | 收货人的省份,用户页面填写,默认取值于表user_address, 其id对应的值在region |
| city | smallint(5) | 否 | 收货人的城市,用户页面填写,默认取值于表user_address,其id对应的值在region |
| district | smallint(5) | 否 | 收货人的地区,用户页面填写,默认取值于表user_address,其id对应的值在region |
| address | varchar(255) | 否 | 收货人的详细地址,用户页面填写,默认取值于表user_address |
| zipcode | varchar(60) | 否 | 收货人的邮编,用户页面填写,默认取值于表user_address |
| tel | varchar(60) | 否 | 收货人的电话,用户页面填写,默认取值于表user_address |
| mobile | varchar(60) | 否 | 收货人的手机,用户页面填写,默认取值于表user_address |
| varchar(60) | 否 | 收货人的Email, 用户页面填写,默认取值于表user_address | |
| best_time | varchar(120) | 否 | 收货人的最佳送货时间,用户页面填写,默认取值于表user_addr |
| sign_building | varchar(120) | 否 | 送货人的地址的标志性建筑,用户页面填写,默认取值于表user_address |
| postscript | varchar(255) | 否 | 订单附言,由用户提交订单前填写 |
| shipping_id | tinyint(3) | 否 | 用户选择的配送方式id,取值表shipping |
| shipping_name | varchar(120) | 否 | 用户选择的配送方式的名称,取值表shipping |
| pay_id | tinyint(3) | 否 | 用户选择的支付方式的id,取值表payment |
| pay_name | varchar(120) | 否 | 用户选择的支付方式名称,取值表payment |
| how_oos | varchar(120) | 否 | 缺货处理方式,等待所有商品备齐后再发,取消订单;与店主协商 |
| how_surplus | varchar(120) | 否 | 根据字段猜测应该是余额处理方式,程序未作这部分实现 |
| pack_name | varchar(120) | 否 | 包装名称,取值表pack |
| card_name | varchar(120) | 否 | 贺卡的名称,取值card |
| card_message | varchar(255) | 否 | 贺卡内容,由用户提交 |
| inv_payee | varchar(120) | 否 | 发票抬头,用户页面填写 |
| inv_content | varchar(120) | 否 | 发票内容,用户页面选择,取值shop_config的code字段的值 为invoice_content的value |
| goods_amount | decimal(10,2) | 否 | 商品的总金额 |
| shipping_fee | decimal(10,2) | 否 | 配送费用 |
| insure_fee | decimal(10,2) | 否 | 保价费用 |
| pay_fee | decimal(10,2) | 否 | 支付费用,跟支付方式的配置相关,取值表payment |
| pack_fee | decimal(10,2) | 否 | 包装费用,取值表pack |
| card_fee | decimal(10,2) | 否 | 贺卡费用,取值card |
| money_paid | decimal(10,2) | 否 | 已付款金额 |
| surplus | decimal(10,2) | 否 | 该订单使用金额的数量,取用户设定余额,用户可用余额,订单金额中最小者 |
| integral | int(10) | 否 | 使用的积分的数量,取用户使用积分,商品可用积分,用户拥有积分中最小者 |
| integral_money | decimal(10,2) | 否 | 使用积分金额 |
| bonus | decimal(10,2) | 否 | 使用红包金额 |
| order_amount | decimal(10,2) | 否 | 应付款金额 |
| from_ad | smallint(5) | 否 | 订单由某广告带来的广告id,应该取值于ad |
| referer | varchar(255) | 否 | 订单的来源页面 |
| add_time | int(10) | 否 | 订单生成时间 |
| confirm_time | int(10) | 否 | 订单确认时间 |
| pay_time | int(10) | 否 | 订单支付时间 |
| shipping_time | int(10) | 否 | 订单配送时间 |
| pack_id | tinyint(3) | 否 | 包装id,取值表pck |
| card_id | tinyint(3) | 否 | 贺卡id,用户在页面选择,取值 |
| bonus_id | smallint(5) | 否 | 红包id, user_bonus的bonus_id |
| invoice_no | varchar(50) | 否 | 发货时填写, 可在订单查询查看 |
| extension_code | varchar(30) | 否 | 通过活动购买的商品的代号,group_buy是团购; auction是拍卖;snatch夺宝奇兵;正常普通产品该处理为空 |
| extension_id | mediumint(8) | 否 | 通过活动购买的物品id,取值ecs_good_activity;如果是正常普通商品,该处为0 |
| to_buyer | varchar(255) | 否 | 商家给客户的留言,当该字段值时可以在订单查询看到 |
| pay_note | varchar(255) | 否 | 付款备注, 在订单管理编辑修改 |
| agency_id | smallint(5) | 否 | 该笔订单被指派给的办事处的id, 根据订单内容和办事处负责范围自动决定,也可以有管理员修改,取值于表agency |
| inv_type | varchar(60) | 否 | 发票类型,用户页面选择,取值shop_config的code字段的值invoice_type的value |
| tax | decimal(10,2) | 否 | 发票税额 |
| is_separate | tinyint(1) | 否 | 0未分成或等待分成;1已分成;2取消分成 |
| parent_id | mediumint(8) | 否 | 自增ID |
| discount | decimal(10,2) | 否 | 订单号,唯一 |
本文深入解析了电子商务订单管理系统的各个关键组件,包括订单状态、支付类型、配送状态等,并提供了处理逻辑示例。
359

被折叠的 条评论
为什么被折叠?



