@minmaxindustries/mws-sdk
Version:
Amazon Marketplace Web Services client with support for all api calls, using ES6 Promises.
134 lines (105 loc) • 3.17 kB
Markdown
mws-sdk-promises
======
Originally forked from [ticadia/mws-sdk](https://github.com/ticadia/mws-sdk).
What is done:
-------------
- It is uses [request](https://www.npmjs.com/package/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 Amazone API.
- I fix it with better set params ability... so it now looks niceier!!!
Use it. Contriburte it.
it can be seamlesly used in ES2015/2016 way using [babel.js](https://babeljs.io/).
with new javascript code features like `yield` or `async` `wait` to put some sugar on your code.
Examples
--------
Initialize
```javascript
var MWS = require('mws-sdk-promises'),
client = new MWS.Client('accessKeyId', 'secretAccessKey', 'merchantId', {}),
MarketplaceId = "ATVPDKIKX0DER";
```
now you can use it
```javascript
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);
}
```
```javascript
//Sample of PutTransportContent API
function putTransportContent(client, args) {
const request = new MWS.Fbs.requests.inbound.PutTransportContent();
request.set('ShipmentId', args.shipmentId);
request.set('IsPartnered', args.isPartnered);
request.set('ShipmentType', args.shipmentType);
const {
contact,
boxCount,
sellerFreightClass,
freightReadyDate,
palletList,
totalWeight,
sellerDeclaredValue
} = args.partneredLtlData;
const pLtlData = new MWS.Fbs.complex.PartneredLtlData(
contact,
boxCount,
sellerFreightClass,
freightReadyDate,
palletList,
totalWeight,
sellerDeclaredValue
);
request.set('NonPartneredSmallParcelData', pLtlData);
return client.invoke(req);
}
```
Use it.
```javascript
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
-----
1. Fill in the values for `env.sh` and run tests:
```
cd cloneOfThisProject
. ./env.sh
npm test
```
2. To see more logs while running tests, choose from:
```
NODE_DEBUG=request npm test
NODE_ENV=development npm test
NODE_ENV=development NODE_DEBUG=request npm test
```