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
618 stars 742 forks source link

GET Labels for shipment #371

Closed tokicnikolaus closed 6 months ago

tokicnikolaus commented 3 years ago

I have no previous experience with Amazon MWS so maybe I'm not understanding the whole process flow. Now I'm trying to get labels for shipments I manually created over the Seller Central UI. Shipments I created are successfully fetched (Operation: getShipments) and now I have issue when getting the labels.

Here is my error response from API:

{'errors': [{'code': 'InvalidInput',
   'message': 'Provided SellerCartonIds are not valid: [[FBAxxxxxxxxxU000001]] for Shipment: [FBAxxxxxxxxx]',
   'details': ''}]}

If I print labels from UI FBAxxxxxxxxxU000001 label is printed in pdf - also found out about naming here

In general, I don't know where to find parameter of package labels PackageLabelsToPrint from GetLabelDocs also I'm not sure if this parameter is same as cartonIdList parameter?

Here are data if you don't provide PackageLabelsToPrint (in docs not required! ) query param in request: Headers and url:

url : 'https://sellingpartnerapi-eu.amazon.com/fba/inbound/v0/shipments/FBA1xxxxx/labels?PageType=PackageLabel_A4_2&LabelType=UNIQUE'
{
    'User-Agent': 'python-requests/2.25.1 auth-aws-sigv4/0.6',
    'Accept-Encoding': 'gzip, deflate',
    'Accept': '*/*',
    'Connection': 'keep-alive',
    'x-amz-access-token': 'Atza|Ixxxxw',
    'Host': 'sellingpartnerapi-eu.amazon.com',
    'X-AMZ-Date': '20210122T130603Z',
    'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',
    'X-Amz-Security-Token': 'xxxx',
    'Authorization': 'AWS4-HMAC-SHA256 Credential=Axxx/20210122/eu-west-1/execute-api/aws4_request, SignedHeaders=content-type;host;x-amz-date;x-amz-security-token, Signature=c580d12b684bcaf54c9076afaa01441f17cab301ba8af360a99b38717aec554c'
}
response:
{'errors': [{'code': 'InvalidInput',
   'message': "1 validation error detected: Value null at 'cartonIdList' failed to satisfy constraint: Member must not be null",
   'details': ''}]}

I spent a LOT of time on this already and it gets a bit annoying!

Thanks!

johnkw commented 3 years ago

Confirmed there seem to be multiple bugs here.

The API is returning error strings for "cartonIdList", when it seems to be referring to "PackageLabelsToPrint" in the docs. Which is wrong, the API or the doc?

Is the "carton ID" that "U000" string, or an integer, or something else? I tried a few guesses and nothing worked. In any case it needs to be documented.

(I thought I'd try to download the BoxContent for the shipment to see what IDs it used there, but I can't find an API to download (OR CREATE!) BoxContent. Is that critical feature totally missing right now? Seems impossible to actually create a real shipment without it.)

tokicnikolaus commented 3 years ago

I'm also not sure which is wrong but when I provide PackageLabelsToPrint parameter returning message is different.

From the docs PackageLabelsToPrint should be array of strings. I also tried a lot different options and nothing worked.

Not sure why I can't find cartonId in Seller Central so I think we first need to upload BoxContent over feeds api here I assume that after that we get cartonIds which could be used to get labels.

Please let me know if you find something that makes sense :)

johnkw commented 3 years ago

When the API returns:

'message': "1 validation error detected: Value null at 'cartonIdList' failed to satisfy constraint: Member must not be null",

I think it's just a typo. It should say:

'message': "1 validation error detected: Value null at 'PackageLabelsToPrint' failed to satisfy constraint: Member must not be null",

(That would be pretty sad if they make this better JSON API, but still require that archaic "feeds" thing for box content.)

educatornum commented 3 years ago

I have no previous experience with Amazon MWS so maybe I'm not understanding the whole process flow. Now I'm trying to get labels for shipments I manually created over the Seller Central UI. Shipments I created are successfully fetched (Operation: getShipments) and now I have issue when getting the labels.

Here is my error response from API:

