public function registerSaleDetails($items, $cookievalue = null)
{
$config = Mage::getSingleton('pap/config');
error_reporting(E_ALL & ~E_NOTICE);
// drop the error level just a notch because the included code can't handle it
// $includefile = $config->getLocalPath().'/api/PapApi.class.php';
// if (!file_exists($includefile))
// {
// // We can't recover from this, but showing an error is not an option either.
// Mage::Log("Failed to track affiliate order because the file ".$includefile." does not exist");
// return; // fail silently
// }
//
//// require_once($_SERVER['DOCUMENT_ROOT'].'/affiliate/api/PapApi.class.php');
// require_once($includefile);
$config->RequirePapAPI();
// create a sale tracker
$saleTracker = new Pap_Api_SaleTracker($config->getRemotePath() . '/scripts/sale.php');
// $saleTracker = new Pap_Api_SaleTracker('www.priacta.com/affiliate/scripts/sale.php');
$sales = array();
Mage::log("Registering sale details for " . count($items) . " items\n");
foreach ($items as $idx => $item) {
Mage::log("Registering sale details for order: " . $item['orderid'] . " item: " . $item['productid'] . " cost: " . $item['totalcost'] . "\n");
$sale = $saleTracker->createSale();
$sale->setTotalCost($item['totalcost']);
$sale->setOrderID($item['orderid']);
if ($item['channelid']) {
$sale->setChannelID($item['channelid']);
}
if ($item['data1']) {
$sale->setData1($item['data1']);
}
if ($item['data2']) {
$sale->setData2($item['data2']);
}
if ($item['data3']) {
$sale->setData3($item['data3']);
}
if ($item['data4']) {
$sale->setData4($item['data4']);
}
if ($item['data5']) {
$sale->setData5($item['data5']);
}
$sale->setProductID($item['productid']);
if (method_exists($sale, 'setCouponCode')) {
if ($item['couponcode']) {
$sale->setCouponCode($item['couponcode']);
}
}
if ($item['affiliateid']) {
$sale->setAffiliateID($item['affiliateid']);
}
$sales[] = $sale;
}
// if provided, drop in the cookie value
if (isset($cookievalue) && !is_null($cookievalue) && $cookievalue) {
$saleTracker->setCookieValue($cookievalue);
}
$saleTracker->register();
}