How do I get product information via Amazon's MWS API? - amazon-mws

I'm trying to automate the addition to and management of our products on Amazon. Looking at the API documentation for the MWS API it doesn't look like there's a way to determine if a product has already been added to Amazon by another seller and if so what its attributes are.
We are building a new product database for all the products we sell and have a table specifically for Amazon attribute data fields (ASIN, etc.). If Product information is already on Amazon, we'd like to pull that data via API and store it to our own database as well.
If you attempt to add a product via CSV and that product already exists on Amazon (and your attributes are in any way different ("m" != "medium") you'll receive and error. In that case you can just piggy back that existing product information and just upload a CSV with your price and quantity for a particular ASIN/SKU/UPC. We'd like to do away with uploading CSV files and again, have our own product table for Amazon attributes.
Will I need to also leverage Amazon's Product Advertising API to determine this or can it be done via MWS?
The documentation for Amazon's APIs aren't exactly fantastic and it's been slow going trying to sort through it all.
We're working with Ruby.

Amazon's Merchant Web Services API is limited to your Merchant account. So the answer to your question is that yes you will need to use Amazon's Product Advertising API to get information about products that aren't already listed.
That being said you should be aware that there are new restrictions being placed on the Product Advertising API that will limit the number of calls that you can make on a daily basis to 2,000. In addition to this you will have to get an Associate ID that will be tied to your account and needs to be sent with any request.
Also, I find that the information collected using the Product Advertising API is sometimes out of sync with the site and have resorted to scraping the info from the site itself. This has more overhead but you can be assured that the data is current. Of course this is only useful if you already have an ASIN or are dealing strictly with books (which use the ISBN as an ASIN) or Music CDs (which I believe use the UPC as an ASIN).

The MWS Products API is where you will find this functionality. Specifically the GetMatchingProductForId operation.
http://docs.developer.amazonservices.com/en_US/products/Products_GetMatchingProductForId.html
(This API probably wasn't available at the time of the original question)

Related

Amazon MWS Download orders Client

We have a java client for downloading orders from Amazon MWS.
We use:
MaWSJavaClientLibrary-1.1.jar
MWSClientJavaRuntime-1.0.jar
MWSOrders_2013-09-01_v2020-10-20.jar
We download an xml with users data, with also shipping details (address, city, zipcode and so on...)
Begining from half 2020, we didn't receive customer name and address anymore. I mean that those 2 tags in xml were not passed anymore. We realized that something was changed in Amazon MWS for GDPR and security reasons.
We compiled a form online where we sent to amazon lots of informations about how we use those data.
However, we have not understand what we have to do in order to get those data again in xml.
Our client continues to work as usual, beu we continue to get xml without customer name and address.
Last email from amazon says:
Good morning,
thank you for your reply. As this issue is unrelated to your Developer Profile role assignments, we recommend that you review the information available in the links below for information on this topic.
Since the new API for Sales Partners (SP-API) is officially available, we are no longer issuing new credentials for MWS and are not updating existing MWS access roles. From now on, it is possible to develop applications in multiple regions with a single set of SP-API credentials.
More information on SP-API can be found here:
https://developer.amazonservices.it
SP-API documentation on GitHub: https://github.com/amzn/selling-partner-api-docs
If you still need assistance on this topic, you can submit a MWS or SP-API technical support request here: https://developer.amazonservices.it/gp/mws/contactus.html
Thank you for selling with Amazon.
is there anyone that had same problem and can help us to retrieve those information again please?
Thanks

Amazon mws products weight and confirm an order

I am a nodejs developer. My server should ask every x ms and retrieve new orders. Notifications will be sent by the client part of the service to the seller. I need some fields of the order, I use the order api for most fields, the report api to retrieve the telephone number, which is not retrieved by the order api.
What I need now is the list of all the products of the seller, with the properties: SKU, weight
What api should I better use?
I also want to confirm the order shipment by sending to Amazon also a tracking code, but I did not fine this in the apis. Is there this feature?
What I do is periodically download orders into my own system using the reports API. I have the complete order with header information including all SKU's on the order. The Orders API is subject to throttling which may affect you.
To update Amazon that your order has shipped and to send a tracking number, you will use the Feeds API. Look at the Feed Types, specifically:
_POST_ORDER_FULFILLMENT_DATA_
In the link above, there is a flowchart explaining the process.

Sync google contacts by group to a limited number of users

I am trying to build an open-source python code hosted at GAE to sync contacts by group to a limited number of users. In a web interface users will be able to pick their group and whom it will be synced with.
I understand there is a lot of applications on market place withe the same functionality, but my organization is concerned about those provides selling contacts to 3rd parties. We are a non-profit organization, so the code could be hosted at google project or github for community contribution.
(sorry for the long intro)
How is the best way to start? is there tutorial available with similar functionality that I can expand?
What is the best way to compare two Contact kind elements? To see if they need to be sync.
Is there a last update on the Contact kind elements? In case I want to implement a last update wins?
thanks!
I don't know of any tutorials for syncing and comparing contacts specifically, but there is a getting started guide for the Google Contacts API at https://developers.google.com/google-apps/contacts/v3/.
The contacts are sent as XML blobs, so you could compare two contacts by parsing them and looking at the individual elements within them. I don't think there's a better way to do this but there are libraries to handle it for you.
There is a last updated field sent as part of the contacts when retrieving them with the API. It is an XML element labeled <updated>.
how are you getting different user's contacts feeds?
i tried to save the tokens in the datastore when the
users grant the access, but when i get the token back
from datastore for 2 users at a time, after an hour
when the token expires,
all tokens start working like the current users token
and i can only get current users contacts.
token = Get_Shared_User_Token(user_email)
contact_client = gdata.contacts.client.ContactsClient(source=USER_AGENT)
authorized_client = token.authorize(contact_client)
contacts_feed = authorized_client.GetContacts(q = query)
can you please tell how one can get any user's contacts?

Amazon MWS sandbox

I intend to develop a client for Amazon's Marketplace webservices (MWS). My requirements would be to update the order, synchronize the order status, get the order details using the APIs they have.
However, I could not find a Sandbox environment to test these scenarios. Amazon has a payment Sandbox I understand, but is there a sandbox available to test these web-services? If not, are there any pointers on how to go about testing the above mentioned scenarios with Amazon MWS?
UPDATE
As seen in the comments to this post, Amazon no longer provides a staging / test environment.
I just had a conversation via sellercentral ticket with an amazon employee.
They said:
We can provide you with a free Seller Central test account to be used in ungated categories only, which are the Amazon categories that do not require approval to sell in. For a list of ungated categories, please scroll down to the middle of the page here: http://www.amazonservices.com/content/sell-on-amazon.htm.
For orders:
After you’ve logged into the staging site, you then need to log into a real Amazon buyer account (not your staging account) to buy items. Then, navigate to the offers you’ve created. If you want to buy anything from your staging account (in order to test MWS order functionality) you will be using real credit card data, so make sure your offers are priced at only one cent, and your shipping is also set to one cent. These offers will not be visible on Amazon .com. Do not buy from any other sellers on the staging site.
So (conclusion): Just file a ticket** and tell them you want a seller central test account like this!
First register** for an account that you can access seller central with (please note, that some kind of accounts have a monthly fee, so choose a "per sale" plan. This fee won't be charged with your test account), then you can file the ticket (click the link above).
All resources about the MWS API are here.
** Replace ".com" with your local Domain for the Amazon Site you want a test (staging) account for.
You can use the scratchpad of Amazon:
scratchpad
good luck

programmatically access car dealers inventory

Not sure whether this question makes sense on SO, but I'm working on a website that would provide a list of new cars of interest to the user, a bit like autotrader.com. Do you guys know how this type of websites operate? On autotrader.com I was thinking that maybe the dealers have to upload and update their inventory themselves. Does anyone know whether it is the case? Also I felt that when you go to a dealer in the US, they can search for a specific car through all the dealerships.
Bottom line: The inventory seems to be accessible by third parties - who knows more?
AutoTrader gets its data by
Dealer manually adding the vehicles
Dealers third party services pushing the data to AutoTrader nightly (FTP or Emailed) from services like.
website providers / inventory management tools such as AutoJini.com, VinSolutions (now owned by ATC)
Lot management companies such as Dealer Specialties, KBB CDMData (these companies come to the dealers lot and take the pictures and then send the data out to website providers, classifieds sites etc.
feed processing company like Digital Motor Works.
or AutoTrader is pulling the data from the Dealer Management System like (Reynolds & Reynolds, ADP, Arkona, etc) pull method is mostly used for new cars.
Inventory is normally not accessible by other third parties... however one can always get the data for most dealers in the US via API from Oddle or Vast and Edmunds.
I should also add that you can get a custom crawl of all the data on ATC & cars.com from 80legs.com. This kind of service is used by companies that do pricing analytic for dealers.
You can also try contacting the website providers or the lot management companies and get the data feed from them.
There are an ISO 3779 (Europe) and FMVSS 115 (US & Canada) standards for all the cars on the market.
Each and everycar is identified by a VIN (Vehicule Identification Number).
I think that is what you are looking for.
You can get the official well-updated VIN data here
If you want to find it another way, google as usual will be your friend.
You can pull dealers inventory (active and historical) using Marketcheck Cars API
You can use Marketcheck Dealer ID or the source website domain for the dealer you are looking to pull the inventory.
Pull active inventory by dealer ID -
http://api.marketcheck.com/v1/search?api_key={your_api_key}&dealer_id={dealer_id}
Pull active inventory by dealer source website -
http://api.marketcheck.com/v1/search?api_key={your_api_key}&source=www.sanleandrohonda.com
More cases documented at the official API documentation
You can sign up at the developer portal hosted here and obtain the API key to start evaluating the API.

Resources