供应商直接配送发货 API v2021-12-28 用例指南
了解如何使用供应商直接配送 (DF) 配送 API。
使用 直接配送配送 API 与亚马逊交换与配送相关的文件。
教程
本节中的教程介绍如何:
- 提交发货标签请求
- 获取一个或多个发货标签
- 创建 发货标签 和 容器标签
- 提交 发货确认 和 发货状态更新
- 获取一张或多张装箱单
- 获取一张或多张客户发票 (仅限印度)
提交发货标签请求
submitShippingLabelRequest
操作允许供应商向亚马逊索取每个采购订单的货件标签信息。只要遵守架构,您就可以在一个 API 调用中批量发送多个货件标签请求。当亚马逊创建货件标签时,可以使用 getShippingLabel
操作进行下载。
注意
这个
submitShippingLabelRequest
操作仅适用于使用亚马逊承运人的供应商。
验证货件标签提交请求
您可以使用验证发货标签请求的状态 供应商 DF 交易 API。提交后,请允许系统最多 15 分钟显示状态。如果交易状态在 30 分钟后仍未更新,请打开 联系我们 供应商中心中的案例。
下图显示了提交货件标签申请的工作流程。
业务需求
-
在提交发货标签请求之前,必须通过 API、EDI 或供应商平台成功确认采购订单。未确认或已取消的采购订单的发货标签请求将被拒绝。
-
如果使用亚马逊自有货件标签,则可选择在申请中发送商品信息或包裹信息。
需要使用 submitShippingLabelRequest
submitShippingLabelRequest
若要申请货件标签,请调用 submitShippingLabelRequest
操作并传递以下参数:
名称 | 描述 | 必填项 |
---|---|---|
shippingLabelRequests | 申请一个或多个发货标签。 类型: < ShippingLabelRequest > 排列 | 有帮助 |
请求示例
POST "https://sellingpartnerapi-na.amazon.com/vendor/directFulfillment/shipping/2021-12-28/shippingLabels"
{
"shippingLabelRequests": [
{
"purchaseOrderNumber": "2JK3S9VC",
"sellingParty": {
"partyId": "999US"
},
"shipFromParty": {
"partyId": "ABCD"
},
"containers": [
{
"containerType": "carton",
"containerIdentifier": "123",
"trackingNumber": "XXXX",
"dimensions": {
"length": "12",
"width": "12",
"height": "12",
"unitOfMeasure": "IN"
},
"weight": {
"unitOfMeasure": "KG",
"value": "10"
},
"packedItems": [
{
"itemSequenceNumber": 1,
"buyerProductIdentifier": "B07DFVDRAB",
"packedQuantity": {
"amount": 1,
"unitOfMeasure": "Each"
}
}
]
}
]
}
]
}
需要使用 submitShippingLabelRequest
submitShippingLabelRequest
成功的响应包括以下内容:
名称 | 描述 | 必填项 |
---|---|---|
transactionId | 用于识别此交易的 GUID。此值可以与 供应商 DF 交易 API 返回此交易的状态。<br。>类型:字符串 | 没有帮助 |
响应示例
{
"transactionId": "20190905010908-8a3b6901-ef20-412f-9270-21c021796605"
}
获取货件标签
nextToken">getShippingLabels
操作会返回符合请求中指定的筛选条件的所有订单的货件标签。在您使用此 API 获取可供您配送的货件标签之前,必须已使用 submitShippingLabelRequest
操作申请了货件标签。亚马逊建议供应商在办公时间内,至少每小时检查一次货件标签。根据您的业务量,您可以选择更频繁地进行检查。在一次 API 调用中,您最多可以获得 100 个货件标签。如果货件标签超过 100 个,则可以使用 nextToken 值来获取下一组货件标签。
货件标签在其创建日期 90 天后过期( submitShippingLabelRequest
日期)。
注意
这是一项受限操作,因此需要使用受限数据令牌 (RDT) 进行授权。有关更多信息,请参阅令牌 API 用例指南。
下图显示了检索货件标签时的集成工作流程:
需要使用 getShippingLabels
getShippingLabels
若要检索货件标签列表,请调用 getShippingLabels
操作并传递以下参数:
名称 | 描述 | 必填项 |
---|---|---|
shipFromPartyId | 供应商 warehouseId 用于配送订单。如果未指定,则响应将包含所有仓库的订单。类型:字符串 | 没有帮助 |
limit | 返回的记录数限制。 类型:整数 | 没有帮助 |
createdAfter | 在此日期和时间之后可用的货件标签将包含在回复中。必须进去 ISO 8601 日期/时间格式。 类型:字符串(日期时间) | 有帮助 |
createdBefore | 在此日期和时间之前可用的货件标签将包含在结果中。必须进去 ISO 8601 日期/时间格式。 类型:字符串(日期时间) | 有帮助 |
sortOrder | 升序排序 (ASC ) 或降序 (DESC ) 按订单创建日期排序。类型:枚举 ( SortOrder ) | 没有帮助 |
nextToken | 当船舶标签数量超过指定的结果大小限制时,用于分页。代币值将在先前的 API 调用中返回。 类型:字符串 | 没有帮助 |
请求示例
GET https://sellingpartnerapi-na.amazon.com/vendor/directFulfillment/shipping/2021-12-28/shippingLabels?limit=2&createdAfter=2020-02-15T14:00:00-08:00&createdBefore=2020-02-20T00:00:00-08:00&sortOrder=DESC
需要使用 getShippingLabels
getShippingLabels
成功的响应包括以下内容:
名称 | 描述 | 必填项 |
---|---|---|
pagination | 如果返回的货件标签超过 100 个,则 nextToken 在分页响应中返回。 | 没有帮助 |
shippingLabels | 船舶标签清单。 类型: < ShippingLabel > 排列 | 没有帮助 |
响应示例
{
"pagination": {
"nextToken": "MDAwMDAwMDAwMQ=="
},
"shippingLabels": [
{
"purchaseOrderNumber": "2JK3S9VC",
"sellingParty": {
"partyId": "999US"
},
"shipFromParty": {
"partyId": "ABCD"
},
"labelFormat": "PNG",
"labelData": [
{
"packageIdentifier": "PKG001",
"trackingNumber": "1Z6A34Y60369738804",
"shipMethod": "UPS_GR_RES",
"shipMethodName": "UPS Ground Residential",
"content": "Base 64 encoded string goes here "
}
]
}, {
"purchaseOrderNumber": "2JK3S9VD",
"sellingParty": {
"partyId": "999US"
},
"shipFromParty": {
"partyId": "ABCD"
},
"labelFormat": "PNG",
"labelData": [
{
"packageIdentifier": "PKG002",
"trackingNumber": "1Z6A34Y60369738805",
"shipMethod": "UPS_GR_RES",
"shipMethodName": "UPS Ground Residential",
"content": "Base 64 encoded string goes here "
}
]
}
]
}
获取货件标签
getShippingLabel
操作会返回有关您使用采购订单编号指定的货件标签的信息。响应包括采购订单的完整货件标签信息,包括标签类型、采购订单详情和配送方式。
货件标签在其创建日期 90 天后过期( submitShippingLabelRequest
日期)。
注意
这是一项受限操作,因此需要使用受限数据令牌 (RDT) 进行授权。有关更多信息,请参阅令牌 API 用例指南。
您还可以使用此 API 获取任何货件标签的详细信息(在供应商上线 API 后,从过去 6 个月的滚动窗口起的 7 天时间范围内)。
下图显示了检索特定货件标签的集成工作流程:
业务需求
- 有哪些标签可供下载?
支持的标签格式为 ZPL 和 PNG。标签内容以 Base 64 字符串格式提供,因此您可以将字符串转换为所需的标签格式。标签格式的选择由供应商决定,这是直接配送计划入职流程的一部分。
- 我必须在什么时候申请发货标签?
仅在订单发货当天索取您的发货标签。
需要使用 getShippingLabel
getShippingLabel
若要申请货件标签,请调用 getShippingLabel
操作并传递以下参数:
名称 | 描述 | 必填项 |
---|---|---|
purchaseOrderNumber | 您要退回货件标签的采购订单编号。其应与订单中收到的 purchaseOrderNumber 相同。 | 有帮助 |
请求示例
GET https://sellingpartnerapi-na.amazon.com/vendor/directFulfillment/shipping/2021-12-28/shippingLabels/2JK3S9VC
需要使用 getShippingLabel
getShippingLabel
成功的响应包括以下内容:
名称 | 描述 | 必填项 |
---|---|---|
purchaseOrderNumber | 此订单的采购订单号。 类型:字符串 | 有帮助 |
sellingParty | 卖方或供应商的标识符。 类型: PartyIdentification | 有帮助 |
shipFromParty | 供应商的仓库代码。 类型: PartyIdentification | 有帮助 |
labelFormat | 标签的格式。 枚举 ( LabelFormat ) | 有帮助 |
labelData | 提供此货件中包裹的详细信息。 类型: < LabelData > 排列 | 有帮助 |
响应示例
{
"purchaseOrderNumber": "2JK3S9VC",
"sellingParty": {
"partyId": "999US"
},
"shipFromParty": {
"partyId": "ABCD"
},
"labelFormat": "PNG",
"labelData": [
{
"packageIdentifier": "PKG001",
"trackingNumber": "1Z6A34Y60369738804",
"shipMethod": "UPS_GR_RES",
"shipMethodName": "UPS Ground Residential",
"content": "Base 64 encoded string goes here"
}
]
}
创建发货标签
这个 createShippingLabels
操作为采购订单创建发货标签 和 返回标签。这是同步操作,不需要调用 供应商 DF 交易 API。
注意
这是一项受限操作,因此需要使用受限数据令牌 (RDT) 进行授权。有关更多信息,请参阅令牌 API 用例指南。
下图显示了使用创建发货标签的工作流程 createShippingLabels
操作。
业务需求
您可以为每个请求退回一份采购订单的发货标签。不支持在单个请求中包含多个采购订单。
需要使用 createShippingLabels
createShippingLabels
要同步创建发货标签,请致电 createShippingLabels
操作并传递以下路径参数:
名称 | 描述 | 必填项 |
---|---|---|
purchaseOrderNumber | 您想要的发货标签的采购订单号。 类型:字符串 | 有帮助 |
您可以包括以下身体参数:
名称 | 描述 | 必填项 |
---|---|---|
sellingParty | 卖方或供应商的 ID。 类型: PartyIdentification | 有帮助 |
shipFromParty | 供应商的仓库代码。 类型: PartyIdentification | 有帮助 |
containers | 此货件中的包裹清单。 类型: < Container > 排列 | 没有帮助 |
请求示例
POST https://sellingpartnerapi-na.amazon.com/vendor/directFulfillment/
shipping/2021-12-28/shippingLabels/XhvBghry
{
"sellingParty": {
"partyId": "999US"
},
"shipFromParty": {
"partyId": "ABCD"
}
}
需要使用 createShippingLabels
createShippingLabels
成功的响应包括以下内容:
名称 | 描述 | 必填项 |
---|---|---|
purchaseOrderNumber | 此订单的采购订单号。 类型:字符串 | 有帮助 |
sellingParty | 卖方或供应商的标识符。 类型: PartyIdentification | 有帮助 |
shipFromParty | 供应商的仓库代码。 类型: PartyIdentification | 有帮助 |
labelFormat | 标签的格式。 枚举 ( LabelFormat ) | 有帮助 |
labelData | 提供此货件中包裹的详细信息。 类型: < LabelData > 排列 | 有帮助 |
响应示例
{
"purchaseOrderNumber": "XhvBghry",
"sellingParty": {
"partyId": "999US"
},
"shipFromParty": {
"partyId": "ABCD"
},
"labelFormat": "PNG",
"labelData": [
{
"packageIdentifier": "1",
"trackingNumber": "1Z69664F0310685739",
"shipMethod": "UPS_GR_RES_SIG",
"shipMethodName": "UPS Ground Residential",
"content": "Base 64 encoded string goes here"
}
]
}
响应示例(错误)
{
"errors": [
{
"code": "InvalidInput",
"message": "[MISMATCHED_ITEM]: Request Rejected: Order quantity does not match the shipped quantity. All items in the order must be provided. Ensure you add the correct quantity of shipped items to packages. For items - ${fnSku}, the expected quantity is ${expectedQuantity}, but the provided quantity is ${providedQuantity}.",
"details": ""
}
]
}
可能的错误响应详细信息列表
下表包含所有可能的错误响应详细信息的列表。其中包括在重试请求之前为解决错误情况而建议采取的所有步骤。您应该在应用程序中设计故障处理机制,以预测和处理这些潜在错误。
随着时间的推移,可能会添加额外的错误响应,因此您的应用程序还应做好准备,妥善处理此列表中未包含的错误。
方括号中的值前面带有 a \$
显示在 “消息” 列中(例如, \${fnSku}
) 在错误响应中被替换为实际值。
代码 | 消息 | Details |
---|---|---|
InvalidInput | [MISMATCHED_ITEM]:请求被拒绝:订单数量与配送数量不匹配。必须提供订单中的所有物品。确保将正确数量的已配送物品添加到包裹中。对于物品-${fnSku},预期数量为 ${expectedQuantity},但提供的数量是 ${providedQuantity}。 | 无 |
InvalidInput | [NO_ITEMS_PRESENT]:请求被拒绝:订单编号 ${shipmentId} 有未分配给任何包裹的商品。请确保所有物品都映射到包裹中。 | 无 |
InvalidInput | [PACKAGE_DIMENSION_NOT_VALID]:请求被拒绝:订单编号 ${shipmentId} 包裹的尺寸无效。请为您的包裹添加有效尺寸。 | 无 |
InvalidInput | [PACKAGE_WEIGHT_NOT_VALID]:请求被拒绝:订单编号 ${shipmentId} 包裹的重量无效。请为您的包裹添加有效重量。 | 无 |
InvalidInput | [PIECE_NUMBER_ONE_NOT_PROVIDED]:没有为至少一件物品提供容器序列号 “1”。检查集装箱序列号是否丢失 | 无 |
InvalidInput | [不一致_PIECE_NUMBER_QUANTITY]:至少一件商品的容器序号与商品数量不一致或不兼容。验证集装箱序号是否正确,并且每件物品的数量是否与物品序列号相同 | 无 |
InvalidInput | [INVALID_VENDOR_CODE]:供应商代码无效 ${vendorCode}。验证订单的供应商代码是否正确 | 无 |
InvalidInput | [INVALID_ORDER_ID_WAREHOUSE_COMBINITION]:货件标签被拒绝:订单编号 ${shipmentId} 不属于仓库 ${warehouseCode}。请验证仓库代码和订单编号是否正确 | 无 |
InvalidInput | [INCORRECT_VENDOR_GROUP_ID]:供应商群组 ID $ 无效{vendorGroupId}。验证订单的供应商群组编号是否正确 | 无 |
InvalidInput | [DUPLICATE_VENDOR_PACKAGE_ID]:重复的供应商包装 ID。请修复重复的容器标识符,然后重试 | 无 |
InvalidInput | [EMPTY_VENDOR_PACKAGE_ID]:供应商包装 ID 无效。请修复无效的容器标识符,然后重试 | 无 |
InvalidInput | [SHIP_METHOD_不支持]: ${ship_method} 不支持。使用现有设置为 $ 生成标签{ship_method} | 无 |
InvalidInput | [SHIP_METHOD_CHANGED]:此 PO 的配送方式已从 $ 更改为{old_ship_method} 到 ${ship_method}。使用现有设置为 $ 生成标签{ship_method} | 无 |
InvalidInput | [不一致_SHIP_METHODS]:请求被拒绝:为不同的包裹分配了不同的配送方式。尝试将所有物品装在一个箱子里。如果不可能,请联系我们。 | 无 |
ConflictError | [SHIPMENT_NOT_MUTABLE]:请求被拒绝:订单编号为 $ 的包裹尺寸{shipmentId} 无法使用当前状态更新。无需采取进一步行动。 | 无 |
ConflictError | [ORDER_SHIPPED_WITH_VENDOR_LABEL]:您已经使用亚马逊运输以外的承运人配送了订单,因此您无法打印此订单的标签。无需执行任何操作。您已经确认了已发货的订单。 | 无 |
InternalFailure | 我们遇到了内部错误。请再试一次。 | 无 |
提交货件确认
submitShipmentConfirmations
操作允许供应商向亚马逊提交货件确认。您的货件确认使我们能够有效地追踪您的货件并向我们的客户发送通知。它包含有关正在配送的商品的信息,包括采购订单编号、发货日期、预计送达日期和追踪编码。
货件确认使我们能够更有效地与承运人合作,追踪您的货件。
缺少有效的货件确认可能导致:
-
对货件的了解不足。
-
将实物货件与采购订单进行核对时出现错误。
-
手动跟进以解决差异。
对成功提交的货件确认的验证
供应商可以通过以下方式验证其发货确认的状态 供应商中心 > 订单 > 直接配送订单 或者使用 供应商 DF 交易 API。提交后,让系统在最多 10 分钟内确定状态。如果供应商平台未显示发货确认的正确值,请打开 联系我们 供应商中心中的案例。有关创建发货确认的信息,请参阅 “业务要求” 部分。
下图显示了提交货件确认的集成工作流程:
业务需求
-
使用此 API 在订单从您的仓库发货后的四小时内确认订单的发货。
-
对于底线拒绝的货件,请将
shipmentStatus
字段值设置为FLOOR_DENIAL
。 -
所有采购订单行项目都应出现在货件确认中。不允许配送部分订单。如果有任何行项目无法配送,供应商应将该订单作为底线拒绝订单。
-
商品的
itemSequenceNumber
应与订单消息中收到的相同。 -
buyerProductIdentifier
或vendorProductIdentifier
必须在货件确认中发送。您需要发送与采购订单中收到的相同的值。 -
对于挥发性有机化合物,发送
scacCode
是强制性的。 -
如果货件标签由亚马逊提供,则集装箱部分为可选项,因为亚马逊可以访问包裹信息。商品部分必须提交。
-
发货确认中的集装箱必须指定配送方式。
需要使用 submitShipmentConfirmations
submitShipmentConfirmations
要提交货件确认,请调用 submitShipmentConfirmations
操作并传递以下参数:
名称 | 描述 | 必填项 |
---|---|---|
shipmentConfirmations | 已确认的发货清单。 类型: < ShipmentConfirmation > 排列 | 有帮助 |
请求示例
POST https://sellingpartnerapi-na.amazon.com/vendor/directFulfillment/shipping/2021-12-28/shipmentConfirmations
{
"shipmentConfirmations": [
{
"purchaseOrderNumber": "PO00050003",
"shipmentDetails": {
"shippedDate": "2019-08-07T19:56:45.632Z",
"shipmentStatus": "SHIPPED",
"isPriorityShipment": true,
"estimatedDeliveryDate": "2019-08-07T19:56:45.632Z"
},
"sellingParty": {
"partyId": "VENDORCODE"
},
"shipFromParty": {
"partyId": "VENDORWAREHOUSECODE"
},
"items": [
{
"itemSequenceNumber": 1,
"buyerProductIdentifier": "ASIN001",
"vendorProductIdentifier": "9782700001659",
"shippedQuantity": {
"amount": 100,
"unitOfMeasure": "Each"
}
},
{
"itemSequenceNumber": 2,
"buyerProductIdentifier": "ASIN002",
"vendorProductIdentifier": "9782700001659",
"shippedQuantity": {
"amount": 100,
"unitOfMeasure": "Each"
}
},
{
"itemSequenceNumber": 3,
"buyerProductIdentifier": "ASIN003",
"vendorProductIdentifier": "9782700001659",
"shippedQuantity": {
"amount": 100,
"unitOfMeasure": "Each"
}
},
{
"itemSequenceNumber": 4,
"buyerProductIdentifier": "ASIN004",
"vendorProductIdentifier": "9782700001659",
"shippedQuantity": {
"amount": 100,
"unitOfMeasure": "Each"
}
}
],
"containers": [
{
"containerType": "carton",
"containerIdentifier": "123",
"trackingNumber": "TRACK001",
"scacCode": "SCAC001",
"carrier": "ABCD001",
"shipMethod": "UPS",
"dimensions": {
"length": "10",
"width": "10",
"height": "10",
"unitOfMeasure": "IN"
},
"weight": {
"unitOfMeasure": "KG",
"value": "10"
},
"packedItems": [
{
"itemSequenceNumber": 1,
"buyerProductIdentifier": "ASIN001",
"packedQuantity": {
"amount": 100,
"unitOfMeasure": "Each"
}
}
]
},
{
"containerType": "carton",
"containerIdentifier": "234",
"trackingNumber": "TRACK002",
"scacCode": "SCAC001",
"carrier": "ABCD001",
"shipMethod": "UPS",
"dimensions": {
"length": "10",
"width": "10",
"height": "10",
"unitOfMeasure": "IN"
},
"weight": {
"unitOfMeasure": "KG",
"value": "10"
},
"packedItems": [
{
"itemSequenceNumber": 2,
"buyerProductIdentifier": "ASIN002",
"packedQuantity": {
"amount": 100,
"unitOfMeasure": "Each"
}
}
]
},
{
"containerType": "carton",
"containerIdentifier": "ABCD",
"trackingNumber": "TRACK003",
"scacCode": "SCAC001",
"carrier": "ABCD001",
"shipMethod": "UPS",
"dimensions": {
"length": "10",
"width": "10",
"height": "10",
"unitOfMeasure": "IN"
},
"weight": {
"unitOfMeasure": "KG",
"value": "10"
},
"packedItems": [
{
"itemSequenceNumber": 3,
"buyerProductIdentifier": "ASIN003",
"packedQuantity": {
"amount": 100,
"unitOfMeasure": "Each"
}
}
]
},
{
"containerType": "carton",
"containerIdentifier": "id12",
"trackingNumber": "TRACK004",
"scacCode": "SCAC001",
"carrier": "ABCD001",
"shipMethod": "UPS",
"dimensions": {
"length": "10",
"width": "10",
"height": "10",
"unitOfMeasure": "IN"
},
"weight": {
"unitOfMeasure": "KG",
"value": "10"
},
"packedItems": [
{
"itemSequenceNumber": 4,
"buyerProductIdentifier": "ASIN004",
"packedQuantity": {
"amount": 100,
"unitOfMeasure": "Each"
}
}
]
}
]
}
]
}
需要使用 submitShipmentConfirmations
submitShipmentConfirmations
成功的响应包括以下内容:
名称 | 描述 | 必填项 |
---|---|---|
transactionId | 用于识别此交易的 GUID。此值可以与 供应商 DF 交易 API 返回此交易的状态。 类型:字符串 | 有帮助 |
响应示例
{
"transactionId": "20190905010908-8a3b6901-ef20-412f-9270-21c021796605"
}
提交货件状态更新
小心
只有供应商自有承运人 (VOC) 供应商才能使用装运状态更新。这意味着供应商使用自己的承运人而不是亚马逊承运人向买家运送货物。VOC 供应商最终承担运输费用和向客户交付货物的责任。
submitShipmentStatusUpdates
操作允许供应商更新正在运往最终客户的货件的运输状态事件。VOC 供应商需要在运输阶段更新货件状态(通常称为扫描)。
然后,这些信息将在“您的订单”页面上转发给亚马逊买家,从而提高订单追踪和配送流程的可见性。
未能进行货件状态更新会导致不良的运营 KPI,例如扫描率低,最终导致库房停工。
对成功提交的货件状态更新的验证
供应商可以在中验证其发货状态更新的状态 供应商中心 > 订单 > 直接配送订单 或者通过使用 供应商 DF 交易 API。提交后,系统最多需要 10 分钟的时间来确定状态。如果供应商平台未显示发货确认的正确值,请打开 联系我们 供应商中心中的案例。有关创建发货确认的信息,请参阅 “业务要求” 部分。
下图显示了提交货件状态更新的集成工作流程:
业务需求
-
仅当您使用自己的承运人(您是 VOC 供应商)将货物运送给客户时,才使用此 API。
-
在确认发货后(通过 API 或供应商中心),使用此 API 更新货件的状态。
-
这个
trackingNumber
在发货状态中,API 必须匹配trackingNumber
发货确认中提供。如果不匹配,则发货状态更新失败。 -
一个
submitShipmentStatusUpdates
呼叫应对应于一个物理包裹。您可以通过一个 API 调用来更新多个包裹的配送状态,将它们作为一组发货状态更新进行批处理。 -
直接配送订单会导致向买家配送多个实体包裹。因此,需要更新几次货件状态以反映完整订单的完整货件状态。
-
供应商应尽可能按照“亚马逊货件状态”指南发送货件状态。
-
对于计划配送订单,供应商应发送
shipmentSchedule
数组,用于指定预计的交付时间和交付窗口。
其他字段
statusCode
和 reasonCode
是 EDI 标准(例如 ISA X12 和 EDIFACT)中使用的标准代码,用于提供特定的状态事件和状态事件的原因。我们预计会有以下特定的组合 statusCode
和 reasonCode
这决定了向最终客户发货运输阶段发生的事件。
以下是我们支持的状态和原因代码,以及它们与当前 Vendor Central 的等效性:
EDIFACT 状态码 | EDIFACT 原因码 | 操作描述 | Vendor Central UI equivalency |
---|---|---|---|
404 | 117 | 由于发生大规模事故,货件延迟 | DELAYED |
301 | 000 | 货件已送达买家 | DELIVERED |
101 | 000 | 货件已离开运营中心 | DEPARTED_FROM_FC |
201 | 000 | 货件已抵达承运设施 | IN_TRANSIT |
409 | 000 | 承运人丢失了货件 | LOST |
302 | 000 | 货件正在配送中 | OUT_FOR_DELIVERY |
407 | 000 | 收件人拒绝接受货件 | REJECTED |
416 | 000 | 货件无法配送,并将被销毁 | UNDELIVERABLE |
X12 状态码 | X12 原因码 | 操作描述 | Vendor Central UI equivalency |
---|---|---|---|
德国 | AF | 由于发生大规模事故,货件延迟 | DELAYED |
D1 | NS | 货件已送达买家 | DELIVERED |
XB | NS | 货件已离开运营中心 | DEPARTED_FROM_FC |
O1 | NS | 货件已抵达承运设施 | IN_TRANSIT |
CA | 波兰 | 承运人丢失了货件 | LOST |
OD | NS | 货件正在配送中 | OUT_FOR_DELIVERY |
A7 | AM | 收件人拒绝接受货件 | REJECTED |
AP | BG | 货件无法配送,并将被销毁 | UNDELIVERABLE |
需要使用 submitShipmentStatusUpdates
submitShipmentStatusUpdates
若要提交货件状态更新,请调用 submitShipmentStatusUpdates
操作并传递以下参数:
名称 | 描述 | 必填项 |
---|---|---|
shipmentStatusUpdates | 已确认的发货清单。 类型: < ShipmentStatusUpdate > 排列 | 有帮助 |
请求示例
POST https://sellingpartnerapi-na.amazon.com/ /vendor/directFulfillment/shipping/2021-12-28/shipmentStatusUpdates
{
"shipmentStatusUpdates": [
{
"purchaseOrderNumber": "DX00050015",
"sellingParty":
{
"partyId": "999US"
},
"shipFromParty":
{
"partyId": "ABCD"
},
"statusUpdateDetails":
{
"trackingNumber": "TRACK005",
"statusDateTime": "2020-08-07T19:56:45Z",
"statusCode": "D1",
"reasonCode": "NS",
"statusLocationAddress":
{
"name": "ABC",
"addressLine1": "1st street",
"city": "Seattle",
"countryCode": "US",
"postalCode": "124",
"stateOrRegion": "CA"
}
}
}
]
}
需要使用 submitShipmentStatusUpdates
submitShipmentStatusUpdates
成功的响应包括以下内容:
名称 | 描述 | 必填项 |
---|---|---|
transactionId | 用于识别此交易的 GUID。此值可以与 供应商 DF 交易 API 返回此交易的状态。 类型:字符串 | 有帮助 |
响应示例
{
"transactionId": "20190905010908-8a3b6901-ef20-412f-9270-21c021796605"
}
获取装箱单
getPackingSlips
操作会返回符合指定标准的订单的装箱单列表。如果您需要获取特定订单的装箱单,请改为使用 getPackingSlip
操作。
注意
这是一项受限操作,因此需要使用受限数据令牌 (RDT) 进行授权。有关更多信息,请参阅令牌 API 用例指南。
您应使用此 API 获取可供配送的采购订单的装箱单。亚马逊建议供应商在工作时间内每小时至少检查一次订单。根据您的业务量,您可以选择更频繁地进行检查。一次 API 调用最多可以获得 100 张装箱单。如果有 100 张以上的装箱单,则可以使用 nextToken
在下次请求获取下一组装箱单时将值作为参数。
下图显示了检索装箱单时的集成工作流程:
需要使用 getPackingSlips
getPackingSlips
若要检索装箱单,请调用 getPackingSlips
操作并传递以下参数:
名称 | 描述 | 必填项 |
---|---|---|
shipFromPartyId | 供应商 warehouseId 订单将由此发货。如果未指定,则结果将包含所有仓库的订单。类型:字符串 | 没有帮助 |
limit | 返回的记录数限制。 类型:整数 | 没有帮助 |
createdAfter | 在此日期和时间之后可用的装箱单将包含在结果中。必须进去 ISO 8601 日期/时间格式。 类型:字符串(日期时间) | 有帮助 |
createdBefore | 在此日期和时间之前可用的装箱单将包含在结果中。必须进去 ISO 8601 日期/时间格式。 类型:字符串(日期时间) | 有帮助 |
sortOrder | 升序排序 (ASC ) 或降序 (DESC ) 按装箱单创建日期排列。类型:枚举 ( SortOrder ) | 没有帮助 |
nextToken | 当订单数量超过指定的结果大小限制时,用于分页。代币值将在先前的 API 调用中返回。 类型:字符串 | 没有帮助 |
请求示例
GET https://sellingpartnerapi-na.amazon.com/vendor/directFulfillment/shipping/2021-12-28/packingSlips?createdBefore=2020-06-12T12:00:00-08:00&createdAfter=2020-06-12T00:00:00-08:00&limit=2&sortOrder=DESC
需要使用 getPackingSlips
getPackingSlips
成功的响应包括以下内容:
名称 | 描述 | 必填项 |
---|---|---|
pagination | 如果退回的订单超过 100 个,nextToken 会在分页响应中返回。 | 没有帮助 |
packingSlips | 包括装箱单的详细信息。 类型: < PackingSlip > 排列 | 没有帮助 |
响应示例
{
"pagination": {
"nextToken": "NEBxNEBxNEBxNR=="
},
"packingSlips": [
{
"purchaseOrderNumber": "UvgABdBjQ",
"content": "base64 encoded string",
"contentType": "application/pdf"
},
{
"purchaseOrderNumber": "VvgCDdBjR",
"content": "base64 encoded string",
"contentType": "application/pdf"
}
]
}
获取装箱单
这个 getPackingSlip
操作会返回您指定的采购订单编号的装箱单。响应包含装箱单的 base64 编码字符串。内容类型将始终为 “应用程序/pdf”。
注意
这是一项受限操作,因此需要使用受限数据令牌 (RDT) 进行授权。有关更多信息,请参阅令牌 API 用例指南。
下图显示了检索装箱单时的集成工作流程:
业务需求
- 所有订单都需要装箱单吗?
只有企业对企业 (B2B) 订单或礼品订单才需要装箱单。当值为 isPslipRequired
字段为真,订单需要装箱单。
需要使用 getPackingSlip
getPackingSlip
若要返回装箱单,请调用 getPackingSlip
操作并传递以下参数:
名称 | 描述 | 必填项 |
---|---|---|
purchaseOrderNumber | 这个 purchaseOrderNumber 用于你想要的装箱单。类型:字符串 | 有帮助 |
请求示例
GET https://sellingpartnerapi-na.amazon.com /vendor/directFulfillment/shipping/2021-12-28/packingSlips/UkP3YkKDr
需要使用 getPackingSlip
getPackingSlip
成功的响应包括以下内容:
名称 | 描述 | 必填项 |
---|---|---|
purchaseOrderNumber | 货件的采购订单号。 类型:字符串 | 有帮助 |
content | 装箱单 PDF 的 Base64 编码字符串。 类型:字符串 | 有帮助 |
contentType | 文件的格式(例如 PDF、JPEG)。 类型:枚举 ( ContentType ) | 没有帮助 |
响应示例
{
"purchaseOrderNumber": "UvgABdBjQ",
"content": "base64 encoded string",
"contentType": "application/pdf"
}
获取客户发票(仅限印度)
这个 getCustomerInvoices
操作会返回所有符合您指定筛选条件的采购订单的客户发票。
重要说明
这个
getCustomerInvoices
在印度市场,操作是强制性的。它不适用于任何其他市场。
亚马逊鼓励供应商在工作时间内每小时至少检查一次客户发票。根据您的业务量,您可以选择更频繁地进行检查。在一次 API 调用中,您最多可以获得 100 张客户发票。如果客户发票超过 100 张,则可以使用 nextToken
在下次获取下一组客户发票的请求中将值作为参数。
注意
这是一项受限操作,因此需要使用受限数据令牌 (RDT) 进行授权。有关更多信息,请参阅令牌 API 用例指南。
下图显示了检索客户发票时的集成工作流程:
需要使用 getCustomerInvoices
getCustomerInvoices
若要返回客户发票,请调用 getCustomerInvoices
操作并传递以下参数:
名称 | 描述 | 必填项 |
---|---|---|
shipFromPartyId | 供应商 warehouseId 订单将由此发货。如果未指定,则结果将包含所有仓库的订单。类型:字符串 | 没有帮助 |
limit | 返回的记录数限制。 类型:整数 | 没有帮助 |
createdAfter | 在此日期和时间之后可用的订单将包含在结果中。必须进去 ISO 8601 日期/时间格式。 类型:字符串(日期时间) | 有帮助 |
createdBefore | 在此日期和时间之前可用的订单将包含在结果中。必须进去 ISO 8601 日期/时间格式。 类型:字符串(日期时间) | 有帮助 |
sortOrder | 升序排序 (ASC ) 或降序 (DESC ) 按订单创建日期排序。类型:枚举 ( SortOrder ) | 没有帮助 |
nextToken | 当船舶标签数量超过指定的结果大小限制时,用于分页。代币值将在先前的 API 调用中返回。 类型:字符串 | 没有帮助 |
请求示例
GET https://sellingpartnerapi-na.amazon.com/vendor/directFulfillment/shipping/2021-12-28/customerInvoices?limit=2&createdAfter=2020-02-15T14:00:00-08:00&createdBefore=2020-02-20T00:00:00-08:00&sortOrder=DESC
需要使用 getCustomerInvoices
getCustomerInvoices
成功的响应包括以下内容:
名称 | 描述 | 必填项 |
---|---|---|
pagination | 如果退回的客户发票超过 100 张, nextToken 在分页响应中返回。类型: 分页 | 没有帮助 |
customerInvoices | 客户发票清单。 类型: < CustomerInvoice > 排列 | 没有帮助 |
响应示例
{
"pagination": {
"nextToken": "MDAwMDAwMDAwMQ=="
},
"customerInvoices": [
{
"purchaseOrderNumber": "PO98676856",
"content": "base 64 content goes here"
}
]
}
获取客户发票(仅限印度)
getCustomerInvoice
操作会返回有关您使用采购订单编号指定的客户发票的信息。响应包括该采购订单的完整客户发票信息。
注意
这是一项受限操作,因此需要使用受限数据令牌 (RDT) 进行授权。有关更多信息,请参阅令牌 API 用例指南。
您还可以使用此 API 获取任何客户发票的详细信息(在供应商上线 API 后,从过去 6 个月的滚动窗口起的 7 天时间范围内)。
下图显示了返回客户发票的集成工作流程:
业务需求
有哪些类型的客户发票可供下载?
客户发票是以二进制 64 字符串格式编码的 PDF 文件。IN 地区的所有采购订单都应创建客户发票,并随货件一起发送。
需要使用 getCustomerInvoice
getCustomerInvoice
若要返回客户发票,请调用 getCustomerInvoice
操作并传递以下参数:
名称 | 描述 | 必填项 |
---|---|---|
purchaseOrderNumber | 要退回发票的货件的采购订单号。 类型:字符串 | 有帮助 |
请求示例
GET https://sellingpartnerapi-na.amazon.com/vendor/directFulfillment/shipping/2021-12-28/shippingLabels/2JK3S9VC
需要使用 getCustomerInvoice
getCustomerInvoice
成功的响应包括以下内容:
名称 | 描述 | 必填项 |
---|---|---|
purchaseOrderNumber | 此订单的采购订单号。 类型:字符串 | 有帮助 |
content | Base64 编码的客户发票。 类型:字符串 | 有帮助 |
响应示例
{
"purchaseOrderNumber": "PO98676856",
"content": "base 64 encoded string"
}
创建容器标签
使用 createContainerLabel
操作,为每件托盘装货申请并接收亚马逊的托盘标签。响应中包含标签类型和托盘编号的 4X6 可打印托盘标签。
业务需求
这个 createContainerLabel
操作不支持在一个 API 调用中请求多个托盘标签。如果您想检索多个托拍的托拍标签,则必须发送多个托盘 createContainerLabel
并行请求。
需要使用 createContainerLabel
createContainerLabel
若要申请货件标签,请调用 createContainerLabel
操作并传递以下参数:
名称 | 描述 | 必填项 |
---|---|---|
sellingParty | 卖方或供应商的 ID。类型: PartyIdentification | 有帮助 |
shipFromParty | 供应商的仓库代码。类型: PartyIdentification | 有帮助 |
vendorContainerId | 供应商的容器唯一标识符。类型: VendorContainerId | 有帮助 |
carrierId | 集装箱(托盘)标签的载体。类型: CarrierId | 有帮助 |
packages | 将货件包裹与容器关联的包裹对象数组。类型: Packages | 有帮助 |
请求示例
POST https://sellingpartnerapi-na.amazon.com/vendor/directFulfillment/shipping/2021-12-28/containerLabel
{
"sellingParty": {
"partyId": "999US"
},
"shipFromParty": {
"partyId": "ABCD"
},
"vendorContainerId": "000011189212211212",
"carrierId": "SWA",
"packages": [
{
"packageTrackingNumber": "TBA134335066000"
},
{
"packageTrackingNumber": "TBA214335089000"
},
{
"packageTrackingNumber": "TBA311235066000"
}
]
}
需要使用 createContainerLabel
createContainerLabel
成功的响应包括以下内容:
名称 | 描述 | 必填项 |
---|---|---|
containerTrackingNumber | 承运人提供的集装箱(托盘)追踪标识符。类型:字符串 | 有帮助 |
content | 编码为 Base64 字符串的容器标签内容。类型:字符串 | 有帮助 |
format | 容器标签的格式。类型: ContainerLabelFormat | 有帮助 |
响应示例
{
"containerLabel": {
"containerTrackingNumber": "TBA134335066000",
"content": "Base64 encoded string",
"format": "PNG"
}
}
Updated 12 days ago