HBSO-Shop: Header von CSV-Dateien

Aus NULLRAFFER
Wechseln zu: Navigation, Suche

CSV-Dateien bearbeiten

Vorhandene Excel-Datei bearbeiten

1. Excel-Datei bereinigen

Standard-Schritte

Im ersten Schritt werden nicht vorhandene Spalten aus der Excel-Datei gelöscht.

Preis-Spalten werden auch als "Währung" formatiert.

Darauf achten, dass der EK-Preis netto und der VK-Preis brutto sein muss (bei einem B2C-Shop). Notfalls eine Spalte einfügen, eine Formel in die erste Zelle und diese dann duplizieren.


Sonderfall Zusatz-Rabatt

Gibt es eine Spalte, in der ein zusätzlicher Rabatt auf den EK-Preis steht oder gibt es auf den normalen EK noch einen Rabatt, dann ist eine neue Spalte einzufügen, in der der korrekte EK-Preis per Formel berechnet wird.


Zusatz-Schritt Artikelnummer ergänzen

Wir gehen davon aus, dass in der ersten Spalte die Artikelnummer des Lieferanten steht.

Wenn wir eine eigene Artikelnummer generieren (zB Lieferantenkürzel davorsetzen), dann müssen wir noch eine Spalte davor einfügen.

Diese Spalte nennen wir "pre" und schreiben da zB "CLE" für Clementoni rein.

2. Exportieren der Daten

Speichern als CSV mit dem Trenner ; (Semikolon) und dem Feldtrenner " (Anführungszeichen)

Alle Felder zitieren

Format sollte UTF-8 sein


3. Bearbeiten der CSV-Datei

Ergänzte Artikelnummern

Wenn wir zB ein führendes "CLE" vor der Artikelnummer haben, dann müssen wir erstmal diese Spalte verschwinden lassen.

Suchen & Ersetzen

"CLE";" ersetzen durch "CLE

in der ersten Zeile das "pre"; entfernen.

""CLE ersetzen durch "CLE


Standard

