Java生鮮電商平臺-優惠券系統的架構設計與源碼解析

Java生鮮電商平臺-優惠券系統的架構設計與源碼解析

?

電商后臺:實例解讀促銷系統

電商后臺系統包括商品管理系統、采購系統、倉儲系統、訂單系統、促銷系統、維權系統、財務系統、會員系統、權限系統等,各系統之間相互關聯、相互依托,為前端的正常業務流轉建立結實穩固的基礎。

促銷系統的主要目的是便于運營設置各種促銷方式,以提高商品的銷量、用戶的客單價等。

在后臺各系統中,促銷系統和商品管理系統、訂單系統關聯最大,商品管理系統為促銷系統提供活動商品,用戶下單后,促銷優惠信息會展示在訂單系統中。

促銷系統介紹

促銷系統主要包括促銷活動管理促銷類型管理

1、促銷活動管理包含活動信息和活動狀態管理:

活動信息

  • 活動名稱:可用于區分促銷活動,同時也便于查詢;
  • 活動時間:促銷活動的生效時間;
  • 活動規則:對應不同活動類型的規則,比如滿X減N,均需要設置;
  • 活動商品:參加促銷活動的商品,按照不同活動類型,可分為活動主商品與贈品。

活動狀態

按照活動時間,可分為未開始、進行中、已結束。

  • 未開始的促銷活動可隨意編輯活動信息或者刪除活動;
  • 進行中的促銷活動為防止突發情況,一般有終止活動操作,也可編輯添加移除商品,但一般不能修改活動規則,否則容易導致前端購買體驗不佳;
  • 已結束的促銷活動不可編輯。

2、促銷類型一般包括:滿減、滿贈、滿折、加價購、特價、套餐、預售、秒殺等。

促銷活動創建流程

后臺創建促銷活動的流程一般是:

  1. 選擇活動類型;
  2. 設置相關活動信息:活動名稱、活動時間、活動規則等,不同活動類型需要進行不同的設置操作,具體可見下方示例;
  3. 選擇活動主商品。對于和贈品相關的活動,在主商品外,需要另選擇參與活動的贈品,此處可注意,有些平臺會將贈品作為一種單獨的商品類型,而有些平臺則可直接將主商品作為贈品;
  4. 活動信息設置好后,在活動生效時間內,前端用戶可見。

促銷系統后臺示例

下面以示例來對各個促銷類型的創建進行簡單說明。

1、滿減

  • 階梯滿減:按消費的階梯額度設置相應的滿減值,消費額度越高滿減力度越大,以此來刺激用戶提高單次購買金額,例如滿100-10、滿200-30、滿300-60等。
  • 每滿減:消費每達到一個額度則滿減定值,例如每滿100-10。
  • 設置內容包括:活動名稱、活動時間、滿減方式、活動商品。

設置階梯滿減時,可以對滿減額度做監控,以免高額度的滿減值低于低額度的滿減值情況出現。

2、滿贈

  • 滿額贈:消費達到一定額度,則贈送相應東西給用戶,贈送內容一般是特定贈品,例如消費滿1000送圍巾。
  • 滿件贈:消費達到一定件數,則贈送相應東西給用戶,贈送內容可以是相同商品,例如滿2件送一件。
  • 設置內容包括:活動名稱、活動時間、滿贈方式、活動商品、贈品。

上文有提過,各個電商平臺對于贈品的定義是不一樣的。有些平臺的贈品不會對外銷售,因此將贈品也作為一個商品類型,僅用作贈送活動;而有些平臺則可將正常售賣商品作為贈品。因此需根據平臺業務來定義贈品:若是第一種,則選擇贈品時,只顯示類型為贈品的商品;若是第二種,則選擇贈品時,顯示所有的商品。

3、滿折

  • 滿額折:消費達到一定額度,可享受相應折扣,例如滿500享8折。
  • 滿件折:消費達到一定件數,可設置相應折扣,例如滿2件享7折。
  • 階梯滿折:按消費的階梯額度享受相應的折扣,消費額度越高折扣力度越大,即可包含滿額折,例如滿200打9折,滿400打8折,也可包含滿件折,例如滿2件享7折、滿3件享6折、滿5件享5折等。
  • 設置內容包括:活動名稱、活動時間、滿折方式、活動商品。

4、加價購

  • 消費達到一定額度,可享受低價換購其他商品,以主商品帶動其他商品銷售。
  • 設置內容包括:活動名稱、活動時間、加購設置(滿X元加N元)、活動商品、加價購商品。

