Appearance
HQS → Shopware 6: Einrichtung einer neuen Verbindung
Praxisleitfaden (Quell- + Shop-Adapter)
Kombiniert HQS und Shopware 6. Generischer Ablauf: Verbindungen.
Dieser Leitfaden beschreibt die vollständige Ersteinrichtung einer HQS-Shopware-Verbindung für den Artikelstamm artikel_komplett.csv (5.708 Zeilen, 47 Spalten, UTF-8 mit BOM, Semikolon als Trennzeichen, Werte in Anführungszeichen). Alle Angaben wurden gegen den aktuellen Code und gegen die reale Exportdatei geprüft; die Mengenangaben stammen aus einem Probelauf, der die echte Mapping-Engine, die echte Variantenlogik und den echten Payload-Bau über die vollständige Datei laufen lässt. Wo eine Angabe nicht belegbar war, steht das ausdrücklich dabei.
Stand: 6. August 2026.
1. Was vorab im Shop vorhanden sein muss
Der Import legt vieles selbst an, aber nicht alles. Fehlt eines der folgenden Objekte, läuft der Import weiter und vermerkt den Ausfall nur im Job-Protokoll — das Ergebnis im Shop ist dann still unvollständig. Prüfen Sie deshalb vorher.
| Objekt | Wird angelegt? | Für diesen Kunden konkret | Prüfen in der Administration |
|---|---|---|---|
| Steuersätze | Nein, nur nachgeschlagen | 19 %, 7 % und 0 % | Einstellungen → Shop → Steuern |
| Grundpreis-Einheiten | Nein, nur nachgeschlagen | ml, l, kg, g | Einstellungen → Shop → Maßeinheiten |
| Wurzelkategorie „Deutsch“ | Nein | ID wird in der Verbindung hinterlegt | Kataloge → Kategorien |
| Kategorien darunter | Ja | 552 Knoten, max. 5 Ebenen | — |
| Hersteller | Ja | 281 Stück | — |
| Lieferzeiten | Ja | 15 Datensätze („30 Tage“ … „1-3 Tage“) | — |
| Eigenschaften „Farbe“/„Größe“ | Ja | Gruppen und Werte für die Varianten | — |
| Preisregel für Staffelpreise | Ja („ReadySync – Staffelpreise“) | für 345 Artikel | Einstellungen → Shop → Regeln |
| Standard-Währung und Standard-Steuersatz der Verbindung | Nein | Pflichtfelder, sonst bricht der Import ab | Tab „Shop“ der Verbindung |
Steuersätze. Die Steuerauflösung sucht ausschließlich nach einem vorhandenen Satz. Findet sie ihn nicht, protokolliert sie einmalig „Steuersatz X % existiert nicht in Shopware. Betroffene Artikel werden mit dem Standard-Steuersatz der Verbindung importiert.“ und importiert die Artikel mit 19 %. Für diesen Kunden betrifft das 22 Artikel mit 7 % und 24 differenzbesteuerte Artikel mit 0 %. Ein 0-%-Satz ist in einer Standardinstallation üblicherweise nicht vorhanden und muss angelegt werden.
Einheiten. Maßeinheiten werden bewusst nicht automatisch angelegt, weil Shopware für jede Shop-Sprache eine Übersetzung braucht. Gesucht wird nach Kurzform oder Name, jeweils klein geschrieben — eine Einheit mit dem Kürzel ml genügt also, unabhängig davon, wie sie ausgeschrieben heißt. Fehlt sie, erscheint „Einheit "ml" existiert nicht in Shopware und wird ignoriert.“ und der Artikel bekommt keinen Grundpreis; sonst fehlt ihm nichts. Betroffen wären 46 Artikel.
Wurzelkategorie. Tragen Sie die 32-stellige ID der Kategorie „Deutsch“ ein. Sie steht in der Adresszeile der Administration, wenn die Kategorie geöffnet ist. Ohne Wurzelkategorie überspringt der Import den kompletten Kategoriebaum und schreibt eine Warnung in das Protokoll.
Sichtbarkeit im Verkaufskanal. Der Import schreibt keine Verkaufskanal-Zuordnung (visibilities) in die Produkte — das ist im Code eindeutig, es gibt an keiner Stelle einen entsprechenden Payload-Anteil. Planen Sie deshalb ein, die Sichtbarkeit nach dem Erstimport zuzuweisen, etwa über eine dynamische Produktgruppe oder die Massenbearbeitung. Wie sich das im konkreten Shop auswirkt, ließ sich ohne laufende Instanz nicht überprüfen; kontrollieren Sie nach dem Erstimport an einem Beispielartikel, ob er in der Storefront erscheint.
2. Verbindungseinstellungen, Tab für Tab
Tab „Basis“
| Feld | Wert |
|---|---|
| Verbindungsname | frei, z. B. „HQS → Shopware“ |
| Shop-System | Shopware |
| ERP-System | HQS |
Tab „ERP“
| Feld | Wert | Begründung |
|---|---|---|
| Host / Port / Benutzername / Passwort | vom Kunden | — |
| Pfad (Basis) | Verzeichnis der Exportdateien | — |
| Bildverzeichnis | Verzeichnis der Artikelbilder | Ohne diesen Eintrag findet der Import keine Bilddateien; die Dateinamen im Export enthalten keinen Pfad. |
| Vollimport Datei | artikel_komplett.csv | Der vorliegende Export ist der vollständige Artikelstamm. |
| Delta-Import Datei | vom Kunden zu benennen | Nicht verifizierbar: In den vorliegenden Unterlagen ist kein Delta-Dateiname enthalten. |
| Status-Datei (Bestellungen) | vom Kunden | Rückmeldedatei aus HQS. |
| Export-Verzeichnis | Zielverzeichnis der Bestelldatei | — |
Bestellexport (HQS-spezifisch, gleicher Tab).
| Feld | Empfehlung | Wirkung |
|---|---|---|
| Verkäufer-Nummer | leer lassen, sofern der Kunde keine nennt | Füllt <A012>. Ohne Eintrag vergibt HQS den Verkäufer selbst. Ältere Schreibweisen der Form {"EK":4} werden weiterhin gelesen; übertragen wird dann die Nummer der Gruppe „EK“, andere Gruppen werden mit einer Warnung übergangen. |
| Versandkosten-Artikelnummer | leer lassen, wenn HQS den Standardartikel VERSAND führt — sonst die abweichende Nummer eintragen | Ohne passenden Artikel weist HQS die Position zurück; die Versandkosten landen dann als reine Textzeile <P010> im Beleg und fehlen in der Auftragssumme. Das Job-Protokoll nennt die betroffenen Bestellungen. |
| Dokument-Schlusstext | leer lassen, sofern nicht gewünscht | Füllt <A005>, maximal 58 Zeichen, längere Texte werden gekürzt. |
| Lieferanschrift an HQS übertragen | aus lassen, bis der Kunde es ausdrücklich will | HQS speichert jede übertragene Lieferanschrift dauerhaft im Kundenstamm. Solange der Schalter aus ist, steht jede Bestellung mit abweichender Anschrift im Job-Protokoll. |
Der Bestellexport hat eine weitere Option, die in der Oberfläche nicht angeboten wird: die externe Artikelbezeichnung <P006>. Sie ist standardmäßig aus und ließe sich nur direkt in der Verbindungskonfiguration unter erp.hqs.external_item_names setzen. Für diesen Kunden ist das nicht nötig.
Zusätzlich greift beim Bestellexport eine Schutzfunktion, die aus dem Varianten-Import folgt: Sollte in Shopware jemals ein Varianten-Hauptprodukt (Artikelnummer VAR-…) bestellt werden, bricht der Export ab, statt eine Position zu übertragen, die HQS nicht auflösen kann. Es wird dann keine Datei übertragen und kein Bestellstatus geändert.
Tab „Shop“
| Feld | Wert |
|---|---|
| Shop-URL, Access Key ID, Secret Key | Zugangsdaten der Shopware-Integration |
| Standard-Währung | EUR |
| Standard-Steuersatz | 19 % |
| Bestellstatus / Zahlstatus (Filter) | nach Absprache mit dem Kunden |
| Neuer Bestellstatus nach Export | nach Absprache mit dem Kunden |
Währung und Steuersatz sind Pflicht: Sind sie nicht gesetzt und lassen sie sich auch nicht eindeutig ermitteln, bricht der Import mit einem Konfigurationsfehler ab.
Tab „Produkte“
| Bereich | Einstellung | Wert | Begründung |
|---|---|---|---|
| Quelldatei | Zeichensatz | UTF-8 | Die Datei ist UTF-8 mit BOM; das BOM wird beim Dekodieren entfernt. |
| Quelldatei | Importdatei zwischenspeichern | einschalten | Ohne Zwischenspeicher lädt jeder der rund 350 Abschnitte die komplette Datei erneut vom FTP-Server. |
| Varianten | Varianten importieren | ein | Textilmodul, siehe Abschnitt 4. |
| Varianten | Artikelnummer des Hauptprodukts | VAR-{group} | Standard. Der feste Textanteil VAR- ist wichtig: Nur damit erkennt der Bestellexport ein synthetisches Hauptprodukt, und nur damit werden Hauptprodukte beim Abgleich fehlender Artikel berücksichtigt. |
| Varianten | Mindestanzahl Varianten | 2 (Standard) | 328 Gruppenschlüssel kommen nur einmal vor; diese Artikel gehen als Einzelartikel ein. |
| Varianten | Höchstanzahl Varianten | 200 (Standard) | Die größte Gruppe hat 42 Mitglieder, die Grenze greift nicht. |
| Staffelpreise | Staffelpreise importieren | ein | 345 Artikel haben Mengenstaffeln. |
| Staffelpreise | Preisregel-ID | leer lassen | Legt beim ersten Import die Regel „ReadySync – Staffelpreise“ an, die für alle Kunden gilt. |
| Kategorien | Kategorien importieren | ein | — |
| Kategorien | Wurzelkategorie | ID der Kategorie „Deutsch“ | — |
| Kategorien | Beim erneuten Import | Zuordnungen ergänzen | Von Hand gepflegte Zuordnungen im Shop bleiben erhalten. „Ersetzen“ würde jede Zuordnung entfernen, die das ERP nicht mehr liefert. |
| Kategorien | Trennzeichen im Kategoriefeld | Steuerzeichen (HQS-Standard) | Die Datei verwendet BEL (0x07) für die Zuordnung, BS (0x08) vor dem Sortiercode und TAB (0x09) zwischen den Ebenen — 6.405, 6.405 und 16.286 Vorkommen. |
| Fehlende Produkte | Wenn ein Artikel nicht mehr geliefert wird | Nichts tun für den Erstimport, danach Im Shop deaktivieren | Beim Erstimport gibt es noch keinen Bestand an verwalteten Artikeln; die Funktion hätte keinen Effekt, aber auch kein Risiko. „Löschen“ ist unumkehrbar und entfernt bei Variantengruppen das Hauptprodukt samt aller Varianten. |
| Fehlende Produkte | Sicherheitsgrenze | 10 (Standard) | Bricht den Abgleich ab, wenn mehr als 10 % der verwalteten Artikel fehlen — der typische Fall einer abgebrochenen FTP-Übertragung. |
| Fehlende Produkte | Sicherheitsgrenze übersteuern | aus | — |
Der Abgleich fehlender Produkte betrifft ausschließlich Artikel, die diese Verbindung selbst angelegt hat, und läuft nur bei Vollimporten.
Mapping-Editor
Zwei Einstellungen liegen nicht in der Verbindung, sondern im Mapping selbst:
| Einstellung | Wert | Begründung |
|---|---|---|
| Trennzeichen für Bilder | : (Doppelpunkt) | 1.418 Artikel führen mehrere Bilder in einer Spalte, getrennt durch Doppelpunkte. Mit dem Standard-Komma bliebe bei ihnen nur ein einziger, unbrauchbar langer Dateiname übrig. |
| Bilder erzwingen | aus | Bereits hochgeladene Bilder werden wiederverwendet. |
3. Die Mapping-Konfiguration
Die folgende Konfiguration wurde vollständig gegen die Exportdatei geprüft: Jede genannte Spalte existiert zeichengenau, und die Konfiguration wurde mit der echten Mapping-Engine über alle 5.708 Zeilen ausgeführt.
json
{
"name": "HQS Artikel → Shopware 6",
"entity_type": "product",
"image_separator": ":",
"image_force": false,
"target_fields": [],
"source_fields": [
{ "source": "Art-Nr", "target": "sku" },
{
"source": "Bez-1",
"target": "name",
"transformation": {
"type": "concat",
"params": { "source": "Kaliber/Bez.2", "separator": " - ", "skip_if_empty": true },
"when": { "source": "Textil-Nr.", "is": "absent" }
}
},
{
"source": "Beschreibung",
"target": "description",
"transformation": { "type": "html_entity_decode" }
},
{ "source": "IShop-FAB", "target": "manufacturer" },
{ "source": "GTIN-14", "target": "ean" },
{ "source": "Shop-Preis", "target": "price.gross", "fallback_source": "VK-Preis" },
{
"source": "VK-Preis",
"target": "price.list_gross",
"transformation": { "type": "require_column", "params": { "source": "Shop-Preis" } }
},
{ "source": "Preisstaffel", "target": "tier_prices" },
{ "source": "Bestand", "target": "stock" },
{
"source": "Mwst%",
"target": "tax_rate",
"transformation": {
"type": "switch",
"params": { "cases": [], "default": "0" },
"when": { "source": "Artikelklasse", "is": "equals", "values": ["4"] }
}
},
{
"source": "Ausl.",
"target": "is_closeout",
"transformation": {
"type": "compound",
"params": {
"steps": [
{
"type": "switch",
"params": {
"cases": [
{ "condition": "J", "result": "1" },
{ "condition": "A", "result": "1" }
],
"default": "0"
}
},
{
"type": "switch",
"params": { "cases": [], "default": "0" },
"when": { "source": "NOS Kz", "is": "equals", "values": ["J"] }
}
]
}
}
},
{
"source": "Hervorheben",
"target": "mark_as_topseller",
"transformation": { "type": "value_map", "params": { "mappings": { "J": "1", "N": "0" } } }
},
{ "source": "ab (Datum)", "target": "release_date" },
{ "source": "Lieferzeit in Tagen", "target": "delivery_time" },
{ "source": "IShop-Navi", "target": "categories" },
{ "source": "Artikelbild", "target": "images" },
{ "source": "Bildtext", "target": "image_alt" },
{ "source": "GP-Menge", "target": "unit.purchase_unit" },
{ "source": "GP-Faktor", "target": "unit.reference_unit" },
{ "source": "GP-Art-ME", "target": "unit.unit_name" },
{ "source": "MEH", "target": "unit.pack_unit" },
{ "source": "Textil-Nr.", "target": "variant_group" },
{ "source": "Farbe", "target": "variant_option.Farbe" },
{ "source": "Größe", "target": "variant_option.Größe" }
]
}Was jede Zuordnung bewirkt
| Zielfeld | Spalte | Wirkung | Betroffene Artikel |
|---|---|---|---|
| Artikelnummer | Art-Nr | Schlüssel des Abgleichs. | 5.708, keine Dubletten |
| Produktname | Bez-1 + Kaliber/Bez.2 | Hängt die zweite Bezeichnung mit „ - “ an, aber nur bei Artikeln ohne Textil-Nummer und nur wenn sie gefüllt ist. | 4.769 Zeilen haben beide Spalten gefüllt, verkettet wird bei 3.160 (siehe Hinweis unten) |
| Beschreibung | Beschreibung | Löst HTML-Sonderzeichen auf (& → &). | 4.575 |
| Hersteller | IShop-FAB | Legt fehlende Hersteller an. | 5.708 Artikel, 281 Hersteller |
| EAN | GTIN-14 | — | 2.193 |
| Verkaufspreis | Shop-Preis, ersatzweise VK-Preis | Ist der Aktionspreis leer oder 0, gilt der Listenpreis. | 2.022 aus Shop-Preis, 3.686 aus VK-Preis |
| Streichpreis | VK-Preis, nur wenn Shop-Preis gefüllt | Ohne Aktionspreis kein Streichpreis. Shopware zeigt ihn nur, wenn er über dem Verkaufspreis liegt. | 897 Artikel mit abweichendem Aktionspreis, davon 870 mit sichtbarem Streichpreis |
| Staffelpreise | Preisstaffel | Mengen-/Preis-Paare; die Leiter beginnt bei Menge 1 mit dem Normalpreis. | 345 Artikel, 987 Preiszeilen |
| Bestand | Bestand | — | 5.708 (davon 103 negativ) |
| Steuersatz | Mwst%, 0 bei Artikelklasse = 4 | Artikelklasse 4 ist Gebrauchtware mit Differenzbesteuerung. | 5.662 × 19 %, 22 × 7 %, 24 × 0 % |
| Auslaufartikel | Ausl. und NOS Kz | A oder J setzt den Artikel auf „nur solange der Vorrat reicht“, NOS Kz = J hebt das wieder auf. | 853 auf „ja“, 4.855 auf „nein“, davon 58 ausdrücklich „nie ausverkauft“ |
| Hervorheben | Hervorheben | Leere Spalte lässt die Einstellung im Shop unberührt. | 5 |
| Erscheinungsdatum | ab (Datum) | Deutsches Datum wird nach ISO umgesetzt. | 6 |
| Lieferzeit | Lieferzeit in Tagen | Einzelwerte und Bereiche; 0 und leer bedeuten „keine Angabe“. Fehlende Lieferzeiten werden angelegt. | 631 Artikel, 15 Lieferzeit-Datensätze, davon einer als Bereich („1-3 Tage“, 11 Artikel) |
| Kategorien | IShop-Navi | Hierarchiepfade mit Steuerzeichen; der Artikel landet in der untersten Ebene. | 5.678 Artikel, 6.405 Zuordnungen, 552 Kategorien |
| Bilder | Artikelbild | Doppelpunkt-getrennt, das erste Bild wird Titelbild. | 5.651 Artikel, 8.651 Bilder, davon 1.418 mit mehr als einem Bild |
| Bildbeschreibung | Bildtext | Alt-Text für alle Bilder eines Artikels. | 185 |
| Grundpreis: Inhalt | GP-Menge | z. B. 0,5 für eine 500-ml-Flasche | 46 |
| Grundpreis: Bezugsmenge | GP-Faktor | z. B. 1000 für „pro Liter“ | 46 |
| Grundpreis: Einheit | GP-Art-ME | ml, l, kg, g | 46 |
| Verpackungseinheit | MEH | Durchgehend „Stk“. | 5.708 |
| Varianten-Gruppe | Textil-Nr. | „0“ bedeutet „keine Variante“. | 2.100 Zeilen mit Gruppenschlüssel |
| Varianten-Option Farbe | Farbe | Achse des Konfigurators | siehe Abschnitt 4 |
| Varianten-Option Größe | Größe | Achse des Konfigurators | siehe Abschnitt 4 |
Zum Produktnamen. Die Bedingung „nur wenn keine Textil-Nummer vorhanden ist“ ist eine bewusste Entscheidung: Varianten bekommen in Shopware keinen eigenen Namen, sie erben ihn vom Hauptprodukt, und das Hauptprodukt übernimmt Name, Beschreibung, Preis und Kategorien von der ersten Zeile seiner Gruppe. Ohne die Bedingung wanderte der variantenspezifische Zusatz der ersten Zeile in den Namen des ganzen Produkts — aus „Ledergürtel 30 mm breit“ würde „Ledergürtel 30 mm breit - 120cm Länge,braun,Keilermotiv“. In 12 von 223 Gruppen enthält Kaliber/Bez.2 solche variantenspezifischen Texte. Lassen Sie die Bedingung weg, greift die Verkettung bei allen 4.769 Zeilen mit gefüllter zweiter Bezeichnung.
Zum Streichpreis. 2.022 Artikel haben einen Aktionspreis, aber bei 1.125 davon ist er mit dem Listenpreis identisch und bei 27 höher — in beiden Fällen zeigt Shopware keinen Streichpreis, weil ein Streichpreis unter oder gleich dem Verkaufspreis eine Ersparnis von null oder weniger bewerben würde. Sichtbar wird er bei 870 Artikeln.
Zur Spalte Akt.Pr. Ihr Name klingt nach Aktionspreis, sie ist aber in allen 5.708 Zeilen belegt und weicht nur in 17 Fällen von null ab. Der tatsächliche Aktionspreis steht in Shop-Preis. Das deckt sich mit dem bisherigen Shopware-5-Connector, der ebenfalls Shop-Preis gegen VK-Preis gestellt hat.
Bewusst nicht zugeordnet
| Spalte | Belegt in | Grund |
|---|---|---|
Masse H*B*T | 105 | Nur bei 1,8 % der Artikel gefüllt, und 100 der 105 Angaben sind derselbe Hemdenkarton — der Nutzen im Erstimport ist gering. Technisch spricht nichts mehr dagegen: Die Zentimeter der Spalte werden beim Einlesen in die von Shopware erwarteten Millimeter umgerechnet. Sie können die Zuordnung also jederzeit nachträglich ergänzen. |
Meta-Description | 392 | Es gibt kein kanonisches Zielfeld für Meta-Angaben. |
Artikel-Zubehör | 56 | Cross-Selling wird nicht unterstützt. |
Alternativartikel | 3 | Ähnliche Artikel werden nicht unterstützt. |
Logo | 4.798 | Herstellerlogos werden nicht übertragen. |
Warengruppe, Best-Nr, Handelsbuchart, Artikelklasse, Bez-2 | 5.708 / 5.639 / 5.708 / 5.708 / 5.260 | Im Shopware-5-Shop lagen diese Werte in Freitextfeldern. In Shopware 6 wären sie über Zielfelder der Form customFields.<technischer_name> abbildbar — dafür müssen die Custom Fields aber zuerst in Shopware angelegt werden. |
Sais., IShop-Navi (SEO) | 0 | Durchgehend leer. |
Artikelmultimediadateien | 2 | Downloads werden nicht unterstützt; sie waren schon im Altsystem abgeschaltet. |
Akt.Beg., Akt.End. | je 2 | Zeitgesteuerte Aktionspreise werden nicht unterstützt. |
Weblink aus dem Fabrikat | 65 | Kein Zielfeld. |
MwSt, GP-Basis-ME, Grundpreis 1 | 5.708 / 46 / 46 | Redundant: Der Steuersatz kommt aus Mwst%, die Bezugseinheit aus GP-Faktor, der Grundpreis wird von Shopware selbst gerechnet. |
Hinweise zur Eingabe der Konfiguration
Der Mapping-Editor kann alles davon erzeugen — mit einer Ausnahme: Die mehrstufige Transformation (compound) für das Auslaufkennzeichen lässt sich im Dialog ansehen, aber nicht zusammenstellen. Übernehmen Sie dieses eine JSON-Objekt deshalb direkt in den Mapping-Datensatz der Verbindung. Der Dialog zeigt es danach mit seinen Schritten an und bietet dafür kein „Speichern“ mehr, sondern nur noch „Schließen“ — ein Blick in das Feld kann die Transformation also nicht mehr ersetzen.
Die Steuerregel (switch mit leerer Fallliste und nur einem Standardwert) legen Sie im Dialog an: Bedingungszeilen leer lassen, den Standardwert auf 0 setzen und unter „Nur unter einer Bedingung anwenden“ die Spalte Artikelklasse mit dem Wert 24 hinterlegen.
4. Varianten, Kategorien und Staffelpreise im Detail
Varianten. Zeilen mit derselben Textil-Nr. werden zu einer Gruppe zusammengefasst. HQS liefert keine eigene Zeile für das Hauptprodukt, deshalb wird es erfunden: Artikelnummer VAR-<Textil-Nr.>, Name, Beschreibung, Preis und Kategorien von der ersten Zeile der Gruppe. Die Achsen Farbe und Größe werden zu Eigenschaftsgruppen; das Hauptprodukt bekommt die Konfigurator-Einstellungen, über die die Auswahlfelder in der Storefront erscheinen.
Eine Gruppe wird abgelehnt und ihre Zeilen als Einzelartikel importiert, wenn sie weniger als zwei oder mehr als 200 Mitglieder hat, wenn keine Optionswerte übrig bleiben oder wenn zwei Mitglieder dieselbe Optionskombination hätten. Achsen, die nicht alle Mitglieder tragen, werden vorher verworfen — eine halbe Achse macht die betroffene Variante in der Storefront unerreichbar.
Für diesen Kunden greift genau eine Ablehnung: Gruppe 1056 mit 12 Zeilen hat doppelte Farb-/Größen-Kombinationen. Diese 12 Artikel erscheinen als Einzelartikel, und das Job-Protokoll nennt sie mit Grund und Artikelnummern. Die 328 Gruppen mit nur einer Zeile werden ohne Meldung zu Einzelartikeln — das ist der Normalfall und kein Fehler.
Kategorien. Der Pfad steht komplett in IShop-Navi, mit einem vorangestellten Sortiercode aus Dreiergruppen. Aus 007001010002\x08Bekleidung\tJagd\tAnzüge Jagd\tAccessoires\x07 wird der Pfad Bekleidung → Jagd → Anzüge Jagd → Accessoires, angelegt unterhalb von „Deutsch“, und der Artikel wird der untersten Ebene zugeordnet. 5.070 Artikel haben genau eine Zuordnung, 608 haben mehrere, bis zu fünf.
Staffelpreise. 5, 37.2, bedeutet „ab 5 Stück 37,20“. Shopware braucht eine lückenlose Leiter ab Menge 1, deshalb wird der Normalpreis vorangestellt. Aus 345 Artikeln entstehen so 987 Preiszeilen. Staffeln mit einer Startmenge unter 2 oder einem Preis von 0 werden verworfen.
5. Erwartungswerte für den Erstimport
Die folgenden Zahlen stammen aus einem Durchlauf der echten Mapping- und Gruppierungslogik über die vollständige Exportdatei, mit genau der oben abgedruckten Konfiguration und den oben empfohlenen Verbindungseinstellungen.
| Kennzahl | Erwartung |
|---|---|
| Zeilen in der Datei (ohne Kopfzeile) | 5.708 |
| Davon Variantenartikel | 1.760 |
| Variantengruppen (Hauptprodukte) | 222 |
| Einzelartikel | 3.948 |
| Produkte in Shopware insgesamt | 5.930 (5.708 Artikel + 222 Hauptprodukte) |
| Verarbeitungsabschnitte | 347 (15 Zeilen je Abschnitt, aufgefüllt bis zum Ende einer Variantengruppe; der größte umfasst 44 Zeilen) |
| Kategorien | 552 |
| Kategoriezuordnungen | 6.405 |
| Hersteller | 281 |
| Lieferzeit-Datensätze | 15 |
| Bilder | 8.651 bei 5.651 Artikeln |
| Artikel mit Staffelpreisen | 345 (987 Preiszeilen) |
| Artikel mit Grundpreis | 46 |
| Artikel mit sichtbarem Streichpreis | 870 |
| Artikel mit 0 % Steuer | 24 |
| Artikel mit 7 % Steuer | 22 |
| Auslaufartikel | 853 |
Weichen die Zahlen ab, hilft meist ein Blick auf diese Stellen:
- Deutlich weniger als 222 Hauptprodukte – der Varianten-Schalter ist aus, oder
Textil-Nr.ist nicht als Varianten-Gruppe zugeordnet. - 5.708 statt 5.930 Produkte – dasselbe.
- Keine Kategorien – Wurzelkategorie fehlt; das Protokoll sagt es in der ersten Meldung des Imports.
- Nur ein Bild je Artikel, mit absurd langem Dateinamen – das Trennzeichen für Bilder steht noch auf Komma.
- Kein Grundpreis – die Einheiten
ml,l,kg,gfehlen im Shop.
Was im Protokoll auftauchen wird und in Ordnung ist
- Eine Warnung zur Variantengruppe
1056(doppelte Optionskombination, 12 Artikel). - Warnungen zu fehlenden Steuersätzen oder Einheiten, falls Abschnitt 1 nicht vollständig abgearbeitet wurde.
Was im Protokoll auftauchen wird und nicht in Ordnung ist
14 Artikel haben weder Listen- noch Aktionspreis (202725, 203151, 203255, 204291, 204292, 204293, 204294, 206770, 210202, 211407, 211888, 213751, 215064, 215065). Shopware verlangt für einen neu angelegten Artikel einen Preis. Der Import schreibt die Artikel in Paketen; schlägt ein Paket fehl, protokolliert er „Batch upsert failed“ und macht mit dem nächsten weiter. Im ungünstigen Fall gehen dabei bis zu 44 Artikel pro betroffenem Paket mit verloren. Lassen Sie die 14 Artikel vor dem Erstimport in HQS bepreisen oder aus dem Export nehmen.
Ebenfalls auffällig, aber unkritisch: 103 Artikel haben einen negativen Bestand. Er wird unverändert übertragen.
6. Abweichungen zum bisherigen Shopware-5-Shop
Diese Punkte sollten Sie dem Kunden vor dem Umstieg nennen. Alle Angaben zum Altverhalten stammen aus dem Quelltext des bisherigen Connectors.
| Thema | Bisher (Shopware 5) | Jetzt | Bemerkung |
|---|---|---|---|
| Meta-Title | Herstellername als Meta-Title jedes Artikels | entfällt | Es gibt kein Zielfeld für Meta-Angaben. Da der Titel im Altsystem für alle Artikel eines Herstellers identisch war, ist der Verlust gering; wer ihn braucht, pflegt ihn in Shopware. |
| Cross-Selling | Artikel-Zubehör wurde als Zubehör verknüpft | entfällt | 56 Artikel betroffen. Nicht umgesetzt. |
| Ähnliche Artikel | Alternativartikel wurde verknüpft | entfällt | 3 Artikel betroffen. |
| „Nie ausverkauft“ | Der Bestand wurde um 100.000 erhöht | Der echte Bestand wird übertragen, der Artikel bleibt über die Einstellung „nicht nur solange der Vorrat reicht“ bestellbar | 58 Artikel. Fachlich dasselbe Ergebnis, aber der Bestand im Shop stimmt jetzt. |
| Produktname | Bez-1 + „ - “ + Kaliber/Bez.2, auch wenn die zweite Bezeichnung leer war | Nur wenn sie gefüllt ist, und nicht bei Varianten | Im alten Shop endeten 939 Artikelnamen auf ein leeres „ - “. |
| Bildbeschreibung | Bildtext, ersatzweise der Artikelname | nur Bildtext | 185 statt 5.651 Artikel mit Alt-Text. Kein Rückfall auf den Namen vorgesehen. |
| Freitextfelder | Textil-Nr., Artikelklasse, Farbe, Größe, Handelsbuchart lagen in den Attributen 4 und 6–9 | entfallen | Farbe und Größe stecken jetzt in den Varianten-Eigenschaften. Der Rest ließe sich über Custom Fields nachbilden. |
| Steuer | Steuerklasse aus der Spalte MwSt | Steuersatz je Artikel aus Mwst%, Differenzbesteuerung über Artikelklasse | 24 Artikel werden jetzt mit 0 % geführt, 22 mit 7 %. |
| Varianten | Shopware-5-Varianten über das Attributfeld | Eigenes Hauptprodukt VAR-<Textil-Nr.> mit Eigenschaften Farbe und Größe | Die Artikelnummern der Varianten selbst bleiben die HQS-Nummern. |
| Herstellerlogo | Logo wurde nicht ausgewertet | unverändert nicht ausgewertet | 4.798 Zeilen führen einen Logodateinamen. |
Zwei weitere Punkte betreffen nicht den Vergleich mit dem Altsystem, sind aber vor dem Erstimport zu klären:
- Varianten-Hauptprodukte bekommen kein Bild. Bilder werden je Artikelzeile hochgeladen, und für das erfundene Hauptprodukt gibt es keine Zeile. In Shopware erben Varianten die Medien des Hauptprodukts, nicht umgekehrt. Ob die Übersichtsseiten dadurch bildlos bleiben, hängt von der Storefront-Konfiguration ab und ließ sich ohne laufenden Shop nicht prüfen — kontrollieren Sie das nach dem Erstimport an einer Variantengruppe.
- Der Aktiv-Status wird bei jedem Import auf „aktiv“ gesetzt. Ein Artikel, den jemand von Hand deaktiviert, ist nach dem nächsten Import wieder aktiv, solange HQS ihn liefert.