SP-API 货件上传流程
转:https://zhuanlan.zhihu.com/p/457170261
自研究的fba非承运人流程,如有问题,望指出,谢谢
创建货件计划:createInboundShipmentPlan
确认创建货件:createInboundShipment
修改货件的运输信息:putTransportDetails
上传箱子尺寸信息:POST_FLAT_FILE_FROM_EXCEL_FBA_CREATE_CARTON_INFO
上传亚马逊纸箱内容:POST_FBA_INBOUND_CARTON_CONTENTS
打印标签:getLabels
更改为发货:updateInboundShipment
1.创建货件计划:createInboundShipmentPlan
调用createInboundShipmentPlan创建发货申请,返回货物预计仓库,大概率分仓,不过分仓也是可以和仓的。
2.确认创建货件:createInboundShipment
把上一步的的返回值带入接口中,即可创建货件,此时在亚马逊后台存在该货件;如果只调用计划不去确认创建,
货件计划是不会存在亚马逊后台的。
3.修改货件的运输信息:putTransportDetails
由于我自己做的是亚马逊fba,这一步的时候,我只对IsPartnered=false,ShipmentType=SP,TransportDetails中使用了NonPartneredSmallParcelData实体,传参CarrierName为other,PackageList中的追踪编号可传“”或者任意值
坑:当你确认创建货件之后,亚马逊默认纸箱数量为1,如果这时候你的PackageList的size大于1的时候,接口报错信息大概为:当前纸箱数量为1,实际上你传了2个
4.上传箱子尺寸信息:POST_FLAT_FILE_FROM_EXCEL_FBA_CREATE_CARTON_INFO
这步就很骚了,之前我被卡了很久,后来我知道了答案,不过目前就fba来说,我知道的有二种答案:一种是不需要上传纸箱尺寸,他们已经发货进亚马逊仓库很久了,一直没出错;另一种就是传递尺寸信息,目前我正使用这种,也试过发货去us,目前货件已被亚马逊接受并上架售卖。

这就是上传的excel格式
接下来的步骤估计不用说了,大部分国人都被卡在上传箱子尺寸信息
5.上传亚马逊纸箱内容:POST_FBA_INBOUND_CARTON_CONTENTS
拼装纸箱内容信息:
<AmazonEnvelope> <MessageType>CartonContentsRequest</MessageType> <Message> <MessageID>1</MessageID> <CartonContentsRequest> <ShipmentId>XXXXKQN8</ShipmentId> <NumCartons>3</NumCartons> <Carton> <CartonId>1</CartonId> <Item><SKU>FBA-XXX80</SKU> <QuantityShipped>2</QuantityShipped> <QuantityInCase>2</QuantityInCase> </Item> </Carton> <Carton><CartonId>2</CartonId> <Item><SKU>FBA-DDESXX11</SKU><QuantityShipped>5</QuantityShipped><QuantityInCase>5</QuantityInCase></Item> </Carton> <Carton><CartonId>3</CartonId><Item><SKU>FBA-XXX</SKU><QuantityShipped>5</QuantityShipped><QuantityInCase>5</QuantityInCase></Item></Carton></CartonContentsRequest></Message></AmazonEnvelope>
在这边建议使用亚马逊标签 标号,比如2个箱子,那么即为:U000001、U000002
接上坑:当你在使用POST_FBA_INBOUND_CARTON_CONTENTS进行纸箱内容上传的时候,如按照3中坑去操作,这时候更改内容为2个箱子,这时候你再去调用getTransportDetails去查看,你会发现,在你putTransportDetails的时候,put和箱子数量不同的时候报错,但是你在改为put错的时候箱子数量 ,那你之前put的追踪编号是在的