To experiment with this library, run bin/console for an interactive prompt.
The Rakuten Product API documentation can be found at the following links.
Add this line to your application's Gemfile:
gem 'rakuten_product_api'And then execute:
$ bundle install
Or install it yourself as:
$ gem install rakuten_product_api
The library comes with bin/console which can be used to explore the client and api. If there is a local ./config.rb the console script will load it.
To configured the library for Rails, create an initializer file config/initializers/rakuten.rb
RakutenProductApi.configure do |config|
config.sid = 'your-site-id'
config.client_id = 'your-client-id'
config.client_secret = 'your-client-secret'
endOnce you have configured the library, you can create a client.
client = RakutenProductApi::Client.new
client.sid
=> "your-site-id"This client should be threadsafe. Configuration values are local to your instance.
This library needs to query the API to retreive an access_token which has an access_token_expires_at time, prior to which, the library will refresh the token
You can initialise the library with the access_token and access_token_expires_at values to avoid this lookup. If the access_token_expires_at is nil or in the past, the library will fetch the value so you can safely cache this value and use it without checking it's expiry.
client = RakutenProductApi::Client.new(access_token: 'abcd1234', access_token_expires_at: 1613362973)
client.endpoint
=> "https://api.linksynergy.com"
client.access_token
=> "abcd1234"You can specify which merchants to query by using mid paramater. For example Kobo Australia would be: mid: 38131
results = client.search(keyword: 'Murderbot', mid: 38131)
results.items.count
=> 7
results.items[0].merchant
=> "Rakuten Kobo Australia"
results.items[0].isbn
=> "9781250185464"
results.items[0].title
=> "Exit Strategy"
results.items[0].price
=> ["15.06", "AUD"]
results.items[0].rrp
=> ["18.70", "AUD"]You can specify which merchants to query by using mid: 38131
results = client.search(keyword: '9781501977824', mid: 38131)
results.items[0].gtin
=> "9781501977824"
results.items[0].title
=> "All Systems Red"The API also allows other attribute:
- exact
- one
- none
- sort & sorttype
When using sort, you must also use sorttype ( 'asc' or 'dsc'). See the documentation for more.
This library implement the parts I need. For example, it doesn't handle paging through results as I don't need it, but I'm happy to accept pull request.
- ISBN is taken from either the
skuor thekeywordsfields and mached against a regular expression/97[98]\d{10}/as there's no specific field for it. - Condition is guessed by looking for the string "Used" in the description. This is a terrible idea, but there is no field for condition.
- This library aliases rrp -> price and price -> saleprice. When sorting you need to use the original attribute names ( price / saleprice )
After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.
If you create a file config.rb, it will be loaded by bin/console, allowing you to configure it automatically.
RakutenProductApi.configure do |config|
config.sid = 'your-site-id'
config.username = 'your-rakuten-username'
config.password = 'your-rakuten-password'
config.consumer_key = 'your-consumer-key'
config.consumer_secret = 'your-consumer-secret'
endTo install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and the created tag, and push the .gem file to rubygems.org.
Bug reports and pull requests are welcome on GitHub at https://github.com/dkam/rakuten_product_api.
The gem is available as open source under the terms of the MIT License.