Zusatzfelder-Referenz für Import und API
Diese Seite richtet sich an alle, die Einheitenartikel nicht von Hand im Adminbereich pflegen, sondern über die Shopware-API, einen Importer oder eine Warenwirtschaft befüllen.
Das Plugin legt zwei Zusatzfeld-Sets an der Entität product an:
| Set | Anzeigename | Inhalt |
|---|---|---|
neon_unitarticles | Konfiguration Einheitenartikel | Grundeinstellungen, Dimension 1 und 2, Preisberechnung, Aufschläge |
neon_unitarticles_additional_dimensions | Einheitenartikel (weitere Dimensionen) | Dimension 3 bis 10 |
Zusatzfelder sind in Shopware übersetzbar. Sie liegen an der Übersetzung des Artikels, nicht am Artikel selbst. Wenn du über die Admin-API customFields schreibst, landen die Werte in der Sprache des jeweiligen Requests. Ein Artikel, der nur in Deutsch gepflegt ist, verhält sich in einer anderen Sprache nicht als Einheitenartikel.
Grundeinstellungen
| Technischer Name | Typ | Bedeutung |
|---|---|---|
neon_unitarticles_isunitarticle | bool | Aktiviert die Einheitenfunktion für diesen Artikel |
neon_unitarticles_unitlabel1 | text | Maßeinheit, zum Beispiel m |
neon_unitarticles_basepricevalue | float | Grundeinheit, auf die sich der Artikelpreis bezieht |
neon_unitarticles_basepricevaluelabel | text | Abweichende Maßeinheit für den Grundpreis bei mehreren Dimensionen, zum Beispiel m² |
neon_unitarticles_hidequantityselection | bool | Mengenfeld ausblenden, Einheit als Lagerbestand nutzen |
neon_unitarticles_mergeuservalues | bool | Eingaben desselben Artikels im Warenkorb aufsummieren |
neon_unitarticles_hidereferenceprice | bool | Grundpreisanzeige ausblenden |
Preisberechnung
| Technischer Name | Typ | Bedeutung |
|---|---|---|
neon_unitarticles_pricecalculation | select | Berechnungsart, siehe Werte unten |
neon_unitarticles_pricecalculation_custom | text | Eigene Formel beziehungsweise JsonLogic-Regel |
Gültige Werte für neon_unitarticles_pricecalculation:
| Wert | Entspricht |
|---|---|
1 | Keine Preisberechnung |
{unitvalue1} | Basispreis * Einheitwert 1 + Zuschläge |
{unitvalue1} * {unitvalue2} | Basispreis * Einheitwert 1 * Einheitwert 2 + Zuschläge |
CUSTOM | Eigene Preisberechnung aus neon_unitarticles_pricecalculation_custom |
CUSTOM_JSONLOGIC | Eigene Preisberechnung mit JsonLogic aus neon_unitarticles_pricecalculation_custom |
Dimensionen
Die Felder der Dimensionen sind durchnummeriert. n steht für 1 bis 10; die Felder für n = 1 und 2 gehören zum Set neon_unitarticles, ab n = 3 zum Set neon_unitarticles_additional_dimensions.
| Technischer Name | Typ | Bedeutung |
|---|---|---|
neon_unitarticles_hasdimension{n} | bool | Dimension aktivieren (erst ab Dimension 2 vorhanden) |
neon_unitarticles_description{n} | text | Bezeichnung, zum Beispiel Länge |
neon_unitarticles_unitlabel{n} | text | Maßeinheit dieser Dimension — für n = 1 ist das dasselbe Feld wie die Maßeinheit oben |
neon_unitarticles_minvalue{n} | float | Kleinster bestellbarer Wert |
neon_unitarticles_maxvalue{n} | float | Größter bestellbarer Wert |
neon_unitarticles_stepsize{n} | text | Schrittgröße |
neon_unitarticles_defaultvalue{n} | float | Vorbelegter Wert |
neon_unitarticles_excludedvalues{n} | text | Ausgeschlossene Werte, kommagetrennt |
Die Schrittgröße ist bewusst ein Textfeld. Neben einer Zahl wie 0.5 kann sie auch eine JsonLogic-Regel enthalten — erkennbar daran, dass der Wert mit { beginnt. Damit lassen sich unterschiedliche Schrittgrößen für unterschiedliche Wertebereiche abbilden.
Aufschläge
| Technischer Name | Typ | Bedeutung |
|---|---|---|
neon_unitarticles_surcharge1label | text | Bezeichnung des ersten Aufschlags |
neon_unitarticles_surcharge1value | text | Betrag des ersten Aufschlags |
neon_unitarticles_surcharge2label | text | Bezeichnung des zweiten Aufschlags |
neon_unitarticles_surcharge2value | text | Betrag des zweiten Aufschlags |
Infoseite und Info-Link
| Technischer Name | Typ | Bedeutung |
|---|---|---|
neon_unitarticles_infopage | select (Entität cms_page) | ID der Erlebniswelt-Seite, die im Overlay geöffnet wird |
neon_unitarticles_infopage_label | text | Beschriftung neben dem Info-Symbol |
neon_unitarticles_infolink | text | Beliebige Adresse, öffnet in einem neuen Tab |
neon_unitarticles_infolink_label | text | Beschriftung neben dem Symbol des Links |
Minimalbeispiel
Ein Artikel, der von 0,5 bis 50 Meter in halben Metern verkauft wird:
{
"customFields": {
"neon_unitarticles_isunitarticle": true,
"neon_unitarticles_unitlabel1": "m",
"neon_unitarticles_basepricevalue": 1,
"neon_unitarticles_pricecalculation": "{unitvalue1}",
"neon_unitarticles_description1": "Länge",
"neon_unitarticles_minvalue1": 0.5,
"neon_unitarticles_maxvalue1": 50,
"neon_unitarticles_stepsize1": "0.5",
"neon_unitarticles_defaultvalue1": 2
}
}
Einheitenwerte in der Bestellung
Die vom Kunden eingegebenen Werte stehen in order_line_item in der Spalte payload unter dem Schlüssel neon_unitarticles:
{
"neon_unitarticles": {
"dimensions": [
{ "dimension": 1, "unitvalue": 3.0, "description": "Länge", "unitlabel": "m" }
],
"isQuantityHidden": false,
"isMergeUserValues": false,
"surcharges": []
}
}
In den Warenkorb legen
Beim Hinzufügen zum Warenkorb erwartet das Plugin die Einheitenwerte zusätzlich zu den Standardparametern:
lineItems[<Artikel-ID>][neonUnitarticleUnitValue][<Nummer der Dimension>]
Die Nummerierung der Dimensionen beginnt bei 1. Wird kein Wert übergeben, greift der hinterlegte Standardwert der jeweiligen Dimension.