Post by bertjebel » Wed Jan 04, 2012 7:02 pm

Who has more insigth then me in the stucture of opencart..

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;

?>

My shops running Opencart Multistore:
Koptelefoon, audio kabels en speakers kopen
Led lampen en verlichting
Alle kabels- audiokabel, computerkabel, stroomkabel
Koptelefoon en In ear oordopjes / oortjes Apple iPhone, Samsung Smartphone
Smartphone hoesjes en oordopjes Apple iPhone en Samsung
Online Aanbiedingen en Sales
Hoesjes, Covers en accessoires Tablet en smartphone


User avatar
Active Member

Posts

Joined
Tue Jun 21, 2011 11:17 am

Who is online

Users browsing this forum: No registered users and 0 guests