电商项目-商品管理(上)

news2024/12/15 18:42:01

一、电商商品SPU和SKU的概念

        SPU和SKU的概念,在电商领域非常重要,SPU描述的是商品的集合,以手机为例,例如 华为手机有不同颜色,不同内存大小等相关属性信息。如果只说华为荣誉X60 就是SPU的信息。
        SKU是商品最小销售单元,可以通过SKU描述具体特定的商品华为荣誉X60黑色 128G ,根据这句话特点的描述出了某一个商品。这个就是SPU和SKU。
        商品详情页面 ,加载的是SPU ,商品详情页面是以SPU进行当前商品信息的描述。随着规格信息的切换,颜色的切换,具体细化到了SKU上,随着规格改变价格会变。

        添加购物车的时候添加的是SKU的信息。


        SPU:是一组商品集合,在这组商品集合里,会包含一个或多个SKU的信息,每一个SKU是一个具体的,某个商品的 最小销售单元,可以通过一个SKU集体细化到商品上,从而确定商品的价钱。SPU与SKU 是一对多 或一对一的关系。

SPU = Standard Product Unit  (标准产品单位)

        -概念 : SPU 是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。

        -通俗点讲,属性值、特性相同的货品就可以称为一个 SPU

        例如:华为荣誉X60 就是一个 SPU

SKU=stock keeping unit( 库存量单位)

        -SKU 即库存进出计量的单位, 可以是以件、盒、托盘等为单位。

        -SKU 是物理上不可分割的最小存货单元。在使用时要根据不同业态,不同管理模式来处理。

        -在服装、鞋类商品中使用最多最普遍。

例如:华为荣誉X60 黑色 128G 就是一个 SKU

二、需求分析

1)表结构分析

tb_spu 表 (SPU表)

字段名称字段含义字段类型字段长度备注
id主键VARCHAR
sn货号VARCHAR
nameSPU名VARCHAR
caption副标题VARCHAR
brand_id品牌IDINT
category1_id一级分类INT
category2_id二级分类INT
category3_id三级分类INT
template_id模板IDINT
freight_id运费模板idINT
image图片VARCHAR
images图片列表VARCHAR
sale_service售后服务VARCHAR
introduction介绍TEXT
spec_items规格列表VARCHAR
para_items参数列表VARCHAR
sale_num销量INT
comment_num评论数INT
is_marketable是否上架CHAR
is_enable_spec是否启用规格CHAR
is_delete是否删除CHAR
status审核状态CHAR

tb_sku 表(SKU商品表)

字段名称字段含义字段类型字段长度备注
id商品idVARCHAR
sn商品条码VARCHAR
nameSKU名称VARCHAR
price价格(分)INT
num库存数量INT
alert_num库存预警数量INT
image商品图片VARCHAR
images商品图片列表VARCHAR
weight重量(克)INT
create_time创建时间DATETIME
update_time更新时间DATETIME
spu_idSPUIDBIGINT
category_id类目IDINT
category_name类目名称VARCHAR
brand_name品牌名称VARCHAR
spec规格VARCHAR
sale_num销量INT
comment_num评论数INT
status商品状态 1-正常,2-下架,3-删除CHAR

2)实现思路

前端传递给后端的数据格式 是一个spu对象和sku列表组成的对象


{
    "spu": {
        "name": "这个是商品名称",
        "caption": "这个是副标题",
        "brandId": 12,
        "category1Id": 558,
        "category2Id": 559,
        "category3Id": 560,
        "freightId": 10,
        "image": "http://www.shangcheng.com/image/1.jpg",
         "images": "http://www.shangcheng.com/image/1.jpg,http://www.shangcheng.com/image/2.jpg",
        "introduction": "这个是商品详情,html代码",
         "paraItems": "{'出厂年份':'2023','赠品':'充电器'}",
        "saleService": "七天包退,闪电退货",
        "sn": "020102331",
        "specItems":  "{'颜色':['红','绿'],'机身内存':['128G','8G']}",
        "templateId": 42
    },
    "skuList": [{
        "sn": "10192010292",
         "num": 100,
         "alertNum": 20,
         "price": 900000,
         "spec": "{'颜色':'红','机身内存':'128G'}",
         "image": "http://www.shangcheng.com/image/1.jpg",
         "images": "http://www.shangcheng.com/image/1.jpg,http://www.shangcheng.com/image/2.jpg",
        "status": "1",
        "weight": 130
    },
    {
        "sn": "10192010293",
         "num": 100,
         "alertNum": 20,
         "price": 600000,
         "spec": "{'颜色':'蓝','机身内存':'256G'}",
         "image": "http://www.shangcheng.com/image/1.jpg",
         "images": "http://www.shangcheng.com/image/1.jpg,http://www.shangcheng.com/image/2.jpg",
        "status": "1",
        "weight": 130
    }
  ]
}

