您现在的位置是:首页 > cms教程 > ecshop商城教程ecshop商城教程
ecshop属性表attribute商品属性表goods_attr货品表prduct)商品数
尤帅齐2024-12-25 22:49:21ecshop商城教程已有11人查阅
导读ecshop属性表(attribute)商品属性表(goods_attr)货品表(prduct) 商品数量的联系一个商城的商品属性存放在属性表(attribute)里 ,每个商品对应的属性在goods_attr里
ecshop属性表(attribute)商品属性表(goods_attr)货品表(prduct) 商品数量的联系一个商城的商品属性存放在属性表(attribute)里 ,每个商品对应的属性在goods_attr里goods_attr与(attribute)想关联,商品表里有商品数量的字段goods_number
为什么有这个货品表呢?
因为 某件商品有多种属性的时候,那这个商品就成为了货品,也就是说不同属性的相同商品应该也存在差异,所以当设置商品属性的attr_type=1(表示单选属性)的时候,
在 前台include/lib_comment.php 函数sort_goods_attr_id_array将 goods_attr_id 的序列按照 attr_id 重新排序 可以找到 非规格属性的id会被排除这句话,在连接这个函数写的sql语句 我个人觉得attr_type=1表示规格属性,然后就是由于这样的处理,导致attr_type=0 attr_type=2的商品 他们虽然有商品数量,但是货品库存查不出来从而导致到货通知这个功能出现异常
首先我们来看看这个到货通知是怎样处理的:
从模板goods.dwt里我们找到 就是这里,通过发送一个ajax请求回传到goods.php里,得到最终的attr,然后在goods.php里通过: 回传json数据到模板,通过 就可以实现到货通知
我们在来看看这个 goods_attr_number在php页面是怎样得到的
$res['goods_attr_number'] = get_product_attr_num($goods_id,$_REQUEST['attr']);----attr是ajax调来的数据,往上找会看到它的处理
继续找get_product_attr_num
get_product_attr_num 获取相关属性的库存* @param int $goodid 商品id * @param string(array) $attrids 商品属性id的数组或者逗号分开的字符串
仔细看函数的流程,我们发现如果一个商品没有属性,那它的attrid就是空的,又一个商品有多个属性,那就对应多个goods_attr_id
在这里的话 goods_attr_number =就直接等于商品表里goods_number对应的数量
好了,再往下看,如果有属性,那么就 重新排序 就是我上面提到的方法
问题就在这里了,那我们在看看后台商品属性功能
在编辑属性处有这样三个单选,属性是否可选:唯一属性 单选属性 复选属性 而这里就是attr_type对应 的三种值
在页面有这样的说明:
选择"单选/复选属性"时,可以对商品该属性设置多个值,同时还能对不同属性值指定不同的价格加价,用户购买商品时需要选定具体的属性值。选择"唯一属性"时,商品的该属性值只能设置一个值,用户只能查看该值。
但是 出现问题来了,如果没有选择单单选属性 那么在商品列表里或者再添加商品的时候这个商品的属性不是单选属性那么就不会出现货品管理这个功能
因为在这个功能处也有个逻辑
在后台的goods.php?业剑? 在lib_goods.php?业嚼 飧龊?/** 不难发现,这里也只有attr_type = 1 才会出现货品这个功能。
为什么有这个货品表呢?
因为 某件商品有多种属性的时候,那这个商品就成为了货品,也就是说不同属性的相同商品应该也存在差异,所以当设置商品属性的attr_type=1(表示单选属性)的时候,
在 前台include/lib_comment.php 函数sort_goods_attr_id_array将 goods_attr_id 的序列按照 attr_id 重新排序 可以找到 非规格属性的id会被排除这句话,在连接这个函数写的sql语句 我个人觉得attr_type=1表示规格属性,然后就是由于这样的处理,导致attr_type=0 attr_type=2的商品 他们虽然有商品数量,但是货品库存查不出来从而导致到货通知这个功能出现异常
首先我们来看看这个到货通知是怎样处理的:
从模板goods.dwt里我们找到 就是这里,通过发送一个ajax请求回传到goods.php里,得到最终的attr,然后在goods.php里通过: 回传json数据到模板,通过 就可以实现到货通知
我们在来看看这个 goods_attr_number在php页面是怎样得到的
$res['goods_attr_number'] = get_product_attr_num($goods_id,$_REQUEST['attr']);----attr是ajax调来的数据,往上找会看到它的处理
继续找get_product_attr_num
get_product_attr_num 获取相关属性的库存* @param int $goodid 商品id * @param string(array) $attrids 商品属性id的数组或者逗号分开的字符串
仔细看函数的流程,我们发现如果一个商品没有属性,那它的attrid就是空的,又一个商品有多个属性,那就对应多个goods_attr_id
在这里的话 goods_attr_number =就直接等于商品表里goods_number对应的数量
好了,再往下看,如果有属性,那么就 重新排序 就是我上面提到的方法
问题就在这里了,那我们在看看后台商品属性功能
在编辑属性处有这样三个单选,属性是否可选:唯一属性 单选属性 复选属性 而这里就是attr_type对应 的三种值
在页面有这样的说明:
选择"单选/复选属性"时,可以对商品该属性设置多个值,同时还能对不同属性值指定不同的价格加价,用户购买商品时需要选定具体的属性值。选择"唯一属性"时,商品的该属性值只能设置一个值,用户只能查看该值。
但是 出现问题来了,如果没有选择单单选属性 那么在商品列表里或者再添加商品的时候这个商品的属性不是单选属性那么就不会出现货品管理这个功能
因为在这个功能处也有个逻辑
在后台的goods.php?业剑? 在lib_goods.php?业嚼 飧龊?/** 不难发现,这里也只有attr_type = 1 才会出现货品这个功能。
本文标签:
很赞哦! (0)
暂无内容 |
暂无内容 |
相关文章
暂无内容 |
暂无内容 |
随机图文
ecshop后台订单加入商品到订单时提示库存不足请重新选择怎么办
代码号讲解下ECSHOP后台给订单商品信息编辑里面添加商品时提示库存不足请重新选择的BUG问题,ecshop所有版本包含ecshop4.0版本中都出现了这个bug官方未修复ecshop验证码不显示的解决方法
知道大家注意到了没有,ECSHOP的验证码设置有一个BUG,那就是 “用户登录”和“发表评论”的验证码设置是相冲突的。ecshop使用最多的修改
1: 如何修改网站 " 欢迎光临本店 "回答 :languages/zh_cn/common.php 文件中, $_LANG['welcome'] = ' 欢迎光临本店 '; 将他修改成你需要的字样。ecshop怎么增加模板页
ECShop的动态模板机制是一个非常灵活的系统,管理员可以在后台根据自己的要求调整模板模块的显示位置。本文详细讲解了如何修改ECSHOP内部结构使得用户可以添加自己的模板页从而方便灵活的使用系统自带的模板系统和广告位系统。
留言与评论 (共有 0 条评论) |