Blame | Last modification | View Log | RSS feed
<?phpinclude_once('php/constants.php');error_reporting(E_ALL); // Turn on all errors, warnings and notices for easier debugging// Get eBay listingsfunction get_ebay($query, $searchType) {// API request variables$endpoint = 'http://svcs.ebay.com/services/search/FindingService/v1';$version = '1.13.0';$appid = 'UweJacob-MusicCDs-PRD-0eaa5c961-9b7ca596';$trackingId = '5338527412'; // EPN Campaign Id$globalid = 'EBAY-US';$safequery = urlencode($query); // Make the query URL-friendly$numResults = 20; // Maximum Number of Search Results// Create a PHP array of the item filters you want to use in your request$filterarray =array(array('name' => 'Condition','value' => ($searchType == constant("NEW") ? 'New' : 'Used'),'paramName' => '','paramValue' => ''),array('name' => 'HideDuplicateItems','value' => 'true','paramName' => '','paramValue' => ''),array('name' => 'ListingType','value' => array('AuctionWithBIN','FixedPrice','StoreInventory'),'paramName' => '','paramValue' => ''),);// Build the indexed item filter URL snippet$urlfilter = buildURLArray($filterarray);// Construct the findItemsByKeywords HTTP GET call$apicall = "$endpoint?";$apicall .= "OPERATION-NAME=findItemsAdvanced";$apicall .= "&SERVICE-VERSION=$version";$apicall .= "&SECURITY-APPNAME=$appid";$apicall .= "&GLOBAL-ID=$globalid";$apicall .= "&REST-PAYLOAD";$apicall .= "&affiliate.networkId=9";$apicall .= "&affiliate.trackingId=$trackingId";$apicall .= "&affiliate.customId=findCheapMusic";$apicall .= "&paginationInput.entriesPerPage=$numResults";$apicall .= "&sortOrder=PricePlusShippingLowest";if (isset($_SESSION['buyerZip'])) {$apicall .= "&buyerPostalCode=" . $_SESSION['buyerZip'];}$apicall .= "&outputSelector=SellerInfo";$apicall .= "&keywords=$safequery";if ($_SESSION["filterMediaTypeCD"] && $_SESSION["filterMediaTypeRecord"]) {$apicall .= "&categoryId(0)=176985"; // Music Records$apicall .= "&categoryId(1)=176984"; // Music CDs} else if ($_SESSION["filterMediaTypeCD"]) {$apicall .= "&categoryId=176984"; // Music CDs} else if ($_SESSION["filterMediaTypeRecord"]) {$apicall .= "&categoryId=176985"; // Music Records}$apicall .= "$urlfilter";// Load the call and capture the document returned by eBay API$resp = simplexml_load_file($apicall);$arr = array();// Check to see if the request was successful, else print an errorif ($resp->ack == "Success") {// If the response was loaded, parse it and store in arrayforeach($resp->searchResult->item as $item) {$title = $item->title;$pic = str_replace('http://', 'https://', $item->galleryURL);$url = str_replace('http://', 'https://', $item->viewItemURL);$category = $item->primaryCategory->categoryName;if ($category == "CDs") {$category = "CD";}if ($category == "CDs & DVDs") {$category = "CD";}if ($category == "Records") {$category = "Record";}$condition = $item->condition->conditionDisplayName;$country = $item->country;$bestOffer = $item->listingInfo->bestOfferEnabled;if ($item->listingInfo->buyItNowAvailable == "true") {$price = $item->listingInfo->convertedBuyItNowPrice;$currency = $item->listingInfo->convertedBuyItNowPrice['currencyId'];} else {$price = $item->sellingStatus->currentPrice;$currency = $item->sellingStatus->currentPrice['currencyId'];}$price = number_format(floatval($price), 2, '.', '');$timeLeft = $item->sellingStatus->timeLeft;$listingType = $item->listingInfo->listingType;$location = $item->location;$zip = $item->postalCode;$feedbackScore = $item->sellerInfo->feedbackScore;$feedbackPercent = $item->sellerInfo->positiveFeedbackPercent;$sellerName = $item->sellerInfo->sellerUserName;$handlingTime = $item->shippingInfo->handlingTime;$shippingCost = number_format(floatval($item->shippingInfo->shippingServiceCost), 2, '.', '');$shippingCurrency = $item->shippingInfo->shippingServiceCost['currencyId'];// skip items without gallery imageif ($pic == "") {continue;}$arr[] = array("Merchant"=>"eBay","Type"=>($searchType == constant("NEW") ? 'New' : 'Used'),"Title"=>"$title","Image"=>"$pic","URL"=>"$url","Category"=>"$category","Condition"=>"$condition","Country"=>"$country","BestOffer"=>"$bestOffer","TimeLeft"=>"$timeLeft","Price"=>"$price","Currency"=>"$currency","ListingType"=>"$listingType","Location"=>"$location","Zip"=>"$zip","FeedbackScore"=>"$feedbackScore","FeedbackPercent"=>"$feedbackPercent","SellerName"=>"$sellerName","HandlingTime"=>"$handlingTime","ShippingCost"=>"$shippingCost","ShippingCurrency"=>"$shippingCurrency");}return($arr);}// If the response does not indicate 'Success,' log an errorelse {foreach($resp->errorMessage->error as $error) {error_log($apicall);error_log("Severity: $error->severity; Category: $error->category; Domain: $error->domain; ErrorId: $error->errorId; Message: $error->message");}return([]);}}// Generates an indexed URL snippet from the array of item filtersfunction buildURLArray ($filterarray) {$filter = '';$i = '0'; // Initialize the item filter index to 0// Iterate through each filter in the arrayforeach($filterarray as $itemfilter) {// Iterate through each key in the filterforeach ($itemfilter as $key =>$value) {if(is_array($value)) {foreach($value as $j => $content) { // Index the key for each value$filter .= "&itemFilter($i).$key($j)=$content";}}else {if($value != "") {$filter .= "&itemFilter($i).$key=$value";}}}$i++;}return "$filter";}