对接亚马逊 SP-API(Amazon Selling Partner API) 第六章:Fulfillment Inbound 模块
1. API 對(duì)比
| CreateInboundShipmentPlan | createInboundShipmentPlan | 返回創(chuàng)建 入庫(kù)貨件所需的信息。 |
| CreateInboundShipment | createInboundShipment | 創(chuàng)建入庫(kù)貨件。 |
| UpdateInboundShipment | updateInboundShipment | 更新現(xiàn)有入庫(kù)貨件。 |
| PutTransportContent | putTransportDetails | 向亞馬遜發(fā)送入庫(kù)貨件的運(yùn)輸信息。 |
| EstimateTransportRequest | estimateTransport | 請(qǐng)求入庫(kù)貨件的預(yù)計(jì)運(yùn)費(fèi)。 |
| GetTransportContent | getTransportDetails | 返回入庫(kù)貨件的當(dāng)前運(yùn)輸信息。 |
| ConfirmTransportRequest | confirmTransport | 確認(rèn)您接受亞馬遜合作承運(yùn)人的預(yù)計(jì)運(yùn)費(fèi),并請(qǐng)求亞馬遜合作承運(yùn)人配送您的入庫(kù)貨件。 |
| VoidTransportRequest | voidTransport | 取消之前確認(rèn)的使用亞馬遜合作承運(yùn)人配送入庫(kù)貨件的請(qǐng)求。 |
| GetPackageLabels | getLabels | 返回用于打印入庫(kù)貨件包裹標(biāo)簽的 PDF 文檔數(shù)據(jù)。 |
| GetBillOfLading | getBillOfLading | 返回用于打印入庫(kù)貨件提單的 PDF 文檔數(shù)據(jù)。 |
| ListInboundShipments | getShipments | 根據(jù)您指定的條件返回入庫(kù)貨件列表 |
| ListInboundShipmentsByNextToken | 使用?NextToken?參數(shù)返回下一頁(yè)入庫(kù)貨件。 | |
| ListInboundShipmentItems | getShipmentItems getShipmentItemsByShipmentId | 返回指定入庫(kù)貨件的商品列表或在指定時(shí)間段內(nèi)更新的商品列表。 |
| ListInboundShipmentItemsByNextToken | 使用?NextToken?參數(shù)返回下一頁(yè)入庫(kù)貨件商品。 | |
| GetServiceStatus | 返回?“配送入庫(kù)貨件 API”部分?的運(yùn)行狀態(tài)。 | |
| getInboundGuidance getPreorderInfo confirmPreorder getPrepInstructions |
2.?MWS 流程
3. SP-API? 流程
????????3.1. 創(chuàng)建貨件計(jì)劃:createInboundShipmentPlan
參照 MWS 流程?步驟 2 - 創(chuàng)建一個(gè)入庫(kù)貨件計(jì)劃
備注:只創(chuàng)建貨件計(jì)劃是無(wú)法在亞馬遜后臺(tái)查詢(xún)的,確認(rèn)了貨件計(jì)劃才可以查得到。
public void createInboundShipmentPlanTest() throws ApiException {CreateInboundShipmentPlanRequest body = new CreateInboundShipmentPlanRequest();// AddressAddress address = new Address();address.setName("XXX");address.setAddressLine1("XXX");address.setCity("XXX");address.setStateOrProvinceCode("XXX");address.setCountryCode("CA");address.setPostalCode("000000");body.setShipFromAddress(address);/** LabelPrepPreference 是您在 CreateInboundShipmentPlan 操作使用的一個(gè)關(guān)鍵參數(shù)。此參數(shù)指明了您將要發(fā)送至亞馬遜物流的商品的標(biāo)簽準(zhǔn)備首選項(xiàng)。* 以下是 LabelPrepPreference 的有效值:* SELLER_LABEL - 指明您將自行為每個(gè)需要商品標(biāo)簽的商品(不是無(wú)需貼標(biāo)簽的混雜庫(kù)存中的商品)貼標(biāo)。* AMAZON_LABEL_ONLY - 亞馬遜將為入庫(kù)貨件中需要標(biāo)簽的商品貼標(biāo)。如果亞馬遜確定沒(méi)有成功對(duì)商品貼標(biāo)所需的信息,入庫(kù)貨件計(jì)劃不會(huì)包含該商品。* AMAZON_LABEL_PREFERRED - 亞馬遜將為入庫(kù)貨件中需要標(biāo)簽的商品貼標(biāo)。如果亞馬遜確定沒(méi)有對(duì)商品成功貼標(biāo)所需的信息, 入庫(kù)貨件計(jì)劃會(huì)包含該商品,且賣(mài)家必須為其貼標(biāo)。* 注: 除非您注冊(cè)了“亞馬遜物流貼標(biāo)服務(wù)”,否則 SELLER_LABEL 即為 LabelPrepPreference 的唯一有效值。“亞馬遜物流貼標(biāo)服務(wù)”不適用于印度 (IN)。* */body.setLabelPrepPreference(LabelPrepPreference.SELLER_LABEL);// InboundShipmentPlanRequestItemsInboundShipmentPlanRequestItemList inboundShipmentPlanRequestItems = new InboundShipmentPlanRequestItemList();InboundShipmentPlanRequestItem inboundShipmentPlanRequestItem = new InboundShipmentPlanRequestItem();inboundShipmentPlanRequestItem.setSellerSKU("XXX");inboundShipmentPlanRequestItem.setQuantity(1000);inboundShipmentPlanRequestItems.add(inboundShipmentPlanRequestItem);body.setInboundShipmentPlanRequestItems(inboundShipmentPlanRequestItems);CreateInboundShipmentPlanResponse response = api.createInboundShipmentPlan(body);}? ? ? ? ?題外: 分倉(cāng) --> 合倉(cāng)
只創(chuàng)建了一個(gè)SKU的計(jì)劃,卻有兩個(gè) DestinationFulfillmentCenterId。
????????解決:(感謝阿科大佬)
備注:需要將賬號(hào)默認(rèn)庫(kù)存配置設(shè)置成合倉(cāng)。合倉(cāng)的費(fèi)用會(huì)非常貴!(運(yùn)營(yíng)立馬掐滅了我修改配置想法..)
路徑:Account Setting --> Fulfillment by Amazon --> Inbound Setting --> Inventory Placement Option --> Inventory Placement Service
配置完后先測(cè)試一下,如果解決了就沒(méi)問(wèn)題了。我修改完配置已經(jīng)變成一個(gè)了。
?不行的話,再執(zhí)行下列操作(多個(gè)SKU的情況下需要用到)。
調(diào)用 getPrepInstructions 獲取 PrepInstruction。(沒(méi)有則為"NONE")
在 Item 中添加查詢(xún)出來(lái)的參數(shù)。
// 避免分倉(cāng)PrepDetailsList prepDetails = new PrepDetailsList();PrepDetails prepDetail = new PrepDetails();prepDetail.setPrepInstruction(PrepInstruction.LABELING);prepDetail.setPrepOwner(PrepOwner.SELLER);prepDetails.add(prepDetail);inboundShipmentPlanRequestItem.setPrepDetailsList(prepDetails);????????BUG 1:?Reason: XX State field must be two characters.
{"errors": [{"code": "InvalidInput","message": " Reason: XX State field must be two characters.","details": ""}] }????????解決:
參數(shù)中 AddressLine 和 CountryCode 必須是一致的。不能 AddressLine 是CA地址,CountryCode 填US。
????????BUG 2:?NOT_IN_PRODUCT_CATALOG
<Error><Type>Sender</Type><Code>InvalidRequestException</Code><Message>This operation may be partially successful, Please check the status. Reason: [Item(s) ineligible from being inbounded, with reason: NOT_IN_PRODUCT_CATALOG. Corresponding items for the error: [[FNSKU: XXX, MSKU: XXX]]].</Message> </Error>????????解決:
在亞馬遜后臺(tái)檢查該產(chǎn)品是否為FBA發(fā)貨
位置:后臺(tái) --> Inventory --> Manage?FBA Inventory --> 相關(guān)SKU -->?配送類(lèi)型更改為【所有】
? ? ? ? 3.2. 確認(rèn)貨件計(jì)劃:createInboundShipment
參照 MWS 流程?步驟 4 - 創(chuàng)建一個(gè)入庫(kù)貨件
? ? ? ? 3.3. 上傳資料(沒(méi)賬號(hào)測(cè)試了,等以后處理了在補(bǔ)充資料。如果有愿意提供賬號(hào)的可以聯(lián)系我!)
Feeds API 使用方式參照官方教程:Feeds API v2021-06-30 Use Case Guide
3.3.1. 上傳紙箱內(nèi)容
????????說(shuō)明:上傳 xml。
Feed Type: POST_FBA_INBOUND_CARTON_CONTENTS
3.3.2. 上傳箱子尺寸
????????說(shuō)明:上傳 excel。
Feed Type: POST_FLAT_FILE_FROM_EXCEL_FBA_CREATE_CARTON_INFO(此類(lèi)型為隱藏類(lèi)型,一般人我不告訴他們的,且知且珍惜)
? ? ? ? 3.3. 發(fā)貨:updateInboundShipment
參照 MWS 流程?步驟 9 - 將您的貨件標(biāo)記為已發(fā)貨
? ? ? ? 3.4. 獲取貼箱標(biāo):getLabels
備注:貼箱標(biāo)是需要發(fā)給物流商的。
@Testpublic void getLabelsTest() throws ApiException {String shipmentId = "FBAAAAAAAA";String pageType = "PackageLabel_Letter_2";String labelType = "BARCODE_2D";Integer numberOfPackages = null;List<String> packageLabelsToPrint = null;Integer numberOfPallets = null;Integer pageSize = null;Integer pageStartIndex = null;GetLabelsResponse response = api.getLabels(shipmentId, pageType, labelType, numberOfPackages, packageLabelsToPrint, numberOfPallets, pageSize, pageStartIndex);// TODO: test validations}然后就可以獲取到一個(gè)下載的URL。(URL在15秒后會(huì)失效)?
總結(jié)
以上是生活随笔為你收集整理的对接亚马逊 SP-API(Amazon Selling Partner API) 第六章:Fulfillment Inbound 模块的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: UNI-APP,推广二维码页面实现
- 下一篇: 线性代数:方程组