唯品会电商销售复盘分析

本文通过对唯品会电商销售数据的详细分析,包括销售额、转化率、售卖比、库存管理和价格区间等多个维度,提出针对商品结构的优化方案。重点关注价格区间和折扣区间对商品销售的影响,通过ABC分析法确定保留、优化和清仓的商品策略。
摘要由CSDN通过智能技术生成

什么是特卖:

    唯品会是一个专门做特卖的网站,什么是特卖呢。特卖一般是指在特定的时间段里,以优惠的价格出售指定的商品,一般以商城或者专卖店为多。该模式在线下早已存在(比如商场促销、街边的尾货甩卖),在国外成熟的大商场内也有针对滞销商品的打折特卖,如奥特莱斯。特卖一般是商家清库存,不过也有一些专门生产商品做特卖的商家。

    特卖行业也是有个真实存在的产业链,只是因为快速分销渠道,地理位置等关系,大多数都集中在一线城市,部分生活在一线城市的都基本或多或少去过几次各个品牌的特卖仓,但是二三线甚至四五线城市的就比较难接触到,后来就有一群人成了品牌搬运工,和各大品牌联系通过微信等渠道快速分销大牌库存,达到快速低价消除库存,加快周转回笼资金等目的。

    在货源上,由于品牌尾货具备天然的清仓需求,是折扣零售最常见的货源,但实际上,只要成本足够低,新品首发、定制包销、自有品牌均可以成为折扣特卖零售的可持续货源。成立初期,唯品会货源以尾货为主,但随着唯品会在电商领域的不断发展,新品和专供品的占比不断提升,早在 2016 年 Q2 分析中,唯品会当季新品和平台特供品就已经占 37%了。

此次分析的目标:

评估促销活动的结果,并根据情况优化商品结构,以便让自己的商品卖的更好。

分析流程

  • 总体运营指标
  • 在价格区间中找到表现不佳的商品,优化商品结构
  • 在折扣区间中找到表现不佳的商品,优化商品结构
import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings('ignore')
## 1.读取数据表
import sqlalchemy
# 变量
engine=sqlalchemy.create_engine('mysql+pymysql://xxx:xxx@localhost:3306/froghd')
sql_cmd = 'select * from sales_info1'
# 读取
dt1 = pd.read_sql(sql=sql_cmd,con=engine)
dt1.head()
商品名 售卖价 吊牌价 折扣率 库存量 货值 成本价 利润率 SKU
0 A001 15 70 0.214286 501 35070 14 0.066667 2
1 A002 236 610 0.386885 423 258030 75 0.682203 1
2 A003 473 1253 0.377494 415 519995 394 0.167019 1
3 A004 320 835 0.383234 624 521040 279 0.128125 2
4 A005 15 82 0.182927 179 14678 27 -0.800000 1
# 修改列名
dt1.rename(columns={
   "sale_name":"商品名",
                    "sale_price":"售卖价",
                    "tag_price":"吊牌价",
                    "discout":"折扣率",
                    "stocks":"库存量",
                    "stocks_value":"货值",
                    "cost_price":"成本价",
                    "profit_rate":"利润率",
                    "skus":"SKU"},
          inplace=True)
sql_cmd = 'select * from sales_info2'

dt2 = pd.read_sql(sql=sql_cmd, con=engine)
dt2.head()
sale_name uvs collections carts
0 A001 10926 48 372
1 A002 13124 84 193
2 A003 25657 45 173
3 A004 20833 5 273
4 A005 19371 71 356
dt2.rename(columns={
   "sale_name":"商品名",
                    "uvs":"UV数",
                    "collections":"收藏数",
                    "carts":"加购物车数"},
            inplace= True)
dt2.head()
商品名 UV数 收藏数 加购物车数
0 A001 10926 48 372
1 A002 13124 84 193
2 A003 25657 45 173
3 A004 20833 5 273
4 A005 19371 71 356
sql_cmd = 'select * from sales_info3'
dt3 = pd.read_sql(sql=sql_cmd, con=engine)

dt3.head()
user_id buy_date sale_name buy_cons buy_price cost_price is_tui tui_cons tui_price
0 1 20191111 F001 1 920.0 920.0 1 920.0
1 2 20191111 B007 2 548.0 1096.0 0 0.0
2 2 20191111 E007 1 930.0 930.0 1 930.0
3 3 20191111 A004 2 320.0 640.0 2 640.0
4 3 20191111 H007 2 750.0 1500.0 0 0.0
dt3.rename(columns={
   "user_id":"用户id",
                    "buy_date":"购买日期",
                    "sale_name":"商品名",
                    "buy_cons":"购买数量",
                    "buy_price":"购买单价",
                    "cost_price":"购买金额",
                    "is_tui":"是否退货",
                    "tui_cons":"退货件数",
                    "tui_price":"退货金额"},
          inplace=True)
# 把是否用0,1代替

dt3["是否退货"] = dt3["是否退货"].map({
   "是":1,"否":0})
