Jump to content

Prestashop Products xml export script problem


Recommended Posts

Hello all,

I have a problem with my php script for exporting products in xml file format, Here is the php script!

 

<?php
include(dirname(__FILE__).'/../../config/config.inc.php');
require_once(dirname(__FILE__).'/../../init.php');

// Get data
$number = (intval(Tools::getValue('n')) ? intval(Tools::getValue('n')) : 10000);
$orderByValues = array(0 => 'name', 1 => 'price', 2 => 'date_add', 3 => 'date_upd', 4 => 'position');
$orderWayValues = array(0 => 'ASC', 1 => 'DESC');
$orderBy = Tools::strtolower(Tools::getValue('orderby', $orderByValues[intval(Configuration::get('PS_PRODUCTS_ORDER_BY'))]));
$orderWay = Tools::strtoupper(Tools::getValue('orderway', $orderWayValues[intval(Configuration::get('PS_PRODUCTS_ORDER_WAY'))]));
if (!in_array($orderBy, $orderByValues))
$orderBy = $orderByValues[0];
if (!in_array($orderWay, $orderWayValues))
$orderWay = $orderWayValues[0];
//$id_category = (intval(Tools::getValue('id_category')) ? intval(Tools::getValue('id_category')) : 1);

$currency = new Currency(intval($cookie->id_currency));
$affiliate = (Tools::getValue('ac') ? '?ac='.Tools::getValue('ac') : '');


$categTree = Category::getRootCategory()->recurseLiteCategTree(0);

function constructTreeNode($node){
$ret = ';';
$ret .= $node['id'].'|'.$node['name'].';';
if(!empty($node['children']))
{
	$ret .= ';';
	foreach ($node['children'] AS $child)
		$ret .= constructTreeNode($child);
	$ret .= ';';
}
return $ret;
}


foreach ($categTree['children'] AS $child)
$ulTree .= constructTreeNode($child);

$tab_cat=explode(';',$ulTree);
foreach ($tab_cat as $id2cat){
$tab_id2cat=explode('|',$id2cat);
if (!empty($tab_id2cat)) $tab_cat_final[$tab_id2cat[0]]=$tab_id2cat[1];
}





header("Content-Type:text/xml; charset=utf-8");
echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";
?>
<root>

<?php
foreach ($tab_cat_final as $id_category=>$name_category){

$products = Product::getProducts(intval($cookie->id_lang), 0, ($number > 10000 ? 10000 : $number), $orderBy, $orderWay, $id_category, true);

foreach ($products AS $product)
{
	$image = Image::getImages(intval($cookie->id_lang), $product['id_product']);
	$prix=Product::getPriceStatic($product['id_product']);
	if ($product['reduction_percent']>0) $prix_promo=$prix*(1-$product['reduction_percent']/100);else $prix_promo=($prix-$product['reduction_price']);


	echo "<item>\n";
	echo "<name><![CDATA[".$product['name']."]]></name>\n";
	echo "<price>".$prix."</price>\n";
	echo "<image>"._PS_BASE_URL_.__PS_BASE_URI__."img/p/".$image[0]['id_product']."-".$image[0]['id_image']."-large.jpg</img>\n";
	echo "<link><![CDATA[".htmlspecialchars($link->getproductLink($product['id_product'], $product['link_rewrite'], Tools::getValue('id_category'))).$affiliate."]]></link>\n";
	echo "<categorie><![CDATA[".$name_category."]]></categorie>\n";
	echo "</item>\n";
}
}
?>
</root>

 

What i must change or add to php script that the xml file look so for example?:

 

 

-<root>

<item>

<name>Maxximus akumulators HTC Smart 1450mAh</name>

<link>http://www.smalshop.lv/product.php?id_product=765</link>

<price>6.30</price>

<image>http://www.smalshop.lv/img/p/765-892-large.jpg</image>

<category_full>Mobile phones>>Battery>>HTC</category_full>

<category_link>http://www.smalshop.lv/category.php?id_category=10</category_link>

</item>......<item>

-</root>

 

 

The Big problems is the folowing!

1) I wanna that the price in xml file shows for example 3.50 not 3.5!

2) I wanna that in the xml file is shown full category in the place where is category, for example Mobile phones>>Batterys>>Nokia

3) I wanna that in the xml file is displayed full category link

 

The places in xml file that shows corect:

1)Section product name <name>

2)Section product link <link>

2)Section product image link <image>

 

What i should change or add in php script that xml file shows what i write on top???

Link to comment
Share on other sites

×
×
  • Create New...