基于Vue3 Sku的设计

本文为博客 VIP 文章,开通 VIP 后可阅读全文

开通 VIP

Sku如何进行设计

欢迎各位小伙伴来观看这篇文章!最近做项目需要对sku进行设计并实现,以下是实现的效果。
在这里插入图片描述接下来我们开始吧!!!

数据库的设计

数据库中我们总共有两个表,一个商品表,一个sku表。sql语句

商品表

CREATE TABLE `goods` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(100) DEFAULT NULL,
  `brand` varchar(50) DEFAULT NULL,
  `thumb` varchar(100) DEFAULT NULL,
  `category_id` int(8) DEFAULT NULL,
  `state` tinyint(1) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=36 DEFAULT CHARSET=utf8;

sku表

CREATE TABLE `sku` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `price` int(10) DEFAULT NULL,
  `stock` int(10) DEFAULT NULL,
  `marketPrice` int(10) DEFAULT NULL,
  `costPrice` int(10) DEFAULT NULL,
  `specs` varchar(100) DEFAULT NULL,
  `goods_id` int(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=37 DEFAULT CHARSET=utf8;

里面的一些数据
商品表的信息
在这里插入图片描述
sku表的信息
在这里插入图片描述
sku的specs字段我的是varchar类型因为我的mysql是5.6版本的,5.7版本及以上可以使用json类型。此处我是按照我的实际情况走的,向sku插入数据时

//item是服务器得到前端传过来的数据
'insert into sku (price,stock,marketPrice,costPrice,specs,goods_id)
 values (?,?,?,?,?,?)',[item.price, item.stock, item.sPrice, item.cPrice, JSON.stringify(item.specs), result.insertId]

以上是对数据库设计的解释,以防小伙伴接下来对拿到的数据不明白。
以上就涉及了两个表,但是我的项目涉及到了其他的数据所以这是按照我的项目拿的数据,但是这个sku的设计就涉及到了上边的两个表

从后端拿数据

接下来是后端给前端的数据。

//利用node搭建的服务器
//在这里后端拿到前端发过来的数据商品id,有关商品某个sku的id.
async function selectGoodsSpecs(ctx) {
   
   
    let id = ctx.query.id
    let sku_id = ctx.query.sku_id
    if (!id || !sku_id) {
   
   
        return ctx.body = {
   
    code: 0, msg: '该商品不存在', data: null }
    }
    // 此处应该加上是否已将上架,此搜索为某个商品的信息
    let [[good]] = await db.query('select * from goods where id=?', [id])
    // 搜索该商品的轮播图的照片
    let [imgs] = await db.query('select * from goods_imgs where goods_id=?', [id])
    let imgsLength = imgs.length
    // 搜索已存在的商品规格组合sku
    let [skusRaw] = await db.query('select * from sku where goods_id=?', [id])
    for (const it of skusRaw) {
   
   
        it.specs = JSON.parse(it.specs)
    }
    // 获取当前的商品规格
    let [[currentSku]] = await db.query('select * from sku where id=?', [sku_id])
    currentSku.specs = JSON.parse(currentSku.specs)
    good.imgs = imgs
    good.imgsLength = imgsLength
    good.skusRaw = skusRaw
    good.currentSku = currentSku
    ctx.body = {
   
    code: 1, msg: '查找成功', data: good }
}

前端拿到的数据是华为电视这个商品的

//id:商品id
//name:商品名字
//brand:品牌
//thumb:封面图
//category_id:分类id
//state:商品状态
//imgs:商品轮播图
//imgsLength:商品轮播图的个数
//skusRaw:该商品目前拥有的规格sku
//currentSku:默认的商品sku
{
   
   
    "id": 35,
    "name": "华为智慧屏 SE 65英寸 畅连通话版 超薄电视 4K超高清智能液晶电视机 HD65DESY 2+16GB 【搭载HarmonyOS 2】  ",
    "brand": "华为",
    "thumb": "2021/11/10/1639137174811华为1.dpg",
    "category_id": 38,
    "state": 1,
    "imgs": [
        {
   
   
            "id": 8,
            "url": "2021/11/10/1639137289124华为1-1.dpg.webp",
            "goods_id": 35
        },
        {
   
   
            "id": 9,
            "url": "2021/11/10/1639137294323华为1-2.dpg.webp",
            "goods_id": 35
        },
        {
   
   
            "id": 10,
            "url": "2021/11/10/1639137299589华为1-3.dpg.webp",
            "goods_id": 35
        },
        {
   
   
            "id": 11,
            "url": "2021/11/10/1639137306225华为1-4.dpg.webp",
            "goods_id": 35
        },
        {
   
   
            "id": 12,
            "url": "2021/11/10/1639137312438华为1-5.dpg.webp",
            "goods_id": 35
        }
    ],
    "imgsLength": 5,
    "skusRaw": [
        {
   
   
            "id": 27,
            "price": 329900,
            "stock": 111,
            "marketPrice": 299900,
            "costPrice": 200000,
            "specs": {
   
   
                "颜色": "红色",
                "运行内存": "4G",
                "存储": "64G"
            },
            "goods_id": 35
        },
        {
   
   
            "id": 28,
            "price": 259900,
            "stock": 222,
            "marketPrice": 199900,
            "costPrice": 149900,
            "specs": {
   
   
                "颜色": "金色",
                "运行内存": "6G",
                "存储": "128G"
            },
            "goods_id": 35
        },
        {
   
   
            "id": 29,
            "price": 269900,
            "stock": 333,
            "marketPrice": 189900,
            "costPrice": 129900,
            "specs": {
   
   
                "颜色": "褐色",
                "运行内存": "4G",
                "存储": "256G"
            },
            "goods_id": 35
        },
        {
   
   
            "id": 30,
            "price": 289500,
            "stock": 4444,
            "marketPrice": 179900,
            "costPrice": 149900,
            "specs": {
   
   
                "颜色": "黑色",
                "运行内存": "4G",
                "存储": "128G"
            },
            "goods_id": 35
        },
        {
   
   
            "id": 31,
            "price": 312600,
            "stock": 555,
            "marketPrice": 159900,
            "costPrice": 148500,
            "specs": {
   
   
                "颜色": "白色",
                "运行内存": "4G",
                "存储": "64G"
            },
            "goods_id": 35
        },
        {
   
   
            "id": 32,
            "price": 245600,
            "stock": 666,
            "marketPrice": 195600,
            "costPrice": 111100,
            "specs": {
   
   
                "颜色": "红色",
                "运行内存": "6G",
                "存储": "128G"
            },
            "goods_id": 35
        },
        {
   
   
            "id": 33,
            "price": 327800,
            "stock": 777,
            "marketPrice": 169800,
            "costPrice": 145800,
            "specs": {
   
   
                "颜色": "金色",
                "运行内存": "8G",
                "存储": "64G"
            },
            "goods_id": 35
        },
        {
   
   
            "id": 34,
            "price": 369900<
vue实现计算商品sku笛卡尔积(干货) vue实现计算商品sku笛卡尔积 阅读详情

相关推荐

vue3+Ts+Hook的方式实现商城核心功能sku选择器

Hooks是React等函数式编程框架中非常受欢迎的工具,随着VUE3 Composition API 函数式编程风格的推出,现在也受到越来越多VUE3开发者的青睐,它让开发者的代码具有更高的复用度且更加清晰、易于维护。本文将通过CRMEB商城商品详情sku选择功能了解Hooks的使用基础以及自定义HOOK开发相关的要点,快速入门。Hooks并不是VUE特有的概念,实际上它原本被用于指代一些特定时间点会触发的勾子。

weixin_64051447的博客 1494

vue-sku-form:基于 Vue & ElementUI 的电商 SKU 表单配置组件

vue-sku-form 基于 Vue & ElementUI 的电商 SKU 表单配置组件 你或许感兴趣 一款开箱即用的 Vue 中后台管理系统框架

Vue3+Element Plus构建动态商品SKU组合生成器实战

本文详细介绍了如何使用Vue3和Element Plus构建动态商品SKU组合生成器,解决电商后台管理中SKU配置效率低下的问题。通过响应式设计和笛卡尔积算法,实现规格的动态增删与SKU自动生成,大幅提升商品管理效率。文章包含完整代码示例和性能优化建议,适合前端开发者快速上手。

weixin_29001419的博客 272

vue+element实现sku表格

vue编写,基于elementUI实现的商品库存表格,添加属性和规格,自动生成对应表格

vue电商项目sku 规格 详细步骤

一、概念及需求 SPU(Standard Product Unit):标准化产品单元。是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗点讲,属性值、特性相同的商品就可以称为一个SPU。 SKU(Stock Keeping Unit)库存量单位,即库存进出计量的单位, 可以是以件、盒、托盘等为单位。SKU是物理上不可分割的最小存货单元。在使用时要根据不同业态,不同管理模式来处理。 区别: SPU:属性值 特性相同的就是SPU 例如 ip.

^_^ 4310

Vue3电商项目实战-商品详情模块3【07-★规格组件-SKU&SPU概念、08-★规格组件-基础结构和样式、09-★规格组件-渲染与选中效果】

Vue3电商项目实战-商品详情模块3【07-★规格组件-SKU&SPU概念、08-★规格组件-基础结构和样式、09-★规格组件-渲染与选中效果】

m0_52896752的博客 1408

SpringBoot+Vue3 商城系统设计:商品·SKU·购物车·订单全流程拆解

深度拆解开源商城系统的核心建模方案。以 SPU/SKU 双层商品模型为底座,购物车只存"用户×SKU×数量×选中"轻量结构,结算时由可插拔的 TradePriceCalculator 价格责任链统一算价(秒杀/折扣/满减/优惠券/积分/运费逐级叠加),下单即原子扣减 SKU 库存防超卖,订单与支付单解耦、与售后联动。基于 yudao-module-mall 真实源码,讲清商品到订单的全链路建模与落地。

RuoYi Office是基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue3 + Vben Admin + Uniapp 构建的中小企业全业务办公一体化平台,涵盖OA 协同 665

SpringBoot+Vue3 仓储管理系统(WMS)设计:商品·SKU·出入库·移库·盘点全流程拆解

深度拆解开源 WMS 仓储管理系统的完整设计。以商品-SKU 主数据 + "SKU×仓库"库存余额为核心,入库单/出库单/移库单/盘点单四类单据驱动库存增减,单据状态走草稿→完成→作废,完成时才写库存;库存变更用悲观锁 SELECT FOR UPDATE 批量锁定+内存计算防并发,盘点用账面快照校验防变更覆盖,每次变动落 wms_inventory_history 流水。基于 yudao-module-wms 真实源码,讲清 WMS 的建模与并发安全设计

RuoYi Office是基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue3 + Vben Admin + Uniapp 构建的中小企业全业务办公一体化平台,涵盖OA 协同 669

SKU设计模式演进史:从后端处理到前端笛卡尔积的技术变迁

本文探讨了电商平台SKU设计模式的技术演进,从早期的后端处理到现代前端框架(如Vue和Element Plus)的笛卡尔积计算。文章详细分析了不同阶段的技术方案及其优缺点,并展望了WebAssembly在SKU计算中的未来应用,为开发者提供了架构选择指南。

weixin_29009501的博客 638

从零构建电商SKU系统:Vue3与Element Plus的实战解析

本文详细解析了如何利用Vue3和Element Plus从零构建电商SKU系统,涵盖架构设计、动态表单渲染、笛卡尔积算法优化等核心内容。通过实战案例展示商品规格管理与SKU组合生成的最佳实践,帮助开发者高效实现复杂电商业务场景的前端解决方案。

weixin_29001327的博客 352

使用vue实现多规格选择实例(SKU

主要介绍了使用vue实现多规格选择实例(SKU),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

sku-algorithm:商品多规格选择-sku算法

经测,发现有bug,目前正在修复中:dashing_away::dashing_away::dashing_away: 切勿用于生产环境中!! 如果有解决思路的同学,请给我提PR:handshake::handshake::handshake: 商品多规格选择-前端 sku 算法 相信大家看到这张图片就知道我们这篇文章要讲什么了,没错就是-商品多规格选择的解法。 近来在掘金上面看见大家都在研究“商品多规格选择”的问题,例如晨曦大佬的 在这篇文章里面,大佬写明了如何实现sku的全排列,思路非常的棒,但是并没有紧贴业务场景。真正的业务场景是,我们要根据用户每一次选择的规格,找出剩下可选的规格和不可选的规格,表现在前端页面上:就是将不可选的规格置灰,也就是如下效果(可以点击查看最终效果): 那么今天我们就来讲讲这个问题的一个解决方法,要讲明白很难,但是我相信你看了这篇文章之后,sku就再也难不倒你了。 什么是 sku 在介绍具体解法之前,我们先来介绍一下什么是sku? sku是会计学中的一个名词,被称作库存单元。说人话?简单来讲就

SpringBoot+Vue3电商系统架构设计与实现

现代Web应用开发中,前后端分离架构已成为主流技术方案。SpringBoot作为Java领域的明星框架,通过自动配置和Starter依赖简化了后端开发;Vue 3则凭借Composition API和更好的性能优化,成为前端开发的新标准。在电商系统开发场景下,这种技术组合能高效实现商品管理、订单处理等核心功能模块。通过MVC设计模式和模块化工程结构,开发者可以构建出高内聚低耦合的系统架构。实践中特别需要注意跨域处理、数据库字符集兼容性等典型问题,这些经验对开发同类B2C电商平台具有重要参考价值。

aoe41606的博客 421

电商网站Vue实战:从零搭建商品详情页

最近在独立开发一个小型电商网站时,商品详情页的实现让我对Vue 3的组合式API有了更深入的理解。这个看似简单的页面其实包含了不少技术要点,下面我就把整个开发过程的关键点和踩坑经验分享给大家。这次实践让我体会到,用好Vue的响应式特性配合适当的组件拆分,即使功能复杂的页面也能保持代码清晰。的一键部署功能帮了大忙。我的解决方案是利用计算属性动态生成可选项,配合watch监听选择变化,这种响应式编程方式让复杂逻辑变得直观。特别是详情选项卡,在小屏下改为了手风琴式折叠面板,大幅提升了移动端可用性。

CrystalwaveStag的博客 430

中小企业电商网站技术选型与架构设计实战

电商系统开发中,技术选型需要平衡开发效率、维护成本和性能需求三大要素。从基础架构原理来看,不同技术栈各有优势:PHP(如ThinkPHP)以快速开发见长,ASP.NET Core强类型特性利于团队协作,Java生态(SpringBoot+SSM)则以稳定性著称。在电商典型场景中,用户认证、SKU设计等核心模块的实现方案直接影响系统质量,而数据库索引优化、前端静态提升等性能调优手段能显著提升用户体验。根据CVPR2025最新研究,SSM轻量化改进可带来20%以上性能提升,结合Vue3的组合式API等现代前端

weixin_31956641的博客 228

SpringBoot+Vue服装销售系统架构设计与实战

现代电商系统开发中,前后端分离架构已成为主流技术方案。SpringBoot作为Java领域最流行的微服务框架,与Vue.js前端框架的组合能有效提升开发效率。通过MyBatis实现数据持久层操作,结合MySQL关系型数据库管理复杂业务数据,这种技术栈特别适合处理服装行业特有的SKU管理、促销活动等场景需求。在工程实践中,需要重点解决商品多规格管理、库存实时计算等核心问题,同时采用JWT认证、接口签名等安全措施保障系统可靠性。本文以衣依服装平台为例,详解如何运用SpringBoot+Vue技术栈构建高可用的电

weixin_30960995的博客 210

Vue3电商前台开发实战:性能优化与架构设计

现代电商前端开发已从简单页面展示演进为需要处理高并发、复杂交互和极致性能的系统工程。Vue3的组合式API和Pinia状态管理为电商场景提供了更优雅的解决方案,特别是在处理商品SKU选择、购物车状态等复杂交互时展现出明显优势。性能优化方面,图片懒加载、虚拟列表等关键技术可显著提升用户体验,其中WebP/AVIF格式选择与CDN加速的组合能将图片加载效率提升50%以上。在工程实践层面,Vite构建工具与微前端架构能有效支撑大型电商项目的模块化开发,而AI技术在智能客服和图片处理等场景的融合正在成为行业新趋势。

weixin_34049948的博客 427

Vue 功能总结】点击规格动态更新禁用状态——底层逻辑“有效路径字典”解析

有效路径字典”并不是 Vue 的某个 API,而是一种前端数据处理与存储的设计思想。它将后端返回的复杂的多维对象数组,扁平化、降维成一个一维的映射表,里面只记录仓库中真实存在(有货)的规格组合路径。// 模拟后端返回的数据{ id: 1, specs: { 颜色: '红', 尺码: 'S' }, stock: 100 },{ id: 2, specs: { 颜色: '红', 尺码: 'M' }, stock: 50 },

这是个栗子的博客 85
上一篇: web前端如何搭建本地服务器
下一篇: JavaScript有关this指向问题,如何修改this指向
惊&鸿
博客等级 码龄8年 16粉丝 · 10原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值