谷粒商城--SPU和SKU(属性分组、规格参数、销售属性)-1

简介: 谷粒商城--SPU和SKU(属性分组、规格参数、销售属性)

SPU和SKU


SPU:standard product unit(标准化产品单元):是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。如iphone13是SPU,它是一个产品的集合


**SKU:stock keeping unit(库存量单位):**库存进出计量的基本单元,可以是件/盒/托盘等单位。


SKU是对于大型连锁超市DC配送中心物流管理的一个必要的方法。现在已经被引申为产品统一编号的简称,每种产品对应有唯一的SKU号。如iphone13ProMax 1T 蓝色 是SKU,包子店中肉包子是SKU,素包子是SKU,水煎包是SKU…


规格参数和销售属性


像这里的商品介绍,规格与包装都是属于SPU的属性。它们都属于是规格参数


ad6bd1d3792aaf655fd98d8111f5d6d1_2c808ddb5120bd963fefb5b4011c089b.png


像版本,颜色等都属是SKU的销售属性


58b9ec6b5f8eb1aced6d7279de3c84da_af61b0e7e1a4803f80fb9a1cddabfea3.png


表的关系理解


(1)属性关系-规格参数-销售属性-三级分类 关联关系


每个三级分类下有各自的属性分组表通过id和catelogid关联,能查出每个分类下的属性分组


属性分组表和属性表通过一个属性&属性关联表进行关联,能查出每个属性分组下的属性


最终这样的关系我们可以查出每个分类的属性分组和每个属性分组对应的属性


398a0b3adccf30104d732e9ec2ee37f5_62eb29cc8e5f1ed305151ff08537e15d.png


(2)通过思维导图来理解


手机是一级分类,它下面又有属性组,每个属性组又有各自的属性


eaba6460d27fd53046a54055faac7491_fcdd39e93e38806c5d93688c520eea3c.png


(3)SPU-SKU属性表


商品属性表和属性表通过attrid和id进行关联,能查出每个spu的属性


sku销售属性表是为了表示spu下不同sku,比如1号spu在此表有两个sku,这两个sku有不同的销售属性,是通过和属性表关联获取的


312d66d09faee2348be9b9aba7f94344_c65a05a543049dbd5945a8a0b11bfdfc.png


(4)通过思维导图来理解


像网络、像素一般是固定不可选的所以是SPU属性


而内存、容量、颜色等可选的就为SKU销售属性


02e4a4a73eea68affc6733ef9d64bcca_2c35e6266c522d832bdaf69ba9932f56.png


导入前端代码


(1)重新执行“sys_menus.sql”,完善菜单。


正常我们是在系统管理里自定义添加,步骤都是一样的,其实在前端页面添加就是把数据提交到mall_admin表中,这里我们直接把提供的sql语句导入即可!


如下结果:


7710829783607f6163ec82633b3bd747_eb0a07a1941df07644d966f8813545f9.png


(2)实现点击菜单的左边,能够实现在右边展示数据


2614e41468a92c8bec49ca4b882328c5_4c65fe9aafbbc3201b141c45c9424353.png


这个页面就是三级分类和一个表格显示在一块对吧,属于是父子组件交互


前端不具体写了,我们直接导入代码,效果如下:


d38b3c9f3a3dc2a795a2e7a24b0ea1b5_ee1411c79a8cd97d85854f72895979c6.png


因为数据库没数据,所以这里不显示


完善后端接口


接口开发流程

什么是开发接口?

开发接口就是开发Controller、service、dao


在线接口文档如下https://easydoc.net/s/78237135/ZUqEdvA4/OXTgKobR

别人告诉你需要什么功能,需要返回什么样的数据,你就通过接口的形式把他们呢实现出来即可!


以后工作了也是这种形式,主要是开发接口为多,前端其实不用写太多,能看懂即可!!!


开发思路

思路:


  • 根据接口文档写接口
  • 代码中大部分接口已自动生成(MBG),所以我们在前端页面看哪个请求失败
  • 后端改接口


