Welche Produktdaten wirklich sprachabhängig sind
Zehn von 75 Feldern in 6.6, dreizehn von 79 in 6.7. Alles andere — Preis, Bestand, Gewicht, EAN — gilt global für jede Sprache. Das überrascht regelmäßig im zweiten Markt.
Ein zweiter Markt beginnt oft mit dem Satz „wir übersetzen die Produkte". Was dabei tatsächlich übersetzbar ist, steht in der Datenbankstruktur — und es ist weniger, als die meisten annehmen.
Die Zahlen
| 6.6.10.6 | 6.7.13.1 | |
|---|---|---|
Spalten in product | 75 | 79 |
Spalten in product_translation | 15 | 18 |
| sprachabhängige Felder | 10 | 13 |
Die Übersetzungstabelle trägt je Sprache eine Zeile. Was dort nicht als Spalte steht, gibt es nur einmal — für alle Sprachen gemeinsam.
Die vollständige Liste
Sprachabhängig in 6.7.13.1:
| Feld | wofür |
|---|---|
name | Produktname |
description | Beschreibung |
description_teaser | neu in 6.7 — Kurzfassung der Beschreibung |
meta_title | Seitentitel |
meta_description | Meta-Beschreibung |
keywords | Schlagwörter |
custom_search_keywords | eigene Suchbegriffe |
og_title | neu in 6.7 — Open-Graph-Titel |
og_description | neu in 6.7 — Open-Graph-Beschreibung |
pack_unit | Verpackungseinheit |
pack_unit_plural | Verpackungseinheit, Mehrzahl |
slot_config | Layoutkonfiguration |
custom_fields | eigene Felder, als JSON |
Nicht sprachabhängig — also für jede Sprache identisch:
Preis, Bestand, Verfügbarkeit, Gewicht, Breite, Höhe, Tiefe, EAN, Herstellernummer, Produktnummer, Lieferzeit, Versandkostenfreiheit, Mindestabnahme, Staffelung, Einheit, Steuersatz, Hersteller, Kategorien, Eigenschaften, Medien, Freigabedatum.
Die drei neuen Felder in 6.7
og_title und og_description sind eine echte Erweiterung: Bis 6.6 gab es für
Open-Graph-Angaben — also das, was beim Teilen in sozialen Netzen erscheint —
kein eigenes Feld je Sprache. Wer sie brauchte, hat sie aus meta_title und
meta_description abgeleitet oder über Custom Fields gelöst.
description_teaser ist die dritte Neuerung und hat einen Fallstrick: Das Feld
wird in 6.7 vom Kern selbst befüllt und ist schreibgeschützt. Wer es über die
API setzen will, bekommt einen Fehler — ein Punkt, der Integrationen nach einem
Update überrascht.
Was das praktisch bedeutet
Ein zweiter Markt ist kein Übersetzungsprojekt. Er ist ein Datenprojekt mit einem Übersetzungsanteil. Übersetzbar sind im Wesentlichen Texte; alles, was kaufmännisch zählt, ist es nicht.
| Anforderung | Weg |
|---|---|
| Andere Texte je Sprache | Übersetzung — dafür ist die Tabelle da |
| Anderer Preis je Land | Verkaufskanal mit eigener Währung und eigenen Regeln |
| Anderer Bestand je Land | Zweites Produkt oder eigene Lagerlogik |
| Andere EAN je Markt | Zweites Produkt. Die EAN ist global |
| Andere Verpackungseinheit | Übersetzbar — pack_unit steht in der Liste |
| Andere Bilder je Sprache | Nicht vorgesehen. Medien hängen am Produkt, nicht an der Sprache |
Die letzte Zeile trifft in Projekten am häufigsten: Ein Bild mit deutschem Text darauf lässt sich nicht je Sprache austauschen, ohne ein zweites Produkt oder einen zweiten Kanal.
Der Sonderfall Custom Fields
custom_fields steht in der übersetzbaren Tabelle. Jedes eigene Feld ist
damit automatisch je Sprache getrennt — auch dann, wenn der Inhalt eine Zahl
ist, die überall gleich sein sollte.
Das ist häufig gewollt und ebenso häufig eine Falle: Ein Wert, der in der Zweitsprache nie gepflegt wurde, ist dort leer, und die Oberfläche zeigt ihn mit dem Wert der Systemsprache an, ohne dass er dort gespeichert wäre.
Grenzen dieser Messung
Gezählt sind Spalten, nicht Bedeutungen. Dass slot_config in der Liste
steht, heißt nicht, dass jemand Layouts je Sprache pflegt — es heißt nur, dass
er könnte.
Die Zahl 13 verdeckt außerdem den Umfang von custom_fields: eine einzige
Spalte, in der beliebig viele eigene Felder stecken. Ein Shop mit zwanzig
Custom Fields hat faktisch 32 sprachabhängige Werte, nicht 13.
Nicht betrachtet wurden andere Entitäten. Kategorien, Hersteller, Eigenschaften und Medien haben jeweils eigene Übersetzungstabellen mit eigenen Spalten — die Frage „was ist übersetzbar" hat je Entität eine eigene Antwort.
Häufige Fragen
- Welche Produktfelder kann ich in Shopware übersetzen?
- In 6.7.13.1 dreizehn: name, description, description_teaser, meta_title, meta_description, keywords, custom_search_keywords, og_title, og_description, pack_unit, pack_unit_plural, slot_config und custom_fields. In 6.6.10.6 sind es zehn — die drei zuletzt genannten Open-Graph- und Teaser-Felder fehlen dort.
- Ist der Preis je Sprache verschieden?
- Nein. Der Preis hängt an der Währung und an Regeln, nicht an der Sprache. Zwei Sprachen im selben Verkaufskanal sehen denselben Preis.
- Sind Custom Fields übersetzbar?
- Ja. Sie liegen als JSON-Spalte in product_translation, also je Sprache getrennt. Das ist häufig gewollt und ebenso häufig unbeabsichtigt — ein Wert, der in der zweiten Sprache nicht gepflegt wird, ist dort leer.
- Wie bekomme ich sprachabhängige Preise?
- Nicht über die Sprache, sondern über den Verkaufskanal. Ein zweiter Kanal mit eigener Währung, eigenen Regeln und eigener Länderliste ist der vorgesehene Weg.
