Integration der ASN mittels XML Interface

Wird per XML integriert, so müssen die Suchparameter in eine URL konvertiert werden und das Suchergebnis kommt in einem definierten XML Format zurück. Das Ergebnis wird über das Einreichen einer URL erzielt, wie etwa:

$stringEscapeUtils.escapeHtml($body)

Es gibt eine XSD-Datei, die das Format der Ergebnisstruktur beschreibt. Das hilft beim Erstellen des Codes, um die Ergebnisse zu verarbeiten.

Ergebnisstruktur

Die Ergebnisstruktur beinhaltet zwei wichtige Abschnitte:

Der Block searchControlParams gibt an, ob After Search Navigation für die Suche generiert wurde.

<ff xsi:noNamespaceSchemaLocation="schema/7.2/ffresult.xsd">
   ...
<searchControlParams>
     ...
<useAsn>true</useAsn>
...
</searchControlParams>
...
</ff>

Der Block asn beinhaltet die verfügbaren Filteroptionen, um dem Kunden ein weiteres Eingrenzen des Suchergebnisses zu ermöglichen. In der ASN finden sich Gruppen (z.B. Preis, Farbe, Kategorie) sowie deren Filterelemente (z.B. rot, blau, gelb).

<ff xsi:noNamespaceSchemaLocation="schema/7.2/ffresult.xsd">
  ...
  <asn>
      <group name="Category" detailedLinks="7" type="text" style="TREE"   
      selectionType="singleHideUnselected">
        <element field="Category0" name="DVD" count="0" clusterLevel="0" selected="true">
          <searchParams>
			url for selecting the filter
		  </searchParams>
        </element>

        <element field="Category1" name="Drama" count="25" clusterLevel="1" selected="false"
        previewImage="ImageURL">
          <searchParams>
            url for selecting the filter
          </searchParams>
        </element>
       ...
      </group>
      <group name="Price" detailedLinks="5" unit="EUR" style="SLIDER" selectionType="singleHideUnselected">
        <element field="BasePrice" name="Preis" count="0" clusterLevel="0" selected="false" 
				selectedMin="2" selectedMax="1599" absoluteMin="2" absoluteMax="1599">
          <searchParams>
            main url for the slider
          </searchParams>
        </element>
      </group>
    </asn>
    ...
</ff>

Der group Tag repräsentiert eine Filtergruppe, deren Gruppenname derselbe ist, wie beim name- Attribut. Das Attribut detailedLinks bezeichnet, wie viele Links genau angezeigt werden sollen. Alle weiteren werden dann in einer Auswahlbox angezeigt. Der Wert kann über die Benutzeroberfläche eingestellt werden, sodass Änderungen einfacher fallen. Wenn die Einheit auch für eine Gruppe definiert wurde, erscheint auch das Attribut unit, dessen Wert hinter dem Element erscheinen sollte.

Das type Attribut legt fest, wie mit den Werten der Gruppe verfahren werden soll. Folgende Optionen sind möglich: number (was bedeutet, dass die Werte numerisch sind), multi (die Werte sind Multi-Attribute), text (die Werte sind textuell) und categoryPath (die Werte liegen in Form eines Kategorie Pfades vor).

Der Standard style einer Gruppe ist DEFAULT. Das bedeutet, dass die Gruppe als normale Liste ausgegeben werden soll. Es ist jedoch möglich, dies in der Benutzeroberfläche zu SLIDER, MULTISELECT oder TREE zu ändern.

Wenn die Gruppe als TREE konfiguriert wurde, wird sie in kollabierbarer Baumstruktur ausgegeben. In diesem Fall wird die Ebene, auf der ein einzelnes Objekt in der Gruppe ausgegeben werden soll, über das Attribut clusterLevel im element Tag beschrieben.

Wenn die Gruppe als MULTISELECT konfiguriert wurde, wird sie ebenso wie die Standard-Darstellung ausgegeben. Jedoch ist hier die Selektion von mehreren Filterelementen möglich. In diesem Fall wird die präzise Ausgabe der Multiselektion durch das selectionType Attribut beschrieben.

Die Werte multiSelectOr und multiSelectAnd bedeuten, dass Multiselektion aktiviert ist (normalerweise ermöglichen Checkboxen dann die Auswahl von mehreren Elementen auf einmal). Der Unterschied zwischen beiden ist die Art und Weise, wie ausgewählte Elemente behandelt werden – im Falle von multiSelectOr wird das Suchergebnis alle Produkte enthalten, die zu einer der ausgewählten Gruppen gehören, während im Falle von multiSelectAnd jedes Suchergebnis zu allen ausgewählten Gruppen gehören muss. Das Attribut selectionType kann auch den Wert singleShowUnselected oder singleHideUnselected enthalten. Das bedeutet, dass die Selektion von multiplen Elementen deaktiviert ist. Im Falle von singleShowUnselected werden alle nicht ausgewählten Artikel trotzdem in der Gruppe angezeigt (für gewöhnlich wird dies in Form von Optionsfeldern dargestellt), während im Falle von singleHideUnselected die nicht ausgewählten Werte überhaupt nicht in der Gruppe angezeigt werden.  

Wenn der Wert von style im group Tag als SLIDER definiert ist, wurde die Gruppe in der Benutzeroberfläche als Schieberegler Gruppe konfiguriert. Das Element in der Gruppe hat dann die zusätzlichen Attribute selectedMin, selectedMax, absoluteMin und absoluteMax. Die Werte der Attribute beziehen sich auf die minimalen und maximalen Werte, die im Schieberegler angezeigt werden sollen. Wenn ein Bereich ausgewählt wurde, wird er mit selectedMin und selectedMax wiedergegeben. Die Werte in absoluteMin und absoluteMax legen den maximalen Bereich des Schiebereglers fest, so dass unter bestimmten Umständen ein breiteres Spektrum ausgewählt werden kann.

Wenn Sie den Schieberegler gerne verwenden möchten, um einen bestimmten Bereich einzuschränken, dann müssen Sie diesen Bereich an die URL anhängen, indem Sie searchParams benutzen. Der Wert setzt sich aus den Minimal- und Maximalwerten zusammen, die durch einen Bindestrich getrennt werden (wie etwa „5 – 23“). Die Namen der Parameter setzen sich aus dem Präfix filter und dem zugehörigen Feldnamen zusammen. Ein Feld mit dem Namen „Price“ würde z. B. in folgendem Parameter resultieren: …&filterPrice=5+-+23.

Jedes mögliche Filterelement einer Gruppe wird über einen element Tag wiedergegeben. Die Attribute beinhalten sowohl den Namen (name), das Ursprungsfeld (field), als auch die Anzahl an erwarteten Treffern, wenn diese beschränkt werden sollen (count).

Bitte beachten Sie, dass bei selektierten Gruppen vom Typ singleHideUnselected der Wert für count standardmäßig auf 0 gesetzt ist und ignoriert werden kann. 

Das clusterLevel bezeichnet die Ebene, auf welcher Elemente gefunden werden sollen. Dies kann z.B. genutzt werden, um Kategorien einzurücken. Der boolesche Wert selected bezeichnet, ob ein Element gefiltert wurde oder nicht. Wenn das Element selektiert wurde, wird die URL um den Filter zu entfernen in searchParams wiedergegeben. FACT-Finder bietet die Option, Thumbnails für Filterelemente darzustellen. Wenn dieses Feature aktiv ist, dann ist die Vorschau-URL der Wert von previewImage.