Skip to content

bitbutcher/mws

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mws

The goal of this gem is to facilities interactions with the Amazon Marketplace Web Services from Ruby clients.

Installation

Add this line to your application's Gemfile:

gem 'mws-connect'

And then execute:

$ bundle

Or install it yourself as:

$ gem install mws-connect

Usage

Create Mws connection:

require 'mws'

mws = Mws.connect(
  merchant: 'XXXXXXXXXXXXXX', 
  access: 'XXXXXXXXXXXXXXXXXXXXX', 
  secret: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
)

Access the Feeds Api:

feeds_api = mws.feeds

Access the Feeds Api wrappers:

products_api = mws.feeds.products
prices_api = mws.feeds.prices
images_api = mws.feeds.images
inventory_api = mws.feeds.inventory

Example: Add product details:

sku = '12345678'
product = Mws::Product sku {
  upc '123435566654'
  tax_code 'GEN_TAX_CODE'
  name 'Some Product'
  brand 'Some Brand'
  msrp 19.99, 'USD'
  manufacturer 'Some Manufacturer'
  category :ce
  details {
    cable_or_adapter {
      cable_length as_distance 5, :feet
    }
  }
}

submission_id = mws.feeds.products.add(product)

Example: Adding product images:

image_submission_id = mws.feeds.images.add(
  Mws::ImageListing(sku, 'http://url.to.product.iamges/main.jpg', 'Main'),
  Mws::ImageListing(sku, 'http://url.to.product.iamges/pt1.jpg', 'PT1')
)

Example: Setting product pricing:

price_submission_id = mws.feeds.prices.update(
  Mws::PriceListing(sku, 14.99).on_sale(12.99, Time.now, 3.months.from_now)
)

Example: Overriding product shipping:

sku = '12345678'
shipping_submission_id = mws.feeds.shipping.update(
  Mws::Shipping sku {
    replace 'UPS Ground', 4.99
    adjust '2nd-Day Air', 7.00
  }
)

Example: Setting product inventory:

inventory_submission_id = mws.feeds.inventory.update(
    Mws::Inventory(sku, quantity: 10, fulfillment_type: :mfn)
)

Example: Check the processing status of a feed:

mws.feeds.list(id: submission_id).each do | info |
  puts "SubmissionId: #{info.id} Status: #{info.status}"
  puts "Complete!" if [:cancelled, :done].include? info.status
end

Example: Get the results for a submission:

result = mws.feeds.get(submission_id)
puts "Submission: #{result.transaction_id} - #{result.status}"

For an example of putting it all together check out the 'scripts/catalog-workflow'

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

About

A Ruby Client Library for Amazon MWS

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages