Jump to content
xt:Commerce Community Forum

Froogle mit neuem erforderlichen Attribut: Zustand


FrankS

Recommended Posts

Hallo zusammen,

da ich nichts darüber im Forum gefunden habe frage ich euch an dieser Stelle direkt.

Ich habe am 02.06.09 von Google eine Email bekommen, in der mir mitgeteilt wird, dass ein neues erforderliches Attribut eingeführt wird. Hier steht mehr darüber bei Google.

Das neue Attribut heißt "Zustand" und kann die Werte haben: neu, gebraucht oder erneuert.

"Erforderlich" bedeutet bestimmt, das nach dem 30.06.09 unsere Froogle-Export-Scripte mal wieder nicht mehr funktionieren.

Für alle diejenigen, die nur neue Artikel im Shop verkaufen sollte eine kleine Änderung im Exportscript reichen, wo das Attribut für alle Artikel als "neu" hinzugefügt wird.

Aber was ist mit Shops die auch gebrauchte Artikel hat, wie zB. bei Auto Ersatzteilen eine regenerierte Lichtmaschine? Am Besten wäre dann ein neues zusätzliches Feld zum Artikel, wo man den Zustand hinterlegen und beim Export abfragen kann. Das klingt mir nach einem tieferen Eingriff in die Shopsoftware.

Habt ihr vielleicht eine Idee dazu?

VG Frank

Link to comment
Share on other sites

Habe bei mir im Shop nur neue Artikel. Würde gern nur die froogle.php anpassen, dass dieses Feld einfach am Ende angehängt wird.

Außerdem habe ich bei mir das Problem, dass ß immer als ß und ä als &uaml; dargestellt wird.

Aber nicht alle, manche werden auch als ä gelassen. Ich muss dann immer vor dem Hochladen die Datei über "suchen&ersetzen" anpassen.

Mach dann halt immer ae, ue, oe und ss.

Link to comment
Share on other sites

  • 4 weeks later...

Habe bei mir im Shop nur neue Artikel. Würde gern nur die froogle.php anpassen, dass dieses Feld einfach am Ende angehängt wird.

Außerdem habe ich bei mir das Problem, dass ß immer als ß und ä als &uaml; dargestellt wird.

Aber nicht alle, manche werden auch als ä gelassen. Ich muss dann immer vor dem Hochladen die Datei über "suchen&ersetzen" anpassen.

Mach dann halt immer ae, ue, oe und ss.

Habe das gleiche Problem und würde mich über Hilfe sehr freuen.

Link to comment
Share on other sites

  • 2 weeks later...

eine zeile in der froogle.php auskommentieren, dann sollte es gehen

// remove trash

            $products_description = str_replace("<br>"," ",$products_description);

            $products_description = str_replace("<br />"," ",$products_description);

            $products_description = strip_tags($products['products_description']);         

            //$products_description = str_replace(";",", ",$products_description);

            $products_description = str_replace("'",", ",$products_description);

            $products_description = str_replace("\n"," ",$products_description);

            $products_description = str_replace("\r"," ",$products_description);

            $products_description = str_replace("\t"," ",$products_description);

            $products_description = str_replace("\v"," ",$products_description);

            $products_description = str_replace("&quot,"," \"",$products_description);

            $products_description = str_replace("&qout,"," \"",$products_description);

            $products_description = str_replace(chr(13)," ",$products_description);

            $products_description = substr($products_description, 0, 65536);

            $cat = $this->buildCAT($categories);

Link to comment
Share on other sites

Ach ja, nochwas: @Ranger: Das Problem hatte ich auch mit den Umlauten. Ändere die englischen Bezeichnungen in der froogle.php (Zeile beginnt mit $schema) in die deutschen, also z.B. "description" in "Beschreibung" (die genauen Bezeichnungen, die Google will, findest Du in der Google-Hilfe). Wenn Du das gemacht hast, müsste Google die Datei als deutschsprachig identifizieren, bei mir hats zumindest geklappt. :cool:

Link to comment
Share on other sites

Moin,

