1. Auslesen aller Produkte aus der xls-Tabelle - Import der Artikel in die Datenbank
Grundlage
Alle Artikel von DeWalt sind in der Excel-Tabelle "Dewalt.xlsx" bzw. "DEWALT Portfolio ... xlsx" aufgeführt.
Schritt 1
Lösche alle überflüssigen Artikel aus dieser Excel Tabelle ODER
kopiere alle gewünschten Artikel aus der Tabelle in eine neue Excel-Tabelle.
WICHTIG!
Die erste Zeile mit den Überschriften muss erhalten bleiben - sie wird also nicht gelöscht bzw. sie wird in die neue Tabelle eingefügt.
Diese Datei wird unter einem neuen Namen abgespeichert.
Schritt 2 - Starten der Datei excel_read_write_db.exe
Über Doppelklick auf die exe-Datei wird die Konvertierung gestartet.
Man wählt im Dialog "Bitte Eingabedatei auswählen" die oben abgespeicherte Excel-Datei aus.
Im zweiten Dialog "Bitte Namen für die Ausgabedatei wählen (ohne Endung)" wählt man wenn man möchte noch ein anderes (neues?) Verzeichnis aus, in das die Ausgabedateien geschrieben werden sollen. Zusätzlich gibt man einen Dateinamen für die Ausgabedateien an: z.B. "Importdatei" (ohne Endung!) und klickt auf "Speichern".
Schritt 3 - Fragen beantworten und warten
Die Konvertierung der Daten läuft nun durch - am Anfang muss man noch ein paar Fragen beantworten (s.u. Schritt 3a).
Nach der Konvertierung findet man die neuen Dateien in dem Verzeichnis und mit dem Dateinamen, das man oben für die Ausgabedateien bestimmt hat:
Die Eingabe von z.B. "Importdatei" (s. Schritt 2) erzeugt folgende Dateien im gewählten Verzeichnis
| Dateiname | Beschreibung |
| Importdatei_2025-08-21_13-25-05.csv | Importdatei zur weiteren Verwendung / zum Einlesen in die Datenbank |
| Importdatei_2025-08-21_13-25-05.xlsx | Importdatei zum Lesen als Excel-Tabelle |
| Importdatei_Bilder_2025-08-21_13-25-05.xlsx | enthält name_de-DE sowie alle Namen der Bilddateien |
| Importdatei_Spalten_fuer_Import_2025-08-21_13-25-05.txt | die Spaltennamen der Spalten, die schließlich importiert werden |
Schritt 3a - Fragen beantworten
- Sollen neue Produkte eingelesen werden? (ja/nein):
Mit der Eingabe von "j" oder "ja" (ohne Anführungszeichen) und ENTER startet die Konvertierung.
Vorgesehen ist noch eine zweite "Abzweigung": Einlesen von Artikeln, die bereits vorhanden sind und nur aktualisiert werden sollen.
- Sollen alle eingelesenen Produkte veröffentlich werden (ja) / nicht veröffentlich werden (nein):
Mit der Eingabe von "j" oder "ja" (ohne Anführungszeichen) und ENTER werden alle Artikel automatisch beim späteren Import angelegt und veröffentlicht.
Mit der Eingabe von "n" oder "nein" (ohne Anführungszeichen) und ENTER werden alle Artikel automatisch beim späteren Import angelegt und aber NICHT veröffentlicht.
Schritt 3b - warten bis das Programm fertig ist
Die Excel-Datei wird eingelesen. Folgende Schritte werden dabei durchgeführt:
Umbenennung von Spaltennamen
Die vorbereitete Excel-Tabelle mit den gewünschten Artikeln wird eingelesen.
Dabei werden folgende Spaltennamen umbenannt:
| alter Name | neuer Name |
| Artikelnummer | name_de-DE |
| Artikeltext 1 | short_description_de-DE |
| GTIN/EAN | real_ean |
| UVP ohne MwSt. TODO: andere Spalte auswählen!!!!!!!!! oder Spalte "Händer-Nettopreis ohne MwSt." nach Muster umrechnen (hier fehlen mir die nötigen Infos) |
product_price |
| Gewicht | product_weight wird dann noch umformatiert in DECIMAL(14,4) |
Einfügen neuer Spalten
Neue Spalten werden eingefügt:
| product_manufacturer_id | Standardwert = 1 für Dewalt |
| product_quantity | Standardwert = 10 damit zunächst verfügbar |
| unlimited | 1 - ignoriert die product_quantity |
| product_date_added | aktuelles Datum/Uhrzeit |
| product_publish | Abfrage von Programm: Standardwert = 1 (wenn alle Prdukte veröffentlich werden sollen) Standardwert = 0 (wenn alle eingelesenen Produkte nicht veröffentlicht werden sollen) |
| min_price | Kopie der Spalte product_price |
Umformatierung von Spalteninhalten
product_weight (vorher Spalte "Gewicht") wird als DECIMAL(14,4) formatiert
alle Bilder raussuchen -- Bildnamen werden in eigener Datei abgespeichert
Alle Spalten, die mit dem Namen "Bild..." beginnen, werden in einer neuen Tabelle abgespeichert.
Als 1. Spalte wird die Spalte "name_de-DE" eingefügt. Das ist der eindeutige Name der Artikel
Hauptbild in neuer Spalte "image" abspeichern
Durchsuche alle Spalten, die mit dem Namen "Bild" beginnen.
Der erste verfügbare Bildname wird in der neuen Spalte "images" abgespeichert.
Formatierung des Textes / der Produktbeschreibung
h3-Überschrift: aus Spalte "Kurzbeschreibung"
Technische Daten: Inhalt aus Spalte "Produktstärken" - umformatiert als Aufzählung
wird in neue Spalte "description_de-DE" geschrieben
es werden ausschließlich folgende Spalten in die neue Tabelle geschrieben
name_de-DE, short_description_de-DE, real_ean, product_price, product_weight, image, product_manufacturer_id, product_quantity, unlimited, product_date_added, product_publish, min_price, description_de-DE
Dateien werden geschrieben
Damit man in der Testphase überprüfen kann, ob die neu generierte Tabelle richtig ist, wird diese in einer neuen Excel-Tabelle abgespeichert.
Für den Import werden genau diese Inhalte in eine csv-Datei geschrieben. Außerdem werden die Spaltennamen nochmal aufgelistet.
Import in die Datenbank
Die neuen Artikel werden aus der csv-Datei ausgelesen und in die Datenbanktabelle __jshopping_products eingefügt.
Verbindungsaufbau über PHP-Bridge.
2. manuelle Zuordnung der Kategorien
Nach dem Import der Produkte fehlt diesen noch die passende Kategorie. Sonst werden die Artikel nicht im online-Shop angezeigt!
In Joomla unter "Joomshopping" kann man sich alle Produkte anzeigen lassen (Components / JoomShopping / Products).
In dieser Übersicht kann man links mit dem Anklicken der Checkbox vor dem Produkt (=Setzen eines Häkchens bzw. bei nochmaligem Klick das Entfernen eines Häkchens) mehrere Produkte gleichzeitig auswählen. Über den Button Edit (oben) kann man dann für alle ausgewählten Produkte eine gemeinsame Kategorie definieren. Über „save & close“ wird diese Kategorie diesen Produkten gesammelt zugewiesen.
3. Verarbeiten der Bilddateien
Schritt 1 - Starten der Datei Import_Bilder.exe
Vorbedingung ist, dass die Artikel bereits importiert wurden. Deswegen erscheint hier nochmal eine Sicherheitsabfrage.
In einem Filedialog muss man die zuvor generierte Bilderdatei "Import_Bilder_...... xls" auswählen.
Außerdem wird man aufgefordert, das Bilder-Verzeichnis anzugeben: D:\Webshop\Bilder\DeWalt
Es wird automatisch ein Unterverzeichnis erstellt, in das folgende Dateien kopiert werden:
- Bild der Größe 100 (x100) - wird unter dem Namen "thumb_(Originalname).jpg" abgespeichert
- Originalbild wird unter dem Namen "full_(Originalname).jpg" abgespeichert
- Bilder der Größe 200 (x200) - wird unter dem Originalnamen abgespeichert
Schritt 2 - Hochladen der Bilder per FTP
Es wird am Ende nochmal ausgegeben, in welchem Verzeichnis die generierten Bilder jetzt liegen.
Per FTP werden alle Dateien hochgeladen in das Verzeichnis /components/com_jshopping/files/img_products
4. Zuordnen der Bilddateien
Durch das Starten des Programms DBWrite_product_images werden den Produkten die Bilder zugewiesen.
Am Anfang wird lediglich abgefragt, welche Datei (z.B. Import_Bilder......xls) eingelesen werden soll.
Erneut wird eine Verbindung zur Datenbank aufgebaut. Hier wird in der Tabelle __jshopping_products nach dem passenden Namen (name_de-DE) gesucht und dazu die passende product_id ausgelesen.
Es werden dann alle Bilder der Datei Import_Bilder.....xls ausgelesen und in die Datenbanktabelle __jshopping_products_images eingetragen - jeweils immer zusammen mit der passenden product_id sowie einer laufenden Nummer (="ordering") geschrieben.