Day18 订单 -- 优惠项目

前几天我们把购物车流程跑完了,其中有讲到优惠的部份,
因此我们订单需要新增table来储存该内容,这样查看订单的时候,
才能知道该笔符合什麽样的优惠,因此我们需要纪录当下的优惠情况,

一样上table结构

//订单优惠项目
Schema::create('order_discount_item', function (Blueprint $table) {
    $table->string('id', 30)->comment('项目id');
    $table->string('order_id', 30)->comment('订单id');
    $table->string('discount_id', 30)->comment('优惠id');
    $table->text('discount_data')->comment('成立当下的优惠资料');
    $table->integer('discount_name')->comment('优惠名称');
    $table->integer('discount_price')->comment('折扣金额');
    $table->primary(['id']);
});

可以看出来其实跟Day14 订单 -- 多项目结构提到的商品项目有点类似,
重点一样在於要纪录当下的优惠资料包含优惠名称以及要折扣多少钱,
并且将有可能会在列表出现的栏位独立出来,
例如一般订单页面需要显示名称跟折扣金额,
所以我们把discount_name跟discount_price独立出来,
而不是抓取discount_data里面的资料,这样我们在下sql语法的时候,
就可以避免抓取太多多余资料,

select discount_name, discount_price from `order_discount_item` where order_id =  '订单编号'

还有就是将discount_id额外纪录,用於优惠成果报表,
有时候会需要看到当初的总共有多少订单有该优惠,进而统计成效,
探讨优惠转化率之类的需求,所以有必要独立出来。


简易的优惠功能就到这边了,明天我们会把整个购物车以及订单的流程跑一遍,
然後就准备跟线上金流整合。


<<:  [Day24] Flutter - Application Login (part8)

>>:  Re: 新手让网页 act 起来: Day09 - 简单却不是很容易懂的 key(2)

android studio 30天学习笔记-day 13-介绍databinding BindingAdapter

BindingAdapter可以做一些自定义的属性,解决一些databinding在属性上的问题。 ...

Day-23 Toast

本篇的主角是Toast, 但这边的Toast并非吐司的意思, 而是显示讯息, 常用於提示或警示使用者...

冒险村03 - Travis CI cookbook

03 - Travis CI cookbook 既然都处理好 linter 来检测我们的专案是否有符...

[day18] 追踪 & 封锁事件处理

当获得一个新会员,会希望使用者能够了解如何使用系统,会提供使用者一份指引如何使用,同时也希望使用者尽...

[Day11] [笔记]React Hooks - UseRef

UseRef useRef 会回传一个 mutable 的 ref object,.current ...