Infos zur Shop-Kategorie

Beschreibung:

Produkte werden in einem hierarchischen Baum strukturiert. Jedes Produkt kann zu beliebig vielen Baumknoten gehören, und so ist es möglich, dem Nutzer verschiedene Navigations- und Abstraktionsstrukturen anzubieten. Die Knoten des Baums werden Kategorien genannt. Sie werden im Datenformat ShopCategoryData gespeichert. Die Datenklasse implementiert eine spezielle Logik, um hierarchische Daten in einer Datenbank zu speichern: sogenannte Nested Sets. Die Idee ist die folgende:

  • Jeder Knoten im Baum hat ein nodeLeft und ein nodeRight Attribut.
  • Außerdem hat jeder Knoten ein nodeLevel-Attribut.

Wir zählen nun zuerst die nodeLeft-Attribute und dann die nodeRight-Attribute in einem Deep-First-Ansatz.

Nested Sets data structure for categories

Die Datenstruktur der Nested Sets ermöglicht es, die gesamte Hierarchie mit nur einer SQL-Anfrage zu laden. Das macht die Datenverwaltung extrem effizient; die Aktualisierung der Kategoriestruktur ist etwas komplexer. Die Logik dafür ist jedoch mithilfe der REST-API vollständig automatisiert.

Achtung

Bitte beachte: TYRIOS ist ein aspektorientiertes System, und die konkrete Datenstruktur hängt von deiner Systemkonfiguration ab. Vor allem, wenn du bestehende Daten aktualisieren willst, solltest du alle verfügbaren Felder berücksichtigen oder einen aktualisierungsspezifischen API-Endpunkt verwenden, um Datenverluste zu vermeiden.

Allgemeine Datenstruktur

Im Allgemeinen hat ein ShopCategoryData-Objekt die folgende Datenstruktur:

{
  "id": 2,
  "MediahelperFile": 96,
  "ProductData": null,
  "visible": true,
  "useAccidentialProducts": false,
  "useProductsFromChilds": false,
  "updateTime": 1625662114,
  "sortingOption": "2",
  "defaultSorting": "4",
  "facetDefinitionMode": "2",
  "FacetDefinition": null,
  "ShopCategoryFilterDefinition": [
    {
      "id": 1,
      "sotField": "brand",
      "sorting": "alphabetical",
      "sortingDirection": "ASC",
      "searchable": true,
      "facetLimit": "-1",
      "initiallyExpanded": true,
      "facetFieldRenderer": "default",
      "presentationName_de": "Marke",
      "ShopCategoryData_ref_position": 0
    }
  ],
  "showProducts": true,
  "showCategorySidebar": true,
  "showCategoryList": true,
  "hideIfEmpty": true,
  "name_de": "Meine Kategorie",
  "description_de": null,
  "innerDescription_de": null,
  "categoryHeader_de": null,
  "productHeader_de": null,
  "keywords_de": null,
  "metaDescription_de": null,
  "alternateHtmlTitle_de": null,
  "nodeLeft": 2,
  "nodeRight": 13,
  "nodeLevel": 1,
  "parentID": 1
}

Wie du siehst, gibt es viele Sprachen, die von Feldern abhängen, die durch das Sprach-Token "_de" identifiziert werden. Je nach Systemkonfiguration kann es weitere Sprachdefinitionen geben.

Vorgehen:

Tips und Tricks:

Abonnieren Sie unseren Newsletter

Bleiben Sie stets informiert. Wir informieren Sie gerne über Produktneuheiten und Angebote.