Voor de Tweakwise feed moet je op de categorieën letten. Aangezien de categorieën als een apart onderdeel in de uiteindelijke feed worden toegevoegd, vereist dit enige trucs om het met channable te laten werken. In dit artikel gaan we wat dieper in op wat elk veld (zie figuur 1) vereist en wat het uiteindelijke effect op de feed is. Maar eerst een kleine introductie over de categorieën.
Categorieën
In Tweakwise bestaan categorieën uit 1: Een ID, 2: Een naam en 3.: Een bovenliggende categorie id. Aangezien een product in meerdere categorieën kan zitten en de categorieboom vrij diep kan gaan, kan dit best lastig worden. Het kan helpen om de categorieën te visualiseren in een categorieboom (zie figuur 2). De Root node van de categorieboom is gewoon een denkbeeldige node die elke categorie als basis heeft. Dan krijg je de echte categorieën onderaan de boom. Voor de rest van dit artikel verwijzen we naar dit voorbeeld en naar de velden in figuur 1 voor de beschrijving van de vereisten.
Root_category
Als de node van alle nodes, de ultieme basisnode, moet het root_category-veld gevuld worden met 1 id die de root node in je Tweakwise-omgeving vertegenwoordigt. Dit moet voor elk artikel hetzelfde zijn. Als dit niet bij het product staat, worden de aangepaste categorieën niet uit dat item gehaald. De eenvoudigste manier om dit te implementeren is om een regel in Channable op te nemen die een aangepast veld `root_category` instelt waar je het instelt op de id-waarde van de root voor alle items.
Category_id_path & Category_path
In combinatie met category_path vormen deze twee de velden om de aangepaste categorieën te maken. Per item moet dit de ID's van de categorieën vermelden in dezelfde volgorde als waarin de categorieën staan in category_path. Dat betekent dat de eerste categorie (bijvoorbeeld 'Schoenen') in category_path het eerste ID krijgt toegewezen, de tweede krijgt het tweede ID enz. Bijvoorbeeld:
Category_id | 1 | 112 | 112315 |
Category_name |
Root | Shoes | Sneakers |
Figuur 2 - Voorbeeld Category Tree
Hoe moet je je date opsturen?
Om wat meer in de technische kant te duiken, de echte data, willen we graag beginnen met de root_category. Zoals in het bovenstaande gedeelte is beschreven, moet de root_category in alle items identiek zijn en gevuld met de ID van je rootcategorie bij Tweakwise. Als dit is gelukt, kunnen we verdergaan met het verzenden van de categorie-ID's en labels van de andere categorieën. Voor de uitleg gebruiken we de categorieën uit afbeelding 2 in combinatie met de volgende denkbeeldige ID's:
Category_name |
Category_id |
Root |
1 |
Shoes |
11 |
Clothing |
12 |
Unisex |
13 |
Sneakers |
111 |
Dress shoes |
112 |
Dresses |
121 |
Shirts |
122 |
Deze categorieën moeten allemaal 1 categorienaam hebben en 1 categorie-id die verwijst naar die ene categorie. Aangezien Channable met items werkt moet je ervoor zorgen dat alle items dezelfde combinatie van categorie naam en id hebben. Om dit te doen heb je 2 velden, category_id_path en category_path. Beide velden accepteren data op 1 van de volgende 3 manieren, elk met hun eigen gedrag.
1. Stuur categorieën in een lijst
Binnen Channable kun je werken met lijsten van waarden, hier het voorbeeld voorgesteld met een tabel:
List |
11 |
111 |
Achter de schermen zal dit worden geïnterpreteerd als 11 > 111, of visueel als volgt:
Het systeem verwacht dat de categorieën hiërarchisch van links naar rechts worden ingestuurd, waarbij de linker de hoogste categorie is.De beperking hierbij is dat je niet meerdere categorietakken kunt sturen, dus deze boom kan niet verrijkt worden met de Unisex categorie.
2. Stuur categorieën in een pad
De categorieën kunnen ook worden verzonden als een pad in de vorm van een string. Dit ziet er als volgt uit:
Wat weer de categorieboom voorstelt die je hier ziet. Dit wordt op dezelfde manier geïnterpreteerd als de manier van 1. en ze zijn uitwisselbaar. Je zou ze door kunnen sturen als 1 voor de ids en op deze manier voor de namen.
De categorieën worden dan direct gemapped. Zo, om 1 voorbeeld te laten zien van hoe het zou moeten gaan en 1 hoe het niet moet hopen we dat je het begrijpt.
Voorbeeld 1: Verwacht gedrag
Category_id_path:
List |
11 |
111
|
Category_path: “Shoes > Sneakers”
Gecombineerd is dit:
Category_id |
11 |
111 |
Category_name |
Shoes |
Sneakers |
Voorbeeld 2: Verkeerde data
Category_id_path:
List |
111 |
11 |
Category_path: “Shoes > Sneakers”
Gecombineerd is dit:
Category_id |
111 |
11 |
Category_name |
Shoes |
Sneakers |
Aangezien de lijst en de string in verschillende volgorde staan, worden ze verschillend gecombineerd.
3. Stuur categorieën in lijst van paden
Sommige producten moeten worden toegewezen aan meerdere categorietakken, daarom staan wij de combinatie van bovenstaande methoden voor zowel het veld category_id_path als het veld category_path. Als voor een product de volgende boomstructuur moet worden bereikt, moeten de gegevens als volgt worden verzonden:
Category_id_path:
List |
11 > 111 |
13 |
Category_path:
List |
Shoes |
Sneakers |
Unisex |
Of zo:
Category_id_path:
List |
11 > 111 |
13 |
Category_path:
List |
Shoes > Sneakers |
Unisex |
Valkuilen
Er zijn een aantal dingen die fout kunnen gaan en resulteren in ofwel foutieve categorieën ofwel een afgekeurde feed. Hieronder sommen we de meest hardnekkige fouten en directe valkuilen op die we voorzien.
Verkeerd geordend
Zoals hierboven ook snel beschreven, moeten de gegevens correct geordend zijn. Aangezien Channable ze aan elkaar ritst, van links naar rechts, als een rits. Bijvoorbeeld in het hypothetische scenario dat dit de waarde is van de velden:
Category_id_path:
List |
1 |
2 |
3 |
4 |
5 |
6 |
Category_path:
List |
A |
B |
C |
D |
E |
F |
Het process gaat zo:
Category_id |
1 |
2 |
3 |
4 |
5 |
6 |
Category_name |
A |
|
|
|
|
|
Category_id |
1 |
2 |
3 |
4 |
5 |
6 |
Category_name |
A |
B |
|
|
|
|
— etc. —
Category_id |
1 |
2 |
3 |
4 |
5 |
6 |
Category_name |
A |
B |
C |
D |
E |
F |
Dit betekent echter dat als één van de twee lijsten van rechts naar links wordt gerangschikt, zoals in het voorbeeld hieronder, je een verkeerde combinatie van ID's en namen zou krijgen.
Category_id_path:
List |
1 |
2 |
3 |
4 |
5 |
6 |
Category_path:
List |
F |
E |
D |
C |
B |
A |
Het process gaat zo:
Category_id |
1 |
2 |
3 |
4 |
5 |
6 |
Category_name |
F |
|
|
|
|
|
Category_id |
1 |
2 |
3 |
4 |
5 |
6 |
Category_name |
F |
E |
|
|
|
|
— etc. —
Category_id |
1 |
2 |
3 |
4 |
5 |
6 |
Category_name |
F |
E |
D |
C |
B |
A |
Zorg er daarom voor dat beide velden altijd van links naar rechts worden gerangschikt in termen van hogere hiërarchie naar lagere.
Meer Names of IDs
Om dezelfde reden als hierboven zal het hebben van een ongelijk aantal waarden voor beide resulteren in foutieve combinaties. Bijvoorbeeld:
Category_id_path:
List |
1 |
2 |
3 |
4 |
5 |
6 |
Category_path:
List |
A |
B |
C |
D |
|
|
Resulteert in:
Category_id |
1 |
2 |
3 |
4 |
Category_name |
A |
B |
C |
D |
Aangezien er geen namen zijn voor 5 en 6 zijn zij afgesneden.
Geen Root categorie
Als er geen hoofdcategorie is opgenomen, is het niet mogelijk om categorieën voor dat product te genereren. Dit is vooral een voorzorgsmaatregel, maar voor producten zonder hoofdcategorie zullen de categorieën worden overgeslagen.