Ejemplo n.º 1
0
    if ($number < 1) {
        mobile_error('返回上一页', '', '输入的库存数量不对');
    }
    if ($goods_id) {
        clear_cart();
        $state = is_stock($goods_id, $number, $spec);
        if ($state == false) {
            mobile_error('返回上一页', '', '库存不足');
        } elseif ($state === 2) {
            mobile_error('返回上一页', '', '配件不允许单独销售');
        } elseif ($state === 3) {
            mobile_error('返回上一页', '', '商品信息错误');
        } elseif ($state === 4) {
            mobile_error('返回上一页', '', '商品已经下架,无法购买');
        }
        if (!addto_cart($goods_id, $number, $spec)) {
            mobile_error('返回上一页', '', '购买失败,请重新购买');
        } else {
            $goods_order = 1;
            ecs_header('Location: flow.php?act=add_order');
            exit;
        }
    } else {
        mobile_error('返回上一页', '', '参数错误');
    }
} elseif ($_REQUEST['act'] == 'add_order') {
    $cart_goods = cart_goods($flow_type);
    if (empty($cart_goods)) {
        mobile_error('返回首页', 'index.php', '购物车里面无商品');
    } else {
        $smarty->assign('cart_goods', $cart_goods);
Ejemplo n.º 2
0
        }
    }
    $result['confirm_type'] = !empty($_CFG['cart_confirm']) ? $_CFG['cart_confirm'] : 2;
    if ($cp == "add_cart") {
        $result['ctype'] = 1;
    } else {
        $result['ctype'] = 2;
    }
    die($json->encode($result));
} else {
    $goods_id = isset($_REQUEST['id']) ? $_REQUEST['id'] : '';
    if ($goods_id) {
        //16:25 2013-07-13
        //clear_cart();
        $_LANG['shortage'] = "对不起,该商品已经库存不足暂停销售。\n你现在要进行缺货登记来预订该商品吗?";
        if (!addto_cart($goods_id)) {
            //16:25 2013-07-13
            echo '购买失败,请重新购买!';
            exit;
        } else {
            $goods_order = 1;
            //16:25 2013-07-13
            if ($cp == "add_cart") {
                $Loaction = 'cart.php';
            } else {
                $Loaction = 'buy.php?act=checkout';
            }
            ecs_header("Location: {$Loaction}\n");
            exit;
        }
    } else {
Ejemplo n.º 3
0
 public static function add_to_cart($goods, $goods_id)
 {
     global $db;
     global $ecs;
     include_once 'includes/cls_json.php';
     include_once 'includes/lib_order.php';
     $result = array('error' => 0, 'message' => '', 'content' => '', 'goods_id' => '');
     if (empty($goods)) {
         $result['error'] = 1;
         return json_encode($result);
     }
     $json = new JSON();
     $goods = $json->decode($goods);
     //检查:如果商品有规格,而post的数据没有规格,把商品的规格属性通过JSON传到前台
     if (empty($goods->spec) and empty($goods->quick)) {
         $sql = "SELECT a.attr_id, a.attr_name, a.attr_type, " . "g.goods_attr_id, g.attr_value, g.attr_price " . 'FROM ' . $GLOBALS['ecs']->table('goods_attr') . ' AS g ' . 'LEFT JOIN ' . $GLOBALS['ecs']->table('attribute') . ' AS a ON a.attr_id = g.attr_id ' . "WHERE a.attr_type != 0 AND g.goods_id = '" . $goods->goods_id . "' " . 'ORDER BY a.sort_order, g.attr_price, g.goods_attr_id';
         $res = $db->getAll($sql);
         if (!empty($res)) {
             $spe_arr = array();
             foreach ($res as $row) {
                 $spe_arr[$row['attr_id']]['attr_type'] = $row['attr_type'];
                 $spe_arr[$row['attr_id']]['name'] = $row['attr_name'];
                 $spe_arr[$row['attr_id']]['attr_id'] = $row['attr_id'];
                 $spe_arr[$row['attr_id']]['values'][] = array('label' => $row['attr_value'], 'price' => $row['attr_price'], 'format_price' => price_format($row['attr_price'], false), 'id' => $row['goods_attr_id']);
             }
             $i = 0;
             $spe_array = array();
             foreach ($spe_arr as $row) {
                 $spe_array[] = $row;
             }
             $result['error'] = ERR_NEED_SELECT_ATTR;
             $result['goods_id'] = $goods->goods_id;
             $result['parent'] = $goods->parent;
             $result['message'] = $spe_array;
             return json_encode($result);
         }
     }
     /* 更新:如果是一步购物,先清空购物车 */
     if ($_CFG['one_step_buy'] == '1') {
         clear_cart();
     }
     /* 检查:商品数量是否合法 */
     if (!is_numeric($goods->number) || intval($goods->number) <= 0) {
         $result['error'] = 1;
         $result['message'] = $_LANG['invalid_number'];
     } else {
         // 更新:添加到购物车
         if (addto_cart($goods->goods_id, $goods->number, $goods->spec, $goods->parent)) {
             if ($_CFG['cart_confirm'] > 2) {
                 $result['message'] = '';
             } else {
                 $result['message'] = $_CFG['cart_confirm'] == 1 ? $_LANG['addto_cart_success_1'] : $_LANG['addto_cart_success_2'];
             }
             $result['goods_id'] = stripslashes($goods->goods_id);
             $result['content'] = insert_right_cart_info();
             $result['one_step_buy'] = $_CFG['one_step_buy'];
         } else {
             $result['message'] = $err->last_message();
             $result['error'] = $err->error_no;
             $result['goods_id'] = stripslashes($goods->goods_id);
             if (is_array($goods->spec)) {
                 $result['product_spec'] = implode(',', $goods->spec);
             } else {
                 $result['product_spec'] = $goods->spec;
             }
         }
     }
     $sql = "select * from " . $ecs->table('cart') . " WHERE  session_id='" . SESS_ID . "'";
     $goods = $db->getAll($sql);
     foreach ($goods as $val) {
         $total += $val['goods_price'] * $val['goods_number'];
         //计算额外餐具的价格
         if ($_SESSION['extra_fork'][$val['goods_id']]) {
             $total += $_SESSION['extra_fork'][$val['goods_id']] / 2;
         }
         //蜡烛这玩意 需要在order页面返回给前端添加到订单里,其他商品不需要这么做
         if ($val['goods_id'] == 61) {
             $result['data'] = $val;
         }
     }
     $result['confirm_type'] = !empty($_CFG['cart_confirm']) ? $_CFG['cart_confirm'] : 2;
     $result['order_total'] = MES_Order::get_total_price_in_cart();
     return json_encode($result);
 }
Ejemplo n.º 4
0
            $result['message'] = $err->last_message();
            $result['error'] = $err->error_no;
            $result['goods_id'] = stripslashes($goods->goods_id);
            if (is_array($goods->spec)) {
                $result['product_spec'] = implode(',', $goods->spec);
            } else {
                $result['product_spec'] = $goods->spec;
            }
        }
    }
    $result['confirm_type'] = !empty($_CFG['cart_confirm']) ? $_CFG['cart_confirm'] : 2;
    die($json->encode($result));
} elseif ($_REQUEST['step'] == 'link_buy') {
    $goods_id = intval($_GET['goods_id']);
    if (!cart_goods_exists($goods_id, array())) {
        addto_cart($goods_id);
    }
    ecs_header("Location:./flow.php\n");
    exit;
} elseif ($_REQUEST['step'] == 'login') {
    include_once 'languages/' . $_CFG['lang'] . '/user.php';
    /*
     * 用户登录注册
     */
    if ($_SERVER['REQUEST_METHOD'] == 'GET') {
        $smarty->assign('anonymous_buy', $_CFG['anonymous_buy']);
        /* 检查是否有赠品,如果有提示登录后重新选择赠品 */
        $sql = "SELECT COUNT(*) FROM " . $ecs->table('cart') . " WHERE session_id = '" . SESS_ID . "' AND is_gift > 0";
        if ($db->getOne($sql) > 0) {
            $smarty->assign('need_rechoose_gift', 1);
        }
Ejemplo n.º 5
0
        $result['error'] = 1;
        $result['info'] = '请返回扫描页面,重新扫描';
        die(json_encode($result));
    }
} elseif ($act == 'addcart') {
    include_once 'includes/cls_json.php';
    $result = array('error' => 0, 'content' => '');
    $json = new JSON();
    $info = array(1 => '商品不存在', 2 => '商品缺货', 3 => '商品已下架', 4 => '商品不能单独销售', 5 => '商品没有基本件', 6 => '商品需要用户选择属性');
    if (isset($_SESSION['saodata']) && !empty($_SESSION['saodata'])) {
        $ginfo = get_goods_by_txm(array_keys($_SESSION['saodata']));
        $ok = $fail = array();
        foreach ($ginfo as $key => $val) {
            $txminfo = explode(',', $_SESSION['saodata'][$key]);
            $buynumber = $txminfo[1];
            $goods_id = $val['goods_id'];
            $spec = explode(',', $val['goods_attr_id']);
            if (addto_cart($goods_id, $buynumber, $spec)) {
                unset($_SESSION['saodata'][$key]);
                $ok[] = array('txm' => $key);
            } else {
                $fail[] = array('error' => $err->error_no, 'message' => $info[$err->error_no], 'txm' => $key);
            }
        }
        $result = array('error' => count($fail), 'content' => '提交商品中有部分商品存在异常,无法进入结算!以下为失败原因:', 'fail' => $fail, 'ok' => $ok);
        die($json->encode($result));
    } else {
        $result = array('error' => -1, 'content' => '提交购物车超时,请返回重新扫描!');
        die($json->encode($result));
    }
}
Ejemplo n.º 6
0
     } else {
         clear_cart();
     }
 }
 /* 检查:商品数量是否合法 */
 if (!is_numeric($goods->number) || intval($goods->number) <= 0) {
     $result['error'] = 1;
     $result['message'] = $_LANG['invalid_number'];
 } else {
     if (!empty($goods->spec)) {
         foreach ($goods->spec as $key => $val) {
             $goods->spec[$key] = intval($val);
         }
     }
     // 更新:添加到购物车
     if (addto_cart($goods->goods_id, $goods->number, $goods->spec, $goods->parent)) {
         if ($_CFG['cart_confirm'] > 2) {
             $result['message'] = '';
         } else {
             $result['message'] = $_CFG['cart_confirm'] == 1 ? $_LANG['addto_cart_success_1'] : $_LANG['addto_cart_success_2'];
         }
         $result['content'] = insert_cart_info();
         $result['one_step_buy'] = $_CFG['one_step_buy'];
     } else {
         $result['message'] = $err->last_message();
         $result['error'] = $err->error_no;
         $result['goods_id'] = stripslashes($goods->goods_id);
         if (is_array($goods->spec)) {
             $result['product_spec'] = implode(',', $goods->spec);
         } else {
             $result['product_spec'] = $goods->spec;
Ejemplo n.º 7
0
require EC_PATH . '/includes/init.php';
GZ_Api::authSession();
include_once EC_PATH . '/includes/lib_order.php';
if (empty($tmp[0])) {
    GZ_Api::outPut(101);
}
switch ($tmp[0]) {
    case 'create':
        $goods_id = _POST('goods_id', 0);
        $goods_number = _POST('number', 0);
        $goods_spec = _POST('spec', array());
        if (!$goods_number || !$goods_id) {
            GZ_Api::outPut(8);
        }
        // 更新:添加到购物车
        if (addto_cart($goods_id, $goods_number, $goods_spec)) {
            GZ_Api::outPut(array());
        } else {
            GZ_Api::outPut(14);
        }
        break;
    case 'update':
        $rec_id = _POST('rec_id', 0);
        $new_number = _POST('new_number', 0);
        if ($new_number < 1 || !$rec_id) {
            GZ_Api::outPut(101);
        }
        $goods_number = array($rec_id => $new_number);
        flow_update_cart($goods_number);
        $cart_goods = get_cart_goods();
        GZ_Api::outPut($cart_goods['total']);
Ejemplo n.º 8
0
        echo "<script>alert('登录失败,请输入正确的用户名跟密码');</script>";
    }
} elseif ($action == 'select_goods') {
    $goods_id = trim($_GET['goods_id']);
    $goods = get_goods_info($goods_id);
    //print_r($goods);
    $shop_price = $goods['shop_price'];
    echo $shop_price;
} elseif ($action == 'addtocar') {
    include_once ROOT_PATH . 'includes/lib_transaction.php';
    $goods_id = trim($_GET['goods_id']);
    $addr_radio = trim($_GET['addr_radio']);
    //echo $goods_id;  echo $addr_radio;
    $result = array();
    // 更新:添加到购物车
    if (addto_cart($goods_id, 1, $result, "")) {
        //echo "成功";
        if ($_CFG['cart_confirm'] > 2) {
            $result['message'] = '';
        } else {
            $result['message'] = $_CFG['cart_confirm'] == 1 ? $_LANG['addto_cart_success_1'] : $_LANG['addto_cart_success_2'];
        }
        $result['content'] = insert_cart_info();
        $result['one_step_buy'] = $_CFG['one_step_buy'];
    } else {
        echo "false";
        exit;
    }
    //ccx 2014-12-17 获取会员表当中的用户的用户名和电话
    $sql = "SELECT user_name, mobile_phone FROM " . $ecs->table('users') . " WHERE user_id = " . $_SESSION['user_id'];
    $user_message = $db->getRow($sql);
Ejemplo n.º 9
0
function check_goods_store($rec_id, $num)
{
    $return = array('mes' => '', 'number' => 1);
    $num = intval(make_semiangle($num));
    $rec_id = intval($rec_id);
    if ($num <= 0 && !is_numeric($num)) {
        $return['mes'] = '所填数字必须是正整数!';
        return $return;
    }
    if ($rec_id <= 0) {
        $return['mes'] = '参数错误!';
        return $return;
    }
    //查询:
    $sql = "SELECT `goods_id`, `goods_attr_id`, `product_id`, `extension_code` FROM" . $GLOBALS['ecs']->table('cart') . " WHERE rec_id='{$rec_id}' AND session_id='" . SESS_ID . "'";
    $goods = $GLOBALS['db']->getRow($sql);
    if (!$goods) {
        addto_cart($rec_id, $num);
        $sql = "SELECT `rec_id`,`goods_id`, `goods_attr_id`, `product_id`, `extension_code` FROM" . $GLOBALS['ecs']->table('cart') . " WHERE goods_id='{$rec_id}' AND session_id='" . SESS_ID . "'";
        $goods = $GLOBALS['db']->getRow($sql);
        $rec_id = $goods['rec_id'];
        $return['rec_id'] = $goods['rec_id'];
    }
    $sql = "SELECT g.goods_name, g.goods_number " . "FROM " . $GLOBALS['ecs']->table('goods') . " AS g, " . $GLOBALS['ecs']->table('cart') . " AS c " . "WHERE g.goods_id = c.goods_id AND c.rec_id = '{$rec_id}'";
    $row = $GLOBALS['db']->getRow($sql);
    //查询:系统启用了库存,检查输入的商品数量是否有效
    if (intval($GLOBALS['_CFG']['use_storage']) > 0 && $goods['extension_code'] != 'package_buy') {
        if ($row['goods_number'] < $num) {
            $return['mes'] = "非常抱歉,您选择的商品" . $row['goods_name'] . " 的库存数量不足 , 您最多只能购买 " . $row['goods_number'] . " 件。";
            $return['number'] = $row['goods_number'];
            return $return;
        }
        /* 是货品 */
        $goods['product_id'] = trim($goods['product_id']);
        if (!empty($goods['product_id'])) {
            $sql = "SELECT product_number FROM " . $GLOBALS['ecs']->table('products') . " WHERE goods_id = '" . $goods['goods_id'] . "' AND product_id = '" . $goods['product_id'] . "'";
            $product_number = $GLOBALS['db']->getOne($sql);
            if ($product_number < $num) {
                $return['mes'] = "非常抱歉,您选择的商品" . $row['goods_name'] . " 的库存数量只有 " . $row['product_number'] . ",您最多只能购买 " . $row['product_number'] . " 件。";
                $return['number'] = $row['product_number'];
                return $return;
            }
        }
    } elseif (intval($GLOBALS['_CFG']['use_storage']) > 0 && $goods['extension_code'] == 'package_buy') {
        if (judge_package_stock($goods['goods_id'], $num)) {
            $return['mes'] = "非常抱歉,库存数量不足,请减少购买数购买。";
            return $return;
        }
    }
    return $return;
}