致力于提供有竞争力的软件解决方案和服务,德尚网络欢迎您!
DSKMS演示
DSKMS(内容付费系统)演示地址及账号
DSKMS交流群:DSCMS开源官方群2
演示角色 演示地址 账号 密码
后台PC端 http://dskms.csdeshang.com/admin/ admin admin888
用户PC端 http://dskms.csdeshang.com/ buyer 123456
机构PC端 http://dskms.csdeshang.com/home/sellerlogin/login.html seller 123456
用户手机端 http://m.dskms.csdeshang.com/home/memberlogin buyer 123456
机构手机端 http://m.dskms.csdeshang.com/home/sellerlogin seller 123456
DSKMS(内容付费系统)移动端二维码演示地址
  • 用户手机端

  • 机构手机端

  • 微信小程序

DSShop演示
DSShop(单店铺系统)相关演示地址及账号
DSShop交流群:DSShop单店铺商城官方群
演示角色 演示地址 账号 密码
后台PC端 http://dsshop.csdeshang.com/admin/ admin admin888
用户PC端 http://dsshop.csdeshang.com/ buyer 123456
手机端 http://m.dsshop.csdeshang.com/ buyer 123456
DSShop(单店铺系统)移动端二维码演示地址
  • 用户手机端

  • 微信小程序

DSO2O演示
DSO2O(外卖/上门服务/跑腿系统)演示地址及账号
DSO2O交流群:DSShop单店铺商城官方群
演示角色 演示地址 账号 密码
后台PC端 https://dso2o.csdeshang.com/admin/ admin admin888
用户PC端 https://dso2o.csdeshang.com/ buyer 123456
卖家PC端 https://dso2o.csdeshang.com/home/sellerlogin/login.html seller 123456
服务机构管理 https://dso2o.csdeshang.com/home/fuwu_manage_login/login.html 后台添加
用户手机端 https://m.dso2o.csdeshang.com/home/memberlogin buyer 123456
商家手机端 https://m.dso2o.csdeshang.com/home/sellerlogin seller 123456
配送员 https://m.dso2o.csdeshang.com/distributor/login 测试配送员 123456
服务机构管理 https://m.dso2o.csdeshang.com/fuwu_manage/login test1 123456
DSO2O(外卖/上门服务/跑腿系统)移动端二维码演示地址
  • 用户手机端

  • 商家手机端

  • 配送员管理

  • 上门服务机构

  • 微信小程序

DSMall演示
DSMall(多店铺商城系统)演示地址及账号
DSMall交流群: DSMall开源商城官方群
演示角色 演示地址 账号 密码
后台PC端 https://dsmall.csdeshang.com/admin/ admin admin888
用户PC端 https://dsmall.csdeshang.com/ buyer 123456
商家PC端 https://dsmall.csdeshang.com/home/sellerlogin/login.html seller 123456
用户手机端 https://m.dsmall.csdeshang.com/ buyer 123456
商家手机端 https://m.dsmall.csdeshang.com/home/sellerlogin seller 123456
微信小程序 微信内搜索小程序 DSSHOP
DSMall(多店铺商城系统)移动端二维码演示地址
  • 用户手机端

  • 商家手机端

  • 混合版苹果APP

  • 混合版安卓APP
    (使用浏览器打开)

  • 微信小程序

DSMall 实物订单模块

用户可以从两个入口进行下单,一是从购物车页进入下单页,二是在商品详情页中直接进入下单页。

订单所涉及的表为orderordercommonordergoodsorderlogorderpay,其关系如下图

 

无论是通过购物车页下单,还是商品详情页,都是展示相同的下单页面,要经过\home\buy\buy_step1buylogic模型的buyStep1方法获取订单信息。

buyStep1方法中,如果是从购物车页过来的,则调用模型中的getCartList方法获取商品,如果是从商品详情页过来的,则调用getGoodsList方法获取商品。

        //得到购买商品信息
        if ($ifcart) {
            $result = $this->getCartList($cart_id, $member_id);
        }
        else {
            $result = $this->getGoodsList($cart_id, $member_id, $store_id,$extra);
        }

 

getCartList方法中,先从购物车中获取商品,然后再查询商品的促销信息,再判断是否是优惠套装的商品,最后根据店铺id整理商品

 
        //购物车列表
        $condition = array('cart_id' => array('in', array_keys($buy_items)), 'buyer_id' => $member_id);
        $cart_list = $cart_model->getCartList('db', $condition);
 
        //购物车列表 [得到最新商品属性及促销信息]
        $cart_list = $this->_logic_buy_1->getGoodsCartList($cart_list);
 
        //商品列表 [优惠套装子商品与普通商品同级罗列]
        $goods_list = $this->_getGoodsList($cart_list);
 
        //以店铺下标归类
        $store_cart_list = $this->_getStoreCartList($cart_list);

 

getGoodsList方法中,先查询商品的促销信息,再根据店铺id整理商品

        //商品信息[得到最新商品属性及促销信息]
        $goods_info = $this->_logic_buy_1->getGoodsOnlineInfo($goods_id, intval($quantity),$extra);
        if (empty($goods_info)) {
            return ds_callback(false, '商品已下架或不存在');
        }
 
        //不能购买自己店铺的商品
        if ($goods_info['store_id'] == $store_id) {
            return ds_callback(false, '不能购买自己店铺的商品');
        }
 
        //进一步处理数组
        $store_cart_list = array();
        $goods_list = array();
        $goods_list[0] = $store_cart_list[$goods_info['store_id']][0] = $goods_info;

 

买家在下单页设置好收货地址等信息后,通过\home\buy\buy_step2buylogic模型的buyStep2方法提交订单信息,订单信息的处理需要经过6步操作

        try {
 
            $order_model = model('order');
            $order_model->startTrans();
 
            //第1步 表单验证
            $this->_createOrderStep1();
 
            //第2步 得到购买商品信息
            $this->_createOrderStep2();
 
            //第3步 得到购买相关金额计算等信息
            $this->_createOrderStep3();
 
            //第4步 生成订单
            $this->_createOrderStep4();
 
            //第5步 处理预存款
            $this->_createOrderStep5();
            $order_model->commit();
 
            //第6步 订单后续处理
            $this->_createOrderStep6();
            
            return ds_callback(true, '', $this->_order_data);
 
        } catch (\think\Exception $e) {
            $this->rollback();
            return ds_callback(false, $e->getMessage());
        }

其中在_createOrderStep1方法中,对收货地址、发票信息、是否支持货到付款、代金券进行了验证处理。

_createOrderStep2方法中,判断订单商品是来自购物车还是立即购买的商品,也像buyStep1中一样,使用相同的方法整理得到店铺商品信息。

_createOrderStep3方法中,计算了商品总金额,判断是否满足满送条件,判断是否满足代金券条件,计算了店铺的运费,计算了商品的分类佣金。

_createOrderStep4方法中,生成了订单数据。

_createOrderStep5方法中,判断是否使用了充值卡、预存款,如果有,则扣除。

_createOrderStep6方法中,更新了商品库存和销量,如果使用了代金券则更新代金券状态,如果是F码商品则更新F码状态,删除购物车相关商品,如果是分享注册的用户则生成推广记录,最后给店铺发送订单通知。