Für das Ersetzen von Anführungszeichen durch doppelte Anführungszeichen (zB " für inch) und eventuelle Zeilenumbrüche sind mehrere Schritte erforderlich.

Suchen & Ersetzen

" ersetzen durch ""
einfaches Anführungszeichen durch doppeltes ersetzen
""; ersetzen durch ";
Anführungszeichen am Ende wieder zurücksetzen
;"" ersetzen durch ;"
Anführungszeichen am Ende wieder zurücksetzen
\r""\r ersetzen durch \r"\r
Anführungszeichen die separat stehen zurücksetzen
\r ersetzen durch \r<br/>
\r<br/>" ersetzen durch \r"
Zeilenumbrüche in Texten an html anpassen
\r";" ersetzen durch ";"
\r"\r ersetzen durch "\r
Versehentlichen Zeilenumbruch entfernen


Nachtrag für ergänzte Artikelnummern

""\r"CLE ersetzen durch "\r"CLE


4. Speichern der CSV-Datei

Die CSV-Datei sollte in einem "normalen" Format (wegen der Umlaute) gespeichert werden.

Im Falle von Textwrangler unter Mac OS X ist das dann Western (Windows Latin 1)




Header von CSV-Dateien

HEO.com

Vorarbeiten

Letzte ID-Nummer herausfinden

select max(products_id) from products;


CSV-Datei erstellen & Bearbeiten

Datei erstellen

Auf der HEO-Seite eine Recherche starten.

Die Ergebnis-Seite hat unten dann (rechts) 2 Symbole. Das rechte Symbol zum Drucken und das linke Symbol zu Erstellen einer CSV-Datei.

Die CSV-Datei wird in einem eigenen Fenster erstellt. Dort alles markieren <STRG><A>, Kopieren <STRG><C> und zB im TextWrangler mit <STRG><V> einfügen.


Original-Header:

Artikelnummer;Artikel;BildURL;Bildpfad;HerstellerNr;Hersteller;ThemaNr;Thema;ProdukttypNr;Produkttyp;BasisPreis;Ampelstatus;Barcode;UVP

Ändern in

v_products_model;v_products_name;v_products_image;v_products_mmn;HerstellerNr;v_org_manufacturers_name;ThemaNr;v_products_spec;ProdukttypNr;v_products_musthave;v_products_purchase_price;v_products_deliverystatus;v_products_ean;v_products_price

respekte den hier genannten Header dazufügen.

Status anpassen

Änderungen in der Datenbank

Dies ist nur einmal auszuführen, bevor alle CSV-Dateien importiert werden.

update products set products_status=0 where manufacturers_id = (select manufacturers_id from manufacturers where manufacturers_name='HEO');
update products set products_status=0 where org_manufacturers_id = (select manufacturers_id from manufacturers where manufacturers_name='HEO');



Änderungen an den CSV-Dateien

den Header noch erweitern um

;v_status


und dann in Textwrangler noch

\r

ersetzen durch

;True\r


Ziel hiervon ist, dass der Status beim Import wieder auf aktiviert gesetzt wird.
Damit ist also der komplette Header wie folgt:

v_products_model;v_products_name;v_products_image;v_products_mmn;HerstellerNr;v_org_manufacturers_name;ThemaNr;v_products_spec;ProdukttypNr;v_products_musthave;v_products_purchase_price;v_products_deliverystatus;v_products_ean;v_products_price;v_status


Abspeichern auf einem Mac

Mit Textwrangler muss man als Encoding Western (ISO Latin1) wählen.

Bilder downloaden

Mit phpMyAdmin ein Script erstellen lassen (das Ergebnis als Text-Datei exportieren und die Anführungszeichen entfernen)

Befehle erstellen

select concat("wget -nc www.heomedia.com/img/nrm/",lower(products_image)) from products where products_mmn='http://www.he' and length(products_image)>0 and instr(products_image,"/")<=0 and products_status=1
select concat("wget -nc www.heomedia.com/img/nrm/m",lower(products_image)) from products where products_mmn='http://www.he' and length(products_image)>0 and instr(products_image,"/")<=0 and products_status=1
select concat("wget -nc www.heomedia.com/img/nrm/x",lower(products_image)) from products where products_mmn='http://www.he' and length(products_image)>0 and instr(products_image,"/")<=0 and products_status=1

Wenn nach der ID-Nummer noch eingeschränkt werden soll, dann ist einfach noch um folgendes zu erweitern:

and products_id>xxxx


Wenn nur Bilder für neu dazugefügte Produkte downgeloadet werden sollen, dann können die SQL-Befehle wie folgt aussehen:

select concat("wget -nc www.heomedia.com/img/nrm/",lower(products_image)) from products where products_mmn='http://www.he' and length(products_image)>0 and products_image_med is null and products_status=1
select concat("wget -nc www.heomedia.com/img/nrm/m",lower(products_image)) from products where products_mmn='http://www.he' and length(products_image)>0 and products_image_med is null and products_status=1
select concat("wget -nc www.heomedia.com/img/nrm/x",lower(products_image)) from products where products_mmn='http://www.he' and length(products_image)>0 and products_image_med is null and products_status=1


Shell-Script erstellen

  • Bei jedem Select-Befehl danach dann Exportieren und CSV auswählen
  • Die doppelten Anführungszeichen rauslöschen
  • Erste Zeile: #!/bin/sh einfügen
  • Datei als getpics.sh speichern


Datenbank korrigieren (Bildnamen und Pfade)

update products set products_image_sm_1=CONCAT('prodpics/HEO/m',lower(products_image)) where products_mmn='http://www.he' and products_image is not null and products_image_sm_1 is null;

update products set products_image_lrg=CONCAT('prodpics/HEO/x',lower(products_image)) where products_mmn='http://www.he' and instr(products_image,"/")<=0;

update products set products_image=CONCAT('prodpics/HEO/',lower(products_image)) where products_mmn='http://www.he' and instr(products_image,"/")<=0;

update products set products_image_med=products_image where products_mmn='http://www.he' and products_image is not null and products_image_med is null;
update products set products_image_xl_1=products_image_lrg where products_mmn='http://www.he' and products_image is not null and products_image_xl_1 is null;

update products set products_mmn='' where products_mmn='http://www.he';

Wenn nach der ID-Nummer noch eingeschränkt werden soll, dann ist einfach noch um folgendes zu erweitern:

and products_id>xxxx


Script erstellen & Bilder holen

Die Ergebnisse der SQL-Befehle exportiert man immer als CSV und öffnet es direkt in einem Text-Editor (zB Textwrangler).

Mit Copy & Paste kopiert man Variante 2 und Variante 3 an das Ende der Variante 1, setzt an den Anfang der Datei noch

#!/bin/sh

und speichert das Ganze unter dem Namen getpics.sh in einem neuen Verzeichnis

Später gibt man mit
chmod 0755 getpics.sh
der Datei noch die Ausführungsrechte und startet dann auf der Shell mit ./getpics.sh den Download der Bilder.

Die Datei getpics.sh kann danach gelöscht werden und der Inhalt der Verzeichnisses (alle Bilder) lädt man dann per FTP (zB mit FileZilla) in das Verzeichnis /shop/images/prodpics/HEO hoch.

Zum Abschluss lässt man mit Bilder/Texte verknüpfen die Bilder den entsprechenden Artikeln zuordnen.


Elbenwald

Original-Header:

"Artikelnr.","Art.Nr. Noble","Titel","Grösse ","Material","Bilddaten","EK (netto)","VK (brutto)",

Ändern in

v_products_model,v_products_mmn,v_products_name,v_products_spec,v_products_musthave,Bild,v_products_purchase_price,v_products_price

Abspeichern auf einem Mac

Mit Textwrangler muss man als Encoding Western (ISO Latin1) wählen.

Bilder downloaden

Mit phpMyAdmin ein Script erstellen lassen (das Ergebnis als Text-Datei exportieren und die Anführungszeichen entfernen)

Befehle erstellen

Variante 1:

select concat("wget -nc white.elbenwald.de/",products_model,"/",products_model,"_1.jpg") from products where manufacturers_id=56

Wenn nach der ID-Nummer noch eingeschränkt werden soll, dann ist einfach noch um folgendes zu erweitern:

and products_id>xxxx


ACHTUNG: Die manufacturers_id (...manufacturers_id=4...) muss nach Angaben in der Datenbank entsprechend geändert werden.



Script erstellen & Bilder holen

Die Ergebnisse der SQL-Befehle exportiert man immer als CSV und öffnet es direkt in einem Text-Editor (zB Textwrangler).

Mit Copy & Paste kopiert man Variante 2 und Variante 3 an das Ende der Variante 1, setzt an den Anfang der Datei noch

#!/bin/sh

und speichert das Ganze unter dem Namen getpics.sh in einem neuen Verzeichnis

Später gibt man mit
chmod 0755 getpics.sh
der Datei noch die Ausführungsrechte und startet dann auf der Shell mit ./getpics.sh den Download der Bilder.

Die Datei getpics.sh kann danach gelöscht werden und der Inhalt der Verzeichnisses (alle Bilder) lädt man dann per FTP (zB mit FileZilla) in das Verzeichnis /shop/images/prodpics/HEO hoch.

Zum Abschluss lässt man mit Bilder/Texte verknüpfen die Bilder den entsprechenden Artikeln zuordnen.


Underground Toys

XLSX-Dateien umwandeln

XLSX-Datei mit OpenOffice öffnen


Artikel aus Liste filtern

  • Neues Tabellenblatt anlegen (zB Tabelle2)
  • In Sheet1 folgendes machen:
  • Daten - Filter - Standardfilter
  • Feldname: Spalte A
  • Bedingung: =
  • Wert: - nicht leer -
  • OK
  • Alles markieren <STRG><A>
  • Kopieren <STRG><C>
  • In neues Tabellenblatt wechseln
  • Einfügen <STRG><V>
  • Sheet1 löschen (mit rechter Maus auf Tabellen-Tab)
  • Speichern unter als Excel XLS speichern
  • Neue Zeile 1 anlegen mit folgendem Inhalt:
v_products_model	v_products_ean	v_products_name	v_products_mpn	v_products_purchase_price	gros_price	v_status
  • In Spalte G2 eintragen: 1
  • Spalte G2 markieren und kopieren <STRG><C>
  • Ab Spalte G3 alle Zellen in der Spalte bis nach unten markieren und <STRG><V>
  • Spalten E und F markieren, rechte Maus - Zellen formatieren...
  • Als Format dann Zahl - 1234,12 und bei Sprache dann Englisch (USA) wählen
Dass es funktioniert hat sieht man daran, dass das € Zeichen verschwindet und statt einem Komma der Dezimalpunkt erscheint.


CSV-Datei erstellen

Die Excel-Datei speichert man nun mit Speichern unter... im CSV-Format ab. Dazu als Dateityp Text CSV (.csv) wählen und den Haken bei Filtereinstellungen bearbeiten setzen.

Beim nachfolgenden Dialog als Feldtrenner ; wählen und Alle Textzellen zitieren anhaken, dann auf OK klicken.

Damit ist die CSV-Datei abgespeichert.


CSV-Datei bearbeiten

Schritt 1: Zusätzliche Inhalte entfernen

Zuerst entfernt man Zeilen, die mehrfach enthalten sind. Diese erkennt man leicht daran, dass eine Zeile ohne Anführungszeichen beginnt, also zB DR200 anstatt "DR200",50....

Diese Zeilen löscht man komplett.


Schritt 2: Zeilenumbrüche

Die CSV-Datei enthält viele Zeilenumbrüche. Diese müssen dann in einem TextEditor (zB TextWrangler) entfernt werden. Wenn die Datei bereinigt ist, können Sie einfach Datei - Speichern wählen und die Datei somit im UTF-8 Format speichern.

Das Zeichenformat ist nicht wichtig, da diese Dateien keine Umlaute enthalten.

Tip: in Textwrangler zB ersetzen Sie \r", durch ",


Daten importieren

Produkte - Produkt Im-/Export aufrufen, Datei auswählen und folgende Vorgabe-Werte für den Import einstellen:

  • Lieferant
  • Mehrwertsteuer
  • Warengruppe
  • Preis-Aufschlag
ACHTUNG: Hier einen Kommawert mit PUNKT eingeben, für 18% Aufschlag also 1.18, wobei dies ein "Brutto-Aufschlag" ist (es wird vorher der Brutto-EK-Preis berechnet und darauf dann der Aufschlag gerechnet)