Jump to content
xt:Commerce Community Forum
Sign in to follow this  
enzko

Hier k?nnt Ihr Euren Shop eintragen mit Produkten

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

Share this post


Link to post
Share on other sites

Hi!

Danke gwkaiser!

Hab das mal abge?ndert und die Artikel werden auch aufgelistet.

Wenn mein Shop dort so mit dieser Datei angenommen ist, werde ich Euch wieder informieren.

Mit verspielten Gr??en

Peter

Share this post


Link to post
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.

Share this post


Link to post
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.)

Share this post


Link to post
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.

Share this post


Link to post
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!?

Share this post


Link to post
Share on other sites

Originally posted by gswkaiser@Oct 19 2005, 12:16 PM

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

Quoted post

ja klar die 3.0.3 verwende ich nur muss es doch eine L?sung geben.

BIG THX

Share this post


Link to post
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.

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

Hello,

schön das es funzt .... wäre es vllt möglich (der allgemeinheit(mir ;) )) mitzuteilen wie das problem gelöst wurde? und evtl. die datei oder deren inhalt hier bitte mal vollständig zur verfügung zu stellen?

Bitte Bitte

Gruß GSX

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...