This gem is a complete wrapper for Amazon.com's Marketplace Web Service (MWS) API extracted from http://veeqo.com
Using with a Gemfile:
gem 'mws_rb', require: 'mws'
bundle install
Using in a simple ruby file:
gem install mws_rb
require 'mws'
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(
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"
)
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
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])
You can check on the MWS documentation section all actions and params needed:
- http://docs.developer.amazonservices.com/en_US/feeds/index.html
- http://docs.developer.amazonservices.com/en_US/reports/index.html
- http://docs.developer.amazonservices.com/en_US/fba_inbound/index.html
- http://docs.developer.amazonservices.com/en_US/fba_inventory/index.html
- http://docs.developer.amazonservices.com/en_US/fba_outbound/index.html
- http://docs.developer.amazonservices.com/en_US/orders/index.html
- http://docs.developer.amazonservices.com/en_US/products/index.html
- http://docs.developer.amazonservices.com/en_US/recommendations/index.html
- http://docs.developer.amazonservices.com/en_US/sellers/index.html
- http://docs.developer.amazonservices.com/en_US/subscriptions/Subscriptions_Overview.html
- http://docs.developer.amazonservices.com/en_UK/merch_fulfill/index.html
Copyright (c) Jhimy Fernandes Villar