1.1. 2.5 购物网
@data7 购物网: https://xiaochu.ga/Content/syllabus_3yMKyR.html 一对多:5-3、8-1、8-2
1.1.1. 2.5.1 需求
1、身为商家,我要能够登入后台
- 整个商店网站分为两种权限:admin (商家=管理者) / user (消费者)
 - 商家可以登入 /admin 后台
 
2、身为商家,我要能够登入后台上架商品
- 后台上架网址必须要是 /admin/products
 - 商品的内容分为商品名称、描述、价格、库存
 - 商品要能够设定是否能上架贩卖
 - 商品必须要有商品图片
 
3、身为消费者,我要在前台找到商品并付款
- 商品展示
 - 加入购物车
 - 生成订单,填写地址并付款
 - 付款后发送确认信
 - 商家也收到付款的订单
 - 库存商品数量随之减少
 
3.1)购物车
- 加入购物车
 - 一键清空购物车内所有的物品
 - 某样东西突然不想买了,我可以在购物车内删除它
 - 已经加入购物车的物品,不能重复被加入
 - 可以更改购物车内购买的数量( 原本预设数量都是1)
 - 库存为 0 的货品不能购买
 - 在购物车新增数量时,不能更新超过原有库存的数量
 
3.2)订单
- 按下「确认结帐」按钮后,可以显示结帐明细,并且可以让消费者输入寄送地址
 - 有时候商品会下架,或者价格会改变,新建立一个 model 去储存当时购买的信息
 - 把网址订单号码改成乱序编码
 - 使用者可以在 /account/orders/ 看到过去所有订单
 - 使用者在下拉式选单可以看到过去所有的订单
 
3.3)支付订单与寄信
- 使用 is_paid(boolean 属性)判断是否已付费
 - 使用 payment_method 判断,实际付款渠道为:微信、支付宝
 - 已付款过的订单不可以再付
 - 使用者在下单后会收到一封订单确认信
 
3.4)订单状态切换
- 建立 admin/orders 可以看到系统内所有订单
 - admin 的 order 列表应要能显示订单状态
 - 使用者可以“申请取消订单”
 - 使用者“申请取消订单”后,管理员应该要收到“申请通知信”
 - 后台管理员可以“取消订单”、“出货”
 - 后台管理“出货”后,系统应该寄出通知信
 - 后台管理员“取消订单”后,系统应该寄出通知信