ich habe das mit dem Zustand quick & dirty gelöst indem ich einfach eine neue Spalte Zustand angelegt habe, die grundsätzlich immer mit neu gefüllt wird. Macht natürlich nur sinn wenn man nur neue Sachen verkauft....

Hier meine froogle.php

<?php

/* -----------------------------------------------------------------------------------------

$Id: froogle.php 1188 2005-08-28 14:24:34Z matthias $

XT-Commerce - community made shopping

xt:Commerce Shopsoftware VEYTON 4.0

Copyright © 2003 XT-Commerce

-----------------------------------------------------------------------------------------

based on:

© 2000-2001 The Exchange Project (earlier name of osCommerce)

© 2002-2003 osCommerce(cod.php,v 1.28 2003/02/14); osCommerce, Open Source Online Shop E-Commerce Solutions

© 2003 nextcommerce (invoice.php,v 1.6 2003/08/24); nextcommerce.org

Released under the GNU General Public License

---------------------------------------------------------------------------------------*/

defined( '_VALID_XTC' ) or die( 'Direct Access to this location is not allowed.' );

define('MODULE_FROOGLE_TEXT_DESCRIPTION', 'Export - Froogle.de (Tab getrennt)');

define('MODULE_FROOGLE_TEXT_TITLE', 'Froogle.de - TXT');

define('MODULE_FROOGLE_FILE_TITLE' , '<hr noshade>Dateiname');

define('MODULE_FROOGLE_FILE_DESC' , 'Geben Sie einen Dateinamen ein, falls die Exportadatei am Server gespeichert werden soll.<br>(Verzeichnis export/)');

define('MODULE_FROOGLE_STATUS_DESC','Modulstatus') ;

define('MODULE_FROOGLE_STATUS_TITLE','Status');

define('MODULE_FROOGLE_CURRENCY_TITLE','Währu ng');

define('MODULE_FROOGLE_CURRENCY_DESC','Welche Währung soll exportiert werden?');

define('EXPORT_YES','Nur Herunterladen');

define('EXPORT_NO','Am Server Speichern');

define('CURRENCY','<hr noshade><b>Währung:</b>');

define('CURRENCY_DESC','Währung in der Exportdatei');

define('EXPORT','Bitte den Sicherungsprozess AUF KEINEN FALL unterbrechen. Dieser kann einige Minuten in Anspruch nehmen.');

define('EXPORT_TYPE','<hr noshade><b>Speicherart:</b>');

define('EXPORT_STATUS_TYPE','<hr noshade><b>Kundengruppe:</b>');

define('EXPORT_STATUS','Bitte wählen Sie die Kundengruppe, die Basis für den Exportierten Preis bildet. (Falls Sie keine Kundengruppenpreise haben, wählen Sie <i>Gast</i>):</b>');

define('CAMPAIGNS','<hr noshade><b>Kampagnen:</b>');

define('CAMPAIGNS_DESC','Mit Kampagne zur Nachverfolgung verbinden.');

define('DATE_FORMAT_EXPORT', '%d.%m.%Y'); // this is used for strftime()

// include needed functions

