電商系統促銷活動-計算可用的優惠券

背景:blog

1、電商促銷方案:get

一、滿減-指定專區商品it

     例如:300元減30元,500元減60元io

二、X件Y元-指定專區商品電商

     例如:A區2件398元,B區2件199元class

三、直降-指定商品import

四、限時特賣List

 

2、優惠券:權限

一、全場卷二進制

二、專場卷

三、指定商品卷

四、秒殺卷

 

分析:

假設:一個商品只能夠屬於一個促銷活動,即一個專區。

計算哪些優惠券是很煩的以一件事情,並且卷的金額還要均攤給能夠用卷的商品,退貨後會扣除相應的價格。

忽然發現和權限系統特別像:

A、購物車的每件商品=用戶,一個用戶能夠屬於一個角色(上面的假設)

B、優惠券就想時被受權的功能

C、功能能夠直接對用戶受權,也能夠直接對角色受權。

那咱們能夠用二進制表示

        // 專場 combination
        int c = 1;// ...00001
        // 商品 good
        int g = 2;// ...00010
        // 特賣 sale
        int s = 4;// ...00100
        // 秒殺 Seckill
        int k = 8;// ...01000
        //全場 all
        int a = 16;//...10000

 

購物車

G1:專場006
A1    
A2
A3
A4

G2:專場007
B1
B2
B3
B4

G3:未參加活動
C1
C2
C3



貨號 權限    價格    專題		類型
組   

A1  a|g 	199				0
A1  a|g 	199				
A2  a|g 	199
A3  a|g 	199
A4  a|g 	199
B1  a|g 	199
B2  a|g 	199
B3  a|g 	199
C1  a|g 	199
C2  a|g 	199
C3  a|g 	199		
G1  c 		799		6
G2  c 		699		4
G3  a 		399

  

        CouponSelect couponSelect=new CouponSelect();
        //個人優惠券列表
        List<Coupon> myCoupons=couponSelect.getMyCoupon();
        //個人購物車
        List<Good> cardGoods=couponSelect.getCartGoods();
        //可用卷
        List<Coupon> availableCoupons=new ArrayList<Coupon>();


        for (Coupon coupon:myCoupons){
            for (Good good:cardGoods){
                //優惠券類型
                int coupon_type= coupon.get_type();
                int good_auth=good.getAuthorized();
                //優惠券能用
                if ((good_auth & coupon_type)!=coupon_type){
                    //優惠券不能用
                    continue;
                }
                switch (coupon_type){
                    case 2: //商品卷
                        //貨號匹配  && 價格大於門檻
                        if (coupon.getItemNo().equals(good.getItemNo()) && coupon.getThreshold()<=good.getPrice())
                            availableCoupons.add(coupon);
                        break;
                }
                //指定全場卷驗證
            }
        }

  

 

從結構上來講分三個部分:限制條件,促銷範圍,促銷結果。而後從每一個維度上都有若干玩法,例如:

限制條件:時間,訂單金額,購買數量,購買人數,支付方式,收貨地址,運輸方式,用戶類型,積分等等
促銷範圍:單個商品,一組商品,品類,整單,以及例外品
促銷結果:折扣,扣減,返券,買搭,買贈等等

而後,把三個維度再作一下組合。。。有的玩呢~

還須要有一個促銷效果彙總的功能,用來記錄分析每個促銷活動的實際花費、帶來的銷售、毛利、轉化率等等。用於持續調整促銷活動的效果。

相關文章
相關標籤/搜索