Jump to content
xt:Commerce Community Forum

Exportmanager - Scriptlaufzeit


bestan

Recommended Posts

hallo liebe xt gemeinde,

ich habe mal meine produktpallete um 10000 artikel erweitert, und seit einigen tagen werden keine daten mehr an google base übermittelt.

das problem liegt offensichtlich daran das die scriptlaufzeit abgelaufen ist bevor der exportmanager fertig ist.

meine frage:

gibt es eine möglichkeit den export zu splitten?

bsp: das der exprtmanager von artikelid 1 bis 3000 exportiert.

3001 - 6000

6001 - 9000

9001 - 1200

dann lege ich einfach 4 exporte an dann ist mein problem gelöst :rolleyes:

oder kann man vieleicht nach kategorien exprtieren?

so sieht mein export aus:

header:

id|link|titel|description|bild_url|preis|hersteller|marke|abholung|menge|preisart|zahlungshinweise|Gewicht|versand|zahlungsmethode|autor|zustand

body:

{$data.products_id}|{$data.products_link}|"{$data.products_name}"|"{$data.products_description_clean}"|{$data.products_image_info}|{$data.products_price.plain|string_format:"%.2f"}|{$data.manufacturers_name}|{$data.manufacturers_name}|Nein|{$data.products_quantity|string_format:"%.0f"}|ab|Nach Eingang der Zahlung sofortiger Versand an ihre Adresse|{$data.products_weight}|:::{if $data.products_weight <= 2}6.90{else}{if $data.products_weight <= 10}8.10{else}{if $data.products_weight <= 20}12.90{else}{if $data.products_weight <= 50}30.90{/if}{/if}{/if}{/if}|Visa, MasterCard, Überweisung|firma|neu

Link to comment
Share on other sites

gibt es keine möglichkeit?

habe mir überlegt das ganze über funktion hersteller zu machen, da ich diese funktion garnicht benutze.

dann müsste ich im backend 3-4 hersteller anlegen und mit exel in der csv immer ca. 3000 artikeln eine manufacturers_id zuweisen. dann kann ich im exportmanager mehrere exporte für google base anlegen und die nacheinander exportieren lassen.

diesen weg würde ich aber als letzteren nehmen, weil ich mir nicht sicher bin ob ich die funktion hersteller nicht irgentwann brauche!!

wäre sehr dankbar wenn jemand einen anderen weg hätte?!!

Link to comment
Share on other sites

Wenn es nur an der Scriptlaufzeit liegt hilft ein

ini_set('memory_limit', '-1');

hinter den ganzen define-Einträgen. Hat bei mir geholfen, als es zu lange gedauert hat.

Allerdings macht Google Base nur bis 100.000 Artikel mit pro Stream, das zu trennen wird etwas umständlicher. Leider kenn ich mich in PHP nicht aus. Aber kann man nicht einfach irgendwie den String $schema nach

$schema .= $products_description."\t".

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

auf die Zeilenzahl prüfen und nach einer gewissen Anzahl von Zeilen trennen und dann einfach einzeln exportieren (also als $fp1,$fp2 sozusagen)?

Kann da jemand weiterhelfen?

Link to comment
Share on other sites

Ist zwar recht simpel und sicherlich nicht die beste Lösung.

Da google nur Datenfeeds bis 100.000 Artikel annimmt einfach ne simple If-Abfrage. Hätt nich gedacht das es so einfach geht :)

          //create content
$x++;
if ($x <99990){
$schema .= $products_description."\t".
$products['products_id']."\t".
$productURL . "\t" .
number_format($products_price,2,'.','')."\t".
$_POST['currencies']."\t".
$products_name."\t".
"neu\t".
$image."\t" .
$products['products_ean']."\t".
$weight."\t".
$products['manufacturers_name']."\t".
$_POST['shipping_country'].":::".number_format($versand,2,'.','')."\n";}

if ($x >99990){
$schema2 .= $products_description."\t".
$products['products_id']."\t".
$productURL . "\t" .
number_format($products_price,2,'.','')."\t".
$_POST['currencies']."\t".
$products_name."\t".
"neu\t".
$image."\t" .
$products['products_ean']."\t".
$weight."\t".
$products['manufacturers_name']."\t".
$_POST['shipping_country'].":::".number_format($versand,2,'.','')."\n";}
}
// create File
$fp = fopen(DIR_FS_DOCUMENT_ROOT.'export/' . $file, "w+");
fputs($fp,$schema);
fclose($fp);
$fp = fopen(DIR_FS_DOCUMENT_ROOT.'export/2' . $file, "w+");
fputs($fp,$schema2);
fclose($fp);[/PHP]

Link to comment
Share on other sites

Wenn es nur an der Scriptlaufzeit liegt hilft ein

hinter den ganzen define-Einträgen. Hat bei mir geholfen, als es zu lange gedauert hat.

ich denke

ini_set('memory_limit', '-1'); [/HTML]

könnte schon helfen da ich "nur" max 15000 artikel habe. wo muss ich das eintragen bzw editieren?

Link to comment
Share on other sites

Archived

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

×
  • Create New...