这一部分都是CRUD相关的代码,所以要好好练好好写!!!


属性分组详情

显示属性分组

接口如下:


97c1e4a966c2c4886826bf32db822f7f_48d10a7475f6548312ae56b90d5f70e9.png


controller


    @RequestMapping("/list/{catelogId}")
    public R list(@RequestParam Map<String, Object> params,
                  @PathVariable("catelogId") Long catelogId){
//        PageUtils page = attrGroupService.queryPage(params);
        PageUtils page = attrGroupService.queryPage(params, catelogId);
        return R.ok().put("page", page);
    }

service


这里注意,前端有两个查询按钮


查询和查询全部


这两个都要有模糊查询的功能!


PageUtils queryPage(Map<String, Object> params, Long catelogId);
@Override
public PageUtils queryPage(Map<String, Object> params, Long catelogId) {
    //多条件查询
    String key = (String) params.get("key");
    QueryWrapper<AttrGroupEntity> wrapper = new QueryWrapper<>();
    if (!StringUtils.isEmpty(key)) {
        wrapper.and((obj) -> {
            obj.eq("attr_group_id",key).or().like("attr_group_name",key);
        });
    }
    if (catelogId == 0) {
        //如果是默认的是查全部的一级分类
        IPage<AttrGroupEntity> page = this.page(
            new Query<AttrGroupEntity>().getPage(params),
            wrapper);
        return new PageUtils(page);
    } else {
        wrapper.eq("catelog_id", catelogId);
        IPage<AttrGroupEntity> page = this.page(
            new Query<AttrGroupEntity>().getPage(params), wrapper);
        return new PageUtils(page);
    }
}

测试


7b4c48131ac537d2fe04404ca366b24b_97f92c989a29179873f7bcaa8d2b0ad3.png


属性分组回显

这一部分主要是做属性分组的数据回显的


接口如下:


93c627dd04754479c5b11d5a9b9e4530_b79f2d4fa1714657db07ebacb6d30c61.png


前端这里省略,需要去elementui找组件,改数据


controller

/**
 * 信息
 */
@RequestMapping("/info/{attrId}")
public R info(@PathVariable("attrId") Long attrId){
  AttrEntity attr = attrService.getById(attrId);
    Long catelogId = attr.getCatelogId();
    Long[] path = categoryService.findCatelogPath(catelogId);
    attr.setCatelogPath(path);
    return R.ok().put("attr", attr);
}

service


获取分类路径id


通过递归操作完成


过程


给一个分类id,不断的查它的父类id直到查不到为止,最后把查询到的id到放到一个集合里


怎样写好递归?


  1. 确定参数值和返回值
  2. 确定终止条件
  3. 递归逻辑


三者缺一不可!!!


//找到catelogId的完整路径:[父/子/孙]
@Override
public Long[] findCatelogPath(Long catelogId) {
    ArrayList<Long> list = new ArrayList<>();
    List<Long> parentPath = findParentPath(catelogId, list);//1.确定递归参数和返回值
    Collections.reverse(parentPath);
    return (Long[]) list.toArray(new Long[parentPath.size()]);
}
private List<Long> findParentPath(Long catelogId,ArrayList<Long> list){
    //3.递归逻辑
    list.add(catelogId);
    CategoryEntity entity = this.getById(catelogId);
    if (entity.getParentCid()!=0){//2.递归终止条件
        findParentPath(entity.getParentCid(),list);
    }
    return list;
}

测试


返回属性的父路径id

2671125db8f45f4548bda3cb8dbfcefc_58021efab77c44f9f9fcbd731d8ce0c3.png

