//记录订单所需支付的总金额 //用来展示用的数组数据 $split_order = array(); $split_order['sub_order_count'] = count($order_info); //生成订单 foreach ($order_info as $ok => $order) { $cart_goods = $cart_goods_new[$ok]['goodlist']; $id_ext_new = " AND rec_id in (" . implode(',', array_keys($cart_goods)) . ") "; //获取当前订单中各个商品对应的仓库并保存morestock_morecity start $order['store_id'] = 0; $order['sub_id'] = "|"; $sqlg = "select goods_id,goods_attr_id from " . $ecs->table('cart') . " WHERE {$sql_where} AND rec_type = '{$flow_type}' {$id_ext_new} "; $retg = $db->query($sqlg); if ($retg) { while ($rowg = $db->fetchRow($retg)) { $stock_info = get_goods_send_stock($rowg['goods_id'], trim($rowg['goods_attr_id'])); $order['store_id'] = $stock_info['parent_id']; $order['sub_id'] .= $stock_info['store_id'] . "|"; } } //morestock_morecity end //获取佣金id $order['rebate_id'] = get_order_rebate($ok); //下单来源 $order['froms'] = WEB_FROM; $order['parent_order_id'] = $parent_order_id; /* 插入订单表 */ $error_no = 0; do { $order['order_sn'] = get_order_sn(); //获取新订单号
die($GLOBALS['db']->errorMsg()); } } while ($error_no == 1062); //如果是订单号重复则重新提交数据 $new_order_id = $db->insert_id(); $order['order_id'] = $new_order_id; $parent_order_id = $parent_order_id > 0 ? $parent_order_id : $new_order_id; /* 插入订单商品 下面这个SQL有修改 by www.ecshop68.com 注意末尾那个字段 */ /* 代码增加_start By www.68ecshop.com */ $sql = "INSERT INTO " . $ecs->table('order_goods') . "( " . "order_id, goods_id, goods_name, goods_sn, product_id, goods_number, market_price, " . "goods_price, goods_attr, is_real, extension_code, parent_id, is_gift, goods_attr_id, package_attr_id) " . " SELECT '{$new_order_id}', goods_id, goods_name, goods_sn, product_id, goods_number, market_price, " . "goods_price, goods_attr, is_real, extension_code, parent_id, is_gift, goods_attr_id, package_attr_id " . " FROM " . $ecs->table('cart') . " WHERE {$sql_where} AND rec_type = '{$flow_type}' {$id_ext_new} "; /* 代码增加_end By www.68ecshop.com */ $db->query($sql); //更新订单商品表中商品出库的仓库id $order_goods_insert_id = $db->insert_id(); $order_goods_info = $db->getRow('select goods_id,goods_attr_id from ' . $ecs->table('order_goods') . ' where rec_id=' . $order_goods_insert_id); $goods_stock_info = get_goods_send_stock($order_goods_info['goods_id'], trim($order_goods_info['goods_attr_id'])); if ($goods_stock_info['store_id'] > 0) { $db->query('update ' . $ecs->table('order_goods') . ' set send_store_id=' . $goods_stock_info['store_id'] . ' where rec_id=' . $order_goods_insert_id); } /* 修改拍卖活动状态 */ if ($order['extension_code'] == 'auction') { $sql = "UPDATE " . $ecs->table('goods_activity') . " SET is_finished='2' WHERE act_id=" . $order['extension_id']; $db->query($sql); } /* 处理余额、积分、红包 */ if ($order['user_id'] > 0 && $order['surplus'] > 0) { log_account_change($order['user_id'], $order['surplus'] * -1, 0, 0, 0, sprintf($_LANG['pay_order'], $order['order_sn'])); } if ($order['user_id'] > 0 && $order['integral'] > 0) { log_account_change($order['user_id'], 0, 0, 0, $order['integral'] * -1, sprintf($_LANG['pay_order'], $order['order_sn'])); }