商城技术重点分析
1、分类和商品列出
a、分类递归列出,只有叶子节点下拥有商品
b、分类的递归删除,
c、递归获取分类下面的商品
2、购物车
a、ecmall 使用了session key 作为标志,使用了数据库表来记录当前购物车,定期清除即可
b、购物车应该有 增加、删除、清空、更新、查出数据
3、订单入库
a、购物车分开处理付款、生成订单,一个购物车中的数据,生成一个订单即可、
empty($item['goods_image']) && $item['goods_image'] = Conf::get('default_goods_image');
一个很赞的短路运算、
订单入库需要做几个东西、
算乏为:
1、从购物车获取商品,
2、获取商品的信息,检查库存,需要使用数据库锁机制
3、判断商品信息
4、处理优惠券,重新计算价格
5、获取收货地址
6、储存收获地址
7、清理购物车
8、发送订单信息 到卖家 买家
9、更新统计数据
10、开始付款
4、跳转到付款界面
1选择支付方式
2、判断支付方式的状态
支付部分细节:
a、支付需要传入 $call_back_url, $notify_url, $merchant_url
b、需要一个支付表,一个支付日志表,
c、需要传入三个url 1、成功通知地址 2、异步通知 3、产品购买来源地址 另外需要一个时间
d、记录1小时为超期,判断是否超期
e、// 是否存在支付记录,不能重复支付
f、创建支付记录,计算支付价格等相关信息
g、
3、跳转到支付接口
4、写入日志
5、回调