{'errors': [{'code': 'InvalidInput',
   'message': 'Provided SellerCartonIds are not valid: [[FBAxxxxxxxxxU000001]] for Shipment: [FBAxxxxxxxxx]',
   'details': ''}]}

If I print labels from UI FBAxxxxxxxxxU000001 label is printed in pdf - also found out about naming here

In general, I don't know where to find parameter of package labels PackageLabelsToPrint from GetLabelDocs also I'm not sure if this parameter is same as cartonIdList parameter?

Here are data if you don't provide PackageLabelsToPrint (in docs not required! ) query param in request: Headers and url:

url : 'https://sellingpartnerapi-eu.amazon.com/fba/inbound/v0/shipments/FBA1xxxxx/labels?PageType=PackageLabel_A4_2&LabelType=UNIQUE'
{
  'User-Agent': 'python-requests/2.25.1 auth-aws-sigv4/0.6',
  'Accept-Encoding': 'gzip, deflate',
  'Accept': '*/*',
  'Connection': 'keep-alive',
  'x-amz-access-token': 'Atza|Ixxxxw',
  'Host': 'sellingpartnerapi-eu.amazon.com',
  'X-AMZ-Date': '20210122T130603Z',
  'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8',
  'X-Amz-Security-Token': 'xxxx',
  'Authorization': 'AWS4-HMAC-SHA256 Credential=Axxx/20210122/eu-west-1/execute-api/aws4_request, SignedHeaders=content-type;host;x-amz-date;x-amz-security-token, Signature=c580d12b684bcaf54c9076afaa01441f17cab301ba8af360a99b38717aec554c'
}
response:
{'errors': [{'code': 'InvalidInput',
   'message': "1 validation error detected: Value null at 'cartonIdList' failed to satisfy constraint: Member must not be null",
   'details': ''}]}

I spent a LOT of time on this already and it gets a bit annoying!

Thanks!

Could you check LabelType, If your LabelType is UNIQUE, first submit feed XML file.

Here is the XML template: https://images-na.ssl-images-amazon.com/images/G/01/rainier/help/xsd/release_4_1/CartonContentsRequest.xsd feedType: POST_FBA_INBOUND_CARTON_CONTENTS

It is FEED API doc https://github.com/amzn/selling-partner-api-docs/blob/main/references/feeds-api/feeds_2020-09-04.md

johnkw commented 3 years ago

In my case I've been doing the BoxContents step manually on the web, because the whole "FEED" thing seems like a ridiculous overly-complicated archaic hack, and hopefully that's all going away soon once MWS goes away and SP-API is the one and only API. I wonder if doing BoxContents on the web means it's impossible to download labels via SP-API? That would sure be a strange limitation, and one worth documenting and fixing.

johnkw commented 3 years ago

I got this to work after using a FEED. The undocumented thing that it wants is a comma-separated string of whatever you used in <CartonId> for the POST_FBA_INBOUND_CARTON_CONTENTS.

In our case a working query pre-urlencode is: 'PackageLabelsToPrint':'1,2,3,4,5' since we named the cartons as counting integer strings in the XML feed.

Apparently when you create the box content on the web it's either impossible to then use the API to get labels, or maybe it's possible, but there's some hidden secret carton ID strings like "sellercentral1,sellercentral2,..."

Quite a complicated API for this one. It sure would be good if PackageLabelsToPrint was an optional field. Also there really needs to be a way to retrieve those carton strings later.

johnkw commented 3 years ago

One simple API improvement to start would be to require the carton IDs to be counting integers starting with 1. If you don't use that convention, then it's incredibly difficult to associate your carton with the PDF label. This flaw in the API was laid out in the stackoverflow linked in comment 0 of this bug.

This is not mentioned at all on https://github.com/amzn/selling-partner-api-docs/blob/main/references/fulfillment-inbound-api/fulfillmentInboundV0.md#getlabels - at the very least it should be immediately documented as a best practice to always specify carton IDs as counting integers starting with 1.

lzy6666666 commented 3 years ago

Hello, has this problem been solved? I can download the PDF document with labelType=PALLET, but the document is blank

