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.

(vgl. Tabelle oben)

 

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.