实际情况不是这样,框框自己并不送货
等等,在我们实际的生活中,电商们并不自己送货,他们将这部分工作外包给了物流公司。是的,从成本的角度考虑,外包送货是最合适的选择。实际上,整个订单从提交到最后的完成情况还要稍微复杂一些,如下图所示:
从图中我们可以看出,这个流程跨越了两家公司,同时也涉及到了三个系统的集成,这三个系统分别是框框网的前台网站、框框网的后台负责仓储、进出货和物流的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
分享到:
相关推荐
Odoo的API设计遵循REST原则,采用HTTP方法如GET、POST、PUT、DELETE来执行CRUD(创建、读取、更新、删除)操作。例如,GET请求用于获取资源信息,POST用于创建新记录,PUT用于更新已有记录,而DELETE则用于删除记录...
本教程将带你深入学习如何使用.Net Core技术栈来开发电商后端API,帮助你从入门到精通,全面掌握RESTful API的设计原则和实践方法。 .Net Core 是微软推出的一款开源、跨平台的框架,它支持Windows、Linux、macOS等...
在本项目"restapi-shopdb"中,开发者创建了一个RESTful API,主要目的是为了支持用户进行注册、登录以及订购和查看产品。这个API是基于Node.js构建的,使用了MongoDB作为后端数据库,同时也利用JavaScript作为编程...
3. **RESTful API设计**: Checkout API作为一个Web服务,可能会遵循RESTful原则,提供一套以HTTP方法(GET、POST、PUT、DELETE等)来操作资源的接口。这使得API易于理解和使用,并且可以与各种类型的客户端(如Web...
总之,Django REST framework是一个强大的工具,它简化了API开发流程,让开发者能够专注于业务逻辑,而无需过多关注底层实现细节。通过深入学习和实践,你可以利用DRF构建出功能强大、易于使用的Web API。
资源模型是API设计中的核心概念,定义了可以进行操作的资源和它们之间的关系,以及资源的属性和行为。 #### Managed Entity and Task Resource Models 管理实体和任务资源模型涉及产品目录中的实体如何被管理和任务...
- **RESTful API设计**:学习如何设计符合REST原则的API接口,实现前后端分离。 - **安全性**:了解Spring Security的基本用法,实现用户认证和授权。 - **前端开发**:掌握基本的HTML、CSS和JavaScript,以及前端...
3. **NOTIFY API(异步消息API)**:用于接收来自淘宝的各种通知消息,如订单状态变化等,以便开发者能够实时地响应业务变化。 #### 四、开发者角色选择 对于开发者来说,选择合适的角色至关重要。淘宝开放平台...
在本案例中,C#被用于创建客户端库,使得开发者可以更方便地用C#与WooCommerce REST API交互。 4. **客户端库**: 客户端库(SharpCommerce)简化了与远程API的交互,通常封装了请求/响应处理、错误处理、身份验证等...
- 设计一个简单的订单处理流程,包括接收订单请求、验证订单信息、处理订单逻辑等步骤。 - 可以使用 MuleStudio 提供的模板作为起点,快速搭建基础框架。 5. **运行与调试**: - 在 MuleStudio 内部直接运行示例...
3. **RESTful API设计**:后端需提供符合REST原则的接口,用于微信小程序调用,涉及HTTP请求方法和状态码的使用。 4. **数据库设计**:可能包括用户表、菜品表、订单表等,涉及SQL查询和事务处理。 5. **用户认证与...
7. **RESTful API设计**: 为了实现小程序与服务器之间的通信,需要定义一套RESTful API接口,如POST提交打印任务、GET获取任务状态、PUT更新订单信息等。遵循REST原则可以使接口设计更加清晰、易于理解和维护。 8...
在IT行业中,API(应用程序接口)是连接...综上所述,“link-api-test”项目是IT领域中一个典型的跨平台API集成案例,涵盖了API设计、测试、安全和部署等多个方面,对于提升企业数据管理和业务流程效率有着重要意义。
遵循REST(Representational State Transfer)原则,API设计应清晰、简洁,支持CRUD(创建、读取、更新、删除)操作。 6. **权限控制与安全** 对于物流管理系统,权限控制至关重要。开发者可能使用了基于角色的...
- **RESTful API**:使用@RequestMapping及其子注解,创建符合REST原则的API接口。 5. **安全控制**: - **Spring Security**:提供了一套强大的安全控制机制,可以处理用户认证、权限管理等问题。 6. **支付...
4. RESTful API设计:为了使微信小程序与后端服务器进行通信,需要设计符合REST原则的接口,定义HTTP方法、URL路径和响应格式。 5. 用户认证与授权:实现用户注册、登录功能,可能使用OAuth2或其他身份验证协议,...
- RESTful API:设计符合REST原则的API接口,前后端分离,提高系统的可扩展性。 - JWT(JSON Web Token):用于实现安全的用户认证和授权。 - Docker:可能用于部署环境的标准化,方便测试和迁移。 在PPT部分,可能...