I found a feed scripted for oscommerse but also like to use it in my opencart store.
Hope someone can tel me what variables i need to change.
Thanks in advance
Code: Select all
<?php
chdir('..');
require_once('includes/application_top.php');
/*
***********************************************************************
osCommerce Koopjespakker upload
***********************************************************************
$btw=19;
$version ='6.1';
function set_u_error_reporting(){
if( isset( $_REQUEST['e']) ){
error_reporting(E_ALL ^ E_NOTICE);
}else{
error_reporting(0);
}
}
if( $btw )$btw_multiplier = 1+($btw / 100);
function array_sort($a,$fl){
if( !is_array( $a) )return;
$GLOBALS['__ARFSORT_LIST__'] = $fl;
usort($a,'arfsort_func');
return $a;
}
function arfsort_func($a,$b) {
foreach ($GLOBALS['__ARFSORT_LIST__'] as $f) {
switch ($f[1]) { // switch on ascending or descending value
case "d":
## Add number type sort
if (is_numeric($a[$f[0]])) {
if ($b[$f[0]] < $a[$f[0]]) $strc = -1;
else if ($b[$f[0]] > $a[$f[0]]) $strc = 1;
else $strc = 0;
} else {
$strc = strcmp($b[$f[0]],$a[$f[0]]);
}
if ( $strc != 0 ){
return $strc;
}
break;
default:
if (is_numeric($a[$f[0]])) {
if ($b[$f[0]] > $a[$f[0]]) $strc = -1;
else if ($b[$f[0]] < $a[$f[0]]) $strc = 1;
else $strc = 0;
} else {
$strc = strcmp($a[$f[0]],$b[$f[0]]);
}
if ($strc != 0){
return $strc;
}
break;
}
}
return 0;
}
function get_parent_cat( $cat_id, $cat_parent, $cat_desc ){
$parent_id = $cat_id;
$parent_ids[] = $parent_id;
while($parent_id){
$parent_id =$cat_parent[$parent_id];
$parent_ids[] = $parent_id;
}
$parent_ids=array_reverse($parent_ids);
if( is_array( $parent_ids ) ){
foreach( $parent_ids as $n => $id ){
if(1==$n)$to_return['category_id']=$id;
if(1==$n)$to_return['category']=$cat_desc[$id];
if(2==$n)$to_return['subcategory_id']=$id;
if(2==$n)$to_return['subcategory']=$cat_desc[$id];
if(3==$n)$to_return['subsubcategory_id']=$id;
if(3==$n)$to_return['subsubcategory']=$cat_desc[$id];
}
}
return $to_return;
}
// languages_id
$sql="
select languages_id from languages
where code='nl' OR code ='nederlands' and directory != ''
";
$sql_result=tep_db_query($sql);
set_u_error_reporting();
$arr_res = mysql_fetch_array($sql_result);
$languages_id = $arr_res[0];
// languages_id defualt
if( !$languages_id ){
$sql="
select languages_id from languages
inner join configuration on ( configuration.configuration_value = languages.code)
";
$sql_result=tep_db_query($sql);
set_u_error_reporting();
$arr_res = mysql_fetch_array($sql_result);
$languages_id = $arr_res[0];
}
// cat_parent
$sql="
select categories_id, parent_id, sort_order from categories
";
$sql_result=tep_db_query($sql);
while ($row_categories = mysql_fetch_array($sql_result)) {
$cat_parent[$row_categories['categories_id']]=$row_categories['parent_id'];
$sort_order_by_categories_id[$row_categories['categories_id']]=$row_categories['sort_order'];
}
// cat_desc
$sql="select categories_id, categories_name from categories_description where language_id = ".(int)$languages_id;
$sql_result=tep_db_query($sql);
while ($row_desc = mysql_fetch_array($sql_result)) {
$cat_desc[$row_desc['categories_id']]=$row_desc['categories_name'];
}
tep_db_query('set sql_big_selects=1');
// GROUP BY p.products_id, totdat ook rekening gehouden word met products_attributes
$sql='
SELECT c.categories_id, s.specials_new_products_price, p.products_id, p.products_model, p.products_image, p.products_price, pd.products_name, pd.products_description, m.manufacturers_name, IF(s.status, s.specials_new_products_price, p.products_price) as final_price, date_format( s.expires_date, "%Y%m%d" ) AS expires_date, p.products_id as products_products_id
FROM products p LEFT JOIN products_description pd ON p.products_id = pd.products_id
LEFT JOIN manufacturers m ON p.manufacturers_id = m.manufacturers_id
LEFT JOIN manufacturers_info mi ON m.manufacturers_id = mi.manufacturers_id AND pd.language_id = mi.languages_id
LEFT JOIN products_to_categories ptc ON pd.products_id = ptc.products_id
LEFT JOIN specials s ON ptc.products_id = s.products_id
LEFT JOIN categories c ON ptc.categories_id = c.categories_id
LEFT JOIN categories_description cd ON c.categories_id = cd.categories_id AND pd.language_id = cd.language_id
LEFT JOIN products_attributes pa ON p.products_id = pa.products_id
LEFT JOIN products_options po ON pa.options_id = po.products_options_id AND pd.language_id = po.language_id
LEFT JOIN products_options_values pov ON pa.options_values_id = pov.products_options_values_id AND po.language_id = pov.language_id
WHERE
' . ( $languages_id !== false ? 'pd.language_id = ' . mysql_real_escape_string( $languages_id ) . ' AND' : '' ) . '
p.products_status = 1
GROUP BY p.products_id
';
// $sql.=' ORDER BY s.specials_new_products_price desc ';
if($_REQUEST[limit_offers] && is_numeric($_REQUEST[limit_offers]) ){
$sql.=' limit '.mysql_real_escape_string( $_REQUEST[limit_offers] ).' ';
}else{
$sql.=' limit 5000 ';
}
$sql_result=tep_db_query($sql);
set_u_error_reporting();
$list=array();
while ($row = mysql_fetch_array($sql_result)) {
$cats = get_parent_cat( $row['categories_id'], $cat_parent, $cat_desc );
$row[category_id_sort_order] = $sort_order_by_categories_id[$cats['category_id']];
$row[subcategory_id_sort_order] = $sort_order_by_categories_id[$cats['subcategory_id']];
$row[subsubcategory_id_sort_order] = $sort_order_by_categories_id[$cats['subsubcategory_id']];
$row[category] = $cats['category'];
$row[subcategory] = $cats['subcategory'];
$row[subsubcategory] = $cats['subsubcategory'];
$list[]=$row;
}
$list = array_sort( $list, array(array( 'specials_new_products_price', 'd' ), array( 'category_id_sort_order', 'a' ), array( 'subcategory_id_sort_order', 'a' ), array( 'subsubcategory_id_sort_order', 'a' ), array( 'category', 'a' ), array( 'subsubcategory', 'a' ), array( 'subsubcategory', 'a' ), array( 'products_name', 'a' ) ) );
// schrijf eerste regels weg
$outp= "#country=nl\n#type=basic\n#currency=EUR\n#version=".$version."\n";
$outp.= '#PHP_SELF='.$PHP_SELF."\n";
$outp.= '#SERVER_PHP_SELF='.$_SERVER["PHP_SELF"]."\n";
$outp.= '#HTTP_SERVER_VARS_PHP_SELF='.$HTTP_SERVER_VARS["PHP_SELF"]."\n";
$outp.= '#SERVER_PATH_INFO='.$_SERVER["PATH_INFO"]."\n";
$outp.= '#ENV_PATH_INFO='.$_ENV["PATH_INFO"]."\n";
$outp.= '#HTTP_ENV_VAR_PATH_INFO='.$HTTP_ENV_VARS["PATH_INFO"]."\n";
$outp.= "url\ttitle\tdescription\tprice\tfromprice\tspecials_new_products_price\tofferid\timage\tmanufacturer\tmodel\texpire_date_from_price\tcategory\tsubcategory\tsubsubcategory\n";
echo $outp;
// format results by row
foreach ($list as $row ) {
$id = str_replace("\t"," ", $row['products_id']);
$url = tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $id, 'NONSSL', false);
$url = str_replace("\t","", $url);
$products_name = str_replace("\t"," ", $row['products_name']);
$products_description = preg_replace("/[\t\n\s\r]/mi", " ", $row['products_description']);
$model = str_replace("\t"," ", $row['products_model']);
$image = str_replace("\t"," ", $row['products_image']);
$price = str_replace("\t"," ", $row['products_price']);
$specials_new_products_price = str_replace("\t"," ", $row['specials_new_products_price']);
$fromprice = 0.00;
$manufacturer = str_replace("\t"," ", $row['manufacturers_name']);
$expire_date_from_price=$row["expires_date"];
$category = str_replace("\t","", $row['category']);
$subcategory = str_replace("\t","", $row['subcategory']);
$subsubcategory = str_replace("\t","", $row['subsubcategory']);
if( $btw_multiplier ){
$price = $price*$btw_multiplier;
$specials_new_products_price = $specials_new_products_price*$btw_multiplier;
$fromprice = $fromprice*$btw_multiplier;
}
$price = $price;
$specials_new_products_price = $specials_new_products_price;
$fromprice = $fromprice;
$outp='';
set_u_error_reporting();
$outp.= $url."\t";
$outp.= $products_name . "\t";
$outp.= $products_description. "\t";
$outp.= sprintf("%.2f",$price) . "\t";
$outp.= sprintf("%.2f",$fromprice) . "\t";
$outp.= sprintf("%.2f",$specials_new_products_price) . "\t";
$outp.= $id."\t";
$url_image = $image ? HTTP_SERVER . DIR_WS_HTTP_CATALOG . DIR_WS_IMAGES . $image : ''."\t";
$outp.= $url_image."\t";
$outp.= $manufacturer."\t";
$outp.= $model."\t";
$outp.= $expire_date_from_price."\t";
$outp.= $category."\t";
$outp.= $subcategory."\t";
$outp.= $subsubcategory;
$outp.= "\n";
echo $outp;
?>
<?php
}
//echo $outp;
?>