- 微信扫一扫 -
QQ:181814630
电话:15116362044
| 演示角色 | 演示地址 | 账号 | 密码 |
|---|---|---|---|
| 后台PC端 | 点击进入 | dso2o | 123456 |
| 用户PC端 | 点击进入 | buyer | 123456 |
| 卖家PC端 | 点击进入 | buyer | 123456 |
| 服务机构PC端 | 点击进入 | 后台添加 | |
| 用户手机端 | 点击进入 | buyer | 123456 |
| 商家手机端 | 点击进入 | buyer | 123456 |
| 配送员 | 点击进入 | 测试配送员 | 123456 |
| 服务机构手机端 | 点击进入 | test1 | 123456 |
| 安卓APP下载地址 | http://www.csdeshang.com/document/dso2o/dso2o_uniapp_android.apk | ||
用户端
商家端
配送员管理端
服务机构端
用户端安卓APP
(使用浏览器打开)
商家端安卓APP
(使用浏览器打开)
配送员管理安卓APP
(使用浏览器打开)
服务机构安卓APP
(使用浏览器打开)
| 演示角色 | 演示地址 | 账号 | 密码 |
|---|---|---|---|
| 后台PC端 | 点击进入 | dsmall | 123456 |
| 用户PC端 | 点击进入 | buyer | 123456 |
| 商家PC端 | 点击进入 | buyer | 123456 |
| 用户手机端 | 点击进入 | buyer | 123456 |
| 商家手机端 | 点击进入 | buyer | 123456 |
| 门店手机端 | 点击进入 | seller | 123456 |
| 安卓APP下载地址 | http://www.csdeshang.com/document/dsmall/dsmall_uniapp_android.apk | ||
用户端
商家端
门店端
用户安卓APP(使用浏览器打开)
商家安卓APP(使用浏览器打开)
门店安卓APP(使用浏览器打开)
| 演示角色 | 演示地址 | 账号 | 密码 |
|---|---|---|---|
| 后台PC端 | 点击进入 | test | 123456 |
| 商户PC端(可开多个店铺) | 点击进入 | seller | 123456 |
| 店铺管理PC端 | 点击进入 | seller | 123456 |
| 手机端 | 点击进入 | test | 123456 |
| 骑手端 | 点击进入 | test | 123456 |
| 师傅端 | 点击进入 | test | 123456 |
| 短视频 | 点击进入 | test | 123456 |
用户端
安卓APP下载地址
用户可以从两个入口进行下单,一是从购物车页进入下单页,二是在商品详情页中直接进入下单页。
订单所涉及的表为order、ordercommon、ordergoods、orderlog、orderpay,其关系如下图
无论是通过购物车页下单,还是商品详情页,都是展示相同的下单页面,要经过\home\buy\buy_step1中buy的logic模型的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中buy的logic模型的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码状态,删除购物车相关商品,如果是分享注册的用户则生成推广记录,最后给店铺发送订单通知。
- 关注官方公众号 -