johnkw commented 3 years ago

It works - it's just not very user-friendly.

lzy6666666 commented 3 years ago

它可以工作-并不是非常用户友好。

Must use labelType=UNIQUE and combine it with feed XML?

educatornum commented 3 years ago

I wanna download the Japanese PDF file, but the pdf was only in English.

My marketplaceId is [A1VC38T7YXB528]

I have followed these steps.

**1. Create Feed document

  1. Create Feed with an XML file
  2. Get Labels with PageType, LabelType, and PackageLabelsToPrint.**

I could download the pdf file but it's not Japanese.

Here is my downloaded PDF file in English Screen Shot 2021-02-24 at 16 52 38

but I wanna the PDF file in Japanese. Screen Shot 2021-03-01 at 10 29 40

How I can download the Japanese pdf file? Thanks!

educatornum commented 3 years ago

Here is my code and solved this problem Carton upload and PDF download https://stackoverflow.com/questions/66098473/amazon-selling-partner-api-feed-encrypt-file-with-python/66361095#66361095

On Sat, May 22, 2021 at 4:11 PM kingsun-he @.***> wrote:

I wanna download the Japanese PDF file, but the pdf was only in English.

My marketplaceId is [A1VC38T7YXB528]

I have followed these steps.

1. Create Feed document 2. Create Feed with an XML file 3. Get Labels with PageType, LabelType, and PackageLabelsToPrint.

I could download the pdf file but it's not Japanese.

How I can download the Japanese pdf file? Thanks!

Hi educatornum, Can you download the PDF file directly by browser? I called the function. I can get the DownloadURL. But when I try to download it by browser, it return "Expired" Error. Like this

AccessDenied Request has expired 15 2021-05-22T02:53:01Z 2021-05-22T02:53:04Z 5GxxxxxxxYD I+OzRajJtTBkH3uFBwKxxxxxxxxxxxQTON8l+MmUqAi3PSyQ=

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/amzn/selling-partner-api-models/issues/371, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF7JFUITVYMYDNEJRDA2USLTO5KLDANCNFSM4WOPAXIQ .

jason1004 commented 3 years ago

Here is my code and solved this problem Carton upload and PDF download https://stackoverflow.com/questions/66098473/amazon-selling-partner-api-feed-encrypt-file-with-python/66361095#66361095

In your code, I don’t understand how the cartonid is obtained.

educatornum commented 3 years ago

Hi, @jason1004

I followed these steps and could download a PDF file.

  1. You need an XML file, Here is my xml layout
    <?xml version="1.0" ?>
    <AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
    <Header>
      <DocumentVersion>1.01</DocumentVersion>
      <MerchantIdentifier>ARI9W*****</MerchantIdentifier>
    </Header>
    <MessageType>CartonContentsRequest</MessageType>
    <Message>
      <MessageID>1</MessageID>
      <CartonContentsRequest>
         <ShipmentId>FBA15****</ShipmentId>
         <NumCartons>1</NumCartons>
         <Carton>
            <CartonId>5555</CartonId>
            <Item>
               <SKU>TEST-001</SKU>
               <QuantityShipped>1</QuantityShipped>
               <QuantityInCase>1</QuantityInCase>
            </Item>
         </Carton>
      </CartonContentsRequest>
    </Message>
    </AmazonEnvelope>
  2. You should the XML file encrypt with Key and initialization vector
  3. Upload the XML file to s3 and use the response URL
  4. Here is my Get Feed response:
    {'payload': {
       'createdTime': '2021-02-24T07:43:22+00:00',
       'feedId': '14795****',
       'feedType': 'POST_FBA_INBOUND_CARTON_CONTENTS',
       'marketplaceIds': ['A1VC38T7****'],
       'processingStatus': 'DONE'}
    }

    Then I used the cartonID, I can download the get labels PDF file's URL

PackageLabelsToPrint is your cartonID you must set the CartonID here, looks like: PDF

  1. I could download a PDF file using the URL Here is my GetLabel: pdf2

Good luck dude!

jason1004 commented 3 years ago

Hi , @educatornum