三、代码实现

3.1 SPU与SKU列表的保存

代码实现:

(1)shangcheng_service_goods_api工程创建组合实体类Goods

(2)shangcheng_service_goods工程SpuService新增方法add(Goods goods)

(3)shangcheng_service_goods工程SpuServiceImpl实现此方法

(3)修改SpuController的add方法

3.2 品牌与分类关联

实现思路:

将分类ID与SPU的品牌ID 一起插入到tb_category_brand表中

(1)创建实体类

这个表是联合主键,所以templateId和brandId都有@Id注解

(2)新建数据访问接口

(3)SpuServiceImpl引入

(4)修改SpuServiceImpl的saveSkuList方法,添加分类与品牌之间的关联, 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2260077.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[COLM 2024] V-STaR: Training Verifiers for Self-Taught Reasoners

本文是对 STaR 的改进方法,COLM 是 Conference On Language Models,大模型领域新出的会议,在国际上很知名,不过目前还没有被列入 ccf list(新会议一般不会列入);作者来自高校、微软研究院和 Goo…

端点鉴别、安全电子邮件、TLS

文章目录 端点鉴别鉴别协议ap 1.0——发送者直接发送一个报文表明身份鉴别协议ap 2.0——ap1.0 的基础上,接收者对报文的来源IP地址进行鉴别鉴别协议ap 3.0——使用秘密口令,口令为鉴别者和被鉴别者之间共享的秘密鉴别协议ap 3.1——对秘密口令进行加密&…

电脑文件夹打不开了,能打开但是会闪退,提示“找不到iUtils.dll”是什么原因?

电脑运行时常见问题解析:文件夹打不开、闪退及“找不到iUtils.dll”报错 在使用电脑的过程中,我们可能会遇到文件夹打不开、软件闪退或系统报错等问题,特别是提示“找不到iUtils.dll”的报错,更是让人困惑不已。今天我将为大家详…

MATLAB图卷积神经网络GCN处理分子数据集节点分类研究

全文链接:https://tecdat.cn/?p38570 本文主要探讨了如何利用图卷积网络(GCN)对图中的节点进行分类。介绍了相关的数据处理、模型构建、训练及测试等环节,通过对分子数据集的操作实践,展示了完整的节点分类流程&#…

计算机网络-传输层 UDP协议

学习一个网络协议,主要就是学习“数据格式/报文格式” UDP的特点 UDP传输的过程类似于寄信. ⽆连接: 知道对端的IP和端⼝号就直接进⾏传输, 不需要建⽴连接; 不可靠: 没有确认机制, 没有重传机制; 如果因为⽹络故障该段⽆法发到对⽅, UDP协议层也不会给应 ⽤层返回任…

[OpenGL] Transform feedback 介绍以及使用示例

