Jump to content
xt:Commerce Community Forum

Hier k?nnt Ihr Euren Shop eintragen mit Produkten


enzko

Recommended Posts

Moin!

Bei Hotlister gibt es eine php-Datei zum einlesen der Artikel.

Allerdings ist die f?r OSC.

K?nnte die hier vielleicht jemand anpassen?


<?php

require_once('includes/configure.php');

require('includes/application_top.php');


// Wichtig: Diese Datei muss im selben Verzeichnis wie die product_info.php liegen, also meist /catalog/.

// Datenbankparamter werden aus den oscommerce-config-files gelesen.

$hostname_oscommerce = DB_SERVER;

$database_oscommerce = DB_DATABASE;

$username_oscommerce = DB_SERVER_USERNAME;

$password_oscommerce = DB_SERVER_PASSWORD;


// Pfadparameter werden aus den oscommerce-config-files gelesen.


$cat=(defined('DIR_WS_HTTP_CATALOG'))?DIR_WS_HTTP_CATALOG:DIR_WS_CATALOG;

$imagepath=HTTP_SERVER.$cat.DIR_WS_IMAGES; 


//falls Ihre Datailpage anders lautet, bitte entsprechend anpassen:

$detailpage=HTTP_SERVER.$cat."product_info.php?products_id=";


// Hier bitte Anpassungen vornehmen:

$exclude_status_0=true; // Produkte, die als "nicht vorr?tig" eingestellt sind, nicht mit ausgeben.

$lieferzeit_a="10"; // Lieferzeit in Tagen f?r "nicht vorr?tig"

$lieferzeit_b="2"; // Lieferzeit in Tagen f?r "auf Lager"

$lieferzeit="4";  // Standard-Lieferzeit. Wird genutzt, wenn $exclude_status_0=true;

$versandkostenfrei_ab="50"; // Artikel versandkostenfrei ab ?? 0=immer 999999999=nie

$oscommerce = mysql_pconnect($hostname_oscommerce, $username_oscommerce, $password_oscommerce) or die(mysql_error()); 


mysql_select_db($database_oscommerce, $oscommerce);

$limit=0;

$limit_step=1000; // Gruppengr??e, in der die Produkte gelesen werden

do{


 if ($exclude_status_0){

  $query_Recordset1 = "SELECT products.products_id, products.products_model, products.products_image, products.products_price, products.products_tax_class_id, products_description.products_name, products_description.products_description FROM products, products_description WHERE products.products_id=products_description.products_id AND products_description.language_id=2 AND products.products_status > 0 LIMIT $limit, $limit_step";	

 }else{

  $query_Recordset1 = "SELECT products.products_status, products.products_id, products.products_model, products.products_image, products.products_price, products.products_tax_class_id, products_description.products_name, products_description.products_description FROM products, products_description WHERE products.products_id=products_description.products_id AND products_description.language_id=2 LIMIT $limit, $limit_step";

 }

 $Recordset1 = mysql_query($query_Recordset1, $oscommerce) or die(mysql_error());

 $row_Recordset1 = mysql_fetch_assoc($Recordset1);

 $count = mysql_num_rows($Recordset1);

if ($count > 0)

 do { 

  $name=$row_Recordset1['products_name'];

  $name=str_replace('|',' ',$name); // | entfernen

  $name=strip_tags($name); // HTML entfernen

  if ($sonderpr=tep_get_products_special_price($row_Recordset1['products_id'])){

   $price=$sonderpr;

  }else{

   $price=$row_Recordset1['products_price'];

  }

  $tax=(100+tep_get_tax_rate($row_Recordset1['products_tax_class_id']))/100;

  $price=number_format($price*$tax,2,".",""); //Preis formatieren und 16% MwSt. draufrechnen


  $description=$row_Recordset1['products_description'];

  $description=str_replace("\n"," ",$description); //Zeilenumbruch entfernen

  $description=str_replace("\r","",$description); //CR entfernen

  $description=strip_tags($description); //HTML entfernen

  $description=str_replace('|',' ',$description); // | entfernen

  if ($exclude_status_0){

   echo $row_Recordset1['products_id']."|".$name."|".((strlen($description) < 130 )?($description." "):(substr($description,0,130)." ... "))."|".$price."|".(($row_Recordset1['products_image'] <> "")?$imagepath.$row_Recordset1['products_image']:" ")."|".$detailpage.$row_Recordset1['products_id']."|".$lieferzeit."|".(($price >= $versandkostenfrei_ab)?"1":"0")."\n";

  }else{

   echo $row_Recordset1['products_id']."|".$name."|".((strlen($description) < 130 )?($description." "):(substr($description,0,130)." ... "))."|".$price."|".(($row_Recordset1['products_image'] <> "")?$imagepath.$row_Recordset1['products_image']:" ")."|".$detailpage.$row_Recordset1['products_id']."|".(($row_Recordset1['products_status']==0)?$lieferzeit_a:$lieferzeit_b)."|".(($price >= $versandkostenfrei_ab)?"1":"0")."\n";

  }

 }

 while ($row_Recordset1 = mysql_fetch_assoc($Recordset1));


 mysql_free_result($Recordset1);

 $limit+=$limit_step;

 flush();

 sleep(2);

}while ($count > 0)

