Jump to content

Splittung beim csv Import der Kategorien


dashmir

Recommended Posts

Hallo

 

Beim Importieren eines Artikels wird in der Spalte Kategorie (bei der Ansicht wird es richtig angezeigt) gesplittet. Die Kategorie hat die Bezeichnung BIC / SIC / OXBOW, sobald ich auf Import klicke, fügt Prestashop mir das Produkt hinzu, jedoch macht es 3 Kategorien (Hauptkategorie BIC -> Unterkategorie SIC -> Unterunterkategerie OXBOW) und fügt das Produkt im OXBOW hinzu.

Hier Im bild, wird es korrekt angezeigt: 

import_kategorie.thumb.png.61d2f9d849997dc67e94bd0068acd242.png

 

Gibt es eine Einstellung die ich nicht beachtet habe oder eine andere Lösung?

 

Link to comment
Share on other sites

  • 3 weeks later...

so als Info

 

dieses Problem ist gelöst, es darf keine Abstände haben, die Kategorie muss ohne Leerzeichen dargestellt werden: BIC/SIC/OXBOW, somit wird diese als eine einzige kategorie im prestashop erstellt.

 

Topic kann geschlossen werden.

 

gruss

Dashmir

Link to comment
Share on other sites

Das ist aber nicht wirklich eine Lösung, schließlich sind Kategoriebezeichnungen mit Leerzeichen keine Seltenheit. Hast du es mal ohne / probiert? Vielleicht kann man die Kategoriebezeichnung auch in "" setzen. Evtl. kannst du auch einmal ein geschütztes Leerzeichen (in HTML  ) probieren, mußt du evtl. aus der Zeichentabelle einfügen.

Edited by rictools (see edit history)
Link to comment
Share on other sites

vor 10 Minuten schrieb rictools:

Das ist aber nicht wirklich eine Lösung, schließlich sind Kategoriebezeichnungen mit Leerzeichen keine Seltenheit. Hast du es mal ohne / probiert? Vielleicht kann man die Kategoriebezeichnung auch in "" setzen. Evtl. kannst du auch einmal ein geschütztes Leerzeichen (in HTML  ) probieren, mußt du evtl. aus der Zeichentabelle einfügen.

Hallo, ich habe es so gemacht, dass ich anstelle des / habe ich ein -(bindestrich) gesetzt. 

 

Das interessante ist, dass beim generieren des CSV bei einigen Kategorien, die Hochkommas macht und bei anderen nicht. 

 

hochkommas_csv.png.b8e05afbdca26695010d5d181eca1190.png

Das kann ich mir nicht erklären.. was ich aber mal testen kann ist, dass ich in der Variable, falls Hochkommas vorhanden sind diese entferne und dann im nächsten schritt wieder einfüge. was eigentlich nicht so optimal ist aber ich hab keine Erklärung warum bei den einten Kategorien die Hochkommas gesetzt werden bzw. nicht gesetzt.

 

 

Link to comment
Share on other sites

Jetzt komme ich nicht mehr mit, was ist denn nun "BIC-SIC-OXBOW/Open BIC"? Ist das eine Kategorie oder soll das / das Trennzeichen zur Unterkategorie sein (dann darf es natürlich nicht an anderen Stellen auch / enthalten sein)? Auf deinem Screenshoot sind alle Einträge mit Leerzeichen in "" eingebettet, nicht nur einige. Ausnahme die seltsamen Einträge für Länge, Breite, Gewicht, da wird Länge mit ungwöhnlichen Sonderzeichen geschrieben und Breite hängt ohne Trennzeichen an cm, das kann doch nicht funktionieren?

Wie "generierst" du denn die CSV-Datei? Vielleicht stimmt der Zeichensatz nicht oder es sind falsche bzw. ungeeignete Trennzeichen konfiguriert.

Link to comment
Share on other sites

vor 7 Minuten schrieb rictools:

Jetzt komme ich nicht mehr mit, was ist denn nun "BIC-SIC-OXBOW/Open BIC"? Ist das eine Kategorie oder soll das / das Trennzeichen zur Unterkategorie sein (dann darf es natürlich nicht an anderen Stellen auch / enthalten sein)? Auf deinem Screenshoot sind alle Einträge mit Leerzeichen in "" eingebettet, nicht nur einige. Ausnahme die seltsamen Einträge für Länge, Breite, Gewicht, da wird Länge mit ungwöhnlichen Sonderzeichen geschrieben und Breite hängt ohne Trennzeichen an cm, das kann doch nicht funktionieren?

