B2B2C系统 如何实现商品分类功能

需要完成一个独立的B2B2C系统,系统分类和店铺商品分类是必不可少的。让我们看看商品分类是什么:商品分类是概括一定范围内的集合总体,任何集合总体都可按照一定的标志和特征归纳成若干范围较小的单元,直到划分为最小的单元。商品的分类,是指按照一定目的,为满足某种需要选择适当的分类标志和特征,将商品集合总体科学地、系统地逐次划分为不同的大类、中类、小类、品类或品目、品种,以至规格、品级等细目的过程。

下面我们以一个实际的案例,讲述一下如何设计、开发一个B2B2C系统的商品分类。

一:设计分类数据表: 商品的分类,会涉及到:catId自增ID;parentId父ID用于关联;isShow是否显示在前台展示;isFloor是否显示在首页的展示;catName名称;catSort用于首页排序展示;dataFlag删除;createTime时间。

建好后,如下图:

二:后台查看,新增,编辑,删除分类: 下面我们要进行代码的编写,实现 B2B2C商城分类的增删改了,以编辑商品分类来演示一下吧,新增,删除和此类似:

public function edit(){$catId = input('post.id/d');$data = input('post.');WSTUnset($data,'catId,dataFlag,createTime');$result = $this->validate('GoodsCats.edit')->allowField(true)->save($data,['catId'=>$catId]);$ids = array();$ids = $this->getChild($catId);$this->where("catId in(".implode(',',$ids).")")->update(['isShow' => (int)$data['isShow'],'isFloor'=> $data['isFloor'],'commissionRate'=>(float)$data['commissionRate']]);if(false !== $result){if($data['isShow']==0){//删除购物车里的相关商品$goods = Db::name('goods')->where(["goodsCatId"=>['in',$ids],'isSale'=>1])->field('goodsId')->select();if(count($goods)>0){$goodsIds = [];foreach ($goods as $key =>$v){$goodsIds[] = $v['goodsId'];}Db::name('carts')->where(['goodsId'=>['in',$goodsIds]])->delete();}//把相关的商品下架了Db::name('goods')->where("goodsCatId in(".implode(',',$ids).")")->update(['isSale' => 0]);WSTClearAllCache();}return WSTReturn("修改成功", 1);}else{return WSTReturn($this->getError(),-1);}}

还可进行多级新增,编辑,删除

三:将后台管理的商品分类在前台展示:

获取商品分类数据,然后显示出来:

function WSTSideCategorys(){$data = cache('WST_SIDE_CATS');if(!$data){$cats1 = Db::table('__GOODS_CATS__')->where(['dataFlag'=>1, 'isShow' => 1,'parentId'=>0])->field("catName,catId,catImg")->order('catSort asc')->select();if(count($cats1)>0){$ids1 = [];$ids2 = [];$cats2 = [];$cats3 = [];$mcats3 = [];$mcats2 = [];foreach ($cats1 as $key =>$v){$ids1[] = $v['catId'];}$tmp2 = Db::table('__GOODS_CATS__')->where(['dataFlag'=>1, 'isShow' => 1,'parentId'=>['in',$ids1]])->field("catName,catId,parentId,catImg")->order('catSort asc')->select();if(count($tmp2)>0){foreach ($tmp2 as $key =>$v){$ids2[] = $v['catId'];}$tmp3 = Db::table('__GOODS_CATS__')->where(['dataFlag'=>1, 'isShow' => 1,'parentId'=>['in',$ids2]])->field("catName,catId,parentId,catImg")->order('catSort asc')->select();if(count($tmp3)>0){//组装第三级foreach ($tmp3 as $key =>$v){$mcats3[$v['parentId']][] = $v;}}//组装第二级foreach ($tmp2 as $key =>$v){if(isset($mcats3[$v['catId']]))$v['list'] = $mcats3[$v['catId']];$mcats2[$v['parentId']][] = $v;}//组装第一级foreach ($cats1 as $key =>$v){if(isset($mcats2[$v['catId']]))$cats1[$key]['list'] = $mcats2[$v['catId']];}}  unset($ids1,$ids2,$cats2,$cats3,$mcats3,$mcats2);}cache('WST_SIDE_CATS',$cats1);return $cats1;}return $data;
}

根据级别的循环展示出来,第一级和第二级关联,和下次级鲜明的展示关系,配搭上品牌和广告,就显示出首页的效果了。

这样我们便实现了商品分类,实现商品分类并不难,理解思路明确,就可以实现。

文中相关代码我就不另外贴了,大家有兴趣的可以在WSTMart官网下载。

转载于:https://my.oschina.net/u/2392706/blog/1582195

B2B2C系统 如何实现商品分类功能相关推荐

  1. 商品分类列表功能实现php,【图片】B2B2C系统如何实现商品分类功能【thinkphp吧】_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 B2B2C系统如何实现商品分类功能 需要完成一个独立的B2B2C系统,系统分类和店铺商品分类是必不可少的.让我们看看商品分类是什么:商品分类是概括一定范围 ...

  2. B2B2C商城系统 如何实现商品分类功能

    需要完成一个独立的B2B2C系统,系统分类和店铺商品分类是必不可少的.让我们看看商品分类是什么:商品分类是概括一定范围内的集合总体,任何集合总体都可按照一定的标志和特征归纳成若干范围较小的单元,直到划 ...

  3. 目前种类繁多的B2B2C系统,企业该如何正确选择?

    最近几年,随着电子商务的快速崛起,电商的渠道逐渐替代了传统销售渠道的定位,成为企业业绩增长的新工具.另外一方面,终端的用户消费快速.直接,造就了谁能第一时间接触用户.获得用户,谁就能获取到更多的市场份 ...

  4. b2b2c系统jwt权限源码分享part2

    在上一篇<b2b2c系统jwt权限源码分享part1>中和大家分享了b2b2c系统中jwt权限的基础设计及源码,本文继续和大家分享jwt和spring security整合部分的思路和源码 ...

  5. 多用户电商分销系统开发多商户入驻分销商城系统开发的基本功能

    移动互联时代,微商城是商家淘金的利器,能为企业拓展无限商机.不同于以往企业独立的微信商城,现在拥有更为先进的分销模式和完善的营销功能的多商城系统了.多商户入驻分销商城系统开发的基本功能有哪些? 多商家 ...

  6. win7关闭系统索引服务器,win7系统关闭磁盘索引功能的操作方法

    很多小伙伴都遇到过对win7系统关闭磁盘索引功能进行设置的困惑吧,一些朋友看过网上对win7系统关闭磁盘索引功能设置的零散处理方法,并没有完完全全明白win7系统关闭磁盘索引功能是如何设置的,今天小编 ...

  7. crm系统是什么很棒ec实力_CRM系统都有哪些功能?CRM管理系统的主要用途又是什么?...

    就目前市面上的CRM系统众多,各个供应商可能都是不太一样的,但是大致上还是离不开这几个功能:即营销自动化.客户管理.销售管理.客服你管理.报表分析等. 其中,销售自动化功能可以说是每个CRM系统的核心 ...

  8. 如何启用用计算机iis,win7系统如何开启iis功能?电脑iis功能启用图文步骤教程...

    iis的全称是互联网信息服务,是微软windows的基本互联网服务.当使用windows系统执行某些操作时,需要iis的支持.与xp系统相比,win7系统有自己的iis组件,不需要额外安装,那么win ...

  9. linux中bash的功能主要有,Linux系统中的Bash功能的介绍

    今天小编要跟大家分享的文章是关于Linux系统中的Bash功能的介绍.一个完整计算机的体系结构包括:硬件与软件,而软件又分为系统软件与应用软件,负责对硬件仅需管理与操作的是系统软件的内核部分,用户是无 ...

最新文章

  1. leetcode 【 Find Peak Element 】python 实现
  2. 递归求最值(分治递归)
  3. Bitcoin 中的挖矿算法(4) 产生genesis区块
  4. 云计算是怎样入侵统一通信领域的
  5. android连接ecs sql server_MySQL 执行 SQL 语句的过程解析
  6. 深入浅出 Java CMS 学习笔记
  7. 最全三大框架整合(使用映射)——Emp.hbm.xml
  8. assoc fetch mysql 用法_mysql_fetch_assoc、mysql_fetch_object、mysql_fetch_row、mysql_fetch_array用法学习...
  9. python从入门到精通pdf-跟老齐学Python+从入门到精通 PDF 下载
  10. 浏览器检测 vs 特性检测
  11. 技术可行性分析和经济可行性分析
  12. C#联合halcon应用——大华相机采集类
  13. 怎么修改windows10在cmd下的用户名为英文名
  14. 在ios10+的safair中实现视频的自动播放
  15. 微信集成(帆软报表)
  16. ERLANG recon使用示例
  17. 用matlab求一组数据的分布函数,求任意一组数据的概率密度函数
  18. 聊天室小程序服务端源码(客户端接下一条)
  19. Sping学习笔记(附实例,超详细)
  20. python使用tkinter万年历

热门文章

  1. 删除磁盘中某个EFI系统分区
  2. 微软确认Skype明年替换MSN
  3. 耶鲁大学 博弈论(Game Theory) 笔记4-足球比赛与商业合作之最佳对策
  4. R语言使用rgamma函数生成符合Gamma分布的随机数、使用plot函数可视化符合Gamma分布的随机数(Gamma Distribution)
  5. 无盘服务器的优缺点,网众无盘服务器建议
  6. 照片日历制作软件服务器端,Radicale搭建CalDAV日历服务
  7. 论坛介绍 | COSCon'22 闪电演讲(Z)
  8. 记一次多线程报错问题
  9. 联想万全服务器 R630 故障处理
  10. 利用Python实现图像的二值化