?>


W?re sicherlich f?r viele Interessant.

Ansonsten kann man dort auch csv-Dateien eintragen.

Peter

Link to comment
Share on other sites

Originally posted by Buggyboy@Oct 19 2005, 05:19 AM

Moin!

So, meine Artikel sind jetzt zwar bei Hotlister gelistet, allerdings sind keine Bilder vorhanden.

Mu? also eventuell noch was an den Linkadressen nicht stimmen.

Naja, hauptsache es funktioniert schonmal mit der abge?nderten OSC-Datei.

Peter

Mein Artikel bei Hotlister:

http://www.hotlister.de/index.php?shopid=8...=&j=AND&o=d&h=u

Quoted post

Ja, richtig, der "Image-Path" muss auch noch angepasst werden....

Im folgenden der ge?nderte Code der Datei: "hotlister.php"



<?php

require_once('includes/configure.php');

require('includes/application_top.php');


// Wichtig: Diese Datei muss im selben Verzeichnis wie die product_info.php liegen, also meist /catalog/.

// Datenbankparamter werden aus den oscommerce-config-files gelesen.

$hostname_oscommerce = DB_SERVER;

$database_oscommerce = DB_DATABASE;

$username_oscommerce = DB_SERVER_USERNAME;

$password_oscommerce = DB_SERVER_PASSWORD;


//Adapted for xtCommerce by Winfried Kaiser


// Pfadparameter werden aus den xtCommerce-config-files gelesen.


$cat=(defined('DIR_WS_HTTP_CATALOG'))?DIR_WS_HTTP_CATALOG:DIR_WS_CATALOG;

//W. Kaiser -- Adjust image-path

//$imagepath=HTTP_SERVER.$cat.DIR_WS_IMAGES;

$imagepath=HTTP_SERVER.$cat.DIR_WS_ORIGINAL_IMAGES;

//W. Kaiser -- Adjust image-path


//falls Ihre Datailpage anders lautet, bitte entsprechend anpassen:

$detailpage=HTTP_SERVER.$cat."product_info.php?products_id=";


// Hier bitte Anpassungen vornehmen:

$exclude_status_0=false; 	// Produkte, die als "nicht vorr?tig" eingestellt sind, mit ausgeben.

$lieferzeit_a="10";  // Lieferzeit in Tagen f?r "nicht vorr?tig"

$lieferzeit_b="4";  	// Lieferzeit in Tagen f?r "auf Lager"

$lieferzeit="4";   	// Standard-Lieferzeit. Wird genutzt, wenn $exclude_status_0=true;

$versandkostenfrei_ab="200"; // Artikel versandkostenfrei ab ?? 0=immer 999999999=nie

$oscommerce = mysql_pconnect($hostname_oscommerce, $username_oscommerce, $password_oscommerce) or die(mysql_error());


mysql_select_db($database_oscommerce, $oscommerce);

$limit=0;

$limit_step=1000; // Gruppengr??e, in der die Produkte gelesen werden