加價購活動的設置中,購買“活動商品”的金額達到加購設置的滿額時,可以以加購價購買“加價購商品”。一般加價購商品的價格需要高于設置的加購價,因此選擇商品時,可對價格做監控,防止有商品價格過低。

5、套餐

  • 將幾件商品作為組合套餐一起銷售,用戶既可購買套餐,也能單獨購買其中商品
  • 設置內容包括:活動名稱、活動時間、套餐價格、活動商品。

注意:套餐價格不能超過套餐商品原價的總和。

6、預售

  • 用戶可預先支付定金,商品正式開售后,定金可抵售價(一般抵消價格大于定金)。
  • 設置內容:活動名稱、活動時間、預付定金比例、定金倍數、活動商品。

預售是現在主流電商平臺經常使用的促銷手段。預售促銷不僅可以用定金抵押來刺激用戶購買商品,同時還可以根據用戶的消費意愿,判斷商品的市場,以此來有效規避庫存積壓。

7、秒殺

  • 設置某段時間內,用戶可以極低價格搶購商品。
  • 設置內容:活動名稱、活動時間、活動商品、秒殺價格(秒殺商品的價格即可設置成統一的,也可設置成不同的價格)。

秒殺促銷通常作為引流利器,在某個秒殺時間段內吸引大量用戶前來搶購。

以上介紹的都是基礎的促銷方式,要讓促銷發揮其最大的優勢,需要運營人員結合實際業務情況、用戶需求進行設置。


電商系統 | 如何根據系統模塊來設計產品?(促銷體系篇)

系統化的產品經理逐漸在變得越來越重要,并不是以前單純的頁面和交互來做產品,而是通過功能一步步延伸到模塊,再從模塊趨變于系統的架構。

當系統化變得越來越重要時,我們就應該思考怎么從大方向來思考產品,如何搭建產品架構?

我們可以回想:整體系統的搭建尤其是以電商系統為藍本,產品肯定是要商業化,商業化就離不開電商變現,也就會涉及到電商管理系統。而現在電商后臺的體系成熟化、完整化,對我們去理解系統本身都有很強的參考意義。

然而,每次逛電商網站,總有一大堆促銷活動。加上現在移動端社交電商的崛起,拉新和促活就是變得尤為重要。可以說促銷活動的多樣化是日常運營的重要部分。

那么,其實我們在思考一下:為什么大家如此熱衷于促銷活動?

  1. 拉新:促銷活動可以帶來新用戶,尤其是用戶較少的新平臺、新店鋪,通過這種方式來吸引用戶。
  2. 去庫存:通過活動可以清理庫存,降低庫存占用成本。
  3. 擴大品牌知名度:結合廣告做促銷能夠擴大品牌知名度。
  4. 推新品爆品:很多商家大力做活動來推新品或者爆品,增加店鋪流量,同時也能給其他商品帶來曝光的機會。
  5. 針對于提高客單價,可以通過在優惠券、滿減滿贈等方案刺激下,用戶都會去湊單購買,同時針對于促銷手段的方式,也可以產生用戶自發的額外購買行為。

促銷的形態是基于已有商品管理的角度上針對于商品進行有關聯的促銷形態展示。商品中心的展示就變得尤為重要,對應的商品SKU、商品類目和商品價格(原價、促銷價)等有關商品的數據都需要有基礎展示。

促銷的方式有很多種,剛開始是把線下的促銷形式搬到了線上,比如:滿減促銷、贈品促銷、單品促銷、多買優惠促銷和定金促銷等。

而現在的促銷方式包含1元奪寶、秒殺活動、團購活動、拍賣活動、拼團等形態。接下來,就一一聊下這些形態的配置和展示形態。

一、批發方案

B端商品經常會有批發模式,前端的展示:

通過模型描述:(針對單一的SKU形成組合,單一商品SKU和批發商品形成的“多對多”關系)

則后臺怎么配置呢?

(1)批發商品列表(包含商品名稱、商家名稱、起訂量、是否啟用、產品審核狀態和操作“查看、編輯和刪除”)


(2)編輯和新增批發商品展示界面


字段1:批發商品名稱是從商品列表中去選擇。

字段2:批發商品分類是從商品分類中選擇。

后續的字段:顯示采購、價格模式(階梯價格)、最小起訂量、庫存和商品屬性都是和批發活動對應的字段。

由此,可以看出:“商品樣式——促銷類型——用戶關系信息”三者形成了促銷體系對應的內容。當然這個只是針對于單一的批發促銷方案,若為o2o商城,可以分為自營和商家對應促銷管理。

