@btzone/mws-sdk

1.0.0 • Public • Published

mws-sdk-promises

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 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. with new javascript code features like yield or async wait to put some sugar on your code.

Examples

Initialize

var MWS = require('mws-sdk-promises'),
    client = new MWS.Client('accessKeyId', 'secretAccessKey', 'merchantId', {}),
    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);
}
//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.

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
  1. 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

Package Sidebar

Install

npm i @btzone/mws-sdk

Homepage

_

Weekly Downloads

7

Version

1.0.0

License

none

Unpacked Size

74.2 kB

Total Files

15

Last publish

Collaborators

  • btzone