Sicherlich kann folgendes Skript der ein oder andere auch gebrauchen (insbesondere wenn man das Shopsystem Veyton in der Version 4.0.12 nutzt). Das Skript löscht aus einer Datei einfach die Leerzeilen heraus. Leider beherrscht diese triviale Funktion der Export-Manager des Shopsystems xt:commerce Veyton leider nicht. Wenn das Produkt nicht mehr auf Lager ist, dann wird einfach eine Leerzeile in das Produktfeed eingefügt. Für viele Portale (u.a. für den Google Merchant Center) ist das natürlich nicht ganz so optimal, da hier Fehlermeldungen vorprogrammiert sind.
Ich habe nun kurzerhand die vom Shop automatisiert erstellte Datei nochmals per Cronjob auf Leerzeilen überprüft und diese entfernt, so dass die Dienste welche den Feed ohne Leerzeilen benötigen dann auf diesen zugreifen können.
<?php
$userdatei = fopen("datei-mit-leerzeilen.csv","r");
$outputdateiname = "datei-ohne-leerzeilen.csv";
if (file_exists($outputdateiname)) {
$outputdatei = fopen($outputdateiname,"w");
} else {
$outputdatei = fopen($outputdateiname,"a");
}
while(!feof($userdatei))
{
$zeile = fgets($userdatei,1024);
if ($zeile != "\n"){
fwrite($outputdatei, $zeile);
}
}
fclose($userdatei);
fclose($outputdatei);
?>
Eventuell hilft es ja den ein oder anderem. Verbesserungsvorschläge sind natürlich willkommen. Fehlerhandling ist im Übrigen nicht so mein Ding wie man sieht 😉