amzn / selling-partner-api-models

This repository contains OpenAPI models for developers to use when developing software to call Selling Partner APIs.
Apache License 2.0
571 stars 730 forks source link

Fulfillment Inbound API 2024-03-20. Inbound plan shipments are not marked as "ReadyForPickup" after inbound plan creation. #4114

Open emakunin opened 3 weeks ago

emakunin commented 3 weeks ago

Hello,

I'm using Fulfillment Inbound API 2024-03-20 to create inbound plan. For the plans I've created the inbound shipments are marked as "working" in seller central. Once I click "download shipment labels" in SellerCentral the status changes on ReadyForPickup. However when I download the labels using getlabels and "DEFAULT" labels type as it's recommended in other bugs here.

Could you please help me with next questions?

  1. Does the SellerCentral status affect real physical shipments? Does it mean that carriers will not come to pick up packages? In my case I used Amazon parner carriers.
  2. How can I changes the status? Our business team is confused when they see "half baked" statuses in SellerCentral.
  3. When inbound plan will be marked as SHIPPED? Does it happen when carriers report "pick up event" to amazon for every single shipment? E.g if I have 3 shipments in my plan. When will the plan be marked as shipped?
  4. Can I assume that the inbound plan is "SHIPPED" once I have shipment confirmation ids for every shipment and tracking details are provided?

Thank you

emakunin commented 2 weeks ago

Hi @mafge, Hi @puppsupr,

Could you please take a look? Do you have any official doc/guidance?

puppsupr commented 2 weeks ago

Hi,

  1. Does the SellerCentral status affect real physical shipments? Does it mean that carriers will not come to pick up packages? In my case I used Amazon partner carriers. -> If you’re using a partnered carrier, we’ll track your shipments and change the status to Shipped for you. After you print the label the shipment status changes from working to Ready to ship. After confirming, hand your boxes to your carrier by dropping them off at a local carrier drop-off facility or by contacting the carrier for pickup services (an additional fee may apply). Then track the shipment using the tracking ID we provide.

  2. How can I changes the status? Our business team is confused when they see "half baked" statuses in SellerCentral. When inbound plan will be marked as SHIPPED? Does it happen when carriers report "pick up event" to amazon for every single shipment? E.g if I have 3 shipments in my plan. When will the plan be marked as shipped? For Amazon partnered carrier check via listInboundPlanboxes to view the trackingIDs to track.

  3. Can I assume that the inbound plan is "SHIPPED" once I have shipment confirmation ids for every shipment and tracking details are provided? Refer above. Amazon will mark it as Shipped after receiving the order.

emakunin commented 2 weeks ago

Hi @puppsupr ,

Thank you for the reply.

After you print the label the shipment status changes from working to Ready to ship.

It doesn't happen when I print the labels through the API. only when I do it manually. That's why I have the question.

If you’re using a partnered carrier

What is a case for non-partner carrier?

For Amazon partnered carrier check via listInboundPlanboxes to view the trackingIDs to track.

What do the shipmentStatus and inboundPlanAstatus represent then? I have a workflow that creates the shipmens, asks for tracking details (for non-amazon-partner carriers) and then I need to make sure that the shipments actually are accepted. I was going to use SHIPPED state for this. Since when I have shipment confirmation ids, I still can supply tracking numbers that are not valid, or amazon doesn't accept them or smth like it. That's why I need a reference point that can tell me: "OK this plan is fine for all shipments". Does your reply mean that the official guidance is to check every shingle shipment separately and to not rely on the plan status?

Can I assume that the inbound plan is "SHIPPED" once I have shipment confirmation ids for every shipment and tracking details are provided? Refer above. Amazon will mark it as Shipped after receiving the order.

You refer to the "shipment status" while my concern is "inbound plan status". One inbound plan can have many shipments. I can see that it's not updated though even when there's only one shipment. See https://github.com/amzn/selling-partner-api-models/issues/4128

puppsupr commented 2 weeks ago

Hi @puppsupr ,

Thank you for the reply.

After you print the label the shipment status changes from working to Ready to ship.

It doesn't happen when I print the labels through the API. only when I do it manually. That's why I have the question.

If you’re using a partnered carrier

What is a case for non-partner carrier?

For Amazon partnered carrier check via listInboundPlanboxes to view the trackingIDs to track.

What do the shipmentStatus and inboundPlanAstatus represent then? I have a workflow that creates the shipmens, asks for tracking details (for non-amazon-partner carriers) and then I need to make sure that the shipments actually are accepted. I was going to use SHIPPED state for this. Since when I have shipment confirmation ids, I still can supply tracking numbers that are not valid, or amazon doesn't accept them or smth like it. That's why I need a reference point that can tell me: "OK this plan is fine for all shipments". Does your reply mean that the official guidance is to check every shingle shipment separately and to not rely on the plan status?

