当前位置: 首页 > 科技观察

从拼多多事件看电商的推广模式

时间:2023-03-13 04:08:47 科技观察

近日,电商圈发生了一件大事,拼多多再次引起了大家的关注。2019年1月20日,拼多多出现大量羊毛虫。起因是一张无门槛的优惠券,面值100元,全站可使用(特价商品除外),有效期一年。如果仅从业务角度分析,定义这样的优惠券本身是没有问题的。当然,也有人说,这样的无门槛券本身不应该用于消费充值、Q币充值等几乎等同于现金业务的产品。这是从推广层面考虑的问题。也有人提到了风险控制的问题。为什么等到损失200亿(拼多多后来解释说这些优惠券涉及几千万)才发现问题?甚至有人质疑这是别出心裁的炒作。从羊毛的角度来看这个bug,好像是因为可以使用无门槛券导致的。从本质上讲,这确实是一个错误。我不明白这样的错误是如何产生的。是测试不到位,还是coupon本身是内测数据不慎放到生产环境?正好,最近在考虑如何在电商系统中利用分析模型建立促销模型,是一个适时的工作。分析模式细化模型在领域驱动设计中,通过统一语言和“名动法”的结合,可以快速得到初步的分析模型。但是,这种方法得到的模型的质量受到语言描述的书写技巧的限制。统一语言的描述更多体现在对现实世界模型的描述上。它缺乏深入准确的分析和统一的抽象,使我们很难找到统一语言背后的一些重要概念。总之,由此获得的分析模型需要进一步完善。在对相同或相似的领域进行建模和分析时,必须有规律可循。例如,两者都是电子商务系统,它们的领域模型一定有相似之处;如果它们都是金融系统,那么它们自然必须遵循通用会计准则。这不是使用行业术语那么简单,而是结合领域专家的知识,将这些相同或相似的模型抽象出来,形成一个可以被引用和重用的概念模型。这是MartinFowler提出的分析模型。福勒认为:“分析模式是反映业务建模中通用结构的一组概念,它可以只与特定领域相关,也可以跨越多个领域。”由于分析模式独立于软件技术,这使得领域专家能够理解这些模式,这是分析建模过程中的关键点。每个行业都可以定义自己的分析模型,当然我们也可以参考一些别人总结出来的分析模型。例如MartinFowler的书《分析模式》中,模型涵盖的领域包括组织结构、单位数量、财务模型、库存和会计、计划和合同(期权、期货、产品和交易)。EricEvans认为,使用这些分析模式,“你可以避免一些代价高昂的试验和失败过程,直接从一个已经表达良好且易于实现的模型开始工作,并解决一些可能难以学习的细微问题。我们它可以从这样的起点进行重构和试验。”要得到这样的分析模型,需要专门的领域专家和软件设计人员共同完成。可惜的是,沟通和知识的障碍让如此重要的分析变得困难。MartinFowler写了《分析模式》希望降低难度通过引入更多的模型来建模,至少可以实现一定程度的模型重用。但是,分析模式与领域知识密切相关,这限制了分析模式的通用性;但这并不意味着分析模式不重要。驱动设计特别强调领域建模,对于那些生命周期很长的产品,绝对值得为产品的核心领域建立一套分析模型,因为它是分析阶段的重要资产,其稳定性和扩展能力可能直接影响领域模型中的设计模型和实现模型案例:促销策略分析模式促销(Promotion)是一种操作方法,目的是通过这种方法刺激对各种信息的消费,并将信息传递给一个或多个目标对象,以影响他们的态度和行为。提高转化率。为了刺激消费,无论是线上还是线下,商家总会绞尽脑汁提供各种促销方式,这就带来了促销策略的复杂性;但是,从消费心理来看,刺激消费,简单有效的方式就是让消费者认为自己花的钱少了,但买了更多的商品,这就带来了促销策略的雷同。从某种意义上说,拼多多的这次促销极大地“激发”了消费者的积极性!一、促销策略的业务背景在电子商务系统中,促销的管理主要涉及促销活动的管理和促销规则的管理。同时,促销也会影响订单、库存、物流和支付。如果我们把推广作为一个核心领域,那么在为它建立分析模型时,应该以推广领域为主导。2、促销活动促销活动实际上是促销活动的基础属性管理,负责提供活动方式和商品内容,主要包括:商品选择:参与促销的商品分为活动商品和赠品两种;参与品种促销,如图书促销。发货时间选择:即促销的有效期。配送区域选择:针对所有平台或部分平台(自营或指定门店),或仅针对APP平台用户类型:针对新注册用户、VIP用户等。3.促销规则促销规则是促销管理的核心.一个促销制度的好坏,取决于促销规则的设计是否合理。设计不仅要考虑产品的促销,还要考虑店铺的利润,以及滞销产品和畅销产品的区别。因此,促销规则的制定非常重要。灵活,具有不同的范围和促销力度。总的来说,我们可以从平台、产品数量、促销方式三个维度来理解促销规则的制定:(1)平台维度:促销规则可??分为自营促销和POP平台促销。(2)商品总数维度:从商品的角度看促销,促销分为单品促销、集体促销、门店促销:单品促销:以单品为促销对象的促销维度称为单品促销,比如限时抢购。集体促销:通过集合商品进行符合促销规则的促销称为集体促销,如满减。店铺级促销:基于商家店铺的促销活动称为店铺级促销,如店铺级满减。(3)促销方式维度:直享优惠品类:限时抢购、直享优惠、越买越优惠、专享VIP价、专享手机价等赠品:满购换购:加价购、满购categories:全额折扣,Coupon类别如全额折扣:全额返利券组合折扣类别:套餐预订类别:团购配置促销规则时,还需要考虑规则的优先级,这会直接影响到促销活动的共享与互斥。比如我们可以按照一定的优先级来完成用户的优惠享受。享受单品促销的,不能参加集体促销。全额折扣的优先级高于代金券;这是一种相互排斥的情况。促销活动也可以共享,比如全额促销可以和全额免运费一起使用。推广领域的分析建模我们在对推广领域进行分析建模的时候,首先需要明确该领域的核心概念,然后分析这些概念在该领域的业务意义。根据前面介绍的业务背景,我们知道促销领域的核心概念包括促销活动和促销规则。在管理促销活动时,您需要指定促销规则,这会在两者之间建立关联。从表面上看,促销规则是通过促销活动来配置的,前者为主,后者为辅;但对于推广来说,其实就是把活动和规则结合起来,形成一个推广产品(PromotionProduct)。这种促销产品可以是“优惠券”或“礼品卡”的形式,也可以提供“折扣”或“免费送货”。模型概念“促销产品”的获取实际上是关系建模在分析建模过程中的体现。在现实世界中,各种概念之间总是存在着各种错综复杂的关系。比如在学校里,师生之间有师生关系,院长和老师之间有科研关系,研究生之间有关系。一旦关系变得越来越复杂,仅仅通过反映对象之间的委托关系来体现组合的表现力就会变差。这时,“关系”就可以细化为一个明确的概念。建模原则:如果某个类型有多个相似的关联,可以为这些关联对象定义一个新的类型,建立一个知识级类型来区分它们。上述促销活动与促销规则在业务上存在一定的重叠。比如平台维度的促销规则,其实对应的就是促销活动中投放平台或者区域的选择。商品总数维度的促销规则与促销活动中适用商品(品种)的选择配置有重叠。这是因为我们扩大了所谓“规则”的外延。规则不是计划,更不是策略,而是具体的约束规则,可以判断是否满足条件,例如:购买指定图书满100元减20元,满200元减40元,2018年12月12日起生效。以上描述不是促销规则,而是完整的促销。本次促销活动的促销商品为“优惠券(Coupon)”,优惠券类型为现金券(如描述为满减则为优惠券)。描述“指定图书”属于促销活动适用商品(类目)的配置,描述“2018年12月12日有效”为促销的有效期属性。唯一所谓的规则就是描述“满100元减20元,满200元减40元”。该规则还包括金额阈值的两个条件(Creteria)。面对这种场景,我们可以在分析模型中引入“规范模式”。规范模式由MartinFowler和EricEvans提出。他们对规范模式的描述如下:问题:选择(Selection):需要根据一定的条件选择对象的子集(Creteria),其选择验证需要多次刷新(Validation):有必要根据确定的目标,获得符合条件的合适对象。按顺序构造:需要描述对象应该做什么,而不解释对象执行的细节,这样才能构造出满足要求的候选对象。解决方法:创建一个规范(Specification)对象,它可以区分候选对象是否满足一定的条件。规范对象定义方法isSatisfiedBy(anObject),如果满足anObject的所有条件,则返回true。结果:分离需求设计、实现和验证提供清晰的声明性系统定义规范对象可以是单一的或复合的。一个促销规则可??以包含多个规格,对于规格,在促销场景中可以分为以下几类:金额(Amount)阈值规格:比如满200元减40元,或者买满10折200元。数量(Count)阈值规范:比如2件10折,或者限购结合业务分析和模型分析,我们可以得到如下分析模型:在分析促销品的时候,我们发现模型中的概念并不是在同一抽象层次上,并且它们之间存在混合关系。例如,可以单独为促销活动提供折扣(Discount)或现金积分(Reward),也可以与优惠券(Coupon)捆绑;礼品卡(GiftCard)和优惠券都可以提供赠品或免费送货。显然,打折、返现、赠品、免运费等概念都不是促销品,而是促销品的一种,是促销品的一种属性。例如,优惠券的促销产品类型为折扣,则为折扣券,如果为现金,则为代金券。这时,促销产品实际上就是这些产品类型的载体。在电子商务系统的促销策略中,打折、返现等促销方式不一定需要以优惠券或礼品卡的形式呈现,但实际上可以作为促销产品单独使用。但在建模过程中,我们不允许概念层面的混淆,因为要避免领域概念的歧义。例如,对于折扣(Discount),必须明确区分是促销品还是促销类型。由于概念层次不在同一抽象层次,我们需要为这些概念建立一个抽象层。这种抽象与优惠券和礼品卡处于同一抽象级别。这个抽象的促销产品概念是“特别优惠”。因此,可以将之前建立的模型改进为:建模原则:保证分析模型中的概念遵循单一抽象层次的原则。知识层和操作层当模型越来越复杂时,《分析模式》引入了操作层和知识层两个层次来组织模型中的概念。操作级模型记录每天发生在现场的事件;知识层模型定义了操作层对象的合法配置,记录了控制该结构的各种通用规则。知识层面和操作层面并没有明显的区别,但MartinFowler认为“将两者(知识层面和操作层面)分开有助于理清建模思路”。为此,我们需要明确两者的区别。在一书中,MartinFowler介绍了英国国家医疗服务系统的Cosmos项目作为分析模型的例子。这个模型的推导过程清楚地展示了这两个层次的引入是如何让模型更加清晰的。Cosmos作为医疗保健系统,需要对制药行业的测量和观察需求进行建模。简单来说,每个患者的测量值都可以建模为一个“测量值”。然而,对于整个医院,即使是单个患者也可能有数千种可能的测量值。如果为每一个测量都定义一个对应的属性,就意味着对一个患者可能有数千种测量操作——测量界面将变得异常复杂。分析模型的解决方法是把所有不同的可以测量的东西(身高、体重、血糖水平……)都作为测量对象,抽象成“现象类型”。这里,测量属于操作层面,现象类型属于知识层面:引入测量的现象类型后,患者可以有多种测量,但对于某一现象类型,患者只有一种测量。例如,约翰史密斯身高1.75米。在上面的模型中,描述信息代表了一个度量。患者为JohnSmith,现象类型为身高,数量为1.75米。那么为什么现象类型属于知识层面而测量属于操作层面呢?《分析模式》给出了一个建模原则:“操作层面的对象会经常变化,它们的配置受限于很少变化的知识层面。”这是从变化的角度来区分的。操作层面的“测量”可以定义为多种测量,但知识层面的“现象类型”可以是详尽无遗的。因此,这里所说的“变化”确实不是表示类型的变化,而是表示对象值的变化。领域概念中有一些定性的描述,比如医学观察模型中的A型血现象,汽车分类观察中的燃油不足现象模型。建立和消亡,像这样的定性描述放在知识层面,可以按规则使用。这与领域概念的本质区别开来。回到电子商务的推广策略模型system,promotion可以有多种定义方式,但是promotionproducts和promotiontypes在promotion领域可以面面俱到,所以promotion应该在operat定义离子层,促销产品和促销类型属于知识层。当然,每一个等级内的属性,自然都会归入各自的等级。就像数量之于衡量一样,在促销策略模型中,有效期是促销的一个属性,所以有效期也属于运营层面的概念。促销属于操作层面,因为它类似于案例中的测量概念。对于某类促销,一次促销只有一次促销。为了应对操作层对象(促销活动)的变化,我们引入了知识层促销活动类型(ActivityType)的概念。从领域概念的性质来看,促销类型是折扣(Discount)是定性描述,优惠券类型是现金券也是定性描述,所以促销类型和优惠券类型属于知识层面。那么,“满200减40元”的促销说明是定性描述吗?-不。虽然这样的规范一旦定义,确实是不变的事实,但它是附加在推广规则上的。一旦推广规则失效或被删除,该等规范将失去存在的意义。因此,推广规则和规范应该属于运营层面的概念。每个促销都有自己的类别(Label),是对促销的定性描述,属于运营级对象。在计算促销优惠时,不同品类的产品会分开计算,同一品类的产品可以兼容,相当于小计。对于促销,如果我们把一个具体的促销实例看成一个实体,在计算促销折扣时,同一实体的促销是互斥的,不同实体的促销可以叠加组合,也可以优先考虑。此优先级是促销的属性。优先级可以在配置推广策略时预先配置,也可以由买家指定。例如,买家在购买一件商品时,叠加了多个促销活动,买家可以根据具体的购买情况选择最合适的促销活动,此时用户指定的优先级高于预先配置的优先级。与优先级属性一样,我们还需要为“促销”概念引入一个“状态”属性,比如将促销对象的状态标记为“未使用”、“已使用”和“已过期”。同一个优惠不能被用户多次使用,或者需要给出有效期。其中,“used”和“expired”均表示促销实例的无效状态。显然,这个“状态”属性应该属于知识类。再以拼多多为例,刚才提到的优惠券BUG是促销的“status”属性在使用后无法设置为“used”状态;state”属性,只有在“未使用”状态下才有效可用。因此,我们在分析模型中引入建模原理和模式,可以得到如下分析模型:对于分析模型的验证,我们可以结合实际业务场景验证得到的促销分析模型,以京东商城为例,如下图:以元旦折扣品类为例,Promotion为“跨店满减”,促销的活动类型(ActivityType)包括适用门店(取值为“跨店”)和适用品种(取值为“toys")。促销产品(PromotionProduct)为SpecialOffer,促销产品类型(ProductType)为全额折扣(Reward),规则(Rule)为金额阈值规则,规格(Specification)为满99.00元优惠。图中两款玩具属于同一个促销品类,所以在计算全额折扣时,两款产品可以叠加。对应的分析模型为:再来看另一个促销场景:上图所示的促销场景包含多种促销,其促销品类(Lebel)均为京东自营。因此,在计算折扣时,可以将这些产品进行叠加。这里包含的促销实体包括:活动类型(ActivityType)适用店铺为京东自营,促销商品为优惠券(Coupon),促销商品类型为满减(Reward),优惠规则为金额门槛,规格为49减6、20减158、30减258、50减388等。活动类型(ActivityType)适用店铺为京东自营店,适用商品为自营商品晨光指定商品,促销商品为优惠券(Coupon),促销商品类型为Reward,折扣规则为金额门槛,规格为满98减10。活动类型(ActivityType)适用店铺为京东自营,促销商品为特惠(SpecialOffer),促销商品类型为包邮(FreeShipping),优惠规则为金额门槛,规格为99。活动类型适用店铺(空调tivityType)为京东自营店,促销商品为特惠,促销商品类型为Trade-in,优惠规则为金额门槛,规格满30。在促销模式中,这些促销实体正在一一促销。在实施时,它们体现为多个促销实例。这些促销实例可以通过促销活动的“适用商品”活动类型应用于同一商品,形成本次促销优惠叠加。目前的推广模式考虑并不全面。一方面,要看它适用于什么样的电商应用场景。例如,淘宝和京东有不同的推广策略。有的电商只支持虚拟商品,相关推广领域逻辑不同。另一方面,模型本身并没有考虑如何结合订单金额、支付和退货的计算。总之,业务契约复杂,模型也相应复杂,但同时我们要学会用抽象来简化模型,或者在模型表达中用不同的视图表达不同的概念,从而使模型尽可能简洁明了。直观而不会遗漏关键领域概念。【本文为专栏作家“张艺”原创稿件,转载请联系原作者】点此阅读更多该作者好文