mothership-ec / cog-mothership-fedex
Fedex配送模块
Requires
- php: >=5.4.0
- mothership-ec/cog-mothership-commerce: ~5.0
- mothership-ec/cog-mothership-ecommerce: ~3.0
This package is not auto-updated.
Last update: 2021-03-22 11:07:37 UTC
README
Message\Mothership\Fedex
cogule提供了Fedex集成以进行订单配送。它还为此提供了新的配送方法。
安装
使用Composer安装此包。包名为mothership-ec/cog-mothership-fedex
。
配送方法
此cogule提供了两种配送方法,它们被添加到order.dispatch.methods
服务中
- FedEx Express (
fedex-express
) - FedEx UK (
fedex-uk
)
自动配送
此cogule与Fedex Express API集成,并启用使用类型fedex-express
的任何配送的自动配送。
需要注意的是,与FedEx UK没有集成,因为它们是完全不同的实体,并且在撰写本文时,没有合适的API用于提交货物。
API
此cogule包含一个小型库,用于与Fedex的SOAP API交互。
配置
为此cogule提供了一个配置固定装置。要连接到Fedex API,您需要在其中输入一些认证详细信息。基本要求是
api-key
- FedEx提供的API密钥api-password
- FedEx提供的API密码meter-number
- 用于计费货物的计费表号account-number
- 负责货物的账户号
对于测试,您可以在Fedex开发者网站上创建一个账户并生成这些详细信息。
API库概述
API库由三个主要部分组成
- 请求:这些详细说明了要发送到Fedex API的请求和请求数据。
- 响应:这些详细说明了Fedex API对请求的响应。它们由相应的请求定义。
- 调度器:负责处理请求,将它们发送到Fedex API并返回相关响应或抛出错误异常。
- 服务:Fedex将API分组到不同的“服务”。每个都有自己的WSDL端点。请求定义了应使用哪个服务。
您也可能注意到一些关于所谓的PreparedRequest
的引用。这是API消费者不需要关心的实现细节,但它基本上是存在的,这样API认证和其他顶级通用请求数据就不需要属于每个单个Request
类。
事件
在发出API请求之前,会发出fedex.api.request
事件。事件是Message\Mothership\Fedex\Api\Event\RequestEvent
的实例,因此监听器可以检查请求并对其调用方法。这发生在请求验证之后。
一旦收到响应并经过验证和初始化后,将触发 fedex.api.response
事件。该事件是 Message\Mothership\Fedex\Api\Event\ResponseEvent
的一个实例,因此监听器可以检查响应。
上传文件
存在一个 UploadDocuments
请求,允许您将任何文件上传到 FedEx API 并将其附加到稍后可以提交的运输中。文件必须被包裹在 API 的 Document
类中,以便可以检索 FedEx 文档标识符。
当响应由 Dispatcher
成功分发后,返回的 Response
将包含文档,并将标识符设置为它们。
然后,您可以使用 addDocument()
将这些 Document
实例添加到您即将提交的 Shipment
中。
生成的商业发票
您可以要求 FedEx 为您的运输生成商业发票。这要求托运商已注册 ETD(电子贸易文件),但通常这是一个很好的主意,因为它可以节省很多纸张,并节省我们制作自己的商业发票的时间。
Mothership 还未生成商业发票,因此启用此功能很重要。
为此,只需在您的 Shipment
实例上调用 requestGeneratedCommercialInvoice(true)
即可。
WSDL 文件
每个服务都需要自己的 .wsdl
文件,这些文件由 FedEx 在他们的 开发者网站 提供。这些文件存储在 /resources/wsdl
中,并由相关的服务类(Message\Mothership\Fedex\Api\Service\ServiceInterface
的实例)引用。
端点会根据 fedex
配置组中 test-mode
属性的值自动更改。在 getWsdlEndpoint()
方法中设置服务类上的实时和测试端点。当添加新的服务或 .wsdl
文件时,您可以通过查看文件的底部并找到 service->port->address 的 location
属性的值来获取这些端点。实时 URI 将位于 ws.fedex.com
主机上,测试 URI 将位于 wsbeta.fedex.com
主机上。