amzn / amazon-payments-magento-2-plugin

Extension to enable Amazon Pay on Magento 2
https://amzn.github.io/amazon-payments-magento-2-plugin/
Apache License 2.0
109 stars 77 forks source link

Delivery information in the amazon pay address #1176

Closed rajeev-k-tomy closed 1 year ago

rajeev-k-tomy commented 1 year ago

Amazon pay interface address creation section contains delivery information. It asks for additional information about the delivery address and also ask for the delivery preference. Please see the screen shot below:

Screenshot 2023-03-24 at 11 34 33 AM

I would like to know how is this delivery details handled in the Magento side.

What I expected

When we collect delivery information from the customer, it needs to be shown in the order details in the admin side at least. Otherwise, there is no way we could know about the customer preferences.

It will also make sense to show this in the checkout page as well, in case the customer needs a different preference. But this is debatable.

What happened instead

I cannot find any details related to the delivery information in the order created.

Steps to reproduce the issue

  1. Add a product to the cart.
  2. Go to the checkout page.
  3. Choose amazon pay express. Click on the amazon pay button
  4. In the redirected amazon pay interface, choose an address with delivery setting or create a new address with delivery preference.
  5. Come back to checkout page and complete the order.
  6. Delivery information is not present in the order.

Your setup

sgabhart22 commented 1 year ago

Hello @rajeev-k-tomy ,

I don't believe that Magento CE includes any built in functionality to handle special delivery instructions/dates. Since this isn't a standard checkout field, the plugin does not make accommodations for returned Amazon address data that includes these delivery instructions. There do appear to be other third-party extensions that provide this, one of which I found on the Marketplace here: https://marketplace.magento.com/scommerce-deliveryinstruction.html

If you choose to explore this route, it's possible you may be able to auto-populate those fields from Amazon address information by adding a mixin or two to the Amazon Pay frontend code (likely checkout-address.js).

Thanks, Spencer

rajeev-k-tomy commented 1 year ago

@sgabhart22 Thank you for your response. It is good to know such feature is possible with at least, other third party modules. So this is something we can get via Amazon Pay API? If yes, can you give me some relevant links that will allow to fetch these details?

mvenghaus commented 1 year ago

@rajeev-k-tomy i checked the whole response but i couldn't find these information .. i'm not sure if this is possible

https://developer.amazon.com/docs/amazon-pay-api-v2/checkout-session.html

rajeev-k-tomy commented 1 year ago

@mvenghaus @sgabhart22 Yes, I also roughty went through the API documentation and could not find any way to fetch these details from Amazon Pay API. Now I am curious to know how these third party extensions managed to do this!

mvenghaus commented 1 year ago

@rajeev-k-tomy i tested a real response via api .. none of your needed information are included .. i don't think other 3rd party extensions can do this .. they only provide the ability to save this kind of information

rajeev-k-tomy commented 1 year ago

@mvenghaus Hmm.. then if the customer provide some delivery information via there, then there is no way the host know about it! This is bad i would say.

mvenghaus commented 1 year ago

@rajeev-k-tomy i see no way to get these information from the api .. but i would be happy if you can prove me wrong :)

sgabhart22 commented 1 year ago

@rajeev-k-tomy @mvenghaus You are both correct, this information does not appear to be returned at all from a request to /checkoutSessions ! I assumed that, if this was included in an Amazon address, it would be returned in supplementaryData or even as part of the shippingAddress object, but after my own tests this does not appear to be the case.

I can inquire as to why this information is not exposed, but in the meantime, it looks like the only solution for Magento is to allow the buyer to enter this information themselves at checkout using another 3rd party module or checkout customization.

Thanks, Spencer

rajeev-k-tomy commented 1 year ago

@sgabhart22 Thanks for checking. Let us know once you get any information on this.

sgabhart22 commented 1 year ago

Hello again @rajeev-k-tomy ,

I've heard back from one of the Amazon solutions architect we work with, and it doesn't sound like AP engineering is planning on exposing the 'special delivery instructions' data for the foreseeable future. We can only speculate as to why this is kept internal to Amazon, but I would imagine that, since Amazon has their own logistics infrastructure, these instructions are specifically intended for Amazon delivery drivers. Of course most Magento web stores will have their own shipping providers that may or may not be able to honor the special delivery instructions based on their systems, so the integration could have issues later even if this information was exposed.

It seems like the best bet for any merchant looking to add this checkout field is to find a good extension that handles it (or create a custom module to) and will work with the shipping methods the merchant leverages. For now we will close this issue since there doesn't seem to be much action that can come of it.

Thanks, Spencer