Java生鮮電商平臺-商品價格的設計與架構java
說明:Java開源生鮮電商平臺-商品價格的設計與架構,主要是對商品的價格進行研究與系統架構.數據庫
1、常見的電商價格架構
就按這個價格進行銷售。全部的優惠規則均是基於這個價格進行計算。數據庫設計
因此在設計上,須要考慮如何基於產品SKU保存價格數據。網站
有些折扣價格可以反映在產品上,有些則只能反映在總價上,這部分業務歸到促銷規則來講明。lua
用於大體的利潤估算分析,也能夠用於訂價參考價自動計算。設計
2、價格分類code
上面的價格能夠分爲四大類:orm
市場價格。除有很明顯的市場價外,通常電商網站的市場價格都是往高來寫,僅用來和銷售價格blog
造成反差。
包括進貨價、成本價。
這類價格不是必須在電商系統中管理,能夠在ERP或進銷存系統中管理。
用於分析、統計和產品銷售價的訂價參考使用。
銷售價、SKU價格、批發價。
就是基於產品自己或數量指定的價格,和市場
即:特價、折扣價。
就是基於營銷策略所設置的各種規則計算得出的價格。
這類價格不是產品自己的價格,而是經過調用市場營銷模塊提供的接口計算得出。
3、業務分析
由於該價格沒有多少業務意義,並且維護頻率很低,能夠直接在產品或產品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='商品表';