Mit demDocumentation Index
Fetch the complete documentation index at: https://dokumentation.websale.de/llms.txt
Use this file to discover all available pages before exploring further.
$wsProducts Modul können Sie Produktdaten dynamisch im Frontend laden und anzeigen.
Modulübersicht
Beispiel / Ausschnitt über$wsProducts
ƒ() kennzeichnet eine Funktion.
Methoden in der Übersicht
| Methode | Rückgabe-Typ | Beschreibung |
|---|---|---|
load() | map | Gibt ein Produkt anhand der Produkt-ID zurück. |
loadByNumber() | map | Gibt ein Produkt anhand der Artikelnummer zurück. |
loadByCustomNumber() | map | Gibt ein Produkt anhand einer benutzerdefinierten Nummer zurück. |
variantInfo() | map | Liefert die Varianten-Daten zu einem Produkt zurück. |
Templates
Standardmäßig werden Produkte über das Templateproduct.htm angezeigt. Dieses befindet sich im Verzeichnis views. Der Name product.htm und der Speicherort dürfen nicht geändert werden, da das Template fest in der Software hinterlegt ist und nicht konfigurierbar oder anpassbar ist.
Produktdaten können jedoch flexibel auch auf anderen Seiten eingebunden werden, zum Beispiel:
- Startseite → Darstellung von Top-Sellern, Angeboten oder einer Produktauswahl.
- Warenkorbseite → Cross-Selling-Produkte als Kaufempfehlungen.
- Kategorieseiten & Suchergebnisse → Individuelle Produktlisten mit Filtern.
- Checkout & Bestellbestätigung → Anzeige von ergänzenden Produkten oder Rabattaktionen.
$wsProducts lassen sich Produktinformationen dynamisch abrufen und individuell in verschiedenen Templates integrieren, um eine gezielte Präsentation von Artikeln zu ermöglichen.
Variablen
Für$wsProducts stehen keine Variablen zur Verfügung.
Methoden
$wsProducts.load()
Gibt ein Produkt anhand der Produkt-ID zurück. Signatur$wsProducts.load(productId)
Rückgabemap - Product-Map mit allen Produktdaten.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
productId | string | ja | ID des Produkts. |
$wsProducts.loadByNumber()
Gibt ein Produkt anhand der Artikelnummer zurück. Signatur$wsProducts.loadByNumber(itemNumber)
Rückgabemap - Product-Map mit allen Produktdaten.
Parameter
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
itemNumber | string | ja | Artikelnummer des Produkts. |
$wsProducts.loadByCustomNumber()
Gibt ein Produkt anhand einer benutzerdefinierten Nummer zurück (z.B. EAN, GTIN). Signatur$wsProducts.loadByCustomNumber(customNumber)
Rückgabemap - Product-Map mit allen Produktdaten.
Parameter
| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
customNumber | string | ja | Benutzerdefinierte Nummer. |
Mit Verwendung der Funktionen
$wsProducts.load..() stehen verschiedene Variablen zur Verfügung, um Daten zum Produkt abzurufen und auszugeben. Nachfolgend eine Übersicht, welche Variablen verfügbar sind.Produkt-Daten (Rückgabe von $wsProducts.load() )
Zunächst ist es notwendig, die Map mit den Produkt-Daten, wie im obigen Beispiel dargestellt, einer lokalen Variable zuzuweisen. Diese kann anschließend an verschiedenen Stellen im Template verwendet werden. JSON-Ausgabe der Variablen| Variable | Typ | Beschreibung |
|---|---|---|
id | string | Eindeutige vom Shop vergebene Produkt-ID. |
active | string | Gibt zurück, ob das Produkt im Shop aktiv ist. Rückgabewerte: - always - das Produkt ist immer aktiv. - never - das Produkt ist nie aktiv. - test - das Produkt ist im Testmodus aktiv. |
name | string | Name des Produkts. |
descr | string | Beschreibung des Produkts. |
itemNumber | string | Artikelnummer des Produkts. |
price | float | Preis des Produkts. |
taxRateId | string | Steuersatz-ID des Produkts. |
storeId | string | Lagerartikelnummer des Produkts. |
custom | map | Enthält alle konfigurierten, freien Produktfelder des Produkts. |
base | map | Enthält die Daten des Basisprodukts, wenn es sich um eine Variante handelt. |
variantSelection | map | Enthält die gewählten Variantenattribute (z.B. Farbe, Größe). |
$wsProducts.variantInfo()
Liefert die Varianten-Daten zu einem Produkt zurück. Signatur$wsProducts.variantInfo(productId)
Rückgabemap - Map mit Varianten-Daten.
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
productId | string | ja | ID des Produkts, dessen Varianten geladen werden sollen. |
Mit Verwendung der Funktion
$wsProducts.variantInfo() stehen verschiedene Variablen zur Verfügung, um Daten zum Produkt abzurufen und auszugeben. Nachfolgend eine Übersicht, welche Variablen verfügbar sind.Varianten-Daten (Rückgabe von $wsProducts.variantInfo() )
Zunächst ist es notwendig, die Map mit den Varianten-Daten, wie im obigen Beispiel dargestellt, einer lokalen Variable zuzuweisen. Diese kann anschließend an verschiedenen Stellen im Template verwendet werden. JSON-Ausgabe der Variablen| Variable | Typ | Beschreibung |
|---|---|---|
numVariants | int | Anzahl der Varianten. |
variantAttributes | array | Liste der Varianten-Attribute. |
[$i].name | string | Name des Attributs (z.B. “Farbe”). |
[$i].options | array | Liste der Optionen. |
[$i].name | string | Name der Option (z.B. “Rot”). |
Aktionen
Für$wsProducts stehen keine Aktionen zur Verfügung.
Beispiele
In den folgenden Beispielen wird das Produkt einer Variable$myProduct zugewiesen. Das bedeutet, dass alle Produktinformationen über diese Variable abgerufen und weiterverarbeitet werden können.
Name und Beschreibung des Produkts
Name und Beschreibung sind Standard-Produktdatenfelder, die vom Shopsystem vorgegeben sind. Sie gehören zu den essenziellen Feldern, die zur Erfassung und Darstellung grundlegender Produktinformationen dienen und für die Bestellabwicklung unerlässlich sind. Die technischen Feldnamen sind fest definiert und werden in der folgenden Form angesprochen:Gewicht als Zusatz-Produktdatenfeld
Im Gegensatz zu Standard-Produktdatenfeldern gehört das Gewicht zu den Zusatz-Produktdatenfeldern. Diese bieten erweiterte Möglichkeiten zur Erfassung und Darstellung von Produktmerkmalen, die über die grundlegenden Informationen hinausgehen. Zusatz-Produktdatenfelder sind:- Nicht zwingend für die Bestellabwicklung erforderlich, aber hilfreich für die Produktdarstellung.
- Individuell anpassbar und können je nach Bedarf hinzugefügt werden.
- Über das Admin Interface erstellt oder über die Produktdaten-Schnittstelle geliefert werden.
weight im Admin-Bereich erstellt wurde, kann das Gewicht eines Produkts so ausgegeben werden:
Produktbilder
Die Datenfelder für Produktbilder gehören nicht zu den Standardfeldern, sondern sind Zusatz-Produktdatenfelder. Um Produktbilder flexibel und in unterschiedlichen Größen auszugeben, müssen diese Felder als Datentyp MultiFormatImage angelegt werden. Dieser Feldtyp ermöglicht die Speicherung eines Bildes in mehreren Formaten und sorgt gleichzeitig für eine automatische Konvertierung, sodass die Bilder in den gewünschten Größen verfügbar sind. Die Anzahl der Zusatz-Produktdatenfelder mit diesem Typ ist nicht begrenzt, sodass beliebig viele Bilder für ein Produkt gespeichert werden können. Die Konfiguration der Bildgrößen erfolgt im Admin Interface im Service Bildkonverter. Dort können die gewünschten Formate festgelegt werden, die für verschiedene Anwendungsbereiche benötigt werden. Typischerweise werden vier Bildgrößen verwendet:- mini (Thumbnail)
- klein
- normal und
- groß
$myProduct.custom.<technischer Feldname>.<Definiertes Format>
image01 für das Hauptbild des Produkts angelegt, können die Bilder in den verschiedenen Größen folgendermaßen ausgegeben werden:
Varianten eines Produktes
Produkte, die in unterschiedlichen Ausführungen wie Größe, Farbe oder Material erhältlich sind, werden als Variantenprodukte angelegt. Varianten sind keine eigenständigen Artikel, sondern untergeordnete Versionen eines Hauptprodukts, die sich in bestimmten Merkmalen unterscheiden. Damit Varianten korrekt im Shop verwaltet und dargestellt werden können, werden spezielle Produktdatenfelder verwendet, die als typspezifische Produktdatenfelder bezeichnet werden. Diese Felder sind speziell darauf ausgerichtet, die Anforderungen von Variantenprodukten, Setprodukten und anderen komplexen Produktstrukturen zu unterstützen. Sie sind tief in der Shop-Software verankert, fest vorgegeben und können technisch nicht geändert werden. Das bedeutet, dass sowohl die Bezeichnung als auch die Spezifikationen dieser Felder – wie erlaubte Werte, Feldtypen oder Vererbungsmechanismen – nicht angepasst werden können. Die eigentlichen Produktinformationen einer Variante, wie Name, Beschreibung, Preis oder Bilder, werden über die Standard- und Zusatz-Produktdatenfelder gepflegt, die für die Varianten definiert wurden. Diese Daten können entweder individuell pro Variante festgelegt oder – falls keine spezifischen Werte hinterlegt sind – automatisch vom Hauptprodukt geerbt werden. Für den Zugriff auf Varianten eines Produkts wird die folgende Syntax verwendet:Preis eines Produkts
Jedes Produkt hat einen Verkaufspreis, der im Shop angezeigt wird. Neben dem regulären Preis können auch weitere Preise und Rabatte berücksichtigt werden, die entweder als fester Betrag oder als prozentualer Nachlass dargestellt werden. Für die Preisberechnung stehen beispielsweise folgende Datenfelder zur Verfügung:price→ Der aktuelle Verkaufspreis des Produkts.setDiscount→ Der Rabatt in Prozent, also “Sie sparen X %”.setDiscountPrice→ Der reduzierte Preis nach Abzug des Rabatts, also “Sie sparen X Euro”.setOrgPrice→ Der ursprüngliche Preis vor dem Rabatt, also der Streichpreis.
EUR) oder als Symbol (€) angezeigt wird, je nach Konfiguration des Shops.
Ob die Preise im Shop netto (zzgl. MwSt.) oder brutto (inkl. MwSt.) behandelt werden, ist ebenfalls eine Einstellung, die im Admin Interface konfiguriert werden kann.
Die Syntax für den Zugriff auf die Preise und Rabatte lautet:
Verfügbarkeit eines Produkts
Neben allen anderen Produktinformationen ist die Verfügbarkeit eines Produkts eine der wichtigsten Informationen für den Käufer. Jedes Produkt kann mit einem Lagerbestand versehen werden, der darüber entscheidet, ob und in welcher Menge ein Artikel bestellt werden kann. Zusätzlich besteht die Möglichkeit, den aktuellen Lagerbestand und den zugehörigen Lieferstatus im Shop anzuzeigen. Der Zugriff auf den Lagerbestand erfolgt nicht direkt über$wsProducts, sondern über das separate Modul $wsInventory .
