Project

mws_rb

0.03
No commit activity in last 3 years
No release in over 3 years
A complete wrapper for Amazon.com's Marketplace Web Service (MWS) API.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 2.13
~> 3.4
~> 3.0
~> 1.22

Runtime

 Project Readme

mws_rb

Build Status

This gem is a complete wrapper for Amazon.com's Marketplace Web Service (MWS) API extracted from http://veeqo.com

Installation

Using with a Gemfile:

gem 'mws_rb', require: 'mws'
bundle install

Using in a simple ruby file:

gem install mws_rb
require 'mws'

Initialization

MWS API
    mws_api = MWS.new(
      host: "mws-eu.amazonservices.com",
      aws_access_key_id: "Your access key id",
      aws_secret_access_key: "Your secret access key",
      seller_id: "Your seller/merchant id"
    )
MWS AUTH
    mws_auth = MWS.auth(
      aws_access_key_id: "Your access key id",
      aws_secret_access_key: "Your secret access key",
      app_instance_id: "Your application instance id",
      host: "sellercentral.amazon.co.uk", # or another marketplace
      uri: "/gp/mws/registration/register.html",
      return_path: "/auth/oauth_callback?sessionID=your_session_id"
    )

Using

MWS API

To access the apis you can use:

     mws_api._api_name_._action_to_calll(params={})

Let's say we want to retrieve a list of orders using MWS orders api:

    mws_api.orders.list_orders(
      "MarketplaceId.Id.1" => "marketplace id",
      created_after: Time.new(2013, 1, 1)
    )

Here is a list of all available APIS:

  • mws_api.feeds
  • mws_api.orders
  • mws_api.reports
  • mws_api.products
  • mws_api.sellers
  • mws_api.subscriptions
  • mws_api.recommendations
  • mws_api.fulfillment_inventory
  • mws_api.fulfillment_inbound_shipment
  • mws_api.fulfillment_outbound_shipment
  • mws_api.merchant_fulfillment
MWS AUTH

To get authorization url for your marketplace:

     mws_auth.authorization_url

And after successful authentication on Amazon side it will redirect you to your callback url:

    POST www.your-domain.com/auth/oauth_callback

with params:

    params = {
      'sessionID': 'your_session_id', # custom param
      'Merchant': 'Merchant ID',
      'Marketplace': 'Merchant Marketplace',
      'MWSAuthToken': 'MWS authorization token',
      'SignatureMethod': 'HmacSHA256',
      'SignatureVersion': '2',
      'Signature': 'Signature generated from your side and have sent to Amazon',
      'AWSAccessKeyId': 'Amazon access key for the marketplace',
      'SignedString': "POST\nhttps://www.vendor.com/mwsApp1\n/orders/listRecentOrders.jsp?sessionId=123\nAWSAccessKeyId=AKIAFJPPO5KLY6G4XO7Q&MWSAuthToken=mzn.mws.1234&Marketplace=ATVPDKIKX0DER&Merchant=A047950713KM6AGKQCBRD&SignatureMethod=HmacSHA256&SignatureVersion=2"
    }

NOTE: Before saving the credentials to your DB check the validity of the received signature:

mws_auth.valid_signature?(signature: params[:Signature], signed_string: params[:SignedString])

API docs/actions/params

You can check on the MWS documentation section all actions and params needed:

LICENSE

Copyright (c) Jhimy Fernandes Villar