二、優惠券促銷

優惠券是電商產品中最常見的促銷方式,無論是產品在哪個階段都是最有效的促銷手段。優惠券的整體模型為:


優惠券的基本展示樣式:(當然這只是一種展示樣式)


則后臺的配置和設置:

(1)通用券(主要針對于商品面值和使用門檻,以及每人限領張數),若商家發放的 同樣可以添加指定商家等


(2)同樣購物券(場景主要是針對用戶購買商品后,給用戶返的優惠券)

主要增加了用戶獲取優惠券的門檻(購物滿XX元和允許參加的會員,允許參加的會員就需要和會員體系打通)

三、拼團活動促銷

拼多多是拼團活動的集大成者,規則是指定數量的人一起購買某商品,可以通過比較低廉的價格獲得此商品。

拼團的邏輯為:


前端的基本展示樣式為:


那后端的開團列表為:


編輯和新增拼單開團:


四、拍賣促銷

拍賣方式一直都有,只不過應用在商品中的樣式還是比較少的,這里稍微的介紹下:

前端展示樣式:


后臺需要創建拍賣列表:


對應的拍賣商品的編輯和新增:


當然這兒只列舉了這幾種優惠促銷的方案。還有很多種優惠促銷的方案,后面可以一起聊聊。

總結一下:

  1. 上面只是針對性的做頁面的設置和字段,以及前端的展示和業務邏輯。在進行促銷活動產品設計時,除了基礎的促銷活動設置管理,還應考慮促銷活動在前端頁面顯示的樣式,包括在活動聚合頁面、商品詳情頁、購物車、訂單頁中的顯示。此外還應該考慮活動商品在訂單結算時的計算規則,優惠分攤。
  2. 在前端顯示優惠信息時,不但應該展示清晰、提醒友好,還應能鏈接到同類活動的其他商品,刺激用戶的消費需求,引導湊單下單。應提供多樣化的促銷方式,避免單一促銷方式給用戶帶來的疲憊感。
  3. 對于產品經理來說,后續針對促銷后的解決方案比如退款的操作樣式和訂單的扭轉才是最重要的。畢竟,不能和主流程沖突。

代碼與數據庫下載:

?

相關表結構

優惠券表

用于存儲優惠券信息,需要注意的是優惠券的使用類型:0->全場通用;1->指定分類;2->指定商品,不同使用類型的優惠券使用范圍不一樣。

create table sms_coupon
(id                   bigint not null auto_increment, type int(1) comment '優惠卷類型;0->全場贈券;1->會員贈券;2->購物贈券;3->注冊贈券', name varchar(100) comment '名稱', platform int(1) comment '使用平臺:0->全部;1->移動;2->PC', count int comment '數量', amount decimal(10,2) comment '金額', per_limit int comment '每人限領張數', min_point decimal(10,2) comment '使用門檻;0表示無門檻', start_time datetime comment '開始使用時間', end_time datetime comment '結束使用時間', use_type int(1) comment '使用類型:0->全場通用;1->指定分類;2->指定商品', note varchar(200) comment '備注', publish_count int comment '發行數量', use_count int comment '已使用數量', receive_count int comment '領取數量', enable_time datetime comment '可以領取的日期', code varchar(64) comment '優惠碼', member_level int(1) comment '可領取的會員類型:0->無限制', primary key (id) ); 

優惠券歷史記錄表

用于存儲會員領取及使用優惠券的記錄,當會員領取到優惠券時,會產生一條優惠券的記錄,需要注意的是它的使用狀態:0->未使用;1->已使用;2->已過期。

create table sms_coupon_history
(id                   bigint not null auto_increment, coupon_id bigint comment '優惠券id', member_id bigint comment '會員id', order_id bigint comment '訂單id', coupon_code varchar(64) comment '優惠券碼', member_nickname varchar(64) comment '領取人昵稱', get_type int(1) comment '獲取類型:0->后臺贈送;1->主動獲取', create_time datetime comment '創建時間', use_status int(1) comment '使用狀態:0->未使用;1->已使用;2->已過期', use_time datetime comment '使用時間', order_sn varchar(100) comment '訂單號碼', primary key (id) ); 

優惠券和商品的關系表

用于存儲優惠券與商品的關系,當優惠券的使用類型為指定商品時,優惠券與商品需要建立關系。

