Producttitels en afbeeldingen van bol.com, zonder één pagina te scrapen
Waar Depotely na een import de titel, het merk, de afbeeldingen en de bol.com-link van een product vandaan haalt, waarom het nooit de productpagina leest en hoe een catalogus van 4.000 producten in de juiste volgorde wordt gevuld.
· 3 min lezen
Een aanbodexport van bol.com vertelt je wat je verkoopt en voor hoeveel. Hij vertelt je niet hoe het product heet of hoe het eruitziet. Depotely vult dat na elke import aan, en de manier waarop is volledig veranderd na één les: bol.com beantwoordt een paginaverzoek vanaf een server met een weigering. De scrape die vroeger elke titel ophaalde, leverde in productie niets op, 3.819 producten bleven naamloos en elke geblokkeerde batch verbrandde twaalf minuten aan nieuwe pogingen. Niets in Depotely leest nog een productpagina.
De eigen catalogus van bol.com, via jouw eigen inloggegevens
De inhoud komt uit de Retailer API van bol.com, met dezelfde gegevens waarmee je het kanaal hebt gekoppeld:
- De catalogusinhoud-aanroep, op EAN: de titel, de beschrijving, het merk en bol.com's eigen SEO-slug.
- De assets-aanroep, op EAN: de productafbeeldingen.
- De product-id-opzoeking: bol.com's interne id van het product, alleen nodig om een link te bouwen.
Alles is gekoppeld aan de EAN, die de aanbodexport al heeft. Niets wacht op een id dat nog opgezocht moet worden.
Gevuld in fasen, hoogste voorraad eerst
Na een import gaan de EAN's die nog inhoud missen in een wachtrij in de database. Workers nemen er 45 tegelijk en maken één fase af voordat de volgende begint: eerst elke titel, dan elke set afbeeldingen, dan de id's. De reden zijn de limieten van bol.com. Titels mogen met acht per seconde worden opgehaald, afbeeldingen met vijftig per minuut. Afbeeldingen ertussendoor vragen zou elke titel op een afbeelding laten wachten.
Binnen een fase is de volgorde hoogste voorraad eerst, zodat de producten die verkopen hun naam en foto krijgen vóór de lange staart. De voorraadpagina kan de rijen die je bekijkt ook naar voren in de wachtrij halen; de laatste pagina die je bekeek wint.
"Details nu ophalen"
Per rij staat er een knop op de voorraadpagina. Die voert alle drie de fasen voor dat product direct uit, op een eigen baan, zodat hij nooit achter een lopende import wacht. Stond het product nog in de wachtrij van die import, dan wordt die rij als handmatig afgehandeld gemarkeerd en overgeslagen.
Limieten die gedeeld worden
De limieten van bol.com gelden per verkoopaccount, niet per server. Depotely houdt één gedeelde teller per endpoint en per verkoper bij, zodat vier workers samen nooit meer sturen dan één verkoper mag. Twee imports die een uur na elkaar starten openen ook geen twee wachtrijen over dezelfde producten: een EAN die compleet is, of nog in de wachtrij staat, wordt overgeslagen.
Onderbroken werk gaat verder
Een deploy midden in een import van 4.000 producten liet de taak vroeger gestrand achter. Nu zet een batch die halverwege mislukt zijn rijen terug, en een taak waarvan de wachtrij vijftien minuten niet bewoog, wordt vanzelf weer opgepakt. Je ziet een lopende taak op de voorraadpagina tot de wachtrij echt leeg is.
De link naar de productpagina
Een bol.com-productlink wordt gebouwd uit bol.com's product-id en slug, nooit uit de EAN: de EAN-URL is een dode pagina. Zolang het id nog niet is opgezocht, opent de link in plaats daarvan bol.com's zoekopdracht op de EAN, zodat er nooit een kapotte link in de tabel staat.
Nog twee dingen van bol.com
- Redenen "niet te koop". Niet gepauzeerd betekent niet te koop: bol.com kan weigeren een aanbod te publiceren om een te hoge prijs, ontbrekende voorraad of ontbrekende verkooprechten. De redenen komen uit het rapport met ongepubliceerde aanbiedingen van bol.com en verschijnen als badge op de rij, in de woorden van bol.com zelf.
- Je winkellogo. De retailer-API heeft geen logoveld, dus Depotely leest het één keer van je openbare verkoperspagina en bewaart alleen een afbeelding die bij bol.com wordt gehost. Eén poging, geen herhalingen; een geblokkeerde pagina betekent gewoon geen logo.
Wat dit voor jou betekent
Koppel, importeer en kom even later terug: titels komen voor een grote catalogus binnen minuten binnen, afbeeldingen volgen, en de tabel vult zich vanaf de producten die er het meest toe doen. Er wordt geen pagina gescrapet, geen inloggegeven verlaat je account, en bol.com wordt niets twee keer gevraagd.