class Ebay::Shopping

The eBay Shopping API makes it easy to search for things on eBay.

@see developer.ebay.com/Devzone/shopping/docs/Concepts/ShoppingAPI_FormatOverview.html @see developer.ebay.com/Devzone/shopping/docs/CallRef/index.html

Attributes

affiliate_user_id[R]

@return [String]

app_id[R]

@return [String]

response_encoding[R]

@return [String]

site_id[R]

@return [String]

tracking_id[R]

@return [String]

tracking_partner_code[R]

@return [String]

version[R]

@return [String]

version_handling[R]

@return [String]

Public Class Methods

new(app_id: Config.app_id, response_encoding: nil, site_id: nil, version: '1119', version_handling: nil, tracking_id: nil, tracking_partner_code: nil, affiliate_user_id: nil) click to toggle source

Returns a Finding API request instance

@param [String] app_id @param [String] response_encoding @param [String] site_id @param [String] version @param [String] version_handling @param [String] tracking_id @param [String] tracking_partner_code @param [String] affiliate_user_id

# File lib/ebay/shopping.rb, line 56
def initialize(app_id: Config.app_id, response_encoding: nil,
               site_id: nil, version: '1119',
               version_handling: nil, tracking_id: nil,
               tracking_partner_code: nil, affiliate_user_id: nil)
  @app_id = app_id
  @response_encoding = response_encoding
  @site_id = site_id
  @version = version
  @version_handling = version_handling
  @tracking_id = tracking_id
  @tracking_partner_code = tracking_partner_code
  @affiliate_user_id = affiliate_user_id
end

Public Instance Methods

find_products(payload = {}) click to toggle source

Returns one or more eBay catalog products based on a query string or product ID value

@param [Hash] payload @return [HTTP::Response]

# File lib/ebay/shopping.rb, line 75
def find_products(payload = {})
  request('FindProducts', payload)
end
get_category_info(category_id, payload = {}) click to toggle source

Retrieves high-level data for a specified eBay category

@param [String] category_id @param [Hash] payload @return [HTTP::Response]

# File lib/ebay/shopping.rb, line 84
def get_category_info(category_id, payload = {})
  payload = payload.merge('CategoryID' => category_id)
  request('GetCategoryInfo', payload)
end
get_ebay_time(payload = {}) click to toggle source

Gets the official eBay system time in GMT

@param [Hash] payload @return [HTTP::Response]

# File lib/ebay/shopping.rb, line 93
def get_ebay_time(payload = {})
  request('GeteBayTime', payload)
end
get_item_status(*item_ids) click to toggle source

Retrieves the current status of up to 20 eBay listings

@overload get_item_status(*item_ids, payload = {})

@param [String] item_ids
@param [Hash] payload
@return [HTTP::Response]
# File lib/ebay/shopping.rb, line 103
def get_item_status(*item_ids)
  payload = item_ids.last.is_a?(Hash) ? item_ids.pop : {}
  payload = payload.merge('ItemID' => item_ids.map(&:to_s))
  request('GetItemStatus', payload)
end
get_multiple_items(*item_ids) click to toggle source

Retrieves publicly available data for one or more listings

@overload get_multiple_items(*item_ids, payload = {})

@param [String] item_ids
@param [Hash] payload
@return [HTTP::Response]
# File lib/ebay/shopping.rb, line 115
def get_multiple_items(*item_ids)
  payload = item_ids.last.is_a?(Hash) ? item_ids.pop : {}
  payload = payload.merge('ItemID' => item_ids.map(&:to_s))

  request('GetMultipleItems', payload)
end
get_shipping_costs(item_id, payload = {}) click to toggle source

Gets shipping costs for a listing

@param [String] item_id @param [Hash] payload @return [HTTP::Response]

# File lib/ebay/shopping.rb, line 127
def get_shipping_costs(item_id, payload = {})
  payload = payload.merge('ItemID' => item_id)
  request('GetShippingCosts', payload)
end
get_single_item(item_id, payload = {}) click to toggle source

Gets publicly visible details about one listing

@param [String] item_id @param [Hash] payload @return [HTTP::Response]

# File lib/ebay/shopping.rb, line 137
def get_single_item(item_id, payload = {})
  payload = payload.merge('ItemID' => item_id)
  request('GetSingleItem', payload)
end
get_user_profile(user_id, payload = {}) click to toggle source

Retrieves user information

@param [String] user_id @param [Hash] payload @return [HTTP::Response]

# File lib/ebay/shopping.rb, line 147
def get_user_profile(user_id, payload = {})
  payload = payload.merge('UserID' => user_id)
  request('GetUserProfile', payload)
end

Private Instance Methods

request(operation, payload = {}) click to toggle source
# File lib/ebay/shopping.rb, line 154
def request(operation, payload = {})
  params = { 'appid' => app_id,
             'callname' => operation,
             'requestencoding' => 'JSON',
             'responseencoding' => response_encoding,
             'siteid' => site_id,
             'version' => version,
             'versionhandling' => version_handling,
             'affiliateuserid' => affiliate_user_id,
             'trackingid' => tracking_id,
             'trackingpartnercode' => tracking_partner_code }.compact

  http.headers(headers).post(endpoint, params: params, body: JSON.dump(payload))
end