相关文章
|
2月前
|
XML 前端开发 Java
谷粒商城笔记+踩坑(5)——商品服务-属性分组、品牌关联分类,spu+sku+分页拦截器
SPU和SKU、属性分组的增删改查、QueryWrapper的and和or用法、获取当前品牌关联的所有分类
谷粒商城笔记+踩坑(5)——商品服务-属性分组、品牌关联分类,spu+sku+分页拦截器
|
3月前
|
Java API 开发工具
如何通过淘宝商品详情接口实现商品 SKU、优惠价、价格等参数的实时更新?
要合法获取淘宝商品详情数据,首先需通过淘宝开放平台注册开发者账号并获得App Key与App Secret。接着根据业务需求申请对应的商品详情数据接口权限,并通过官方文档了解接口详情。获取访问令牌后,按照文档构建请求URL并附加必要参数及令牌以调用接口。此外,考虑使用淘宝提供的SDK简化开发流程,如Python SDK等。体验API:b.mrw.so/2Pv6Qu。
|
3月前
|
数据采集 API 开发工具
淘系商品详情数据解析(属性youhui券sku详情图等)API接口开发系列
在电商领域,特别是像淘宝(淘系)这样的平台,商品详情数据对于商家、开发者以及数据分析师来说至关重要。这些数据包括但不限于商品属性、优惠券信息、SKU(Stock Keeping Unit)详情、商品图片、售后保障等。然而,直接访问淘宝的内部API接口通常需要特定的权限和认证,这通常只对淘宝的合作伙伴或内部开发者开放。 不过,对于需要这些数据的第三方开发者或商家,有几种方式可以间接获取或解析淘系商品详情数据: ——在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦!
|
3月前
|
数据采集 JSON API
淘系商品详情图属性sku价格解析,API接口系列
淘宝(Taobao)作为阿里巴巴集团旗下的电商平台,其商品详情图、属性、SKU和价格的采集通常不直接通过公开的API接口来实现,因为淘宝的API主要面向商家和开发者提供店铺管理、订单处理、物流查询等功能,并不直接提供商品详情页的完整数据抓取接口
|
3月前
|
XML 存储 API
电商商品详情页面的获取,详情图属性sku价格的采集,API接口系列
在电商平台上,商品详情页面的获取,包括详情图、属性、SKU(Stock Keeping Unit,库存量单位)、价格等信息的采集,通常可以通过多种方式实现,其中之一是利用电商平台提供的API接口。以下是一个基于通用流程的概述,用于说明如何通过API接口系列来采集这些信息。
|
5月前
|
存储 JSON API
批量采集抖音商品详情数据:推荐你使用API(通过商品id取商品详情商品主图sku属性)
批量采集抖音商品详情,建议使用API接口。步骤包括:注册抖音开放平台获取App Key和Secret,调用商品详情API接口传入商品ID及相关参数,解析返回的JSON获取商品信息(如名称、价格、主图和SKU)。此外,接口列表提供商品搜索、销售量查询、历史价格、订单管理等多种功能。已封装的API接口地址:c0b.cc/R4rbK2,可测试并联系获取SDK文件。
|
6月前
|
存储 数据采集 JSON
电商API分享:如何批量获取商品详情页数据(属性图价格sku视频评论)
电商API(应用程序接口)通常提供了丰富的数据获取功能,使开发者能够方便地获取商品详情页的各种数据,包括商品属性、图片、价格、SKU(库存量单位)、视频以及评论等。以下是一个基本的步骤指南,用于通过电商API批量获取商品详情页数据:
|
前端开发 API 数据库
谷粒商城--SPU和SKU(属性分组、规格参数、销售属性)-2
谷粒商城--SPU和SKU(属性分组、规格参数、销售属性)
152 0
|
JSON 数据格式
谷粒商城--SPU和SKU(分组与属性关联、发布商品、仓库服务)-1
谷粒商城--SPU和SKU(分组与属性关联、发布商品、仓库服务)
54 0
|
JSON 前端开发 Java
谷粒商城--SPU和SKU(分组与属性关联、发布商品、仓库服务)-2
谷粒商城--SPU和SKU(分组与属性关联、发布商品、仓库服务)
92 0