nodejs Amazon MWS API in 100 lines of code
which means that you will have to do more work in order to make api calls but gives you the most control. Response uses xml2js or csv-parse for conversion.
Defaults to US marketplace settings, but can code to override default
npm install mws-simple
let mws = require('mws-simple')({
accessKeyId: YOUR ACCESS KEY,
secretAccessKey: YOUR ACCESS KEY,
merchantId: YOUR MERCHANT ID
});
Of the required parameters, AWSAccessKeyId
, SellerId
, Signature
, SignatureMethod
, SignatureVersion
, and Timestamp
will be taken care of but most can be overridden. This leaves Action
, MWSAuthToken
(for web applications and third-party developer authorizations only), and Version
required to be populated.
Add the query parameters to query
as needed for your specific Action
.
If the API has an endpoint as specified in the documentation, put the endpoint in path
.
For uploading data to MWS, populate feedContent
with a buffer
of data.
let date = new Date();
date.setDate(date.getDate() - 1);
// create object with path and query
let listOrders = {
path: '/Orders/2013-09-01',
query: {
Action: 'ListOrders',
CreatedAfter: date.toISOString(),
'MarketplaceId.Id.1': 'ATVPDKIKX0DER',
'OrderStatus.Status.1': 'Unshipped',
'OrderStatus.Status.2': 'PartiallyShipped',
Version: '2013-09-01'
}
}
mws.request(listOrders, function(e, result) {
console.log(JSON.stringify(result));
});
let submitFeed = {
feedContent: require('fs').readFileSync('amazon-shipments.tab'),
query: {
Action: 'SubmitFeed',
Version: '2009-01-01',
'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER',
FeedType: '_POST_FLAT_FILE_FULFILLMENT_DATA_'
}
};
mws.request(submitFeed, function(e, result) {
});
Yes, please!
Thank you!
- tomjnsn Tom Jensen
MIT