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(); }