您的位置:首页 > 运维架构

[ecshop 资料] ecshop 购物车显示积分

2015-11-25 09:42 417 查看
ecshop 购物车

显示积分

lib_goods.php

/**
* 获得购物车中的商品
*
* @access  public
* @return  array
*/
function get_cart_goods()
{
/* 初始化 */
$goods_list = array();
$total = array(
'goods_price'  => 0, // 本店售价合计(有格式)
'market_price' => 0, // 市场售价合计(有格式)
'saving'       => 0, // 节省金额(有格式)
'save_rate'    => 0, // 节省百分比
'goods_amount' => 0, // 本店售价合计(无格式)
);

/* 循环、统计  mod by yanggg 2015/11/23*/
$sql = "SELECT  gs.exchange_integral, c.*, IF(c.parent_id, c.parent_id, c.goods_id) AS pid , c.goods_number " .
" FROM " . $GLOBALS['ecs']->table('cart') . " as c " .
' LEFT JOIN ' . $GLOBALS['ecs']->table('exchange_goods') . ' AS gs ON gs.goods_id = c.goods_id '.
" WHERE c.session_id = '" . SESS_ID . "' AND c.rec_type = '" . CART_GENERAL_GOODS . "'" .
" ORDER BY pid, c. parent_id";
$res = $GLOBALS['db']->query($sql);

/* 用于统计购物车中实体商品和虚拟商品的个数 */
$virtual_goods_count = 0;
$real_goods_count    = 0;

while ($row = $GLOBALS['db']->fetchRow($res))
{
$total['goods_price']  += $row['goods_price'] * $row['goods_number'];
$total['market_price'] += $row['market_price'] * $row['goods_number'];
$total['total_number'] += $row['goods_number'];//by Leah

$row['subtotal']     = price_format($row['goods_price'] * $row['goods_number'], false);
$row['goods_price']  = price_format($row['goods_price'], false);
$row['market_price'] = price_format($row['market_price'], false);

$row['exchange_integral'] = $row['exchange_integral'];
$row['jifen'] = $row['exchange_integral'];
/* 统计实体商品和虚拟商品的个数 */
if ($row['is_real'])
{
$real_goods_count++;
}
else
{
$virtual_goods_count++;
}

/* 查询规格 */
if (trim($row['goods_attr']) != '')
{
$row['goods_attr']=addslashes($row['goods_attr']);
$sql = "SELECT attr_value FROM " . $GLOBALS['ecs']->table('goods_attr') . " WHERE goods_attr_id " .
db_create_in($row['goods_attr']);
$attr_list = $GLOBALS['db']->getCol($sql);
foreach ($attr_list AS $attr)
{
$row['goods_name'] .= ' [' . $attr . '] ';
}
}
/* 增加是否在购物车里显示商品图 */
if (($GLOBALS['_CFG']['show_goods_in_cart'] == "2" || $GLOBALS['_CFG']['show_goods_in_cart'] == "3") && $row['extension_code'] != 'package_buy')
{
$goods_thumb = $GLOBALS['db']->getOne("SELECT `goods_thumb` FROM " . $GLOBALS['ecs']->table('goods') . " WHERE `goods_id`='{$row['goods_id']}'");
$row['goods_thumb'] = get_image_path($row['goods_id'], $goods_thumb, true);
}
if ($row['extension_code'] == 'package_buy')
{
$row['package_goods_list'] = get_package_goods($row['goods_id']);
}
$goods_list[] = $row;
}
$total['goods_amount'] = $total['goods_price'];
$total['saving']       = price_format($total['market_price'] - $total['goods_price'], false);
if ($total['market_price'] > 0)
{
$total['save_rate'] = $total['market_price'] ? round(($total['market_price'] - $total['goods_price']) *
100 / $total['market_price']).'%' : 0;
}
$total['goods_price']  = price_format($total['goods_price'], false);
$total['market_price'] = price_format($total['market_price'], false);
$total['real_goods_count']    = $real_goods_count;
$total['virtual_goods_count'] = $virtual_goods_count;

return array('goods_list' => $goods_list, 'total' => $total);
}


  /* 查询:取得参数:商品id */

    $goods_id = isset($_POST['goods_id']) ? intval($_POST['goods_id']) : 0;

    if ($goods_id <= 0)

    {

        ecs_header("Location: ./\n");

        exit;

    }

    /* 查询:取得兑换商品信息 */

    $goods = get_exchange_goods_info($goods_id);

    if (empty($goods))

    {

        ecs_header("Location: ./\n");

        exit;

    }

    /* 查询:检查兑换商品是否有库存 */

    if($goods['goods_number'] == 0 && $_CFG['use_storage'] == 1)

    {

        show_message($_LANG['eg_error_number'], array($_LANG['back_up_page']), array($back_act), 'error');

    }

    /* 查询:检查兑换商品是否是取消 */

    if ($goods['is_exchange'] == 0)

    {

        show_message($_LANG['eg_error_status'], array($_LANG['back_up_page']), array($back_act), 'error');

    }

    $user_info   = get_user_info($_SESSION['user_id']);

    $user_points = $user_info['pay_points']; // 用户的积分总数

    if ($goods['exchange_integral'] > $user_points)

    {

        show_message($_LANG['eg_error_integral'], array($_LANG['back_up_page']), array($back_act), 'error');

    }

    /* 查询:取得规格 */

    $specs = '';

    foreach ($_POST as $key => $value)

    {

        if (strpos($key, 'spec_') !== false)

        {

            $specs .= ',' . intval($value);

        }

    }

    $specs = trim($specs, ',');

    /* 查询:如果商品有规格则取规格商品信息 配件除外 */

    if (!empty($specs))

    {

        $_specs = explode(',', $specs);

        $product_info = get_products_info($goods_id, $_specs);

    }

    if (empty($product_info))

    {

        $product_info = array('product_number' => '', 'product_id' => 0);

    }

    //查询:商品存在规格 是货品 检查该货品库存

    if((!empty($specs)) && ($product_info['product_number'] == 0) && ($_CFG['use_storage'] == 1))

    {

        show_message($_LANG['eg_error_number'], array($_LANG['back_up_page']), array($back_act), 'error');

    }

    /* 查询:查询规格名称和值,不考虑价格 */

    $attr_list = array();

    $sql = "SELECT a.attr_name, g.attr_value " .

            "FROM " . $ecs->table('goods_attr') . " AS g, " .

                $ecs->table('attribute') . " AS a " .

            "WHERE g.attr_id = a.attr_id " .

            "AND g.goods_attr_id " . db_create_in($specs);

    $res = $db->query($sql);

    while ($row = $db->fetchRow($res))

    {

        $attr_list[] = $row['attr_name'] . ': ' . $row['attr_value'];

    }

    $goods_attr = join(chr(13) . chr(10), $attr_list);

    /* 更新:清空购物车中所有团购商品 */

    include_once(ROOT_PATH . 'include/lib_order.php');

    clear_cart(CART_EXCHANGE_GOODS);

    /* 更新:加入购物车 */

    $number = 1;

    $cart = array(

        'user_id'        => $_SESSION['user_id'],

        'session_id'     => SESS_ID,

        'goods_id'       => $goods['goods_id'],

        'product_id'     => $product_info['product_id'],

        'goods_sn'       => addslashes($goods['goods_sn']),

        'goods_name'     => addslashes($goods['goods_name']),

        'market_price'   => $goods['market_price'],

        'goods_price'    => 0,//$goods['exchange_integral']

        'goods_number'   => $number,

        'goods_attr'     => addslashes($goods_attr),

        'goods_attr_id'  => $specs,

        'is_real'        => $goods['is_real'],

        'extension_code' => addslashes($goods['extension_code']),

        'parent_id'      => 0,

        'rec_type'       => CART_EXCHANGE_GOODS,

        'is_gift'        => 0

    );

    $db->autoExecute($ecs->table('cart'), $cart, 'INSERT');

    /* 记录购物流程类型:团购 */

    $_SESSION['flow_type'] = CART_EXCHANGE_GOODS;

    $_SESSION['extension_code'] = 'exchange_goods';

    $_SESSION['extension_id'] = $goods_id;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: