If you know campaignid, userid, commissiontypeid you can compute commission so:
<?php
include 'PapApi.class.php'; //the PapApi.class.php can be found at the PAP installation folder, in the 'api' directory
//----------------------------------------------
// login (as merchant)
$session = new Pap_Api_Session("URL_to_PAP/scripts/server.php");
if(!$session->login("merchant@example.com","merchant_password")) {
die("Cannot login. Message: ".$session->getMessage());
}
$request = new Gpf_Rpc_FormRequest("Pap_Merchants_Campaign_CampaignForm", "computeAutomaticCommissionRpc", $session);
$request->addParam('campaignid', '11111111'); //Id column in Campaign manager
$request->addParam('userid', '22222222'); //Id column in Affiliate manager
$request->addParam('type', '2a1c1bb2'); //Commissiontypeid, can be found in Merchant panel: Start -> Campaigns manager -> Edit -> Commissions settings
$request->addParam('tier', '1');
$request->addParam('totalcost', '580');
$request->addParam('fixedcost', '0');
try {
$request->sendNow();
} catch(Exception $e) {
die("API call error: ".$e->getMessage());
}
$response = $request->getStdResponse();
$fields = $response->fields;
echo 'new computed commission: ' . $fields[1][1];
?>
<?php
include 'PapApi.class.php'; //the PapApi.class.php can be found at the PAP installation folder, in the 'api' directory
//----------------------------------------------
// login (as merchant)
$session = new Pap_Api_Session("URL_to_PAP/scripts/server.php");
if(!$session->login("merchant@example.com","merchant_password")) {
die("Cannot login. Message: ".$session->getMessage());
}
$transactionId = 'fced0452';
//----------------------------------------------
//loading transaction with id = fced0452
$transaction = new Pap_Api_Transaction($session);
$transaction->setTransId($transactionId);
if (!($transaction->load())) { //loads the record with the given transaction id.
die ("<br>Loading of transaction failed!<br>".$transaction->getMessage());
}
$newTotalCost = '111';
//----------------------------------------------
//computing commission
$request = new Gpf_Rpc_FormRequest("Pap_Merchants_Campaign_CampaignForm", "computeAutomaticCommissionRpc", $session);
$request->addParam('campaignid', $transaction->getCampaignid());
$request->addParam('userid', $transaction->getUserid());
$request->addParam('type', $transaction->getCommTypeId());
$request->addParam('tier', $transaction->getTier());
$request->addParam('totalcost', $newTotalCost);
//$request->addParam('fixedcost', '0'); //you can set fixedcost also
try {
$request->sendNow();
} catch(Exception $e) {
die("API call error: ".$e->getMessage());
}
$response = $request->getStdResponse();
$fields = $response->fields;
$newCommission = $fields[1][1];
echo 'new computed commission: ' . $fields[1][1];
//----------------------------------------------
//saving transaction with new totalcost and commission
$transaction->setTotalCost($newTotalCost);
$transaction->setCommission($newCommission);
$transaction->save();
echo "<br>Transaction has been recomputed.";
?>