class froogle {

var $code, $title, $description, $enabled;

function froogle() {

global $order;

$this->code = 'froogle';

$this->title = MODULE_FROOGLE_TEXT_TITLE;

$this->description = MODULE_FROOGLE_TEXT_DESCRIPTION;

$this->sort_order = MODULE_FROOGLE_SORT_ORDER;

$this->enabled = ((MODULE_FROOGLE_STATUS == 'True') ? true : false);

$this->CAT=array();

$this->PARENT=array();

}

function process($file) {

@xtc_set_time_limit(0);

require(DIR_FS_CATALOG.DIR_WS_CLASSES . 'xtcPrice.php');

$xtPrice = new xtcPrice($_POST['currencies'],$_POST['status']);

//KORREKTUR ZUSTAND

$schema = 'link'."\t".'id'."\t".'titel'."\t".'beschreibung'. "\t".'bild_url'."\t".'preis'."\t".'zustand'."\t".'marke'."\n" ;

$export_query =xtc_db_query("SELECT

p.products_id,

pd.products_name,

pd.products_description,

p.products_model,

p.products_image,

p.products_price,

p.products_status,

p.products_date_available,

p.products_shippingtime,

p.products_discount_allowed,

pd.products_meta_keywords,

p.products_tax_class_id,

p.products_date_added,

m.manufacturers_name

FROM

" . TABLE_PRODUCTS . " p LEFT JOIN

" . TABLE_MANUFACTURERS . " m

ON p.manufacturers_id = m.manufacturers_id LEFT JOIN

" . TABLE_PRODUCTS_DESCRIPTION . " pd

ON p.products_id = pd.products_id AND

pd.language_id = '".$_SESSION['languages_id']."' LEFT JOIN

" . TABLE_SPECIALS . " s

ON p.products_id = s.products_id

WHERE

p.products_status = 1

ORDER BY

p.products_date_added DESC,

pd.products_name");

while ($products = xtc_db_fetch_array($export_query)) {

$products_price = $xtPrice->xtcGetPrice($products['products_id'],

$format=false,

1,

$products['products_tax_class_id'],

'');

// get product categorie

$categorie_query=xtc_db_query("SELECT

categories_id

FROM ".TABLE_PRODUCTS_TO_CATEGORIES."

WHERE products_id='".$products['products_id']."'");

while ($categorie_data=xtc_db_fetch_array ($categorie_query)) {

$categories=$categorie_data['categories_id'];

}

// remove trash

$products_description = str_replace("<br>"," ",$products_description);

$products_description = str_replace("<br />"," ",$products_description);

$products_description = strip_tags($products['products_description']);

// $products_description = str_replace(";","",$products_description);

// anfang änderung wegen Umlautproblem

$products_description = str_replace("Ä","Ä",$products_description);

$products_description = str_replace("ä","ä",$products_description);

$products_description = str_replace("Ö","Ö",$products_description);

$products_description = str_replace("ö","ö",$products_description);

$products_description = str_replace("Ü","Ü",$products_description);

$products_description = str_replace("ü","ü",$products_description);

$products_description = str_replace("ß","ß",$products_description);

$products_description = str_replace ("&", "&", $products_description);

$products_description = str_replace ("§", "§", $products_description);

$products_description = str_replace("°","°",$products_description);

$products_description = str_replace ("²", "²", $products_description);

$products_description = str_replace ("³", "³", $products_description);

$products_description = str_replace("®","®",$products_description);

$products_description = str_replace ("±", "±", $products_description);

$products_description = str_replace ("µ", "µ", $products_description);

// ende anderung wegen Umlautproblem

$products_description = str_replace("'",", ",$products_description);

$products_description = str_replace("\n"," ",$products_description);

$products_description = str_replace("\r"," ",$products_description);

$products_description = str_replace("\t"," ",$products_description);

$products_description = str_replace("\v"," ",$products_description);

$products_description = str_replace("&quot,"," \"",$products_description);

$products_description = str_replace("&qout,"," \"",$products_description);

$products_description = str_replace(chr(13)," ",$products_description);

$products_description = substr($products_description, 0, 65536);

$cat = $this->buildCAT($categories);

if ($products['products_image'] != ''){

$image = HTTP_CATALOG_SERVER . DIR_WS_CATALOG_ORIGINAL_IMAGES .$products['products_image'];

}else{

$image = '';

}

//create content

//KORREKTUR ZUSTAND

$zustand = 'neu';

$schema .=

HTTP_CATALOG_SERVER . DIR_WS_CATALOG . 'product_info.php?'.$_POST['campaign'].xtc_product_link($products['products_id'], $products['products_name']) . "\t" .

$products['products_id'] ."\t".

$products['products_name'] ."\t".

$products_description ."\t".

$image ."\t" .

number_format($products_price,2,'.',''). "\t" .

//KORREKTUR ZUSTAND

$zustand . "\t" .

$products['manufacturers_name'] ."\n";

}

// create File

$fp = fopen(DIR_FS_DOCUMENT_ROOT.'export/' . $file, "w+");

fputs($fp, $schema);

fclose($fp);

switch ($_POST['export']) {

case 'yes':

// send File to Browser

$extension = substr($file, -3);

$fp = fopen(DIR_FS_DOCUMENT_ROOT.'export/' . $file,"rb");

$buffer = fread($fp, filesize(DIR_FS_DOCUMENT_ROOT.'export/' . $file));

fclose($fp);

header('Content-type: application/x-octet-stream');

header('Content-disposition: attachment; filename=' . $file);

echo $buffer;

exit;

break;

}

}

function buildCAT($catID)

{

if (isset($this->CAT[$catID]))

{

return $this->CAT[$catID];

} else {

$cat=array();

$tmpID=$catID;

while ($this->getParent($catID)!=0 || $catID!=0)

{

$cat_select=xtc_db_query("SELECT categories_name FROM ".TABLE_CATEGORIES_DESCRIPTION." WHERE categories_id='".$catID."' and language_id='".$_SESSION['languages_id']."'");

$cat_data=xtc_db_fetch_array($cat_select);

$catID=$this->getParent($catID);

$cat[]=$cat_data['categories_name'];

}

$catStr='';

for ($i=count($cat);$i>0;$i--)

{

$catStr.=$cat[$i-1].' > ';

}

$this->CAT[$tmpID]=$catStr;

return $this->CAT[$tmpID];

}

}

function getParent($catID)

{

if (isset($this->PARENT[$catID]))

{

return $this->PARENT[$catID];

} else {

$parent_query=xtc_db_query("SELECT parent_id FROM ".TABLE_CATEGORIES." WHERE categories_id='".$catID."'");

$parent_data=xtc_db_fetch_array($parent_query);

$this->PARENT[$catID]=$parent_data['parent_id'];

return $parent_data['parent_id'];

}

}

function display() {

$customers_statuses_array = xtc_get_customers_statuses();

// build Currency Select

$curr='';

$currencies=xtc_db_query("SELECT code FROM ".TABLE_CURRENCIES);

while ($currencies_data=xtc_db_fetch_array($currencies)) {

$curr.=xtc_draw_radio_field('currencies', $currencies_data['code'],true).$currencies_data['code'].'<br>';

}

$campaign_array = array(array('id' => '', 'text' => TEXT_NONE));

$campaign_query = xtc_db_query("select campaigns_name, campaigns_refID from ".TABLE_CAMPAIGNS." order by campaigns_id");

while ($campaign = xtc_db_fetch_array($campaign_query)) {

$campaign_array[] = array ('id' => 'refID='.$campaign['campaigns_refID'].'&', 'text' => $campaign['campaigns_name'],);

}

return array('text' => EXPORT_STATUS_TYPE.'<br>'.

EXPORT_STATUS.'<br>'.

xtc_draw_pull_down_menu('status',$customers_statuses_array, '1').'<br>'.

CURRENCY.'<br>'.

CURRENCY_DESC.'<br>'.

$curr.

CAMPAIGNS.'<br>'.

CAMPAIGNS_DESC.'<br>'.

xtc_draw_pull_down_menu('campaign',$campaign_array ).'<br>'.

EXPORT_TYPE.'<br>'.

EXPORT.'<br>'.

xtc_draw_radio_field('export', 'no',false).EXPORT_NO.'<br>'.

xtc_draw_radio_field('export', 'yes',true).EXPORT_YES.'<br>'.

'<br>' . xtc_button(BUTTON_EXPORT) .

xtc_button_link(BUTTON_CANCEL, xtc_href_link(FILENAME_MODULE_EXPORT, 'set=' . $_GET['set'] . '&module=froogle')));

}

function check() {

if (!isset($this->_check)) {

$check_query = xtc_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_FROOGLE_STATUS'");

$this->_check = xtc_db_num_rows($check_query);

}

return $this->_check;

}

function install() {

xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_FROOGLE_FILE', 'froogle.txt', '6', '1', '', now())");

xtc_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) values ('MODULE_FROOGLE_STATUS', 'True', '6', '1', 'xtc_cfg_select_option(array(\'True\', \'False\'), ', now())");

}

function remove() {

xtc_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')");

}

function keys() {

return array('MODULE_FROOGLE_STATUS','MODULE_FROOGLE_FILE ');

}

}

?>

Link to comment
Share on other sites

Archived

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

×
  • Create New...