filters

Das <obj>filters</obj> Objekt besteht aus einer Liste von Filter, anhand deren eine Produkt- oder Content-Liste gefiltert werden kann. Sie dient der After-Search-Navigation.

Verfügbarkeit in Templates

In folgenden Templates steht das <obj>filters</obj> Objekt zur Verfügung.

Attribute

Die verfügbaren Attribute der Elemente des <obj>filters</obj> Objekt unterscheiden sich je nach Filter-Typ. Wählen Sie daher nachfolgend den gewüschten Filter-Typ aus.

Attribute eines Elements des <obj>filters</obj> Objektes für den folgenden Filter-Typ anzeigen:

filter.id

Gibt die eindeutige numerische ID des Filters zurück.

filter.type

Gibt den Typ des Filters zurück. Für den Feld-Filter enthält dieses Attribut immer den Wert <liquid>field</liquid>

filter.type

Gibt den Typ des Filters zurück. Das Attribut kann folgende Werte besitzen:

  • "range" - Bereichs-Filter für ein Feld
  • "query_range" - benutzerdefinierter Bereichs-Filter für ein Feld

filter.type

Gibt den Typ des Filters zurück. Für den Kategorie-Filter enthält dieses Attribut immer den Wert <liquid>category</liquid>

filter.type

Gibt den Typ des Filters zurück. Für den Suchtext-Filter enthält dieses Attribut immer den Wert <liquid>query</liquid

filter.origin

Gibt den Namen des Feldes zurück, auf der sich der Filter bezieht.

filter.is_multi_select

Gibt true zurück, falls eine Mehrfachauswahl von Filter-Optionen angeboten werden soll.

filter.available_options

Gibt die Anzahl der verfügbaren Filter-Optionen in <obj>filter.options</obj> zurück.

filter.selected_options

Gibt die Anzahl der bereits ausgewählten Filter-Optionen in <obj>filter.options</obj> zurück.

filter.options

Gibt eine Liste mit Filter-Optionen zurück. Die verfügbaren Attribute innerhalb der Liste sind nachfolgend im Schema von <obj>filter.options[n]</obj> dokumentiert.

filter.options[n].type

Gibt den Datentyp der Filter-Option zurück. Das Attribut kann die Werte <liquid>integer</liquid>, <liquid>string</liquid>, <liquid>float</liquid>,<liquid>date</liquid> und <liquid>enum</liquid> besitzen.

filter.options[n].type

Gibt den Datentyp der Filter-Option zurück. Das Attribut kann die Werte <obj>integer</obj>, <obj>string</obj>, <obj>float</obj> und <obj>date</obj> besitzen.

filter.options[n].name

Gibt den Feld-Wert der Filter-Option zurück, auf den gefiltert werden soll. Falls <liquid>filter.options[n].type == "enum"</liquid>, enthält dieses Attribut den Namen des Enumerators <obj>enum.name</obj>.

filter.options[n].name

Gibt den Kategorie-Namen <obj>page.name</obj> der Filter-Option zurück.

filter.options[n].value

Gibt den Feld-Wert der Filter-Option zurück, auf den gefiltert werden soll. Falls <liquid>filter.options[n].type == "enum"</liquid>, enthält dieses Attribut den Wert des Enumerators <obj>enum.value</obj>.

filter.options[n].value

Gibt <obj>filter.options[n].from</obj>-<obj>filter.options[n].to</obj> der Filter-Option zurück.

filter.options[n].value

Gibt die ID der Kategorie <obj>page.id</obj> der Filter-Option zurück.

filter.options[n].value

Gibt den Suchtext zurück.

filter.options[n].is_selected

Gibt <liquid>true</liquid> zurück, falls diese Filter-Option aktiv ist.

filter.options[n].count

Gibt die Anzahl der Produkt- bzw. Content-Treffer für diese Filter-Option zurück.

filter.options[n].id

Gibt <obj>enum.id</obj> der Filter-Option zurück, falls <liquid>filter_options[n].type == "enum"</liquid>

filter.options[n].src

Gibt <obj>enum.src</obj> der Filter-Option zurück, falls <liquid>filter_options[n].type == "enum"</liquid>

filter.options[n]._string1

Gibt <obj>enum._string1</obj> der Filter-Option zurück, falls <liquid>filter_options[n].type == "enum"</liquid>

filter.options[n]._string2

Gibt <obj>enum._string2</obj> der Filter-Option zurück, falls <liquid>filter_options[n].type == "enum"</liquid>

filter.options[n]._integer1

Gibt <obj>enum._integer1</obj> der Filter-Option zurück, falls <liquid>filter_options[n].type == "enum"</liquid>

filter.options[n]._integer2

Gibt <obj>enum._integer2</obj> der Filter-Option zurück, falls <liquid>filter_options[n].type == "enum"</liquid>

filter.options[n].from

Gibt den Start des Filter-Bereichs der Filter-Option zurück, falls <liquid>filter.type == "range"</liquid>

filter.options[n].to

Gibt das Ende des Filter-Bereichs der Filter-Option zurück, falls <liquid>filter.type == "range"</liquid>

filter.options[n].url

