本文整理汇总了PHP中is_spec函数的典型用法代码示例。如果您正苦于以下问题:PHP is_spec函数的具体用法?PHP is_spec怎么用?PHP is_spec使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了is_spec函数的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: action_add_huan_goods
function action_add_huan_goods()
{
$user = $GLOBALS['user'];
$_CFG = $GLOBALS['_CFG'];
$_LANG = $GLOBALS['_LANG'];
$smarty = $GLOBALS['smarty'];
$db = $GLOBALS['db'];
$ecs = $GLOBALS['ecs'];
$user_id = $_SESSION['user_id'];
include_once 'includes/cls_json.php';
include_once 'includes/lib_order.php';
$json = new JSON();
$result = array('error' => 0, 'content' => '');
$_POST['goods'] = strip_tags(urldecode($_POST['goods']));
$_POST['goods'] = json_str_iconv($_POST['goods']);
$goods = $json->decode($_POST['goods']);
$spec = $goods->spec;
$goods_id = $goods->goods_id;
$goods_name = $db->getOne("select goods_name from " . $ecs->table('goods') . " where goods_id='{$goods_id}' ");
/* 如果商品有规格则取规格商品信息 配件除外 */
$sql = "SELECT * FROM " . $GLOBALS['ecs']->table('products') . " WHERE goods_id = '{$goods_id}' LIMIT 0, 1";
$prod = $GLOBALS['db']->getRow($sql);
if (is_spec($spec) && !empty($prod)) {
$product_info = get_products_info($goods_id, $spec);
}
$goods_attr = get_goods_attr_info($spec);
$result['error'] = 1;
$result['goods_name'] = $goods_name . " ";
$result['product_id'] = $product_info['product_id'];
$result['product_id'] = $result['product_id'] == 'null' ? '0' : intval($result['product_id']);
$result['content'] = addslashes($goods_attr);
die($json->encode($result));
}
示例2: get_products_info
if (is_spec($goods_attr) && !empty($prod)) {
$product_info = get_products_info($_REQUEST['goodslist'], $goods_attr);
}
//商品存在规格 是货品 检查该货品库存
if (is_spec($goods_attr) && !empty($prod)) {
if (!empty($goods_attr)) {
/* 取规格的货品库存 */
if ($goods_number > $product_info['product_number']) {
$url = "order.php?act=" . $step_act . "&order_id=" . $order_id . "&step=goods";
echo '<a href="' . $url . '">' . $_LANG['goods_num_err'] . '</a>';
exit;
return false;
}
}
}
if (is_spec($goods_attr) && !empty($prod)) {
/* 插入订单商品 */
$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) " . "SELECT '{$order_id}', goods_id, goods_name, goods_sn, " . $product_info['product_id'] . ", " . "'{$goods_number}', market_price, '{$goods_price}', '" . $attr_value . "', " . "is_real, extension_code, 0, 0 , '" . implode(',', $goods_attr) . "' " . "FROM " . $ecs->table('goods') . " WHERE goods_id = '{$goods_id}' LIMIT 1";
} else {
$sql = "INSERT INTO " . $ecs->table('order_goods') . " (order_id, goods_id, goods_name, goods_sn, " . "goods_number, market_price, goods_price, goods_attr, " . "is_real, extension_code, parent_id, is_gift)" . "SELECT '{$order_id}', goods_id, goods_name, goods_sn, " . "'{$goods_number}', market_price, '{$goods_price}', '" . $attr_value . "', " . "is_real, extension_code, 0, 0 " . "FROM " . $ecs->table('goods') . " WHERE goods_id = '{$goods_id}' LIMIT 1";
}
$db->query($sql);
/* 如果使用库存,且下订单时减库存,则修改库存 */
if ($_CFG['use_storage'] == '1' && $_CFG['stock_dec_time'] == SDT_PLACE) {
//(货品)
if (!empty($product_info['product_id'])) {
$sql = "UPDATE " . $ecs->table('products') . "\n SET product_number = product_number - " . $goods_number . "\n WHERE product_id = " . $product_info['product_id'];
$db->query($sql);
}
$sql = "UPDATE " . $ecs->table('goods') . " SET `goods_number` = goods_number - '" . $goods_number . "' " . " WHERE `goods_id` = '" . $goods_id . "' LIMIT 1";
$db->query($sql);
示例3: addto_cart
/**
* 添加商品到购物车
*
* @access public
* @param integer $goods_id 商品编号
* @param integer $num 商品数量
* @param array $spec 规格值对应的id数组
* @param integer $parent 基本件
* @return boolean
*/
function addto_cart($goods_id, $num = 1, $spec = array(), $parent = 0)
{
$GLOBALS['err']->clean();
$_parent_id = $parent;
/*ccx 2015-03-03 判断该商品是否已经通过自动下架功能 start*/
$sql = "SELECT * FROM " . $GLOBALS['ecs']->table('auto_manage') . " WHERE item_id = {$goods_id} AND type = 'goods' ";
$autodb = $GLOBALS['db']->getRow($sql);
//print_r($autodb);exit;
if ($autodb) {
$where = " WHERE goods_id = '{$goods_id}'";
if ($autodb['endtime'] < gmtime() && $autodb['endtime'] > 0) {
$sql = "UPDATE " . $GLOBALS['ecs']->table('goods') . " SET is_on_sale = 0 {$where}";
$GLOBALS['db']->query($sql);
$sql_1 = "DELETE FROM " . $GLOBALS['ecs']->table('auto_manage') . "WHERE item_id = '{$goods_id}' AND type = 'goods'";
$GLOBALS['db']->query($sql_1);
$GLOBALS['err']->add($GLOBALS['_LANG']['not_on_sale'], ERR_NOT_ON_SALE);
return false;
}
//var_dump($up);
}
/*ccx 2015-03-03 end*/
/* 取得商品信息 */
$sql = "SELECT g.goods_name, g.goods_sn, g.is_on_sale, g.is_real, " . "g.market_price, g.shop_price AS org_price, g.promote_price, g.promote_start_date, " . "g.promote_end_date, g.goods_weight, g.integral, g.extension_code, " . "g.goods_number, g.is_alone_sale, g.is_shipping," . "IFNULL(mp.user_price, g.shop_price * '{$_SESSION['discount']}') AS shop_price " . " FROM " . $GLOBALS['ecs']->table('goods') . " AS g " . " LEFT JOIN " . $GLOBALS['ecs']->table('member_price') . " AS mp " . "ON mp.goods_id = g.goods_id AND mp.user_rank = '{$_SESSION['user_rank']}' " . " WHERE g.goods_id = '{$goods_id}'" . " AND g.is_delete = 0";
$goods = $GLOBALS['db']->getRow($sql);
if (empty($goods)) {
$GLOBALS['err']->add($GLOBALS['_LANG']['goods_not_exists'], ERR_NOT_EXISTS);
return false;
}
/* 如果是作为配件添加到购物车的,需要先检查购物车里面是否已经有基本件 */
if ($parent > 0) {
$sql = "SELECT COUNT(*) FROM " . $GLOBALS['ecs']->table('cart') . " WHERE goods_id='{$parent}' AND session_id='" . SESS_ID . "' AND extension_code <> 'package_buy'";
if ($GLOBALS['db']->getOne($sql) == 0) {
$GLOBALS['err']->add($GLOBALS['_LANG']['no_basic_goods'], ERR_NO_BASIC_GOODS);
return false;
}
}
/* 是否正在销售 */
if ($goods['is_on_sale'] == 0) {
$GLOBALS['err']->add($GLOBALS['_LANG']['not_on_sale'], ERR_NOT_ON_SALE);
return false;
}
/* 不是配件时检查是否允许单独销售 */
if (empty($parent) && $goods['is_alone_sale'] == 0) {
$GLOBALS['err']->add($GLOBALS['_LANG']['cannt_alone_sale'], ERR_CANNT_ALONE_SALE);
return false;
}
/* 如果商品有规格则取规格商品信息 配件除外 */
$sql = "SELECT * FROM " . $GLOBALS['ecs']->table('products') . " WHERE goods_id = '{$goods_id}' LIMIT 0, 1";
$prod = $GLOBALS['db']->getRow($sql);
if (is_spec($spec) && !empty($prod)) {
$product_info = get_products_info($goods_id, $spec);
}
if (empty($product_info)) {
$product_info = array('product_number' => '', 'product_id' => 0);
}
/* 检查:库存 */
/* 2014-12-18 ccx 把购物的时候, 把检查库存这块屏蔽了, 不做库存判断
if ($GLOBALS['_CFG']['use_storage'] == 1)
{
//检查:商品购买数量是否大于总库存
if ($num > $goods['goods_number'])
{
$GLOBALS['err']->add(sprintf($GLOBALS['_LANG']['shortage'], $goods['goods_number']), ERR_OUT_OF_STOCK);
return false;
}
//商品存在规格 是货品 检查该货品库存
if (is_spec($spec) && !empty($prod))
{
if (!empty($spec))
{
// 取规格的货品库存
if ($num > $product_info['product_number'])
{
$GLOBALS['err']->add(sprintf($GLOBALS['_LANG']['shortage'], $product_info['product_number']), ERR_OUT_OF_STOCK);
return false;
}
}
}
}
*/
/* 计算商品的促销价格 */
$spec_price = spec_price($spec);
$goods_price = get_final_price($goods_id, $num, true, $spec);
$goods['market_price'] += $spec_price;
$goods_attr = get_goods_attr_info($spec);
$goods_attr_id = join(',', $spec);
/* 初始化要插入购物车的基本件数据 */
//.........这里部分代码省略.........
示例4: is_stock
function is_stock($goods_id, $num, $spec = array())
{
$sql = 'SELECT goods_number,is_alone_sale,is_on_sale FROM ' . $GLOBALS['ecs']->table('goods') . " WHERE goods_id = '{$goods_id}'";
$goods = $GLOBALS['db']->getRow($sql);
if (empty($goods)) {
return 3;
}
if ($goods['is_on_sale'] == 0) {
return 4;
}
if ($goods['is_alone_sale'] == 0) {
return 2;
// 不是配件时检查是否允许单独销售
}
if ($GLOBALS['_CFG']['use_storage'] == 1) {
$sql = 'SELECT * FROM ' . $GLOBALS['ecs']->table('products') . " WHERE goods_id = '{$goods_id}' LIMIT 0, 1";
$prod = $GLOBALS['db']->getRow($sql);
} else {
return true;
}
if (is_spec($spec) && !empty($prod)) {
$product_info = get_products_info($goods_id, $spec);
}
//检查:商品购买数量是否大于总库存
if ($num > $goods['goods_number']) {
// $GLOBALS['err']->add(sprintf($GLOBALS['_LANG']['shortage'], $goods['goods_number']), ERR_OUT_OF_STOCK);
return false;
}
//商品存在规格 是货品 检查该货品库存
if (is_spec($spec) && !empty($prod)) {
if (!empty($spec)) {
/* 取规格的货品库存 */
if ($num > $product_info['product_number']) {
//$GLOBALS['err']->add(sprintf($GLOBALS['_LANG']['shortage'], $product_info['product_number']), ERR_OUT_OF_STOCK);
return false;
}
}
}
return true;
}
示例5: addto_cart
/**
* 添加商品到购物车
*
* @access public
* @param integer $goods_id 商品编号
* @param integer $num 商品数量
* @param array $spec 规格值对应的id数组
* @param integer $parent 基本件
* @return boolean
*/
function addto_cart($goods_id, $num = 1, $spec = array(), $parent = 0)
{
$GLOBALS['err']->clean();
$_parent_id = $parent;
/* 取得商品信息 */
$sql = "SELECT g.goods_name, g.goods_sn, g.is_on_sale, g.is_real, " . "g.market_price, g.shop_price AS org_price, g.promote_price, g.promote_start_date, " . "g.promote_end_date, g.goods_weight, g.integral, g.extension_code, " . "g.goods_number, g.is_alone_sale, g.is_shipping, g.free_more, g.amount_desc, " . "IFNULL(mp.user_price, g.shop_price * '{$_SESSION['discount']}') AS shop_price " . " FROM " . $GLOBALS['ecs']->table('goods') . " AS g " . " LEFT JOIN " . $GLOBALS['ecs']->table('member_price') . " AS mp " . "ON mp.goods_id = g.goods_id AND mp.user_rank = '{$_SESSION['user_rank']}' " . " WHERE g.goods_id = '{$goods_id}'" . " AND g.is_delete = 0";
$goods = $GLOBALS['db']->getRow($sql);
if (empty($goods)) {
$GLOBALS['err']->add($GLOBALS['_LANG']['goods_not_exists'], ERR_NOT_EXISTS);
return false;
}
/* 如果是作为配件添加到购物车的,需要先检查购物车里面是否已经有基本件 */
if ($parent > 0) {
$sql = "SELECT COUNT(*) FROM " . $GLOBALS['ecs']->table('cart') . " WHERE goods_id='{$parent}' AND " . get_cart_cond() . " AND extension_code <> 'package_buy'";
if ($GLOBALS['db']->getOne($sql) == 0) {
$GLOBALS['err']->add($GLOBALS['_LANG']['no_basic_goods'], ERR_NO_BASIC_GOODS);
return false;
}
}
/* 是否正在销售 */
if ($goods['is_on_sale'] == 0) {
$GLOBALS['err']->add($GLOBALS['_LANG']['not_on_sale'], ERR_NOT_ON_SALE);
return false;
}
/* 不是配件时检查是否允许单独销售 */
if (empty($parent) && $goods['is_alone_sale'] == 0) {
$GLOBALS['err']->add($GLOBALS['_LANG']['cannt_alone_sale'], ERR_CANNT_ALONE_SALE);
return false;
}
//TODO 取消规格相关逻辑
/* 如果商品有规格则取规格商品信息 配件除外 */
/*$sql = "SELECT * FROM " .$GLOBALS['ecs']->table('products'). " WHERE goods_id = '$goods_id' LIMIT 0, 1";
$prod = $GLOBALS['db']->getRow($sql);
if (is_spec($spec) && !empty($prod))
{
$product_info = get_products_info($goods_id, $spec);
}
if (empty($product_info))
{
$product_info = array('product_number' => '', 'product_id' => 0);
}*/
/* 检查:库存 */
if ($GLOBALS['_CFG']['use_storage'] == 1) {
//检查:商品购买数量是否大于总库存
if ($num > $goods['goods_number']) {
$GLOBALS['err']->add(sprintf($GLOBALS['_LANG']['shortage'], $goods['goods_number']), ERR_OUT_OF_STOCK);
return false;
}
//商品存在规格 是货品 检查该货品库存
if (is_spec($spec) && !empty($prod)) {
if (!empty($spec)) {
/* 取规格的货品库存 */
if ($num > $product_info['product_number']) {
$GLOBALS['err']->add(sprintf($GLOBALS['_LANG']['shortage'], $product_info['product_number']), ERR_OUT_OF_STOCK);
return false;
}
}
}
}
/* 计算商品的促销价格 */
$spec_price = spec_price($spec);
$goods_price = get_final_price($goods_id, $num, true, $spec);
$goods['market_price'] += $spec_price;
//商品规格
$goods_attr_id = join(',', $spec);
$goods_attr = get_goods_attr_info($spec);
if (empty($goods_attr)) {
$goods_attr = $goods['amount_desc'];
} else {
$goods_attr = $goods['amount_desc'] . "\n" . $goods_attr;
}
// 初始化要插入购物车的基本件数据
$parent = array('user_id' => $_SESSION['user_id'], 'session_id' => SESS_ID, 'goods_id' => $goods_id, 'goods_sn' => addslashes($goods['goods_sn']), 'product_id' => $product_info['product_id'], 'goods_name' => addslashes($goods['goods_name']), 'market_price' => $goods['market_price'], 'free_more' => $goods['free_more'], 'goods_attr' => addslashes($goods_attr), 'goods_attr_id' => $goods_attr_id, 'is_real' => $goods['is_real'], 'extension_code' => $goods['extension_code'], 'is_gift' => 0, 'is_shipping' => $goods['is_shipping'], 'add_time' => time(), 'rec_type' => CART_GENERAL_GOODS);
// 如果该配件在添加为基本件的配件时,所设置的“配件价格”比原价低,即此配件在价格上提供了优惠,
// 则按照该配件的优惠价格卖,但是每一个基本件只能购买一个优惠价格的“该配件”,多买的“该配件”不享
// 受此优惠
//TODO: 取消配件逻辑
/*$basic_list = array();
$sql = "SELECT parent_id, goods_price " .
"FROM " . $GLOBALS['ecs']->table('group_goods') .
" WHERE goods_id = '$goods_id'" .
" AND goods_price < '$goods_price'" .
" AND parent_id = '$_parent_id'" .
" ORDER BY goods_price";
$res = $GLOBALS['db']->query($sql);
while ($row = $GLOBALS['db']->fetchRow($res))
{
$basic_list[$row['parent_id']] = $row['goods_price'];
}
//.........这里部分代码省略.........
示例6: get_combo_goods_info
/**
* 获取商品的原价、配件价、库存(配件组合) by mike
* 返回数组
*/
function get_combo_goods_info($goods_id, $num = 1, $spec = array(), $parent = 0)
{
$result = array();
/* 取得商品信息 */
$sql = "SELECT goods_number FROM " . $GLOBALS['ecs']->table('goods') . " WHERE goods_id = '{$goods_id}' AND is_delete = 0";
$goods = $GLOBALS['db']->getRow($sql);
/* 如果商品有规格则取规格商品信息 配件除外 */
$sql = "SELECT * FROM " . $GLOBALS['ecs']->table('products') . " WHERE goods_id = '{$goods_id}' LIMIT 0, 1";
$prod = $GLOBALS['db']->getRow($sql);
if (is_spec($spec) && !empty($prod)) {
$product_info = get_products_info($goods_id, $spec);
}
if (empty($product_info)) {
$product_info = array('product_number' => '', 'product_id' => 0);
}
//商品库存
$result['stock'] = $goods['goods_number'];
//商品存在规格 是货品 检查该货品库存
if (is_spec($spec) && !empty($prod)) {
if (!empty($spec)) {
/* 取规格的货品库存 */
$result['stock'] = $product_info['product_number'];
}
}
/* 如果该配件在添加为基本件的配件时,所设置的“配件价格”比原价低,即此配件在价格上提供了优惠, */
$sql = "SELECT parent_id, goods_price " . "FROM " . $GLOBALS['ecs']->table('group_goods') . " WHERE goods_id = '{$goods_id}'" . " AND parent_id = '{$parent}'" . " ORDER BY goods_price";
$res = $GLOBALS['db']->query($sql);
while ($row = $GLOBALS['db']->fetchRow($res)) {
$result['fittings_price'] = $row['goods_price'];
}
/* 计算商品的促销价格 */
$result['fittings_price'] = isset($result['fittings_price']) ? $result['fittings_price'] : get_final_price($goods_id, $num, true, $spec);
$result['spec_price'] = spec_price($spec);
//属性价格
$result['goods_price'] = get_final_price($goods_id, $num, true, $spec);
return $result;
}
示例7: get_final_price
$res['err_no'] = 1;
} else {
if ($number == 0) {
$res['qty'] = $number = 1;
} else {
$res['qty'] = $number;
}
$shop_price = get_final_price($goods_id, $number, true, $attr_id);
$res['result'] = price_format($shop_price * $number);
}
//ecshop商品详情页动态库存调用
$goods_tinfo = get_goods_info($goods_id);
$goods_sn = $goods_tinfo['goods_sn'];
$sql = "SELECT * FROM " . $GLOBALS['ecs']->table('products') . " WHERE goods_id = '{$goods_id}' LIMIT 0, 1";
$prod = $GLOBALS['db']->getRow($sql);
if (is_spec($attr_id) && !empty($prod)) {
$product_info = get_products_info($goods_id, $attr_id);
}
if ($product_info['product_number']) {
$res['stock'] = $product_info['product_number'];
//商品库存
} else {
$res['stock'] = $goods_tinfo['goods_number'];
//商品库存
}
if ($product_info['product_sn']) {
$res['goods_sn'] = $product_info['product_sn'];
} else {
$res['goods_sn'] = $goods_tinfo['goods_sn'];
}
if ($product_info['product_weight']) {
示例8: addto_cart
/**
* 添加商品到购物车
*
* @access public
* @param integer $goods_id 商品编号
* @param integer $num 商品数量
* @param array $spec 规格值对应的id数组
* @param integer $parent 基本件
* @return boolean
*/
function addto_cart($goods_id, $num = 1, $spec = array(), $parent = 0)
{
$GLOBALS['err']->clean();
$_parent_id = $parent;
/* 取得商品信息 */
$sql = "SELECT g.goods_name, g.goods_sn, g.is_on_sale, g.is_real, " . "g.market_price, g.cost_price, g.shop_price AS org_price, g.promote_price, g.promote_start_date, " . "g.promote_end_date, g.goods_weight, g.integral, g.extension_code, " . "g.goods_number, g.is_alone_sale, g.is_shipping," . "IFNULL(mp.user_price, g.shop_price * '{$_SESSION['discount']}') AS shop_price " . " FROM " . $GLOBALS['ecs']->table('goods') . " AS g " . " LEFT JOIN " . $GLOBALS['ecs']->table('member_price') . " AS mp " . "ON mp.goods_id = g.goods_id AND mp.user_rank = '{$_SESSION['user_rank']}' " . " WHERE g.goods_id = '{$goods_id}'" . " AND g.is_delete = 0";
$goods = $GLOBALS['db']->getRow($sql);
if (empty($goods)) {
$GLOBALS['err']->add($GLOBALS['_LANG']['goods_not_exists'], ERR_NOT_EXISTS);
return false;
}
/* 如果是作为配件添加到购物车的,需要先检查购物车里面是否已经有基本件 */
if ($parent > 0) {
$sql = "SELECT COUNT(*) FROM " . $GLOBALS['ecs']->table('cart') . " WHERE goods_id='{$parent}' AND session_id='" . SESS_ID . "' AND extension_code <> 'package_buy'";
if ($GLOBALS['db']->getOne($sql) == 0) {
$GLOBALS['err']->add($GLOBALS['_LANG']['no_basic_goods'], ERR_NO_BASIC_GOODS);
return false;
}
}
/* 是否正在销售 */
if ($goods['is_on_sale'] == 0) {
$GLOBALS['err']->add($GLOBALS['_LANG']['not_on_sale'], ERR_NOT_ON_SALE);
return false;
}
/* 不是配件时检查是否允许单独销售 */
if (empty($parent) && $goods['is_alone_sale'] == 0) {
$GLOBALS['err']->add($GLOBALS['_LANG']['cannt_alone_sale'], ERR_CANNT_ALONE_SALE);
return false;
}
/* 如果商品有规格则取规格商品信息 配件除外 */
$sql = "SELECT * FROM " . $GLOBALS['ecs']->table('products') . " WHERE goods_id = '{$goods_id}' LIMIT 0, 1";
$prod = $GLOBALS['db']->getRow($sql);
if (is_spec($spec) && !empty($prod)) {
$product_info = get_products_info($goods_id, $spec);
}
if (empty($product_info)) {
$product_info = array('product_number' => '', 'product_id' => 0);
}
/* 检查:库存 */
if ($GLOBALS['_CFG']['use_storage'] == 1) {
//检查:商品购买数量是否大于总库存
if ($num > $goods['goods_number']) {
$GLOBALS['err']->add(sprintf($GLOBALS['_LANG']['shortage'], $goods['goods_number']), ERR_OUT_OF_STOCK);
return false;
}
//商品存在规格 是货品 检查该货品库存
if (is_spec($spec) && !empty($prod)) {
if (!empty($spec)) {
/* 取规格的货品库存 */
if ($num > $product_info['product_number']) {
$GLOBALS['err']->add(sprintf($GLOBALS['_LANG']['shortage'], $product_info['product_number']), ERR_OUT_OF_STOCK);
return false;
}
}
}
}
/* 计算商品的促销价格 */
$spec_price = spec_price($spec);
$goods_price = get_final_price($goods_id, $num, true, $spec);
$goods['market_price'] += $spec_price;
$goods_attr = get_goods_attr_info($spec);
$goods_attr_id = join(',', $spec);
/* 初始化要插入购物车的基本件数据 */
$parent = array('user_id' => $_SESSION['user_id'], 'session_id' => SESS_ID, 'goods_id' => $goods_id, 'goods_sn' => addslashes($goods['goods_sn']), 'product_id' => $product_info['product_id'], 'goods_name' => addslashes($goods['goods_name']), 'market_price' => $goods['market_price'], 'goods_attr' => addslashes($goods_attr), 'goods_attr_id' => $goods_attr_id, 'cost_price' => $goods['cost_price'], 'is_real' => $goods['is_real'], 'extension_code' => $goods['extension_code'], 'is_gift' => 0, 'is_shipping' => $goods['is_shipping'], 'add_time' => gmtime(), 'rec_type' => CART_GENERAL_GOODS);
//初始化为普通商品
$_SESSION['flow_type'] = CART_GENERAL_GOODS;
/* 如果该配件在添加为基本件的配件时,所设置的“配件价格”比原价低,即此配件在价格上提供了优惠, */
/* 则按照该配件的优惠价格卖,但是每一个基本件只能购买一个优惠价格的“该配件”,多买的“该配件”不享 */
/* 受此优惠 */
$basic_list = array();
$sql = "SELECT parent_id, goods_price " . "FROM " . $GLOBALS['ecs']->table('group_goods') . " WHERE goods_id = '{$goods_id}'" . " AND goods_price < '{$goods_price}'" . " AND parent_id = '{$_parent_id}'" . " ORDER BY goods_price";
$res = $GLOBALS['db']->query($sql);
while ($row = $GLOBALS['db']->fetchRow($res)) {
$basic_list[$row['parent_id']] = $row['goods_price'];
}
/* 取得购物车中该商品每个基本件的数量 */
$basic_count_list = array();
if ($basic_list) {
$sql = "SELECT goods_id, SUM(goods_number) AS count " . "FROM " . $GLOBALS['ecs']->table('cart') . " WHERE session_id = '" . SESS_ID . "'" . " AND parent_id = 0" . " AND extension_code <> 'package_buy' " . " AND goods_id " . db_create_in(array_keys($basic_list)) . " GROUP BY goods_id";
$res = $GLOBALS['db']->query($sql);
while ($row = $GLOBALS['db']->fetchRow($res)) {
$basic_count_list[$row['goods_id']] = $row['count'];
}
}
/* 取得购物车中该商品每个基本件已有该商品配件数量,计算出每个基本件还能有几个该商品配件 */
/* 一个基本件对应一个该商品配件 */
if ($basic_count_list) {
$sql = "SELECT parent_id, SUM(goods_number) AS count " . "FROM " . $GLOBALS['ecs']->table('cart') . " WHERE session_id = '" . SESS_ID . "'" . " AND goods_id = '{$goods_id}'" . " AND extension_code <> 'package_buy' " . " AND parent_id " . db_create_in(array_keys($basic_count_list)) . " GROUP BY parent_id";
$res = $GLOBALS['db']->query($sql);
while ($row = $GLOBALS['db']->fetchRow($res)) {
//.........这里部分代码省略.........