广州企业网站建设开发,云虚拟主机做视频网站,app界面设计的软件,网页设计制作手机网站文章来自#xff1a;https://baijiahao.baidu.com/s?id1602959656926168475wfrspiderforpc作者#xff1a;人人都是产品经理点击加入#xff1a;PHP自学中心技术交流微信群商务合作: 请加微信(QQ)#xff1a;2230304070精选教程推荐技术交流微信群我们在学习中单… 文章来自https://baijiahao.baidu.com/s?id1602959656926168475wfrspiderforpc作者人人都是产品经理点击加入PHP自学中心技术交流微信群商务合作: 请加微信(QQ)2230304070精选教程推荐技术交流微信群我们在学习中单枪匹马还不如一次短短的交流你可以在别人吸取各种学习经验学习方法以及学习技巧所以学习与交流少不了一个圈子提升你的学习技能请点击加技术群PHP自学中心交流③群 记得备注加群视频教程分享以下视频教程的网址http://blog.startphp.cn 已经更改为http://www.mano100.cn 请知悉1 Laravel你要从底层学起还是掌握其核心内容便可2 关于PHP与消息队列你会吗3 阿里云环境搭建以及项目上线还有谁不会的4 PHP程序员是否要学习Linux课程5 在CentOS7系统下如何搭建ElasticSearch更多视频教程请关注网站http://www.mano100.cn精选文章正文一个订单系统的设计并不简单它需要一批又一批的人去维护、去优化根据公司的业务情况做出改变与兼容。这篇文章主要与大家分析一下电商订单系统该如何设计。在一个电商所有模块中订单系统作为最为核心的模块它决定了整个流程能不能顺畅的执行起着承上启下的作用。订单系统设计订单系统时需要考虑几个模块。只有明确考虑所有模块才能保证订单系统的稳定性和可扩展性。1. 订单字段实际上界面上显示的订单信息由各种订单字段组成。完成订单字段在某种程度上代表着订单流程的完整。订单字段包括几个部分其中金额信息因为特殊性单独来讲解本质上金额信息也是属于商品信息的。商品信息商品信息属于订单系统的上游端。所有订单都是从商品演变而来的。从商品到订单订单系统必须收集相关的商品信息包括商店信息商品ID商品规格商品数量和商品价格。获得的商品信息将显示在订单详细信息页面上。形成订单信息后仓库可以方便地进行拣选和打包。用户信息用户信息包括购买用户的ID收货人收货人地址和联系信息。某些平台的用户成长系统是根据平台上的用户活跃度来计算的。例如京东(JD.com)具有类似的增长指标例如会员级别和积分卡。此时除了普通信息字段外还需要获得用户信息。获取用户级别购买后获得的积分以及用户所在等级可以从订单中扣除的折扣等然而这些具体操作取决于公司的业务方向。金额信息由于金额信息的特殊性理论上认为金额信息应该属于商品信息。金额信息的特殊性在于它不代表金额涉及到商品的金额折扣金额和付款金额等。折扣金额所涉及的信息更为复杂。例如具有自营和第三方结算的电子商务平台将具有商家折扣和跨商店折扣。这些折扣分为不同的类型例如现金扣减和消费者优惠券扣减点数获取礼品卡扣减或以上各项的组合。如果要很好地涉及此内容则需要根据公司的当前业务状况列出支持的优惠类型然后枚举各种组合下的优惠类型以确保流程的完整性。时间信息记录各个状态点下的时间一是记录二也是方便售后验证与客户分析。订单时间是根据订单状态改变而改变的。时间信息看起来不重要其实是订单系统一个重要的组成部分具体看以下下单未付款即订单创建时间、下单时间待发货状态订单创建时间、下单时间、支付时间待收货状态订单创建时间、下单时间、支付时间、发货时间交易完成状态订单创建时间、下单时间、支付时间、发货时间、完成时间待退款状态退款订单创建时间、申请退款时间交易关闭-用户取消订单创建时间、下单时间、用户取消时间交易关闭-仅退款订单创建时间、下单时间、支付时间、退款申请时间、退款成功时间交易关闭-退货退款(包含部分仅退款)订单创建时间、下单时间、支付时间、交易完成时间、退款申请时间、退款时间。订单信息订单信息在订单系统是最为核心订单信息最重要的又是订单的状态。一个电商系统中订单状态分别有以下几种状态【待付款】、【待发货】、【待收货】、【待评价】、【交易完成】、【用户取消】、【仅退款】、【退货退款】。而我们一般会将后三种统一放在订单售后独立呈现方便平时商家操作的便捷性。下面看看流程图2. 订单流程订单流程是指从订单生成到完成的过程包括前正向流程和反向流程。 正向流程就是正常的网购的步骤订单生成-付款订单-卖方发货-确认收货-交易成功。而逆向流程则是各种退款退货的流程。(1)正向流程订单生成用户下单后系统需要生成订单此时需要先获取下单中涉及的商品信息然后获取该商品所涉及到的优惠信息如果商品不参与优惠信息则无此环节。接着获取该账户的会员权益(这里其实需要注意的是优惠信息与会员权益是有区别的就好比商品满减是优惠信息新人立减是会员权益一个是针对商品另一个是针对账户)。支付订单用户支付完订单后需要获取订单的支付信息包括支付流水号、支付时间等。支付完订单接着就是等商家发货但在发货过程中往往还有一种情况存在很正常却也比较复杂就是订单拆单。订单拆单分两种一种是用户挑选的商品来自于不同渠道(自营与商家商家与商家)此时就需要拆分订单并分开结算这里还涉及父子订单的说法这里不再赘述。另一种是在SKU层面上拆分订单不同仓库不同运输要求的SKU包裹重量体积限制等因素都需要将订单拆分。比如商品A只在甲仓库有商品B又只在乙仓库有此时会将商品A与商品B拆分成两个订单。或者有些企业的做法是将商品A/B调拨到另外一个仓库统一发货也方便了用户。订单拆单看起来简单其实里面涉及到底层的系统支持如你需要对每一个仓库的货品进行相对准确的盘点且做到实时同步(涉及到仓库精细化管理)对商品进行准确分类与摆放对商品信息记录准确无误等。这其中哪一模块都是一个浩大的工程PM一般进入一家公司都会在原有(半成品)的基础上进行优化大家不妨多思考一下底层业务只有在底层做好精细化管理才能支持线上丰富的用户需求。商家发货商家发货过程也有一个标准化的流程上面也有讲到订单拆分时会涉及到仓库间调拨然后仓库会对商品进行打单、拣货、包装、交接快递配送。这套标准化流程如果优化好也是一个大工程这里不再赘述建议大家看看库存与仓库管理方面的书籍详细了解。确认收货商家发货后就是等快递配送了订单系统需要接入一些常用快递企业的接口方便用户与商家在站内查询快递信息。交易成功收到货后不是一个服务的结束相反是一个服务的开始。订单系统需要在快递被签收后提醒用户对商品做评价这里要注意确认收到货不代表交易成功交易成功是指在收到货X天的状态此时订单不在售后的支持时间范围内。到此一个订单的正向流程就算走完了。(2)逆向流程一个电商的基本逆向流程如上图所示订单的逆向流程复杂就在于它几乎允许在正向流程的任何环节出现。有人会问用户未收到货为什么还能退款其实我们换位思考也很容易理解。假想你是用户买了一双鞋子付了款发了货正在美滋滋的等待收快递然后刚好路过一家鞋店看到刚买的同款鞋子大促销于是你就拿起手机点击退款买下了这双促销的鞋子。这种场景其实是很普通也很正常的用户日常所以我们的订单系统就必须得支持用户各种丰富的场景需求也十分考验PM的业务渗透能力好在电商的先行者淘宝已经做了很多基础建设和用户教育我们直接可以拿来套用不过还是要根据各个公司的业务情况进行修改。取消订单用户提交订单时在跳转至支付前直接退出此时用户原则上属于取消订单因为还未付款则比较简单只需要将原本提交订单时扣减的库存补回即可。支付失败用户进行支付时退出或者取消支付我们将其列为支付失败状态此时处理同上将扣减的库存补回可销售库存即可。付款后退款用户支付成功后商家还未发货支持用户申请退款此时如果仓库与客服是分离的则需要先检查仓库是否已经发货若已发货则应与客户沟通是否可以收到货后再进行退款如果仓库还未发货则可直接同意用户退款。或者企业接入菜鸟物流实行截件功能不过这种操作还不成熟成本会比较大不适合中小创业型公司。缺货退款用户支付成功后商家发货时发现仓库缺货(如果提交订单扣减库存则会减少缺货情况为什么是减少而不是避免因为仓库管理商品时没办法做到100%精准所以信息有时候会不准确导致线上的可销售库存显示有库存而仓库已经售空的状态)则需要与用户协商是否退款。这个流程订单系统可以做到流程化、自动化连接消息中心和仓库管理系统去实现难点在于消息的实时性。我就遇到过在淘宝买过一件上衣一天过去了商家跟我说没货了我当时杀人的心都有了。待收货退款这个问题目前还没有特别完美的解决方法商家发了货之后用户还未收到货此时货在路上。大体上分为两种做法一种是用户收到货后重新寄回另一种是用户直接拒收包裹包裹直接退回原地址。退货退款用户收到货后想要申请售后则此时需要提供让用户输入售后原因包括上传凭证的功能如果与商家协商无果还需要增加平台客服的入口方便用户进行申诉。而协商结果/申诉成功后直接触发自动退款机制退款后触发消息通知同时触发交易关闭状态整个售后过程才算结束。系统的学习PHP关注本公众号PHP自学中心回复相应的关键词,领取以下视频教程0 全流程开发 TP6.0实战高并发电商服务系统链接https://docs.qq.com/doc/DV2J5WWpoRnlYYXhB1 产品经理高清实战公众号里回复072120192 设计模式实例剖析与深入解读公众号里回复201907143 GitGitHub视频教程公众号里回复gitnnnx4 尚硅谷Redis公众号里回复0713ksy15 SQL 注入及如何防止公众号里回复20190712以上是本文的全部内容希望对大家的学习有帮助也希望大家多多支持 php自学中心