Can I assume that the inbound plan is "SHIPPED" once I have shipment confirmation ids for every shipment and tracking details are provided? Refer above. Amazon will mark it as Shipped after receiving the order.

You refer to the "shipment status" while my concern is "inbound plan status". One inbound plan can have many shipments. I can see that it's not updated though even when there's only one shipment. See #4128

Once you print the labels, shipment status on getShipment call changes to "Ready to ship", after that once you get trackingIds from the carrier, update the boxes with the IDs you got using updateShipmentTracking Details API, Once you’ve entered valid tracking details, the status of your shipment will change from Ready to ship to Shipped.

emakunin commented 2 weeks ago

@puppsupr,

Ok, but I need to do it via the API, not on seller central. That's the main point.

puppsupr commented 2 weeks ago

are the APIs getLabels, getShipment and updateShipmentTracking not working for you ?

emakunin commented 2 weeks ago

No it does not.

puppsupr commented 2 weeks ago

Can you please provide request, responses along with inboundPlanId to check more on the same.

emakunin commented 1 week ago

Hi @puppsupr,

It is just a usual inbound plan that has amazon partner carrier (I tested with "Other" carriers and after I supply tracking info the shipments are marked as SHIPPED)

// Plan Creation
POST https://sellingpartnerapi-eu.amazon.com/inbound/fba/2024-03-20/inboundPlans Headers[Authorization=AWS4-HMAC-SHA256 Credential=***], 
Body:
--
{     "destinationMarketplaces": [         "A1PA6795UKMFR9"     ],     "items": [         {             "expiration": null,             "labelOwner": "NONE",             "manufacturingLotCode": null,             "msku": "XXXXp3v4-FBA",             "prepOwner": "NONE",             "quantity": 40         }     ],     "name": "H1F-ZZD",     "sourceAddress": { *** }

Response: 
---
Body:
{     "operationId": "f97c2e20-0f34-4018-9cda-f4e8bf2b22d8",     "inboundPlanId": "wfc8b1b9b7-fd36-47b9-af23-4c98d251649b" }

//... SET ALL OTHER PARAMS

// GET https://sellingpartnerapi-eu.amazon.com/inbound/fba/2024-03-20/inboundPlans/wfc8b1b9b7-fd36-47b9-af23-4c98d251649b/shipments/sh29063b36-8b23-4cf1-a98c-3d7bc4a7d25d, Status[200 ], Headers[***], Body:
--

{     "selectedTransportationOptionId": "to58126ea3-e59b-4076-9e60-fccbd213d6a5",     "contactInformation": {         ***    },     "selectedDeliveryWindow": {         "availabilityType": "AVAILABLE",         "endDate": "2024-09-17T00:00Z",         "deliveryWindowOptionId": "dw0e616f32-ed40-4f29-9ef1-5434d788b99f",         "editableUntil": "2024-09-11T00:00Z",         "startDate": "2024-09-11T00:00Z"     },     "shipmentId": "sh29063b36-8b23-4cf1-a98c-3d7bc4a7d25d",     "destination": {         "address": {             ****     },     "name": "FBA STA (02/09/2024 12:03)-HAJ1",     "dates": {},     "shipmentConfirmationId": "FBA15JG0XQQ4",     "source": {         ***         },         "sourceType": "SELLER_FACILITY"     },     "trackingDetails": {         "ltlTrackingDetail": {},         "spdTrackingDetail": {             "spdTrackingItems": [                 {                     "boxId": "FBA15JG0XQQ4U000001",                     "trackingId": "812447481391"                 },                 {                     "boxId": "FBA15JG0XQQ4U000002",                     "trackingId": "812447481408"                 }             ]         }     },     "placementOptionId": "pl9e368b7a-728e-428a-93cf-6c0e07de5feb",     "status": "WORKING" }

// now print my labels

GET https://sellingpartnerapi-eu.amazon.com/fba/inbound/v0/shipments/FBA15JG0XQQ4/labels?PageType=PackageLabel_A4_2&LabelType=DEFAULT&PageSize=2&PageStartIndex=0 Headers[***], Empty body
--
Response: GET 
{
"payload": {
"DownloadURL":"https://fba-labels-prod-eu.s3.eu-west-1.amazonaws.com/FBA15JG0XQQ4-1725278657079.pdf?X-Amz-Algorithm=***"
}
}
puppsupr commented 3 days ago

Thanks, checking with the team on this.