I understand. The cartonId comes from the box information submitted through the feeds api. But this design of SP API is not very reasonable. It is very different from GetPackageLabels in MWS:

  1. In MWS, the cartonId is not required to be passed in, and the label can be obtained without the box information. SP API must upload the box information before getting the label.

  2. If the seller uploads the box information in Amazon Center, where can I get the carton id?

xin96 commented 3 years ago

Hi , @jason1004

I understand. The cartonId comes from the box information submitted through the feeds api. But this design of SP API is not very reasonable. It is very different from GetPackageLabels in MWS:

  1. In MWS, the cartonId is not required to be passed in, and the label can be obtained without the box information. SP API must upload the box information before getting the label.
  2. We submit box information through feed type: POST_FLAT_FILE_FROM_EXCEL_FBA_CREATE_CARTON_INFO. What is the cartonid in this case, and there is no cartonid in Excel.

Can you describe POST_FLAT_FILE_FROM_EXCEL_FBA_CREATE_CARTON_INFO in detail? thank you very much. I did not see the feed type in the official document: POST_FLAT_FILE_FROM_EXCEL_FBA_CREATE_CARTON_INFO

educatornum commented 3 years ago

Hi, @jason1004

I agree with this SPA design.

  1. Yes, but in WMS, you need a carton id if your package is unique.
    Carton ID was big trouble when we used to use WMS if your order is unique.
  2. Of course that but I don't understand well.

I wish them to design better and easier to use

johnkw commented 3 years ago

As I mentioned above, seemingly doing BoxContents on the web (or via another user) seemingly means it's impossible to download labels via SP-API. That's the core issue in bug amzn/selling-partner-api-models#371. That API needs a way to select cartonIds so @tokicnikolaus would know what IDs are valid as per his original bug report. (And the error message should point to exactly that.)

There is too much back-and-forth discussion in this ticket that would better belong in a forum, not a bug report. It would be helpful if you would delete most of the above discussion so hopefully the SPAPI maintainers can eventually read the core issue for this bug and understand it without being distracted.

shane186 commented 3 years ago

I wanna download the Japanese PDF file, but the pdf was only in English.

My marketplaceId is [A1VC38T7YXB528]

I have followed these steps.

1. Create Feed document 2. Create Feed with an XML file 3. Get Labels with PageType, LabelType, and PackageLabelsToPrint.

I could download the pdf file but it's not Japanese.

Here is my downloaded PDF file in English Screen Shot 2021-02-24 at 16 52 38

but I wanna the PDF file in Japanese. Screen Shot 2021-03-01 at 10 29 40

How I can download the Japanese pdf file? Thanks! Hi, @educatornum Did you solve this problem?

RJEspera commented 3 years ago

Is there a resolution on this when using the web (UI), and without having to create a document feed? I'm getting the same error when attempting to retrieve LabelType.UNIQUE.

I get the following error message: "Provided SellerCartonIds are not valid: [[FBA165C4PL2FU000001]] for Shipment: [FBA165C4PL2F]".

I read in the comment above by @educatornum that the cartonId (aka PackageLabelsToPrint), according the link here, is constructed using the ShipmentId and adding U with six digit number characters (e.g. U000001). Does this apply to SP-API as well? Using this pattern as cartonId gave an error as mentioned above.

RJEspera commented 3 years ago

Is that where you mentioned that there's currently no way to print the label in SP-API when creating box contents on the Web (UI)?

RJEspera commented 3 years ago

Thank you for sharing that. Any comments from the SP-API development team?

johnkw commented 3 years ago

No problem. FYI, I deleted my above comments that were responses to off-topic comments. I would reiterate to everyone on this ticket: can you please move these discussions to some other forum, or open a ticket about internationalization of labels? All these Japanese comments should be deleted from this ticket.

rockyspruce commented 3 years ago

why has not the last anwser

ugurduzel commented 3 years ago

I found a solution to get the download link for the shipments prepared using seller central web interface. When I requested the shipments from GET /fba/inbound/v0/shipments endpoint, there is a field "LabelPrepType": "SELLER_LABEL". Instead of passing UNIQUE to the LabelType parameter, pass SELLER_LABEL