一、简介 本文介绍了 OpenGL 中 Transform Feedback 方法的基本概念和代码示例。 二、Transform Feedback 介绍 1. Transform Feedback 简介 根据 OpenGL-wiki,Transform Feedback 是捕获由顶点处理步骤(vertex shader 和 geometry shader&#xff0…

拆解大语言模型RLHF中的PPO

** 拆解大语言模型RLHF中的PPO ** 参考链接:https://zhuanlan.zhihu.com/p/645225982 为什么大多数介绍RLHF的文章,一讲到PPO算法的细节就戛然而止了呢?要么直接略过,要么就只扔出一个PPO的链接。然而LLM PPO跟传统的PPO还是有…

arcGIS使用笔记(无人机tif合并、导出、去除黑边、重采样)

无人机航拍建图之后,通过大疆智图软件可以对所飞行的区域的进行拼图,但是如果需要对拼好的图再次合并,则需要利用到arcGIS软件。下面介绍arcGIS软件在这个过程中常用的操作。 1.导入tif文件并显示的方法:点击“”图标进行导入操作…

利用代理IP爬取Zillow房产数据用于数据分析

引言 最近数据分析的热度在编程社区不断攀升,有很多小伙伴都开始学习或从事数据采集相关的工作。然而,网站数据已经成为网站的核心资产,许多网站都会设置一系列很复杂的防范措施,阻止外部人员随意采集其数据。为了解决这个问题&a…

免费送源码:Java+B/S+MySQL 多元化智能选课系统的设计与实现 计算机毕业设计原创定制

摘 要 多元化智能选课系统使用Java语言的Springboot框架,采用MVVM模式进行开发,数据方面主要采用的是微软的Mysql关系型数据库来作为数据存储媒介,配合前台技术完成系统的开发。 论文主要论述了如何使用JAVA语言开发一个多元化智能选课系统&…

(九)机器学习 - 多项式回归

多项式回归(Polynomial Regression)是一种回归分析方法,它将自变量 xx 和因变量 yy 之间的关系建模为 nn 次多项式。多项式回归的目的是找到一个 nn 次多项式函数,使得这个函数能够最好地拟合给定的数据点。 多项式回归的数学表达…

XX服务器上的npm不知道咋突然坏了

收到同事的V,说是:182上的npm不知道咋突然坏了,查到这里了,不敢动了。 咱一定要抓重点:突然坏了。这里的突然肯定不是瞬间(大概率是上次可用,这次不可用,中间间隔了多长时间&#x…

Vizcom:AI驱动的草图到3D设计革命

Vizcom是一家领先的AI技术公司,专注于为工业设计师提供工具,将手绘草图快速转化为可制造的3D模型,从而加速产品迭代和创新。 公司背景与愿景 成立于2021年的Vizcom由前Nvidia工业设计师Jordan Taylor创立。Taylor凭借其深厚的创意设计背景和技术敏锐度,看到了生成对抗网络…

html自带的input年月日(date) /时间(datetime-local)/星期(week)/月份(month)/时间(time)控件

年月日期控件 type"date" <input type"date" id"StartDate" valueDateTime.Now.ToString("yyyy-MM-dd") /> //设置值 $("#StartDate").val("2024-12-12"); //获取值 var StartDate$("#StartDate&quo…

【51单片机】独立按键快速上手

51单片机独立按键是单片机控制系统中常用的一种输入方式&#xff0c;它相当于一种电子开关&#xff0c;按下时开关接通&#xff0c;松开时开关断开。 开关功能‌&#xff1a;独立按键内部通常包含一个有弹性的金属片&#xff0c;当按键被按下时&#xff0c;金属片与触点接触&a…

SpringCloud和Nacos的基础知识和使用

1.什么是SpringCloud ​ 什么是微服务&#xff1f; ​ 假如我们需要搭建一个网上购物系统&#xff0c;那么我们需要哪些功能呢&#xff1f;商品中心、订单中心和客户中心等。 ​ 当业务功能较少时&#xff0c;我们可以把这些功能塞到一个SpringBoot项目中来进行管理。但是随…

手机实时提取SIM卡打电话的信令声音--社会价值(一、方案解决了什么问题)

手机实时提取SIM卡打电话的信令声音 --社会价值(一、方案解决了什么问题) 一、前言 这段时间&#xff0c;我们在技术范围之外陷入了一个自证或者说下定义的怪圈&#xff0c;即要怎么样去介绍或者描述&#xff1a;我们是一个什么样的产品。它在当前这个世界上&#xff0c;处于…

使用navicat新旧版本,连接PostgreSQL高版本报错问题图文解决办法

使用navicat新旧版本&#xff0c;连接PostgreSQL高版本报错问题图文解决办法 一、问题现象&#xff1a;二、出现原因三、解决方法&#xff1a;1、升级Navicat版本&#xff1a;2、使用低版本的postgreSQL&#xff1a;3、修改Navicat的dll二进制文件&#xff1a;navicat版本15nav…

12.1【JAVA EXP4】next项目

next项目构建问题 详解一下这个页面 什么是Node选项&#xff1f; Node选项是指在运行Node.js应用程序时可以传递给Node.js进程的一系列命令行参数。这些选项可以让开发者控制Node.js的行为&#xff0c;例如设置内存限制、启用或禁用某些功能、指定调试端口等 --inspect 和 --i…

【操作系统】实验九:设备驱动程序

实验9 设备驱动程序 在钻研Linux内核的人当中&#xff0c;大多数人都是在写设备驱动程序。尽管由于设备的特殊性&#xff0c;使得每个驱动程序都不一样。但是编写设备驱动程序的许多原则和基本技巧都是一样的&#xff0c;甚至Windows下的设备驱动程序从原理上讲也与之相通。在…