UNPKG

@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
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 ```