Sending the parameters like below worked for me. I downloaded the labels only having the shipment ID.

labelParams = {
        "PageType": "PackageLabel_Plain_Paper",
        "LabelType": "SELLER_LABEL",
        "PageSize": 16,
        "PageStartIndex": 0
}

These parameters are for the GET /fba/inbound/v0/shipments/{shipmentId}/labels endpoint

I know "SELLER_LABEL" is not in the documentation but at this point, we all know this documentation is not well prepared 😄

ugurduzel commented 3 years ago

Documentation states there are three options for LabelType: BARCODE_2D, UNIQUE, PALLET.

The problem of getting the shipment labels starts when we enter UNIQUE into the LabelType field. It asks for cartonIdList aka PackageLabelsToPrint which makes it impossible to retrieve the shipping labels if you only have the shipping id.

I'm saying that there is a fourth option, SELLER_LABEL, which solves the problem of downloading the shipment labels only with the shipment ID.

johnkw commented 3 years ago

Oh wow - neat find! So {'LabelType':'SELLER_LABEL','PageType':'PackageLabel_Thermal_NonPCP','PageSize': 1000, 'PageStartIndex':0} returns every label in the shipment onto a single PDF. (Actually it even returns stickers for boxes that don't exist in the shipment if "1000" is greater than your actual box count. Strange bug.)

So SELLER_LABEL is indeed a workaround or fix for this bug. It's a strange method though, because you have no control over which SKUs get printed etc.

johnkw commented 3 years ago

Of special note, this SELLER_LABEL method is seemingly also a workaround for bug amzn/selling-partner-api-models#406.

ugurduzel commented 3 years ago

Oh wow - neat find! So {'LabelType':'SELLER_LABEL','PageType':'PackageLabel_Thermal_NonPCP','PageSize': 1000, 'PageStartIndex':0} returns every label in the shipment onto a single PDF. (Actually it even returns stickers for boxes that don't exist in the shipment if "1000" is greater than your actual box count. Strange bug.)

So SELLER_LABEL is indeed a workaround or fix for this bug. It's a strange method though, because you have no control over which SKUs get printed etc.

Yes, I noticed that bug. And to work around that I used GET /fba/inbound/v0/shipmentItems endpoint to get QuantityShipped for each SKU. From there I calculated the exact PageSize of the shipment. However, this works because we also ship a preset quantity for each SKU and never change it 😄

After obtaining the pdf, I parse the pdf and read the SKU on a page of the shipping label. Then I match the shipping label with the box belonging to that SKU. I know it's for a somewhat specific case. I just wanted to mention this in case it applies to someone else too.

azarus commented 2 years ago

Alright, I've been spending way too much time figuring this out. I kinda explain how this works. This feeds api is kinda annoying.

So to get the labels with labelType: "UNIQUE" you need to submit a feed document namely POST_FBA_INBOUND_CARTON_CONTENTS as others mentioned previously.

Now people. You need to realize that amazon needs couple of minutes to PROCESS this xml document. And then wait for the result and verify that amazon accepted this feed. If that did not happen then your feed is likely invalid.

lzy6666666 commented 2 years ago

收到,谢谢!!!(自动回复)

johnkw commented 2 years ago

That encrypt/decrypt stuff is outdated. The new feed API doesn't use that anymore.

azarus commented 2 years ago

That encrypt/decrypt stuff is outdated. The new feed API doesn't use that anymore.

that might be, Anyhow I just provided the explanation (Probably should post a mental health helpline as well at this point lol) on why the UNIQUE labelType doesn't work and what the Provided SellerCartonIds are not valid: error message actually means and how you can figure out the reason.

I am fairly sure it will help some finding this thread through google. As there's no explanation what so ever on the process.

lzy6666666 commented 2 years ago

收到,谢谢!!!(自动回复)

wimoor-erp commented 2 years ago

Oh wow - neat find! So {'LabelType':'SELLER_LABEL','PageType':'PackageLabel_Thermal_NonPCP','PageSize': 1000, 'PageStartIndex':0} returns every label in the shipment onto a single PDF. (Actually it even returns stickers for boxes that don't exist in the shipment if "1000" is greater than your actual box count. Strange bug.) So SELLER_LABEL is indeed a workaround or fix for this bug. It's a strange method though, because you have no control over which SKUs get printed etc.

Yes, I noticed that bug. And to work around that I used GET /fba/inbound/v0/shipmentItems endpoint to get QuantityShipped for each SKU. From there I calculated the exact PageSize of the shipment. However, this works because we also ship a preset quantity for each SKU and never change it 😄

After obtaining the pdf, I parse the pdf and read the SKU on a page of the shipping label. Then I match the shipping label with the box belonging to that SKU. I know it's for a somewhat specific case. I just wanted to mention this in case it applies to someone else too.

thank you very much , it's important information for me

AisxLee commented 2 years ago

@AisxLee that has nothing to do with this issue. Please delete that comment and move it to a new ticket.

ok, I created a new issue amzn/selling-partner-api-models#2925

johnkw commented 2 years ago

Thank you @AisxLee for deleting the off-topic stuff. It would sure help if @shane186 @educatornum would also delete and move all the off-topic Japanese comments, if we're ever going to have any hope of an admin seeing the importance of the original issue.

kingsun-he commented 2 years ago

I wanna download the Japanese PDF file, but the pdf was only in English. My marketplaceId is [A1VC38T7YXB528] I have followed these steps. 1. Create Feed document 2. Create Feed with an XML file 3. Get Labels with PageType, LabelType, and PackageLabelsToPrint. I could download the pdf file but it's not Japanese. Here is my downloaded PDF file in English Screen Shot 2021-02-24 at 16 52 38 but I wanna the PDF file in Japanese. Screen Shot 2021-03-01 at 10 29 40 How I can download the Japanese pdf file? Thanks! Hi, @educatornum Did you solve this problem?

I met the same problem. I can't see the Japanese characters. There is blank.

johnkw commented 1 year ago

I just was looking in to using the @ugurduzel above 'SELLER_LABEL' undocumented workaround for bug amzn/selling-partner-api-models#387. It's worth noting that it won't work for inbound shipment with an "Exp" date, because 'SELLER_LABEL' PDfs are missing that line (and also the SKU line). For any products that are required to have production dates on them (such as food and vitamins), the "Exp" is a required part of the label. I'm not sure if the SKU line is also required, but FBA has specifically confirmed the "Exp" line must be there.

(It's possible it could be added manually on top of Amazon's label, but now we're dealing with multiple levels of hacks upon hacks to workaround the bug amzn/selling-partner-api-models#387 issue.)

Also @kingsun-he please delete the off-topic comments regarding internationalization. That has nothing to do with this ticket.

lzy6666666 commented 1 year ago

收到,谢谢!!!(自动回复)

JimMcKenzieSmith commented 1 year ago

I just was looking in to using the @ugurduzel above 'SELLER_LABEL' undocumented workaround for bug amzn/selling-partner-api-models#387. It's worth noting that it won't work for inbound shipment with an "Exp" date, because 'SELLER_LABEL' PDfs are missing that line (and also the SKU line). For any products that are required to have production dates on them (such as food and vitamins), the "Exp" is a required part of the label. I'm not sure if the SKU line is also required, but FBA has specifically confirmed the "Exp" line must be there.

(It's possible it could be added manually on top of Amazon's label, but now we're dealing with multiple levels of hacks upon hacks to workaround the bug amzn/selling-partner-api-models#387 issue.)

Also @kingsun-he please delete the off-topic comments regarding internationalization. That has nothing to do with this ticket.

It may be worth noting that using 'SELLER_LABEL' seems equivalent to the 'BARCODE_2D' option where carton labels will come out in any order, and not tied to the order that you had packaged them in (and/or not tied to any Exp date as you noted). I tried both options (SELLER_LABEL vs BARCODE_2D) and the PDF labels were identical. My situation is that I package everything up on the front end, and assign each carton an ID. From what I've gathered I would need to submit an xml feed document via POST_FBA_INBOUND_CARTON_CONTENTS, and then wait for this to be processed, before I would be able to use the UNIQUE option and specify my own carton ID's (aka PackageLabelsToPrint) that I want to print. Does that sound right, @johnkw ?

lzy6666666 commented 1 year ago

收到,谢谢!!!(自动回复)

johnkw commented 1 year ago

Yeah only the XML submit works correctly right now AFAIK.

JimMcKenzieSmith commented 1 year ago

@johnkw From what I've gathered, the XML submit via the feeds api is what assigns the carton ID's and assigns SKU's/qty to those cartons.

However, the disconnect seems to be that putTransportDetails sp-api call doesn't take a carton ID. So, how can we assign weights and dims to specific cartons if we cannot pass the carton ID in the putTransportDetails call? I know that specific carton ID's can be requested via the getLabels endpoint, but how are the weights and dims set for these cartons to begin with?

johnkw commented 1 year ago

You're off into a separate topic that should be moved to a new ticket. Also all of the Japanese stuff should be deleted and moved elsewhere.

JimMcKenzieSmith commented 1 year ago

Perhaps, but my question is related to the workaround of the original issue. The original issue from Jan 22, 2021 was around Provided SellerCartonIds are not valid. So, the workaround that you posted on Feb 4, 2021 was:

I got this to work after using a FEED. The undocumented thing that it wants is a comma-separated string of whatever you used in for the POST_FBA_INBOUND_CARTON_CONTENTS.

But, upon using this workaround for getLabels, how are we to supply the weights and dims of each carton by carton ID? Or, is this not possible? Or, are you saying this is indeed an issue and it is a separate bug?

johnkw commented 1 year ago

This ticket has become so cluttered with off-topic "help me" posts that there's no hope of Amazon ever taking it seriously.

toyssamurai commented 1 year ago

I found a solution to get the download link for the shipments prepared using seller central web interface. When I requested the shipments from GET /fba/inbound/v0/shipments endpoint, there is a field "LabelPrepType": "SELLER_LABEL".

[... snip ...]

These parameters are for the GET /fba/inbound/v0/shipments/{shipmentId}/labels endpoint

I know "SELLER_LABEL" is not in the documentation but at this point, we all know this documentation is not well prepared 😄

I can't believe that you are not getting more thumbups. Man, YOU ARE A GENIUS! You have effectively prevented me from tearing my hair out and going bald!

By the way, I didn't make it clear. I did upload a carton content XML feed, and use the Carton ID in my XML feed to call getLabels, but whenever I use "UNIQUE", it came back with that infamous Provided SellerCartonIds are not valid error. I've tried using "1", ${ShipmentID}U000001. and every other tricks that I could find but none of them worked. And, I only have ONE package in a shipment, not 1000.

aoerliang commented 1 year ago

I found a solution to get the download link for the shipments prepared using seller central web interface. When I requested the shipments from GET /fba/inbound/v0/shipments endpoint, there is a field "LabelPrepType": "SELLER_LABEL". [... snip ...] These parameters are for the GET /fba/inbound/v0/shipments/{shipmentId}/labels endpoint I know "SELLER_LABEL" is not in the documentation but at this point, we all know this documentation is not well prepared 😄

I can't believe that you are not getting more thumbups. Man, YOU ARE A GENIUS! You have effectively prevented me from tearing my hair out and going bald!

By the way, I didn't make it clear. I did upload a carton content XML feed, and use the Carton ID in my XML feed to call getLabels, but whenever I use "UNIQUE", it came back with that infamous Provided SellerCartonIds are not valid error. I've tried using "1", ${ShipmentID}U000001. and every other tricks that I could find but none of them worked. And, I only have ONE package in a shipment, not 1000.

This method saved my life.

Kernel1453 commented 1 year ago

Hi there all,

I have problem here too. I can create shipment and get box label. I have 2 questions please help me with this. 1- Why do my labels show MixSkus wven i have only one Asin? 2 - How can i print items (asin) label? I couldnt find any information about it.

Thanks, Best regards