Gibt <obj>page.url</obj> der Filter-Option zurück, falls <liquid>filter.type == "category"</liquid>

filter.options[n].is_child_selected

Gibt <liquid>true</liquid> zurück, falls eine untergeordnete Filter-Option in <obj>filter.options[n].children</obj> aktiv ist.

filter.options[n].children

Gibt eine Liste von untergeordneten Filter-Optionen zurück, falls <liquid>filter.type == "category"</liquid>

filter.options[n].is_fixed

Gibt <liquid>true</liquid> zurück, falls man sich gerade auf einem Such-Alias-Seite befindet und diese Filter-Option dort verwendet wird.

filter.statistics

Gibt statistische Informationen über diesen Filter zurück, falls <liquid>filter.type == "range"</liquid>. Folgende Attribute werden zurückgegeben:

  • <obj>min</obj> - gibt den minimalen vorhandenen Wert des Feldes <obj>filter.origin</obj> zurück
  • <obj>max</obj> - gibt den maximalen vorhandenen Wert des Feldes <obj>filter.origin</obj> zurück

Diese Information kann z.B. für einen Preis-Slider verwendet werden, um dessen Grenzwerte abzubilden.

filter.attribute_set_id

Gibt die Attribute-Set-ID zurück, falls es sich bei <obj>filter.origin</obj> um ein Attribute-Set-Feld handelt. 

filter.is_fixed

Gibt <liquid>true</liquid> zurück, falls man sich gerade auf einer Such-Alias-Seite befindet und einer der Filter-Option dort verwendet wird.

Beispiel

Das nachfolgende Beispiel zeigt das <obj>filters</obj> Objekt mit drei abstrakt gehaltetnen Filter.

{
  "filters": [
    {
      "id": 1,
      "type": "category"
    },{
      "id": 2,
      "type": "field"
    },
      "id": 3,
      "type": "range"
  ]
}

Beispiel für ein Kategorie-Filter

Dieses Beispiel zeigt einen Filter mit dem <obj>filter.type</obj> "category". Er besitzt zwei Hauptkategorien. Innerhalb der Kategorie "Damen" gibt es eine selektierte Unterkategorie "Kleider".

{
  "id": 1,
  "type": "category",
  "origin": "category",
  "is_multi_select": false,
  "available_options": 3,
  "selected_options": 1,
  "options" : [
    {
      "name": "Damen",
      "value": 102,
      "is_selected": false,
      "is_child_selected": true,
      "count": 7,
      "url": "/damen/",
      "type" : "string"
      "children" : [
       {
          "name": "Kleider",
          "value": "104,
          "is_selected": true,
          "is_child_selected": false
          "count": 3,
          "url": "/damen/kleider/",
          "type": "string"
         }
      ]
    },{
     "name": "Herren",
     "value": 102,
     "is_selected": false,
     "is_child_selected": false,
     "count": 10,
     "url": "/herren/",
     "type" : "string"
   }
 ]
  },{
      "id": 2,
      "type": "field",
      "origin": "color_enum",
      "is_multi_select": true
  ]
}

Beispiel für ein Feld-Filter

Dieses Beispiel zeigt einen Filter mit dem <obj>filter.type</obj> "field" auf dem Feld color_enum. Dabei stehen die drei Filter-Options "rot", "grün" und "blau" zur Verfügung.

{
  "id": 2,
  "type": "field",
  "origin": "color_enum",
  "is_multi_select": true,
  "available_options": 3,
  "selected_options": 0,
  "options" : [
    {
      "name": "Rot",
      "value": "#FF0000",
      "is_selected": false,
      "count": 20,
      "enum_id": 101,
      "src": "red.png",
      "type" : "enum"
    },{
     "name": "Grün",
     "value": "#00FF00",
     "is_selected": false,
     "count": 15,
     "enum_id": 102,
     "src": "green.png",
     "type" : "enum"
    },{
     "name": "Blau",
     "value": "#0000FF",
     "is_selected": false,
     "count": 1,
     "id": 103,
     "src": "blue.png"
     "type" : "enum"
   }
 ]
}

Beispiel für ein Bereichs-Filter

Dieses Beispiel zeigt einen Filter mit dem <obj>filter.type</obj> "range" auf dem Feld price.

{
  "id": 3,
  "type": "field",
  "origin": "price",
  "is_multi_select": false,
  "available_options": 2,
  "selected_options": 0,
  "options" : [
    {
      "value": "0-100",
      "is_selected": false,
      "count": 150,
      "from": 0,
      "to": 100,
      "type" : "float"
    },{
     "value": "100-200",
     "is_selected": false,
     "count": 210,
     "from": 100,
     "to": 200,
     "type" : "float"
    }
  ],
  "statistics":{
    "min": 5.44,
    "max": 198.94
  }
}

Beispiel für Suchtext-Filter

Dieses Beispiel zeigt einen Field mit dem <obj>filter.type</obj> "query".

{
  "id": "query",
  "type": "query",
  "available_options": 1,
  "selected_options": 1,
  "options" : [
    {
      "value": "schuhe",
      "is_selected": true
    }
  ]
}