Spartacus同SAP Commerce Cloud交互的示意图

链接:https://sap.github.io/spartacus-docs/connecting-to-other-systems/

我们首先看图的最右边。Spartacus同Commerce系统的通信,通过HTTP协议完成。Connector发起HTTP调用,Connector维护了静态的配置信息,即API的endpoint. 比如从Commerce系统读取产品主数据,取的字段列表以url参数的形式出现在API endpoint里,这些字段列表可以在Connector的静态配置点里进行配置。Connector并不会直接同Commerce交互,而是把请求转发给Adapter,具体通信由Adapter完成,Connector只负责调度Adapter. Spartacus发布的Adapter默认使用OCC Module,即Commerce标准的Restful API,称为Omni Channel Connect,但是客户也可以实现自己的Adapter,连接Commerce之外的其他后台系统。Connector经由Adapter取回的数据交给NgRx store统一管理,其复杂度被Façade层所隐藏,而Spartacus UI组件只会同Façade交互,进行数据绑定和页面展示。最后,因为UI组件和Commerce后台组件的数据模型存在差异,因此需要Converter,在数据从Commerce取回准备呈现在UI之前,先要转换成适合UI展示的结构;反之,在Spartacus提交数据准备写回Commerce时,也要先将数据通过Converter转换成OCC API接受的数据格式。

Spartacus同SAP Commerce Cloud交互的示意图