PHP直播平台源码实现商城购物车

由于受疫情的影响,直播行业的发展也迎来了新变化,众多明星网红纷纷加入直播带货的行列,面对市场的变化,也要求直播行业随之改变,用的最多的当属商品的购物车功能了,下面我们就来分析下购物车的原理。

购物车的模块其实可以按照用户行为去将需求拆解,用户使用购物车可以分解成如下几个情况

1)添加购物车(与服务器同步)

2)查看购物车(服务器获取购物车列表并与本地同步)

3)修改购物车商品的购买数量(与服务器同步)

4)删除购物车(与服务器同步)

5)购物车商品提交订单(与服务器同步)

下面 我们分析下添加购物车功能:
需要的参数:用户id,商品的ID,商品购买数量,选择的商品规格

$res=DI()->notorm->shop_cart
                ->insert(
                    array(
                        'uid'=>$uid,
                        'goodsid'=>$goodsid,
                        'spec'=>$spec,
                        'spec_sign'=>$spec_str,
                        'shop_uid'=>$shop_uid,
                        'nums'=>$nums,
                        'addtime'=>time()
                    )
                );

这里需要注意的是商品的规格存储,最好已json字符串的形式存储,这样既简洁,同时数据解析时更加方便。

删除购物车,通过购物车的ID进行相关操作即可,这里要做好数据的验证。

购物车提交商品订单,这里就比较复杂了,涉及到选择收货地址,订单生成,商品付费等内容。
这里需要注意几点:收货地址的正确性,购物车中商品是否在售状态,商品的库存是否满足购买数量。

foreach ($coupon_arr as $k => $v) {

           $shop_uid=$v['shop_uid'];

           $shop_coupon[$v['shop_uid']]=[];
           $shop_coupon[$v['shop_uid']]['money']=0;
           $shop_coupon[$v['shop_uid']]['msg']='';

           

           //判断留言长度
           if(mb_strlen($v['msg'])>100){
                $msg_error=1;
                break;
           }

           $shop_coupon[$v['shop_uid']]['msg']=$v['msg']; //店铺的留言

           $shop_total=0;
           $shop_price_total=0;

           //根据店铺id 获取用户购物车记录的商品总价
           $list=DI()->notorm->shop_cart->where("id in ({$cart_str}) and uid=? and shop_uid=?",$uid,$shop_uid)->select("goodsid,nums")->fetchAll();

           foreach ($list as $k1 => $v1) {
               //获取商品信息
               $where=array('id'=>$v1['goodsid']);
               $goods_info=$model_shop->getGoods($where,'price,postage');

               $total=$goods_info['price']*$v1['nums'];
               $shop_total+=$total;
               $shop_price_total+=$total;
               $shop_total+=$goods_info['postage'];
           }

           $order_total+=$shop_total;

           if($coupon_info){
                if($shop_price_total<$coupon_info['satisfy_money']){
                    $coupon_notuse=1;
                    break;
                }

                $order_total-=$coupon_info['money'];
           }


        }

以上就是关于购物车的简单说明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值