class Papapi::Merchant::Commission

Public Class Methods

new(session) click to toggle source
# File lib/papapi/merchant_commision.rb, line 8
def initialize(session)
  @session = session
  raise "Merchant session is required" if !@session.is_merchant?
end

Public Instance Methods

by_orders(order_ids,affiliate_id = nil) click to toggle source
# File lib/papapi/merchant_commision.rb, line 13
def by_orders(order_ids,affiliate_id = nil)
  requests = order_ids.map do |order_id|
    r = GridRequest.new("Pap_Merchants_Transaction_TransactionsGrid", "getRows", @session)
    r.set_param("isInitRequest","Y")
    r.set_param("filterType","transaction_filter")
    r.add_filter("orderid","E",order_id)
    r.add_filter("userid","E",affiliate_id) if affiliate_id
    r.add_column("id")
    r.add_column("userid")
    r.add_column("commission")
    r.add_column("orderid")
    r
  end

  commissions = Hash[order_ids.map {|i| [i.to_s, 0.0]}]
  responses = MultiRequest.new(requests).send
  responses.each do |resp|
    resp.each do |row|
      commissions[row['orderid']] += row['commission'].to_f
    end
  end
  commissions
end
create(affiliate_id, campaign_id, commission, commtypeid, payoutstatus = '', fields = {}) click to toggle source
# File lib/papapi/merchant_commision.rb, line 37
def create(affiliate_id, campaign_id, commission, commtypeid, payoutstatus = '', fields = {})
  r = FormRequest.new('Pap_Merchants_Transaction_TransactionsForm', 'add', @session)
  f = {
      :userid => affiliate_id,
      :campaignid => campaign_id,
      :commtypeid => commtypeid,
      :commission => commission,
      :payoutstatus => payoutstatus,
      :multiTier => "N"
  }.merge(fields)
  r.set_fields(f)
  r.send
end
create_raw(affiliate_id, campaign_id, commtypeid, multitier, fields = {}) click to toggle source

commtypeid Can be found in Merchant panel: Campaigns -> Campaign manager -> edit campaign (pencil icon) -> Commission settings

# File lib/papapi/merchant_commision.rb, line 52
def create_raw(affiliate_id, campaign_id, commtypeid, multitier, fields = {})
  r = FormRequest.new('Pap_Merchants_Transaction_TransactionsForm', 'add', @session)
  f = {
    :userid => affiliate_id,
    :campaignid => campaign_id,
    :commtypeid => commtypeid,
    :multiTier => multitier,
    :transid => nil,
    :Id => nil
  }.merge(fields)
  r.set_fields(f)
  r.send
end
remove(commission_ids) click to toggle source
# File lib/papapi/merchant_commision.rb, line 66
def remove(commission_ids)
  #{"C":"Pap_Merchants_Transaction_TransactionsForm", "M":"deleteRows", "ids":["00a47a09"]
  r = Request.new('Pap_Merchants_Transaction_TransactionsForm', 'deleteRows', @session)
  r.set_param('ids', commission_ids)
  r.send
end