dt3
用户id 购买日期 商品名 购买数量 购买单价 购买金额 是否退货 退货件数 退货金额
0 1 20191111 F001 1 920.0 920.0 1 1 920.0
1 2 20191111 B007 2 548.0 1096.0 0 0 0.0
2 2 20191111 E007 1 930.0 930.0 1 1 930.0
3 3 20191111 A004 2 320.0 640.0 1 2 640.0
4 3 20191111 H007 2 750.0 1500.0 0 0 0.0
... ... ... ... ... ... ... ... ... ...
8031 2505 20191111 E001 2 144.0 288.0 1 2 288.0
8032 2506 20191111 B001 2 426.0 852.0 0 0 0.0
8033 2507 20191111 B004 2 491.0 982.0 0 0 0.0
8034 2508 20191111 H006 2 710.0 1420.0 1 2 1420.0
8035 2509 20191111 A001 1 15.0 15.0 1 1 15.0

8036 rows × 9 columns

合并商品信息表和商品热度表数据

product_sales = dt3.groupby("商品名").agg({
   "购买数量":"sum",
                                       "购买金额":"sum",
                                       "退货件数":"sum",
                                       "退货金额":"sum",
                                       "用户id":pd.Series.nunique}).reset_index() # 购买的统计用户数
product_sales.head()
商品名 购买数量 购买金额 退货件数 退货金额 用户id
0 A001 185 2775.0 59 885.0 116
1 A002 146 34456.0 31 7316.0 87
2 A003 144 68112.0 31 14663.0 94
3 A004 172 55040.0 56 17920.0 111
4 A005 122 1830.0 32 480.0 81
product_sales.rename(columns={
   "购买数量":"商品销售数量",
                              "购买金额":"商品销售金额",
                              "是否退货":"商品退货数量",
                              "退货金额":"商品退货金额",
                              "购买单价":"商品销售单价",
                              "用户id":"购买用户数量"},inplace=True) 
product_sales.head()
商品名 商品销售数量 商品销售金额 退货件数 商品退货金额 购买用户数量
0 A001 185 2775.0 59 885.0 116
1 A002 146 34456.0 31 7316.0 87
2 A003 144 68112.0 31 14663.0 94
3 A004 172 55040.0 56 17920.0 111
4 A005 122 1830.0 32 480.0 81

合并商品信息

# 商品信息和销售热度合并
dt_product = dt1.merge(dt2,how='left',on="商品名")

dt_product.head()
商品名 售卖价 吊牌价 折扣率 库存量 货值 成本价 利润率 SKU UV数 收藏数 加购物车数
0 A001 15 70 0.214286 501 35070 14 0.066667 2 10926 48 372
1 A002 236 610 0.386885 423 258030 75 0.682203 1 13124 84 193
2 A003 473 1253 0.377494 415 519995 394 0.167019 1 25657 45 173
3 A004 320 835 0.383234 624 521040 279 0.128125 2 20833 5 273
4 A005 15 82 0.182927 179 14678 27 -0.800000 1 19371 71 356
# 商品信息、销售热度以及用户销售明细
dt_product_sales = dt_product.merge(product_sales,how="left",on="商品名")
dt_product_sales.head()
商品名 售卖价 吊牌价 折扣率 库存量 货值 成本价 利润率 SKU UV数 收藏数 加购物车数 商品销售数量 商品销售金额 退货件数 商品退货金额 购买用户数量
0 A001 15 70 0.214286 501 35070 14 0.066667 2 10926 48 372 185 2775.0 59 885.0 116
1 A002 236 610 0.386885 423 258030 75 0.682203 1 13124 84 193 146 34456.0 31 7316.0 87
2 A003 473 1253 0.377494 415 519995 394 0.167019 1 25657 45 173 144 68112.0 31 14663.0 94
3 A004 320 835 0.383234 624 521040 279 0.128125 2 20833 5 273 172 55040.0 56 17920.0 111
4 A005 15 82 0.182927 179 14678 27 -0.800000 1 19371 71 356 122 1830.0 32 480.0 81

一、总体运营情况评价

  • 总体运营部分,主要关注销售额售卖比UV转化率等指标,其他指标作为辅助指标。

  • 销售额用来和预期目标做对比,售卖比用来看商品流转情况。

  • GMV:销售额,在唯品会里称为到手价。

  • 实销:GMV – 拒退金额。

  • 销量:累计销售量(含拒退)。

  • 客单价:GMV / 客户数,客单价与毛利率息息相关,一般客单价越高,毛利率越高。

  • UV:商品所在页面的独立访问数。

  • 转化率:客户数 / UV。

  • 折扣率:GMV / 吊牌总额(吊牌总额 = 吊牌价 * 销量),在日常工作中,吊牌额是必不可少的。

  • 备货值:吊牌价 * 库存数。

  • 售卖比:又称售罄率,GMV / 备货值。

  • 收藏数:收藏某款商品的用户数量。

  • 加购数:加购物车人数。

  • SKU数:促销活动中的SKU计数(一般指货号)。

  • SPU数:促销活动中的SPU计数(一般指款号)。

  • 拒退量:拒收和退货的总数量。

  • 拒退额:拒收和退货的总金额。

GMV

gmv = dt_product_sales["商品销售金额"].sum()
gmv
3747167.0

实际销售=GMV-退货金额

return_sales = dt_product_sales["商品退货金额"].sum()
return_money = gmv - return_sales
return_money
2607587.0

销量(包括退货)

all_sales 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值