Wie "generierst" du denn die CSV-Datei? Vielleicht stimmt der Zeichensatz nicht oder es sind falsche bzw. ungeeignete Trennzeichen konfiguriert.

 

 

Das ganze wird mit PHP gemacht, es sind sehr viele Produkte, die ich von einem anderen Server auf meinem Server in Variablen speichere.. 

"BIC-SIC-OXBOW/Open BIC" ist folgendes: 

kategorie_presta.png.6b1b9895df110306101a16b8534379cb.png

Der erste Teil, ist die Hauptkategorie, der zweite (nach dem /) ist die Unterkategorie.. 

In einer For-Schleife (es sind 192 seiten, je 25 / Seite) setzte die Variablen in diesem Array, dass mir das CSV generiert. 

//für die Produkte
				$data = array (';'.$isActive.';'.$productName.';'. $Kategorie. ';'.$categoryBrandName.';'. $productPreis_rabatt. ';'.$articleID.';'.$productquantity.';'.$htmlDescription_long.';'.$productStockText.';'.$whole_pic_url.';2');
				
						echo "<pre>";
							print_r ($data);
						echo "</pre>";
				
				 foreach($data as $line){
					$val = explode(";",$line);
		
					fputcsv($fp, $val);
				}

Beim KategorieNamen sowie auch Subkategorie mache ich das hier:

$categoryName = str_replace(" / ", "-", $categoryName);
$categorySub = str_replace(" / ", "-", $categorySub);

Diese Variablen setzte ich zusammen und mache daraus $Kategorie. 

 

Diesen Text da mit Breite und Länge, dass ist die Variable $htmlDescription_long. Die Breite, Länge, Gewicht ect. eines Produktes habe ich gar nicht definiert im CSV, Da ich diese Werte gar nicht habe.

Als Zeichensatz habe ich ich folgendes: 

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Produkt-Import</title>
</head>

 

Ausser du meinst einen anderen Zeichensatz. ?

Link to comment
Share on other sites

Generell sollte man als Trennzeichen keines verwenden, das auch in den Feldinhalten verwendet wird, das kannst du doch in Prestashop beliebig konfigurieren.

Wie wird denn die Description_long dann ausgegeben, doch wohl kaum korrekt?

UTF-8 wäre ja OK, nur sehe ich in deinem Screenshot halt seltsame Sonderzeichen, was mir nicht normal vorkommt.

Link to comment
Share on other sites

Die Description wird korrekt ins Texfeld des Produktes eingefügt, auch wenns so im CSV aussieht. 

Das ist der Code für mein CSV, wenn an diesem etwas nicht stimmt, passe ich den gerne an. aber beim Importieren funktioniert es soweit gut.

$fp = fopen('data.csv', 'wb') or die('Cannot open file:  data.csv');

//für die Produkte
$data = array (';'.$isActive.';'.$productName.';'. $Kategorie. ';'.$categoryBrandName.';'. $productPreis_rabatt. ';'.$articleID.';'.$productquantity.';'.$htmlDescription_long.';'.$productStockText.';'.$whole_pic_url.';2');
	foreach($data as $line){
	$val = explode(";",$line);
	fputcsv($fp, $val);
}
fclose($fp);

 

Was ich noch nicht verstehe, warum werden die einen Kategorien mit " angezeigt und die anderen nicht, obwohl es immer die Variable $Kategorie ist.

 

Link to comment
Share on other sites

Ich habe mir deinen Screenshot noch einmal angeschaut, tatsächlich, ich hatte da Kommata übersehen, ein Teil der gelb markierten Kategorien steht in "", ein Teil nicht. Aber das ist ganz einfach, bei denen mit "" findet sich ein Leerzeichen, bei den anderen nicht.

Gibt es jetzt eigentlich noch irgendein ungelöstes Problem?

Link to comment
Share on other sites

Sehr gut beobachtet, genau dass ist der Grund warum die "" bei einen gemacht wird und bei anderen nicht.. das ist mir nicht aufgefallen :-)

ja das Problem dass ich habe, ist bei einem anderem Thema.. da gebe ich dir auch gleich ne Antwort :-)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...