`
ronghao
  • 浏览: 448440 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
E9473dd5-1985-3883-ac98-962354ca10b3
张小庆,在路上
浏览量:8528
社区版块
存档分类
最新评论

如何查看我的订单-REST的流程API设计案例(3)

阅读更多

实际情况不是这样,框框自己并不送货

等等,在我们实际的生活中,电商们并不自己送货,他们将这部分工作外包给了物流公司。是的,从成本的角度考虑,外包送货是最合适的选择。实际上,整个订单从提交到最后的完成情况还要稍微复杂一些,如下图所示:

 

从图中我们可以看出,这个流程跨越了两家公司,同时也涉及到了三个系统的集成,这三个系统分别是框框网的前台网站、框框网的后台负责仓储、进出货和物流的ERP系统以及外包物流公司的ERP系统。三个系统各自有自己的处理流程,整个订单的端到端处理流程由这三个系统的三个流程所共同完成:当我们在框框网提交订单时,一个消息被发送到框框的后台ERP系统,这个消息触发一个货物的出库流程,当货物打包完毕出库时,一个消息被发送到物流公司的ERP系统,同时触发物流公司的包裹配送流程,当我们给物流公司的配送员付款完毕时,对我们顾客来说框框的购物流程已经结束,然而整个流程依旧还要继续,配送员回到公司完款,一个消息被发送回框框的后台ERP,物流公司的包裹配送流程结束,框框网的这个订单这才处理完成。

在本文的一开始,我们提到了那个糟糕的退货故事,问题就在于当订单交由物流公司进行货物配送时,我们包括框框失去了对配送流程的可视化,物流公司的处理情况在我们的流程中黑盒了。如何解决这部分的问题呢,有两种处理方法:一是在框框网订单处理流程中加入捕获事件,正如图中所示的,当框框后台ERP和物流公司ERP对订单进行处理时,每到一个任务节点就给框框网的订单处理流程发送消息,由此给我们标示出订单的实时状态。

 

现在,让我们来看看自己的订单会得到什么数据呢,GET http://api.kuangkuang.com/order/1000?框框网前台网站返回数据:

<order>
<link rel="detail" media-type="application/xml" url="http://api.kuangkuang.com/order/1000"/>
<content>
    <id>1000</id>
    <cost>88.0</cost>
    <state>waiting send</state>
    <history>
        <activity rel="submit" time="2011-6-28 14:00" participant="ronghao"/>
        <activity rel="review" time="2011-6-28 14:30" participant="xinpeng"/>
        <activity rel="delivery package" time="2011-6-28 15:00" participant="haorong"/>
        <activity rel="warehouse" time="2011-6-28 17:00" participant="pengxin"/>
    </history>
</content>
</order>
 

订单状态为等待物流公司送货,注意到这段数据:

    <history>
        <activity rel="submit" time="2011-6-28 14:00" participant="ronghao"/>
        <activity rel="review" time="2011-6-28 14:30" participant="xinpeng"/>
        <activity rel="delivery package" time="2011-6-28 15:00" participant="haorong"/>
        <activity rel="warehouse" time="2011-6-28 17:00" participant="pengxin"/>
    </history>
 

工作流加入了订单处理的历史信息,从这段信息可以看出,我们要明天上午才能收到自己的货物了。

很不错不是吗,但是现实情况又是怎样呢。我们先来看看当当,当当如是说:订单状态变为已发货后,您可以登录我的订单,点击订单号进入订单详情页查看快递公司的联系方式,用订单号查询即可。我们再来看看卓越,卓越如是说:宅急送配送的订单:登录宅急送网站或拨打020-82252310-802查询;港中能达配送的订单:登录港中能达网站或拨打020-86443920查询。也就是说物流公司的配送流程状态并没有集成到网站中来,如下图所示:

 

为什么没有集成呢?第一是物流公司的客户往往不止框框一家,第二是框框往往不会选择一家物流公司,这些都给系统集成带来了难度,我们会突然发现需要太多的集成点,调试、系统之间的约定,这些都需要大量的工作和成本。

既然第一种使得我们即时查看我们订单状态成本太大,那我们看看第二种方法:使用一个统一的流程管理系统来管理整个端到端的流程。下篇见。

  • 大小: 90.6 KB
  • 大小: 88.4 KB
  • 大小: 86.8 KB
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics