Skip to content
This repository has been archived by the owner on May 8, 2020. It is now read-only.

aevernon/commission_junction

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Archived project. No maintenance.

This project is not maintained anymore and is archived. Feel free to fork and make your own changes if needed.

Thanks to everyone for your valuable feedback and contributions.

commission_junction

Ruby wrapper for the Commission Junction web services APIs (REST)

See https://developers.cj.com/docs/rest-apis/overview.

Gem Version

Installation

Add this line to your application's Gemfile:

gem 'commission_junction'

And then execute

bundle

Or install it yourself as:

gem install commission_junction

Example

require 'commission_junction'

# See https://api.cj.com/sign_up.cj.
DEVELOPER_KEY = '????????'.freeze

# See cj.com > Account > Websites.
WEBSITE_ID = '????????'.freeze

cj = CommissionJunction.new(DEVELOPER_KEY, WEBSITE_ID)

# See https://cjcommunity.force.com/s/article/4777185
# for the list of request and response parameters.
cj.product_search('keywords' => '+blue +jeans',
                  'advertiser-ids' => 'joined',
                  'serviceable-area' => 'us',
                  'currency' => 'usd',
                  'records-per-page' => '5').each do |product|
  puts product.name
  puts product.price
  puts product.image_url
  puts ''
end

# See https://cjcommunity.force.com/s/article/4777195
# for the list of request and response parameters.
cj.advertiser_lookup('keywords' => '+used +books',
                     'advertiser-ids' => 'joined',
                     'records-per-page' => '5').each do |advertiser|
  puts advertiser.advertiser_name
  puts advertiser.network_rank
  puts advertiser.program_url
  puts ''
end

# See https://cjcommunity.force.com/s/article/4777180
# for the list of request and response parameters.
cj.link_search('keywords' => '+used +books',
               'advertiser-ids' => 'joined',
               'records-per-page' => '5').each do |link|
  puts link.link_id
  puts link.link_name
  puts link.link_code_html
  puts link.sale_commission
  puts ''
end

# See https://cjcommunity.force.com/s/article/4777190
# for the list of request and response parameters.
puts cj.categories

# See https://cjcommunity.force.com/s/article/4777175
# for the list of request and response parameters.
ids = []

cj.commissions.each do |commission|
  ids << commission.original_action_id
  puts commission.action_type
  puts commission.aid
  puts commission.commission_id
  puts commission.event_date
  puts commission.advertiser_name
  puts commission.commission_amount
  puts commission.sid
  puts ''
end

# Each commission comes from the sale of one or more items.
# Commissions and their items are linked by original_action_id.
cj.item_detail(ids[0, 50]).each do |item_detail|
  puts item_detail['original_action_id']

  items = item_detail['item']
  # If there is exactly one item, put it in an array.
  items = [items] if items.is_a?(Hash)

  items.each do |item|
    puts item['sku']
    puts item['quantity']
    puts item['posting_date']
    puts item['commission_id']
    puts item['sale_amount']
    puts item['discount']
    puts item['publisher_commission']
  end if items
end

Dependencies

  • httparty
  • ox

Authors

Copyright

Copyright (c) 2012 Albert Vernon. See LICENSE for details.