do{

	//W. Kaiser -- Optimize code

	$query_Recordset1_common = 

 " products.products_id, products.products_model, products.products_image, products.products_price, products.products_tax_class_id, products_description.products_name, products_description.products_description FROM products, products_description WHERE products.products_id=products_description.products_id AND products_description.language_id=2";

	$limit=" LIMIT $limit, $limit_step"; 

	if ($exclude_status_0){

 $query_Recordset1 = "SELECT".$query_Recordset1_common." AND products.products_status > 0".$limit;

	}else{

 $query_Recordset1 = "SELECT products.products_status, ".$query_Recordset1_common.$limit;

	}

	//W. Kaiser -- Optimize code

	$Recordset1 = mysql_query($query_Recordset1, $oscommerce) or die(mysql_error());

	$row_Recordset1 = mysql_fetch_assoc($Recordset1);

	$count = mysql_num_rows($Recordset1);

	if ($count > 0)

	do {

 $name=$row_Recordset1['products_name'];

 $name=str_replace('|',' ',$name); // | entfernen

 $name=strip_tags($name); // HTML entfernen


 //W. Kaiser -- Adjust routine name

 //if ($sonderpr=tep_get_products_special_price($row_Recordset1['products_id'])){

 if ($sonderpr=xtc_get_products_special_price($row_Recordset1['products_id'])){

 //W. Kaiser -- Adjust routine name

 	$price=$sonderpr;

 }else{

 	$price=$row_Recordset1['products_price'];

 }

 //W. Kaiser -- Adjust routine name

 //$tax=(100+tep_get_tax_rate($row_Recordset1['products_tax_class_id']))/100;

 $tax=(100+xtc_get_tax_rate($row_Recordset1['products_tax_class_id']))/100;

 //W. Kaiser -- Adjust routine name

 $price=number_format(abs($price)*$tax,2,".",""); //Preis formatieren und MwSt. draufrechnen


 $description=$row_Recordset1['products_description'];

 $description=str_replace("\n"," ",$description); //Zeilenumbruch entfernen

 $description=str_replace("\r","",$description); //CR entfernen

 $description=strip_tags($description); //HTML entfernen

 $description=str_replace('|',' ',$description); // | entfernen

 //W. Kaiser -- Replace "" with blank in description

 $description=str_replace('',' ',$description); //  entfernen

 //W. Kaiser -- Replace "" with blank in description

 //W. Kaiser -- Optimize code

 if ($exclude_status_0){

 	$Lieferzeit=$lieferzeit;

 }else{

 	$Lieferzeit=(($row_Recordset1['products_status']==0)?$lieferzeit_a:$lieferzeit_b);

 }

 echo 

 	$row_Recordset1['products_id']."|".

 	((strlen($name) < 130 )?($name." "):(substr($name,0,130)." ... "))."|".

 	((strlen($description) < 250 )?($description." "):(substr($description,0,250)." ... "))."|".

 	$price."|".

 	(($row_Recordset1['products_image'] <> "")?$imagepath.$row_Recordset1['products_image']:" ")."|".

 	$detailpage.$row_Recordset1['products_id']."|".

 	$Lieferzeit."|".

 	(($price >= $versandkostenfrei_ab)?"1":"0").

 	"\n";

 //W. Kaiser -- Optimize code

	}

	while ($row_Recordset1 = mysql_fetch_assoc($Recordset1));


	mysql_free_result($Recordset1);

	$limit+=$limit_step;

	flush();

	sleep(2);

}while ($count > 0)

?>


Bei der Gelegenheit habe ich dann gleich den Code etwas optimiert

und auch einen Fehler im Originalscript behoben:

Die L?nge der Beschreibung war auf 130 Zeichen beschr?nkt, statt auf 250 wie in der Spezifaktion definiert. Die Beschr?nkung auf 130 Zeichen gilt, lt. Spezifaktion, f?r den Namen.

Link to comment
Share on other sites

Originally posted by enzko@Oct 19 2005, 08:23 AM

Wie binde ich es ein damit es im Admin unter XT Modulle angezeigt wird ?

BIG THX

Quoted post

Das ist nicht n?tig, da "hotlister.de" das Programm "hotlister.php" automatisch aufruft. (Bei der Anmeldung dort muss man die genaue URL von "hotlister.php" angeben.)

Link to comment
Share on other sites

Ok Danke,

schau mal jetzt kommt bei mir der Fehler

Fatal error: Call to undefined function: xtc_get_products_special_price() in /srv/www/htdocs/web7/html/powerchamp/hotlister.php on line 58

habs ins Hauptverzeichnis gepackt da wor auch die product_info.php liegt.

Link to comment
Share on other sites

Originally posted by enzko@Oct 19 2005, 08:59 AM

Ok Danke,

schau mal jetzt kommt bei mir der Fehler

Fatal error: Call to undefined function: xtc_get_products_special_price() in /srv/www/htdocs/web7/html/powerchamp/hotlister.php on line 58

habs ins Hauptverzeichnis gepackt da wor auch die product_info.php liegt.

Quoted post

Die ?nderung ist nur f?r die Version 2 getestet. Als "Sponsor" verwendets Du aber sicher die Version 3!?

Link to comment
Share on other sites

Originally posted by enzko@Oct 19 2005, 11:28 AM

ja klar die 3.0.3 verwende ich nur muss es doch eine L?sung geben warum das Bild nicht angezeigt wird.

BIG THX

Quoted post

Das Problem ist wohl, dass die Routine, die in der V2 "xtc_get_products_special_price" heisst, in der V3 einen anderen Namen hat.

Welcher das ist, sollte man Dir im Sponsorenforum sagen k?nnen.

Link to comment
Share on other sites

Hallo gswkaiser!

Originally posted by gswkaiser@Oct 19 2005, 09:12 AM

Ja, richtig, der "Image-Path" muss auch noch angepasst werden....

Im folgenden der ge?nderte Code der Datei: "hotlister.php"

Bei der Gelegenheit habe ich dann gleich den Code etwas optimiert

und auch einen Fehler im Originalscript behoben:

Die L?nge der Beschreibung war auf 130 Zeichen beschr?nkt, statt auf 250 wie in der Spezifaktion definiert. Die Beschr?nkung auf 130 Zeichen gilt, lt. Spezifaktion, f?r den Namen.

Vielen Dank.

Hab sie jetzt ersetzt. Mal sehen was beim n?chsten Update passiert... ;-}}}

Peter

Link to comment
Share on other sites

  • 1 year later...

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...