amazon-mws-api
Originally forked from ticadia/mws-sdk.
What is done:
-
It is uses request. it is more flexible and there is no eventEmitter syntax.
-
Promises to provide generic async support.
-
I've add some new requests from updated Amazon API.
-
I fix it with better set params ability... so it now looks nicer!!!
Use it. Contribute to it.
it can be seamlessly used in ES2015/2016 way using babel.js.
with new javascript code features like yield or async wait to put some sugar on your code.
Examples
Initialize
var MWS = require('amazon-mws-api');
var client = new MWS.Client('accessKeyId', 'secretAccessKey', 'merchantId', {});
var marketplaceId = "ATVPDKIKX0DER";now you can use it
function getListOrders(client, args) {
var req = MWS.Orders.requests.ListOrders();
req.set('CreatedAfter', args.CreatedAfter);
req.set('CreatedBefore', args.CreatedBefore);
req.set('LastUpdatedAfter', args.LastUpdatedAfter);
req.set('MarketplaceId', args.MarketplaceId);
req.set('LastUpdatedBefore', args.LastUpdatedBefore);
req.set('OrderStatus', args.OrderStatus);
req.set('FulfillmentChannel', args.FulfillmentChannel);
req.set('PaymentMethod', args.PaymentMethod);
req.set('BuyerEmail', args.BuyerEmail);
req.set('SellerOrderId', args.SellerOrderId);
req.set('MaxResultsPerPage', args.MaxResultsPerPage);
return client.invoke(req);
}
// or you can do like this
function getListOrders(client, args) {
var req = MWS.Orders.requests.ListOrders();
req.set(args);
return client.invoke(req);
}Use it.
var date = new Date();
getListOrders(client, {
MarketplaceId: MarketplaceId,
MaxResultsPerPage: 10,
CreatedAfter: new Date(2015, 1, 1),
CreatedBefore: new Date(2015, 1, 31)
})
.catch(function(error) {
console.error(error);
})
.then(function(RESULT){
console.log("--------");
console.log(JSON.stringify(RESULT));
console.log("--------");
});Tests
- Run
npm testoryarn run testto execute tests. Note: you can turn on a test watcher by runningstart run test:watchoryarn run test:watch