<br /> <b>Warning</b>: Missing argument 2 for issart_title(), called in /var/www/blog.issart.ru/wp-includes/class-wp-hook.php on line 288 and defined in <b>/var/www/blog.issart.ru/wp-content/themes/seashell/functions.php</b> on line <b>289</b><br /> <br /> <b>Warning</b>: Missing argument 3 for issart_title(), called in /var/www/blog.issart.ru/wp-includes/class-wp-hook.php on line 288 and defined in <b>/var/www/blog.issart.ru/wp-content/themes/seashell/functions.php</b> on line <b>289</b><br /> Challenges of Amazon MWS API integration

Challenges of Amazon MWS API: ISS Art experience

This article is focused on Amazon MWS API and some challenges related to its integration.
If you plan to integrate Amazon MWS into your PHP project, you should think twice whether you need this functionality or not.
In our Symfony project such integration is needed. However, there are a lot of hidden dangers. In the article I will try to give you a heads up how to avoid the pitfalls.

First of all, what exactly is Amazon MWS API?
Amazon Marketplace Web Service (Amazon MWS) is an API which helps Amazon sellers to exchange information on listings, orders, payments, buyers, reports, and more. XML data integration with Amazon makes higher levels of selling automation possible, and this helps sellers significantly grow their business. With Amazon MWS being applied, sellers get an opportunity to increase their selling efficiency, decrease labor effort, and improve response time to customers.


Сhallenge №1

The first and, in my opinion, the most challenging task is the lack of API testing sandbox. What does it mean? Amazon doesn’t enable us to create a test account or transfer a real account in test mode. Amazon allows developing and testing integration using live data with live payments. Such a large enterprise and such a big omission!
As a result, we have registered an account and faced the following challenge:

Сhallenge №2

Amazon distributes its SDK (software development kit) for MWS API only as a zip-file. In our project we use Composer to connect with third-party libraries; and we faced an issue how to connect the Amazon MWS SDK and not to store it in our repository.

In addition, there is one more issue: how to load a library with legacy code which doesn’t use autoloader. To store the SDK, we created a separate git repository and added this repository in composer.json. At this stage it’s necessary to resolve the issue with loading the library. There are at least two options:

  • Modify SDK so that PSR-0 avtoloader could work. Therefore, we have to replace all relative paths to library code with dirname (__ FILE__). SDK spreads under the Apache license, so the modification is authorized.

Everything looks good and correct.

When a new iteration is released, we will have to monitor in manual mode that all our changes are not overwritten.

  • Use such option as “include-path” in composer.json . But it is marked as DEPRECATED. As mentioned in the documentation:

This is only present to support legacy projects, and all new code should preferably use autoloading. As such it is a deprecated practice, but the feature itself will not likely disappear from Composer.

Easy to update SDK.

We have to use the deprecated parameter composer.json, it doesn’t look good.

Сhallenge №3

Amazon MWS API looks like Frankenstein! It’s made up of different parts (modules with different working models).

For example, “Section Orders API” works as “request-> response” model, where we get the requested information immediately.
A “Section Reports API” works as “request-> queue-> response” model, where our request gets in line. Thus, to receive the requested data, we need to monitor its status in the queue.

Such situation made us write our own wrappers over the SDK and we’ve written … We have created a bundle for Symfony to work with Amazon MWS.
Meanwhile the services are limited by the needs of our project. That’s why we decided not to put it online at the moment.

We should also say some words about the documentation. It’s very informative with detailed description, examples, etc. However, it’s very hard to understand how to get some particular information about a product or an order (probably it’s a consequence of the third challenge).


The process was rather difficult, but finally we won and integrated our project with Amazon MWS!


And what about you? Have you got the courage to fight with such a giant as the Amazon MWS? ;-)


  • Deepak

    Hi want to integrate the Order data from Amazon to an ERP,is there any WSDL or API .because i haven’t got any API or WSDL that i can use to get the data in XML.

    Can you share the API or WSDL link.

    Because at Amazon http://docs.developer.amazonservices.com/en_US/orders-2013-09-01/index.html i haven’t found any file that i can download or any wsdl link.

    • Dmitry T.

      Hi Deepak!

      Thank you for your comment!

      Unfortunately Amazon doesn’t provide any wsdl files, so information on methods and parameters can be obtained only in the documentation (by the link that you just wrote).

      Let me know if there’s anything else I can do to help.

  • Steven Smith

    I know this is old news, MWS is one of massive challenge stuff i have work on api,

    It start 6 months ago
    I was front end for many years, as i just start learn PHP, (i know it’s late but never late to learn new things). At the first time i find it very overwhelm with it with lack of resource and support ( i know we have document but it not really great) so i have to depend on too much on Stratchpad.

    At the end I gave up, and decdied to work different method, like Download Flat File V2 text from All Settlement report (as i use fortnight), and convert it to CSV by openoffice spreadsheet, and upload it to mysql database which i build a database table, and it’s came out great stuff and build a basic MVC PHP with Product, Sold, Refund, Money etc. also i build Google Chart as well into it and it’s so easy to work. and it look great on outcome report and easy to read for my colleague who work on amazon for sell stuff.

    So i completed this project for last 4 months, so fast forward. as last week, I decided to bang my head and start work on MWS, as it’s getting there, but still hard work on it, as I’m able to get XML data in php pages with help from stratchpad.

    So I’m going select what Model and Sample pages and use it for new project and see what i can come wth it.. it’s going be pain one but all i need patience.

    • Svetlana Stasilovich

      Steven, hope you will get succeed in it and get the positive result. If you have some questions or if you would like to share your experience you may write us at crm@issart.com