Internationalisierung

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.

Pixup MediaVeröffentlicht am 7 Min. Lesezeit

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.66.7.13.1
Spalten in product7579
Spalten in product_translation1518
sprachabhängige Felder1013

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:

Feldwofür
nameProduktname
descriptionBeschreibung
description_teaserneu in 6.7 — Kurzfassung der Beschreibung
meta_titleSeitentitel
meta_descriptionMeta-Beschreibung
keywordsSchlagwörter
custom_search_keywordseigene Suchbegriffe
og_titleneu in 6.7 — Open-Graph-Titel
og_descriptionneu in 6.7 — Open-Graph-Beschreibung
pack_unitVerpackungseinheit
pack_unit_pluralVerpackungseinheit, Mehrzahl
slot_configLayoutkonfiguration
custom_fieldseigene 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.

AnforderungWeg
Andere Texte je SpracheÜbersetzung — dafür ist die Tabelle da
Anderer Preis je LandVerkaufskanal mit eigener Währung und eigenen Regeln
Anderer Bestand je LandZweites Produkt oder eigene Lagerlogik
Andere EAN je MarktZweites Produkt. Die EAN ist global
Andere VerpackungseinheitÜbersetzbar — pack_unit steht in der Liste
Andere Bilder je SpracheNicht 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.
WeiterführendAI Translator