致力于提供有竞争力的软件解决方案和服务,德尚网络欢迎您!
技术/产品咨询
技术/产品咨询
    • - 微信扫一扫 -

      QQ:181814630

      电话:15116362044

DSKMS演示
  • DSKMS(内容付费系统)演示地址及账号
    DSKMS交流群:553212556
    演示角色 演示地址 账号 密码
    后台PC端 点击进入 dskms 123456
    用户PC端 点击进入 buyer 123456
    机构PC端 点击进入 buyer 123456
    用户手机端 点击进入 buyer 123456
    机构手机端 点击进入 buyer 123456
    DSKMS(内容付费系统)uniapp移动端二维码演示地址
    • 用户端

    • 机构端

    • 用户端安卓APP
      (使用浏览器打开)

    • 商家端安卓APP
      (使用浏览器打开)

DSShop演示
  • DSShop(单店铺系统)演示地址及账号
    DSShop交流群:549770277
    演示角色 演示地址 账号 密码
    后台PC端 点击进入 dsshop 123456
    用户PC端 点击进入 buyer 123456
    手机端 点击进入 buyer 123456
    DSShop(单店铺系统)uniapp版移动端二维码演示地址
    • 用户端

    • 用户手机端安卓APP
      (使用浏览器打开)

DSESN演示
  • DSESN(社区团购系统)uniapp版演示地址及账号
    dsesn交流群:553212556
    演示角色 演示地址 账号 密码
    管理员后台 点击进入 dsesn 123456
    供应商后台 点击进入 buyer 123456
    用户端 点击进入 test001 123456
    仓库端 点击进入 13700000000 123456
    团长端 点击进入 13800000000 123456
    DSESN(社区团购系统))uniapp移动端二维码演示地址
    • 用户端

    • 仓库端

    • 团长端

DSO2O演示
  • DSO2O(外卖/上门服务/跑腿系统)演示地址及账号
    DSO2O交流群:549770277
    演示角色 演示地址 账号 密码
    后台PC端 点击进入 dso2o 123456
    用户PC端 点击进入 buyer 123456
    卖家PC端 点击进入 buyer 123456
    服务机构PC端 点击进入 后台添加
    用户手机端 点击进入 buyer 123456
    商家手机端 点击进入 buyer 123456
    配送员 点击进入 测试配送员 123456
    服务机构手机端 点击进入 test1 123456
    DSO2O(外卖/上门服务/跑腿系统)uniapp移动端二维码演示地址
    • 用户端

    • 商家端

    • 配送员管理端

    • 服务机构端

    • 用户端安卓APP
      (使用浏览器打开)

    • 商家端安卓APP
      (使用浏览器打开)

    • 配送员管理安卓APP
      (使用浏览器打开)

    • 服务机构安卓APP
      (使用浏览器打开)

DSMall演示
  • DSMall(多店铺商城系统)演示地址及账号
    DSMall交流群:10235778
    演示角色 演示地址 账号 密码
    后台PC端 点击进入 dsmall 123456
    用户PC端 点击进入 buyer 123456
    商家PC端 点击进入 buyer 123456
    用户手机端 点击进入 buyer 123456
    商家手机端 点击进入 buyer 123456
    门店手机端 点击进入 seller 123456
    DSMall(多店铺商城系统)uniapp移动端二维码演示地址
    • 用户端

    • 商家端

    • 门店端

    • 用户安卓APP
      (使用浏览器打开)

    • 商家安卓APP
      (使用浏览器打开)

    • 门店安卓APP
      (使用浏览器打开)

实物订单模块

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

订单所涉及的表为order、ordercommonordergoodsorderlogorderpay,其关系如下图

 

无论是通过购物车页下单,还是商品详情页,都是展示相同的下单页面,要经过\home\buy\buy_step1中buylogic模型的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_step2中buylogic模型的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码状态,删除购物车相关商品,如果是分享注册的用户则生成推广记录,最后给店铺发送订单通知。

 



上一篇:商品模块

下一篇:支付回调模块