In deze iteratie en tijdens de kerstweken hebben de developers veel losse eindjes aan elkaar geknoopt en hebben we twee grote projecten afgerond. Allereerst gaan jullie voor het eerst te maken krijgen met refurbished en teruggestuurde producten in de Pricewatch.
Refurbished en teruggestuurde producten
We hebben tijdens de abodag in 2017 een aantal van onze abonnees gevraagd om een usabilitytest te doen voor het eerste concept. Naar aanleiding van die feedback hebben we in mei 2018 nog een grotere usabilitytest laten uitvoeren op het aangepaste concept. In beide tests werd het concept goed ontvangen en zijn we dit de afgelopen maanden dus ook gaan bouwen. Behalve dat het visueel in de site moet passen en goed moet werken, moest er onder water ook veel gebeuren. Onder het volgende kopje wordt daar uitgebreid op ingegaan.
We zetten dit project gefaseerd live, waarbij we beginnen met een klein deel van onze bezoekers. Hierbij houden we in de gaten of de nieuwe functionaliteit de bestaande functionaliteit niet in de weg zit. Daarbij komt het vaak voor dat er geen refurbished of teruggestuurde artikelen zijn van een product. Als we zien dat het weinig tot geen invloed heeft op de bestaande functionaliteit, zullen we dit snel opschalen.
Rewrite Pricewatch-importer
Om refurbished en teruggestuurde producten te kunnen toevoegen aan de Pricewatch, hebben we besloten om de code voor het importeren van prijzen te herschrijven. De oorspronkelijke code bevatte nog onderdelen van vijftien jaar oud en mocht weleens gemoderniseerd worden.
De Pricewatch is een belangrijke inkomstenbron en momenteel zijn meer dan 350 shops aangesloten, dus moesten we zeer zorgvuldig zijn. Het hele project is test driven ontwikkeld en we zijn aan het eind gedurende enkele sprints bezig geweest om op het kleinste detailniveau alle plooien glad te strijken. De importcode is in de vorige iteratie al live gegaan en daarvan heeft niemand iets gemerkt. We zijn soms heel trots op de onzichtbaarheid van ons werk.
Dit project raakte veel onderdelen van de site. De Pricewatch, de achtergrondprocessen, de rapportageomgevingen, facturatie en de beheeromgeving voor de shops. Een uitdaging hierbij was om de grenzen van de verschillende onderdelen scherp te houden. Bounded contexts zitten niet in het dna van de code, maar we zijn trots op het resultaat. Zo gebruiken we uiteindelijk twee verschillende modellen voor een prijsvermelding die we importeren en een prijsvermelding in de Pricewatch, hoewel ze vrijwel hetzelfde zijn.
Een les die we hebben geleerd, is dat er veel complexiteit nodig is om shops zelf velden uit hun feed te laten mappen, omdat dit op het diepste niveau van de imports moet worden toegepast voor alle ondersteunde formaten (csv, xml en json). Dat heeft tot gevolg dat je een reeks aan design patterns nodig hebt om het enigszins netjes in je code te krijgen. Mocht je zoiets zelf willen maken, kijk dan of je met een standaardformaat uit de voeten kunt; dat scheelt de nodige hoofdbrekens.
Tijdens het matchen proberen we op verschillende manieren het product uit de feed te koppelen aan een bekend product. Bij het filteren halen we ongewenste producten, overduidelijk foute prijzen en dergelijke weg. Naast de Pricewatch-tabellen schrijven we de shopfeedrecords ook zo origineel mogelijk weg, zodat shops precies kunnen zien hoe hun import is verlopen.

Bugfixes en meer
- Avatars op het Forum ook geoptimaliseerd via Thumbor weergeven.
- Abonneeschildjes in de nieuwe stijl weergeven:
zilver,
goud en
Tweakers-rood.
- Actieve filters bovenaan filterscherm zichtbaar maken op mobiel.
- Op mobiel bij het sorteren de waarde van de sortering weergeven in de knop.
- Meer categorieën weergeven in de categoriebalk op de frontpage, zowel op desktop als mobiel.
- Willen/hebben weer zichtbaar maken op mobiel.
- Moderators kunnen alle reacties van een gebruiker in één keer verwijderen (op -2 zetten).
- Fraudepreventie binnen V&A: 'Bericht toestaan'-optie geldt alleen nog voor dm en we informeren gebruikers beter voor het handelen in V&A.
- Extra marge nemen bij afstandsbepaling bij het filteren van advertenties in V&A.
- Andere vestigingen ook meenemen in afstandsfilter voor winkels in de Pricewatch.