Integration von Feedbackkampagnen
Der zweite Kampagnen-Typ ist „Feedback“. Mit Feedback-Kampagnen kann man Texte oder Produkte als „Feedback“ an den Shop zurückliefern lassen. Diese Kampagnen haben den flavour
FEEDBACK
.
Feedback-Texte
Frühere Versionen von FACT-Finder haben Platzhalter über Nummern verwaltet. Im Integrations-Projekt wurde definiert, an welcher Stelle der Shop-Seite welche Feedback-Text-Nummer erscheinen soll. Der Anwender wusste also, wenn er einen Feedback-Text mit der Nummer 3 anlegt, dann erscheint dieser Text beispielsweise über dem Suchergebnis[1]. Seit der Version 6.7 werden zudem Bezeichner für die Feedback-Texte hinterlegt und zurückgeliefert. Für aktuelle Integrationen soll der Bezeichner der Feedback-Texte als Identifikations-Merkmal verwendet werden.
Die Bezeichner werden während des Integrations-Projektes mit dem Shop-Betreiber vereinbart und in FACT-Finder konfiguriert. Der Anwender kann auf der Oberfläche zwischen den vordefinierten Bezeichnern wählen. Weiterhin wird für jeden Feedback-Text definiert, ob dieser HTML enthalten darf oder nicht. Dieses Merkmal wird ebenso von FACT-Finder zusammen mit dem Feedback-Text zurückgeliefert. Auf diese Weise ist es bei der Integration einfach zu entscheiden, ob der darzustellende Text html-escaped werden soll oder nicht[2].
XML
<ff xsi:noNamespaceSchemaLocation="schema/7.2/ffresult.xsd">
...
<campaigns>
<campaign nr="0" name="feed" category="Advisors" flavour="FEEDBACK">
<feedback>
<text nr="0">Feedbacktext ohne HTML und ohne Bezeichner.</text>
<text nr="3" label="above ASN" html="true"><div class="message">Feedbacktext mit HTML</div></text>
</feedback>
</campaign>
</campaigns>
...
</ff>
JSON
{"searchResult":{
...
"campaigns":[
{
"activeQuestions":[],
"advisorTree":[],
"category": "",
"feedbackTexts":[
{
"html":false,
"id":0,
"label":null,
"text":"Feedbacktext ohne HTML und ohne Bezeichner."
},
{
"html":true,
"id":3,
"label":"above ASN",
"text":"<div class=\"message\">Feedbacktext mit HTML</div>"
}
],
"flavour":"FEEDBACK",
"id":"6",
"name":"feed",
"pushedProductsRecords":[],
"target":{"destination":"","name":""}
}
],
...
} ... }
Webservice / SOAP
class FeedbackText {
int id;
String text;
String label;
boolean html;
}
Pushed-Products
Für Feedback-Kampagnen können auch Produkte ausgewählt werden. FACT-Finder liefert die Produktliste zusammen mit der Kampagne zurück.
XML
<ff xsi:noNamespaceSchemaLocation="schema/7.1/ffresult.xsd">
...
<campaigns>
<campaign nr="0" name="Top-Seller" category="Products" flavour="FEEDBACK">
<target><name/><destination/></target>
<pushedProducts count="5">
<product nr="0" id="247900">...</product>
<product nr="1" id="241107">...</product>
<product nr="2" id="247724">...</product>
<product nr="3" id="247897">...</product>
<product nr="4" id="247355">...</product>
</pushedProducts>
</campaign>
</campaigns>
...
</ff>
JSON
{"searchResult":{
...
"campaigns":
[
{
"activeQuestions":[],
"advisorTree":[],
"category": "",
"feedbackTexts":[],
"flavour":"FEEDBACK",
"id":"7",
"name":"Top-Seller",
"pushedProductsRecords":
[
...
],
"target":{"destination":"","name":""}
},
],
...
} ... }
Webservice / SOAP
class Campaign {
...
List<Record> pushedProductsRecordList;
...
}
class Record {
Map<String, String> record;
String id;
short simiMalusAdd;
float simiMalusMul;
}
Die Produkt-Listen-Einträge enthalten jeweils die vollständige Feld-Liste des Produkt-Datensatzes aus der FACT-Finder Datenbank. Um Bandbreite zu sparen, kann beim Such-Request der Parameter idsOnly=true übertragen werden. Dann werden die Datensatzinhalte weggelassen.
Es ist möglich, dass Kampagnen zurückgeliefert werden, die 0 Produkte enthalten. Der Anwender kann die Option wählen, Kampagnen-Produkte in das Suchergebnis einarbeiten zu lassen. In dem Fall wird keine explizite Kampagnen-Produkt-Liste zurückgeliefert. Die Kampagne wird trotzdem zurückgeliefert, um dem Shop zu signalisieren, dass eine Kampagne gegriffen hat.
[1] „Über dem Suchergebnis“ ist wirklich nur ein Beispiel. Die Position der Feedback-Texte wird vom Shop-Betreiber im Integrations-Projekt gewählt.
[2] Default-Wert für das HTML-Atrtibut ist false
. Fehlt das HTML-Attribut, bedeutet das, dass der Feedback-Text kein HTML enthält, er muss also escaped werden.