create table sms_coupon_product_relation
(id                   bigint not null auto_increment, coupon_id bigint comment '優惠券id', product_id bigint comment '商品id', product_name varchar(500) comment '商品名稱', product_sn varchar(200) comment '商品條碼', primary key (id) ); 

優惠券和商品分類關系表

用于存儲優惠券與商品分類的關系,當優惠券的使用類型為指定分類時,優惠券與商品分類需要建立關系。

create table sms_coupon_product_category_relation
(id                   bigint not null auto_increment, coupon_id bigint comment '優惠券id', product_category_id bigint comment '商品分類id', product_category_name varchar(200) comment '商品分類名稱', parent_category_name varchar(200) comment '父分類名稱', primary key (id) ); 

管理端展現

優惠券列表

展示圖片

編輯優惠券

全場通用

展示圖片

指定商品

展示圖片

指定分類

展示圖片

查看優惠券

展示圖片

移動端展現

我的優惠券

未使用

展示圖片

已使用

展示圖片

已過期

展示圖片

優惠券詳情

? ? ? 代碼與數據庫下載,請進QQ群下載。(793305035)

轉載于:https://www.cnblogs.com/jurendage/p/11304927.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/247263.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247263.shtml
英文地址,請注明出處:http://en.pswp.cn/news/247263.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

react-router-dom v6.1.1 使用方式

