Java生鲜电商平台-商品价格的设计与架构
Java生鲜电商平台-商品价格的设计与架构
说明:Java开源生鲜电商平台-商品价格的设计与架构,主要是对商品的价格进行研究与系统架构.
一、常见的电商价格
- 市场价(List Price):这个价格仅是用于显示,用于衬托网站销售价格的优惠程度;
- 销售价(Sales Price):亦称我们的价格、零售价等,如果没有任何优惠的(包括促销优惠、会员等级优惠等),
就按这个价格进行销售。所有的优惠规则均是基于这个价格进行计算。
- 特价(Special Price):优先级最高的定价,忽略所有的价格规则。
- SKU价格(SKU Price):同一个产品,但是不同的SKU规格(或规格组合)价格不同。
所以在设计上,需要考虑如何基于产品SKU保存价格数据。
- 批发价(Wholesale Price):纯粹和购买数量相关的价格。常见B2B网站。
- 折扣价(Discount Price):基于“销售价格”进行促销规则计算,最后得到的折后价格。
有些折扣价格能够反映在产品上,有些则只能反映在总价上,这部分业务归到促销规则来说明。
- 采购价(Import Price):购入该商品的价格。
- 成本价(Cost Price):进货价 + 企业运营成本(管理、税费、人力、损耗、场所等)分摊。
用于大致的利润估算分析,也可以用于定价参考价自动计算。
二、价格分类
上面的价格可以分为四大类:
- 显示类价格
市场价格。除有很明显的市场价外,一般电商网站的市场价格都是往高来写,仅用来和销售价格
形成反差。
- 管理类价格
包括进货价、成本价。
这类价格不是必须在电商系统中管理,可以在ERP或进销存系统中管理。
用于分析、统计和产品销售价的定价参考使用。
- 销售类价格
销售价、SKU价格、批发价。
就是基于产品本身或数量指定的价格,和市场
- 市场营销价
即:特价、折扣价。
就是基于营销策略所设置的各类规则计算得出的价格。
这类价格不是产品本身的价格,而是通过调用市场营销模块提供的接口计算得出。
三、业务分析
- 显示类价格
因为该价格没有多少业务意义,而且维护频率很低,可以直接在产品或产品SKU实体中维护。
- 管理类价格
采购价:也即进货价,即从供应商方采购该商品的采购价格。采购价格和批次相关,每一批的采购价格会有所不同。
根据产品销售金额减去总采购价可以得出指定时间范围内的毛利润。
成本价:基于每一批的采购价设置,即采购价 + 公司各类运营成本(含税)。一般是估算,比如是30%的运营成本,
那么成本价 = 采购价 × 1.3
根据产品销售金额减去总成本价可以出指定时间范围内的净利润(估算)。
采购价和成本价均和采购批次相关,所以建议纳入库存模块进行处理。
- 销售类价格
包括销售价和批发价,之所以放在销售类,是考虑这两种价格变动频率比较低,而且基本和市场促销活动无关。
参考销售价建议:
对于网上销售的定价和线下销售的定价往往会有所不同。
对于运营部门在定价时,除了参考公司各个部门的讨论意见和建议等,
在网站系统内,根据成本价和期望利润率给出参考销售价建议是比较有实际价值的。
期望利润率(Desired profit x% on sales) :可以针对不同的产品目录来设置。
参考销售价 = 成本价 × (1 + 期望利润率)
销售价格存在历史数据的需要,所以建议独立产品之外进行设计。
- 市场营销价
由于变更频率很大,而且往往是由若干个规则共同作用下计算获得的价格,所以纳入市场营销模块处理,
并提供接口供产品模块使用。
最终通过上面的描述与总结:复杂的数据库设计如下:
CREATE TABLE `goods` (
`goods_id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '商品id(SKU)',
`goods_name` varchar(100) NOT NULL DEFAULT '' COMMENT '商品名称',
`shop_id` int(10) unsigned NOT NULL DEFAULT '1' COMMENT '店铺id',
`category_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '商品分类id',
`category_id_1` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '一级分类id',
`category_id_2` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '二级分类id',
`category_id_3` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '三级分类id',
`brand_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '品牌id',
`group_id_array` varchar(255) NOT NULL DEFAULT '' COMMENT '店铺分类id 首尾用,隔开',
`promotion_type` tinyint(3) NOT NULL DEFAULT '0' COMMENT '促销类型 0无促销,1团购,2限时折扣',
`promote_id` int(11) NOT NULL DEFAULT '0' COMMENT '促销活动ID',
`goods_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '实物或虚拟商品标志 1实物商品 0 虚拟商品 2 F码商品',
`market_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '市场价',
`price` decimal(19,2) NOT NULL DEFAULT '0.00' COMMENT '商品原价格',
`promotion_price` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '商品促销价格',
`cost_price` decimal(19,2) NOT NULL DEFAULT '0.00' COMMENT '成本价',
`point_exchange_type` tinyint(3) NOT NULL DEFAULT '0' COMMENT '积分兑换类型 0 非积分兑换 1 只能积分兑换 ',
`point_exchange` int(11) NOT NULL DEFAULT '0' COMMENT '积分兑换',
`give_point` int(11) NOT NULL DEFAULT '0' COMMENT '购买商品赠送积分',
`is_member_discount` int(1) NOT NULL DEFAULT '0' COMMENT '参与会员折扣',
`shipping_fee` decimal(10,2) NOT NULL DEFAULT '0.00' COMMENT '运费 0为免运费',
`shipping_fee_id` int(11) NOT NULL DEFAULT '0' COMMENT '售卖区域id 物流模板id ns_order_shipping_fee 表id',
`stock` int(10) NOT NULL DEFAULT '0' COMMENT '商品库存',
`max_buy` int(11) NOT NULL DEFAULT '0' COMMENT '限购 0 不限购',
`clicks` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '商品点击数量',
`min_stock_alarm` int(11) NOT NULL DEFAULT '0' COMMENT '库存预警值',
`sales` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '销售数量',
`collects` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '收藏数量',
`star` tinyint(3) unsigned NOT NULL DEFAULT '5' COMMENT '好评星级',
`evaluates` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '评价数',
`shares` int(11) NOT NULL DEFAULT '0' COMMENT '分享数',
`province_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '一级地区id',
`city_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '二级地区id',
`picture` int(11) NOT NULL DEFAULT '0' COMMENT '商品主图',
`keywords` varchar(255) NOT NULL DEFAULT '' COMMENT '商品关键词',
`introduction` varchar(255) NOT NULL DEFAULT '' COMMENT '商品简介,促销语',
`description` text NOT NULL COMMENT '商品详情',
`QRcode` varchar(255) NOT NULL DEFAULT '' COMMENT '商品二维码',
`code` varchar(50) NOT NULL DEFAULT '' COMMENT '商家编号',
`is_stock_visible` int(1) NOT NULL DEFAULT '0' COMMENT '页面不显示库存',
`is_hot` int(1) NOT NULL DEFAULT '0' COMMENT '是否热销商品',
`is_recommend` int(1) NOT NULL DEFAULT '0' COMMENT '是否推荐',
`is_new` int(1) NOT NULL DEFAULT '0' COMMENT '是否新品',
`is_pre_sale` int(11) DEFAULT '0',
`is_bill` int(1) NOT NULL DEFAULT '0' COMMENT '是否开具增值税发票 1是,0否',
`state` tinyint(3) NOT NULL DEFAULT '1' COMMENT '商品状态 0下架,1正常,10违规(禁售)',
`sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序',
`img_id_array` varchar(1000) DEFAULT NULL COMMENT '商品图片序列',
`sku_img_array` varchar(1000) DEFAULT NULL COMMENT '商品sku应用图片列表 属性,属性值,图片ID',
`match_point` float(10,2) DEFAULT NULL COMMENT '实物与描述相符(根据评价计算)',
`match_ratio` float(10,2) DEFAULT NULL COMMENT '实物与描述相符(根据评价计算)百分比',
`real_sales` int(10) NOT NULL DEFAULT '0' COMMENT '实际销量',
`goods_attribute_id` int(11) NOT NULL DEFAULT '0' COMMENT '商品类型',
`goods_spec_format` text NOT NULL COMMENT '商品规格',
`goods_weight` decimal(8,2) NOT NULL DEFAULT '0.00' COMMENT '商品重量',
`goods_volume` decimal(8,2) NOT NULL DEFAULT '0.00' COMMENT '商品体积',
`shipping_fee_type` int(11) NOT NULL DEFAULT '1' COMMENT '计价方式1.重量2.体积3.计件',
`extend_category_id` varchar(255) DEFAULT NULL,
`extend_category_id_1` varchar(255) DEFAULT NULL,
`extend_category_id_2` varchar(255) DEFAULT NULL,
`extend_category_id_3` varchar(255) DEFAULT NULL,
`supplier_id` int(11) NOT NULL DEFAULT '0' COMMENT '供货商id',
`sale_date` int(11) DEFAULT '0' COMMENT '上下架时间',
`create_time` int(11) DEFAULT '0' COMMENT '商品添加时间',
`update_time` int(11) DEFAULT '0' COMMENT '商品编辑时间',
`min_buy` int(11) NOT NULL DEFAULT '0' COMMENT '最少买几件',
`virtual_goods_type_id` int(11) DEFAULT '0' COMMENT '虚拟商品类型id',
`production_date` int(11) NOT NULL DEFAULT '0' COMMENT '生产日期',
`shelf_life` varchar(50) NOT NULL DEFAULT '' COMMENT '保质期',
PRIMARY KEY (`goods_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品表';
Java生鲜电商平台-商品价格的设计与架构的更多相关文章
- Java生鲜电商平台-库存管理设计与架构
Java生鲜电商平台-库存管理设计与架构 WMS的功能: 1.业务批次管理 该功能提供完善的物料批次信息.批次管理设置.批号编码规则设置.日常业务处理.报表查询,以及库存管理等综合批次管理功能,使企业 ...
- Java生鲜电商平台-系统报表设计与架构
Java生鲜电商平台-系统报表设计与架构 说明:任何一个运行的平台都需要一个很清楚的报表来显示,那么作为Java开源生鲜电商平台而言,我们应该如何设计报表呢?或者说我们希望报表来看到什么数据呢? ...
- Java生鲜电商平台-服务器部署设计与架构
Java生鲜电商平台-服务器部署设计与架构 补充说明:Java开源生鲜电商平台-服务器部署设计与架构,指的是通过服务器正式上线整个项目,进行正式的运营. 回顾整个章节,我们涉及到以下几个方面: 1. ...
- Java开源生鲜电商平台-监控模块的设计与架构(源码可下载)
Java开源生鲜电商平台-监控模块的设计与架构(源码可下载) 说明:Java开源生鲜电商平台-监控模块的设计与架构,我们谈到监控,一般设计到两个方面的内容: 1. 服务器本身的监控.(比如:linux ...
- Java开源生鲜电商平台-通知模块设计与架构(源码可下载)
Java开源生鲜电商平台-通知模块设计与架构(源码可下载) 说明:对于一个生鲜的B2B平台而言,通知对于我们实际的运营而言来讲分为三种方式: 1. 消息推送:(采用极光推送) ...
- Java生鲜电商平台-商城优惠券设计要点复盘与总结
Java生鲜电商平台-商城优惠券设计要点复盘与总结 Java生鲜电商平台本文将从优惠券设计用户端,需求端,业务流程全方案解析优惠券设计方案 为什么要设计优惠券 设计优惠券的核心:拉新和促活 新产品上线 ...
- Java生鲜电商平台-秒杀系统微服务架构设计与源码解析实战
Java生鲜电商平台-秒杀系统微服务架构设计与源码解析实战 Java生鲜电商平台- 什么是秒杀 通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动 比如说京东秒杀,就是一种定时定量秒杀,在规定 ...
- Java生鲜电商平台-订单配送模块的架构与设计
Java生鲜电商平台-订单配送模块的架构与设计 生鲜电商系统最终的目的还是用户下单支付购买, 所以订单管理系统是电商系统中最为复杂的系统,其作为中枢决定着整个商城的运转, 本文将对于生鲜类电商平台的订 ...
- Java生鲜电商平台-API接口设计之token、timestamp、sign 具体架构与实现(APP/小程序,传输安全)
Java生鲜电商平台-API接口设计之token.timestamp.sign 具体设计与实现 说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃 ...
随机推荐
- C++ const常量对象、常量成员函数和常引用
01 常量对象 如果不希望某个对象的值被改变,则定义该对象的时候可以在前面加const关键字 class CTest { public: void SetValue() {} private: int ...
- 「杂谈」最有可能成为第五个一线城市,苏州 or 杭州?
最有可能成为第五个一线城市,苏州 or 杭州? 一线城市的几个硬指标 所谓的"一线城市",并不是政府提倡或者说是官方发布的城市称号,是最近十几年因房地产行业的强势崛起,一些媒体尤其 ...
- 函数的名称空间,函数的嵌套(global, nonlocal),函数名的运用
一 函数的名称空间 内置空间:存放python解释器内置函数的空间 全局空间:py文件运行时开辟的,存放的是执行的py文件(出去函数内部)的所有的变量与值的对用关系,整个py文件结束后才会消失. 局部 ...
- git commit 新修改的内容 添加到上次提交中 减少提交的日志
有时候提交过一次记录只有,又修改了一次,仅仅是改动一些较少的内容,可以使用git commit --amend. 添加到上次提交过程中: --amend amend previous commit g ...
- java.sql.SQLException: Incorrect string value: '\xF0\x9F\x98\x8E' for column 'name' at row 1
我的错误案例: ,这个后台插不进去,就姓名那栏的中文编码问题. 遇到这个错误,应该是创建表的时候没有设置好编码,这个错误不用多想,我也试过在更改表那里设置编码,但还是不行,还是有残留 直接drop t ...
- 迎国庆 itest(爱测试) 4.1.0 发布,开源BUG 跟踪管理 & 敏捷测试管理软件
v4.1.0 下载地址 :itest下载 itest 简介:查看简介 在线体验 https://itest.work/demo/ V4.1.0 根据用户反馈,共增加了23个更新:其中有11个功能增强和 ...
- 15.Java基础_初探对象
package pack1; public class Phone { //成员变量 String brand; int price; //成员方法 public void call(){ Syste ...
- VMWare虚拟机提示:锁定文件失败,打不开磁盘...模块"Disk"启动失败的解决办法
我出现该问题的原因: 昨天电脑一下子卡死,于是我就重启了电脑,重启之后我没有打开VMware虚拟机,结果第二天一上班打开VMware就发现出现了“锁定文件失败,打不开磁盘......模块"D ...
- [C4W2] Convolutional Neural Networks - Deep convolutional models: case studies
第二周 深度卷积网络:实例探究(Deep convolutional models: case studies) 为什么要进行实例探究?(Why look at case studies?) 这周我们 ...
- Shiro内置过滤器
Shiro内置过滤器 DefaultFilter 枚举类定义了shiro所有的默认过滤器. package org.apache.shiro.web.filter.mgt; public enum D ...