I have received an API from a New Zealand Auction Site which can integrate with websites to retrieve information like product status's etc, however they do not know where the placement of the API code should be position in a opencart site
Any one know where this should go???
I have the api identifier and private key
Code that was provided is as follows
Code: Select all
<?php
// put products data into an array - we're using an array of objects here
$products=array();
$userid=3044; // your sitemember number
$apiid='your api identifier';
$privateKey='your private key';
$timestamp=time();
$xml='<?xml version="1.0" ?>';
$xml.="<lstImport>\n";
$xml.="<ident>\n";
$xml.="<version>1</version>\n";
$xml.="<timestamp>".$timestamp."</timestamp>\n";
$xml.="<user>".$userid."-".$apiid."</user>\n";
$xml.="</ident>\n";
foreach($products as $product)
{
// ****
$lstcat=11957;
// ****
$price=myXMLEntities($product->product_price);
$name=myXMLEntities($product->product_name);
$desc=myXMLEntities($product->product_description);
$photo=myXMLEntities($_SERVER['HTTP_HOST'].$product->product_image);
$weblink=myXMLEntities('http://'); // provide a link to the product on your website
// we're using a set of image URLs separated by the | character
$imagearr=explode('|',$product->product_image);
$uniqueid=myXMLEntities($product->product_id);
$name=myXMLEntities($product->product_name);
$price=myXMLEntities($product->product_price);
// for XML generation
$productstr='';
$productstr.="<product>\n";
// will be extended in version 2, for now we only support standard products
$productstr.="<productType>standard</productType>\n";
//$productstr.="<productType>rental-property</productType>\n";
//$productstr.="<productType>lease-property</productType>\n";
//$productstr.="<productType>retirement-property</productType>\n";
//$productstr.="<productType>forsale-property</productType>\n";
//$productstr.="<productType>vehicle-full</productType>\n";
//$productstr.="<productType>vehicle-limited</productType>\n";
//$productstr.="<productType>boat</productType>\n";
// the unique id for your product
$productstr.="<productUniqueID>".$uniqueid."</productUniqueID>\n";
// the List Sell Trade category
$productstr.="<productCategory>".$lstcat."</productCategory>\n";
// your category identifier, e.g. Hats
$productstr.="<productCategoryName>Hats</productCategoryName>\n";
// product title
$productstr.="<productTitle>".$name."</productTitle>\n";
// product description
$productstr.="<productDescription>".$desc."</productDescription>\n";
// product link to website
$productstr.="<productLink>".$weblink."</productLink>\n";
// one of following two sets of options
$productstr.="<productSaleType>selling-fixed</productSaleType>\n";
$productstr.="<productBuyPrice>".$price."</productBuyPrice>\n";
// or
//$productstr.="<productSaleType>selling-fixed</productSaleType>\n";
//$productstr.="<productBuyNowPrice>".$buynowprice."</productBuyNowPrice>\n";
//$productstr.="<productStartPrice>".$startprice."</productStartPrice>\n";
//$productstr.="<productReservePrice>".$reserveprice."</productReservePrice>\n";
// one of the following three options
$productstr.="<productPickup>can-pick-up</productPickup>\n";
//$productstr.="<productPickup>no-pick-up</productPickup>\n"
//$productstr.="<productPickup>must-pick-up</productPickup>\n"
$productstr.="<productPaymentTypes>bank-deposit</productPaymentTypes>\n";
//$productstr.="<productPaymentTypes>cash|credit-card|bank-deposit</productPaymentTypes>\n";
$productstr.="<productShipping>tbc-shipping</productShipping>\n";
$productstr.="<productShippingNote></productShippingNote>\n";
// use 1 for current, 0 to remove
$productstr.="<productCurrent>1</productCurrent>\n";
// number of days to list for
$productstr.="<productDuration>4</productDuration>\n";
// up to 10 images - urls of images
$productstr.="<productImages>\n";
foreach($imagearr as $image)
{
$imageurl=myXMLEntities('http://'.$_SERVER['HTTP_HOST']."/".$image);
$productstr.="<image>".$imageurl."</image>\n";
}
$productstr.="</productImages>\n";
$productstr.="</product>\n";
$xml.=$productstr;
}
$xml.="</lstImport>\n";
// get the hash using private key
$hash=hash_hmac('sha256', $xml, $privateKey);
$output=str_ireplace('<lstImport>','<lstImport><hash>'.$hash."</hash>",$xml);
$url = 'https://listselltrade.co.nz/api/v1/upload.php'; // test
$data = $output;
$fields_string='data='.urlencode($data); // must supply data!
//open connection
$ch = curl_init();
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//execute post
$result = curl_exec($ch);
echo nl2br(htmlentities($result, ENT_NOQUOTES, "UTF-8"));
//close connection
curl_close($ch);
exit;
function myXMLEntities($string){
return htmlentities($string, ENT_NOQUOTES, "UTF-8");
}
?>