v5版本例子代碼 import {BrowserRouter as Router, Switch, Route} from react-router-dom import App from /App import Home from /views/Home/Home import Fast from /views/Fast/Fast import User from /views/User/Userconst BaseRouter () > {return (<Router>…

VC 2010下安裝OpenCV2.4.4

說明&#xff1a; 安裝平臺&#xff1a;32位XP&#xff0c;VS2010&#xff1b;OpenCV 2.4.4不支持VC 6.0&#xff1b;網上有很多用CMake編譯OpenCV的安裝教程&#xff0c;這里建議先不要自己編譯&#xff0c;如果使用預編譯好的庫有問題&#xff0c;再嘗試自己編譯。希望大家好…

vue3源碼中的最長遞增子序列

求解最長遞增子序列是一道經典的算法題, 多數解法是使用動態規劃的思想&#xff0c;算法的時間復雜度是O(); 而Vue.js內部使用的是維基百科提供的一套“貪心二分查找”的算法; 貪心算法的時間復雜度是O(n)&#xff0c;二分查找的時間復雜度是O(logn)&#xff0c;總時間復雜度…

認識“數字圖像”

不同領域的人對圖像的概念有著不同的理解。從工程學角度上講&#xff0c;“圖”是物體透射或反射光的分布&#xff1b;“像”是人的視覺系統對圖的接收在大腦中形成的印象或認識。因此&#xff0c;圖像常與光照、視覺等概念聯系在一起&#xff0c;光的強弱、光的波長以及物體的…

Java編程基礎階段筆記 day04 Java基礎語法(下)

? 面向對象編程 筆記Notes 面向對象三條學習主線 面向過程 VS 面向對象 類和對象 創建對象例子 面向對象的內存分析 類的屬性&#xff1a;成員變量 成員變量 VS 局部變量 類的方法 方法的重載 可變個數形參 面向對象&#xff1a;封裝性 訪問權限修飾符 構造方法&…

漢諾塔遞歸算法

起源&#xff1a; 漢諾塔&#xff08;又稱河內塔&#xff09;問題是源于印度一個古老傳說的益智玩具。大梵天創造世界的時候做了三根金剛石柱子&#xff0c;在一根柱子上從下往上按照大小順序摞著64片黃金圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子…

Java編程基礎階段筆記 day 07 面向對象編程(上)

? 面向對象編程 筆記Notes 面向對象三條學習主線 面向過程 VS 面向對象 類和對象 創建對象例子 面向對象的內存分析 類的屬性&#xff1a;成員變量 成員變量 VS 局部變量 類的方法 方法的重載 可變個數形參 面向對象&#xff1a;封裝性 訪問權限修飾符 構造方法&…

談“發表(撰寫)學術論文的注意事項”

題記&#xff1a;做兩個核心學術期刊的“數字圖像處理”類審稿專家有一段時間了&#xff0c;在審稿過程中發現存在很多問題&#xff0c;所以在此就撰寫學術論文過程中的一些注意事項&#xff0c;跟大家交流一下&#xff08;當然&#xff0c;文中的很多觀點也是一些資深主編的看…

Vue/Angular中父窗口新開的子窗口關閉的時候刷新父窗口

最近遇到一個項目需求&#xff1a;Angular中父窗口新開的子窗口提交完信息關閉的時候刷新父窗口。 知識點&#xff1a; window.opener 概述 返回打開當前窗口的那個窗口的引用&#xff0c;例如&#xff1a;在window A中打開了window B&#xff0c;B.opener 返回 A. 語法 …

圖像邊緣特征

圖像邊緣是圖像的重要特征&#xff0c;是圖像中特性&#xff08;如像素灰度、紋理等&#xff09;分布的不連續處&#xff0c;圖像周圍特性有階躍變化或屋脊狀變化的那些像素集合。圖像的邊緣部分集中了圖像的大部分信息&#xff0c;一幅圖像的邊緣結構與特點往往是決定圖像特質…

HDU 6631 line symmetric(枚舉)

首先能想到的是至少有一對相鄰點或者中間間隔一個點的點對滿足軸對稱&#xff0c;那么接下來只需要枚舉剩下的點對是否滿足至多移動一個點可以滿足要求。 第一種情況&#xff0c;對于所有點對都滿足要求&#xff0c;那么Yes。 第二種情況&#xff0c;有一個點不滿足要求&#x…

學習數字圖像處理經驗談

一、面向應用&#xff1a;層層分解、抓住要點 我們學習數字圖像處理的最終目的還是應用&#xff0c;不管是用它來研制產品還是研發項目抑或是研究課題&#xff0c;都要用數字圖像處理的理論、方法和技術來解決實際問題。在此過程中&#xff0c;提高效率是非常重要的&#xff0c…

讀javascript百煉成仙笑死筆記一

“自然是這樣的&#xff0c;但是我現在這樣改一下&#xff0c;你說結果是多少呢&#xff1f;”葉小凡詭異地笑了笑&#xff0c;然后打出一段比較奇特的代碼。 var a 1; var b; var sum (b a --a) a-- b; “噗&#xff01;”看到這段代碼&#xff0c;對面弟子差點一口老血…

C#調用存儲過程的通用類

usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Data.SqlClient;usingSystem.Collections;usingSystem.Data;//摘要&#xff1a;數據訪問助手。//作者&#xff1a;ZhiQiao//日期&#xff1a;2008/07/02namespaceZhiQiao.DataAccessHelper{ //存…

圖靈獎得主(一)

本文轉自&#xff1a;http://bbs.gxnu.edu.cn/bbsanc.php?path%2Fgroups%2FGROUP_5%2FProgramming%2Fother%2FM.1029997222.A A.M. Turing Award ACMs most prestigious technical award is accompanied by a prize of $25,000. It is given to an individual selected fo…

react-router-dom@6獲取路由傳參

目錄 參數獲取 1、子路由形式攜帶 2、問號(?)形式參數 3、事件跳轉傳參 router/index.tsx import App from "App"; import Home from "pages/Home"; import List from "pages/List"; import Detail from "pages/Detail"; import…

圖靈獎得主(二)

本文轉自&#xff1a;http://bbs.gxnu.edu.cn/bbsanc.php?path%2Fgroups%2FGROUP_5%2FProgramming%2Fother%2FM.1029997222.A 1987年度的圖靈獎授予了IBM沃特森研究中心老資格的研究員 約翰科克(Johncocke)。 科克是從機械到數學、又從數學轉到 計算機方向上來的學者。…

jQuery效果之滑動

jQuery 滑動方法有三種&#xff1a;slideDown()、slideUp()、slideToggle()。 jQuery slideDown() 方法用于向下滑動元素&#xff0c; 語法&#xff1a;$(selector).slideDown(speed,callback); 可選的 speed 參數規定效果的時長。它可以取以下值&#xff1a;"slow"、…

Error: This command has to be run with superuser privileges (under the root user on most systems).

意思是錯誤&#xff1a;此命令必須以超級用戶權限&#xff08;在大多數系統上以root用戶權限&#xff09;運行。所以當前的用戶是普通用戶&#xff0c;需要切換為超級用戶&#xff08;root用戶&#xff09;先輸入在命令行中輸入 su root 然后會出現Password&#xff1a;&#…

圖靈獎得主(三)

本文轉自&#xff1a;本文轉自&#xff1a;http://bbs.gxnu.edu.cn/bbsanc.php?path%2Fgroups%2FGROUP_5%2FProgramming%2Fother%2FM.1029997222.A 繼1979年度圖靈獎首次授予一位加拿大學者K.E.Iverson之后&#xff0c; 1989年度的圖靈 獎又一次授予加拿大學者威廉凱亨(Willia…