4.5. 下单逻辑
下单逻辑
由于众筹商品的特殊性,众筹商品无法与像普通商品那样加入购物车后再统一下单,有如下几个原因:
- 众筹商品只有众筹成功之后才可以发货;
- 众筹订单不支持用户主动申请退款;
- 众筹商品不允许使用优惠券购买;
- 众筹失败的情况下会退款,如果众筹商品和普通商品混合在一起,处理退款时就需要部分退款,可能需要引入额外的表来记录相关信息。
因此在实现众筹商品下单时通常会跳过购物车这一步,直接创建一个只有一个商品的订单。
1. 创建 Request 类
与普通商品下单类似,我们需要创建一个众筹商品下单的请求类,用于校验用户输入是否正确:
$ php artisan make:request CrowdFundingOrderRequest
app/Http/Requests/CrowdFundingOrderRequest.php
<?php
namespace App\Http\Requests;
use App\Models\CrowdfundingProduct;
use App\Models\Product;
use App\Models\ProductSku;
use Illuminate\Validation\Rule;
class CrowdFundingOrderRequest extends Request
{
pu...