Akeneo en WooCommerce
Akeneo WooCommerce koppeling
Productdata uit Akeneo staat in WooCommerce als variabel product met variaties, met globale attributen waar de klant op kan filteren, afbeeldingen in de mediabibliotheek en vertalingen als je WPML gebruikt. Alleen complete producten gaan door. Gebouwd op jouw families en je WordPress-inrichting, en daarna door ons gedraaid en bewaakt.
Wat je tussen Akeneo en WooCommerce koppelt
De stroom loopt van Akeneo naar WooCommerce. Akeneo is leidend voor wat een product is, WooCommerce toont en verkoopt het. De koppeling leest via de REST API van Akeneo en schrijft via de REST API v3 van WooCommerce en, voor afbeeldingen, de REST API van WordPress.
| Uit Akeneo | Endpoint in Akeneo | In WooCommerce | Endpoint in WooCommerce |
|---|---|---|---|
| Productmodel | /product-models |
variabel product | /wc/v3/products/batch |
| Variantproduct | /products-uuid |
variatie | /products/<id>/variations/batch |
| Keuzeattribuut en opties | /attributes/{code}/options |
globaal attribuut met termen | /products/attributes/<id>/terms |
| Overige attributen | values |
lokaal attribuut of meta_data |
op het product |
| Afbeeldingen | /media-files/{code}/download |
mediabibliotheek | /wp/v2/media |
| Categorieën | /categories |
productcategorieën | /products/categories |
Producten worden gekoppeld op de SKU: de identifier in Akeneo, sku in WooCommerce. De koppeling bewaart daarnaast per product het paar van Akeneo-uuid en WooCommerce-ID. Hoe productdata in het algemeen loopt staat op productdata koppelen.
Welk systeem is leidend, per gegeven
| Gegeven | Leidend | Richting | Gedrag |
|---|---|---|---|
| Naam, omschrijvingen, attributen | Akeneo | naar WooCommerce | alleen complete producten |
| Attributen en termen | Akeneo | naar WooCommerce | termen hernoemd, niet opnieuw aangemaakt |
| Variaties en assen | Akeneo, de family variant | naar WooCommerce | variabel product met variaties |
| Afbeeldingen | Akeneo | naar WooCommerce | eerst in de mediabibliotheek |
| Categorieën | Akeneo, boom van het kanaal | naar WooCommerce | op code, bewaard als ID |
| Prijs en voorraad | ERP of WMS | niet uit Akeneo | de koppeling raakt ze niet aan |
| Gerelateerde producten, SEO-velden | per afspraak | Akeneo of WooCommerce | vastgelegd per veld |
Wat Akeneo en WooCommerce anders bewaren
Codes tegenover namen
Akeneo bewaart een keuze als code: blue. Het label staat per taal bij de optie. WooCommerce bewaart een keuze als term met een naam, en de REST API verwijst ook op naam. Het veld options op het product is een lijst termnamen. Een variatie zegt "option": "Blauw". De koppeling zoekt dus eerst het label in de taal van de winkel op, en houdt per term een tabel bij van Akeneo-code naar WooCommerce-ID. Een gewijzigd label wordt zo een hernoemde term, en niet een tweede term naast de oude.
Een globaal attribuut heeft een slug van maximaal 29 bytes: WordPress staat 32 bytes toe voor de naam van een taxonomie en WooCommerce zet er pa_ voor. Akeneo-codes zijn vaak langer. draagvermogen_per_legbord_kilo is 30 tekens en geeft bij het aanmaken de fout invalid_product_attribute_slug_too_long. De koppeling legt per attribuut een kortere slug vast. Het type van een globaal attribuut is standaard alleen select.
Productmodellen tegenover variabele producten
Akeneo bouwt varianten met een family variant van 1 of 2 niveaus. WooCommerce heeft er één: een variabel product met variaties. Een as in Akeneo wordt een globaal attribuut met variation op true. Een model met kleur en maat op twee niveaus wordt één variabel product met twee assen. De afbeelding van het kleurniveau gaat naar elke variatie van die kleur.
Een maat met eenheid, zoals 1.2 KILOGRAM, gaat naar het veld weight. Dat is in WooCommerce tekst zonder eenheid, in de eenheid die in de winkel is ingesteld. Staat de winkel op gram, dan schrijft de koppeling 1200. Een as van het type maat of getal wordt eerst een term, bijvoorbeeld 82 cm. Zie varianten koppelen.
Eén taal tegenover locales
Een product in de REST API van WooCommerce heeft één name en één description, zonder veld per taal. Akeneo heeft een waarde per locale. Zonder meertalige plugin kiest de koppeling één locale. Met WooCommerce Multilingual van WPML maakt de koppeling per taal een product aan met lang en translation_of, het ID van het product in de hoofdtaal. Termen zijn op dezelfde manier te vertalen, de naam van een attribuut niet: die zet je één keer in WPML.
De technische werkelijkheid van deze combinatie
| Limiet | Akeneo | WooCommerce |
|---|---|---|
| Tempo | 100 verzoeken per seconde per PIM | geen limiet op wc/v3 gedocumenteerd |
| Tegelijk | 4 per connectie, 10 per PIM | de server bepaalt het |
| Per verzoek | 100 per pagina | 100 objecten per batch |
| Variaties | onderdeel van het model | een batch per variabel product |
| Toegang | client ID, secret, token van 3.600 seconden | sleutelpaar, secret één keer getoond |
De getallen zijn op 3 oktober 2026 nagelezen in de documentatie van Akeneo en WooCommerce.
De eerste vulling doorgerekend. 2.500 productmodellen met gemiddeld 8 variaties zijn 20.000 variaties. Lezen uit Akeneo: 25 pagina's modellen en 200 pagina's varianten van 100, samen 225 verzoeken. Schrijven naar WooCommerce: de modellen gaan in 25 batches van 100. Variaties hebben een batch per variabel product, dus 2.500 aanroepen, ook al heeft een product er maar 8. Bij bijvoorbeeld 2 seconden per aanroep is dat 2.525 aanroepen keer 2: 5.050 seconden, 1 uur en 24 minuten. Een gewone ronde schrijft alleen wat in Akeneo is gewijzigd.
De server is de limiet. WooCommerce documenteert geen limiet op de REST API; elke aanroep is een PHP-verzoek op dezelfde server als de winkel. De koppeling schrijft daarom met een vast aantal aanroepen tegelijk en zet de eerste vulling buiten de drukke uren.
Afbeeldingen. WooCommerce kan een afbeelding van een URL ophalen via src. Een Akeneo-bestand is alleen met een token te downloaden, dus die route werkt niet. De koppeling downloadt het bestand, zet het met POST /wp/v2/media in de mediabibliotheek en hangt het met het ID aan het product. Een ongewijzigd bestand wordt niet opnieuw geüpload. Meer in WooCommerce REST API koppelen.
Wat een standaardkoppeling hier niet doet
Akeneo documenteert eigen koppelingen voor Shopify en Adobe Commerce, niet voor WooCommerce. De standaardroute is een export uit Akeneo en de CSV-import van WooCommerce. Wat die import volgens WooCommerce doet:
- Bestaande producten op ID of SKU. Met "bestaande producten bijwerken" aan worden producten die niet bestaan overgeslagen.
- Afbeeldingen alleen van een bereikbare URL. WooCommerce haalt ze op en zet ze in de mediabibliotheek. URL's achter een doorverwijzing worden niet ondersteund.
- Eén waarde per variatie. Geef je er meer, dan gebruikt WooCommerce de eerste.
- Grote bestanden splitsen. De grens hangt af van de server.
De import draait als iemand hem start, en hij weet niet wat er in Akeneo sinds de vorige keer is gewijzigd. Plugins voor deze combinatie draaien in WordPress, op dezelfde server als de winkel. Een gebouwde koppeling draait daarbuiten, volgt jouw families en legt per attribuut vast hoe het in WooCommerce landt. Zie PIM koppelen aan je webshop.
Als het misgaat
| Wat er misgaat | Wat de koppeling doet | Wat je ziet |
|---|---|---|
| Akeneo antwoordt 429 | wacht het aantal seconden uit Retry-After |
niets, tenzij het aanhoudt |
| Slug te lang | het attribuut wordt niet aangemaakt | het attribuut en de voorgestelde slug |
| Optie zonder label in de taal van de winkel | het product gaat naar de controlelijst | het product, het attribuut en de code |
| Een product ontbreekt in het antwoord op een batch | dat product opnieuw, los van de batch | het product en de fout van WooCommerce |
| Upload naar de mediabibliotheek faalt | het product gaat door zonder die afbeelding | het bestand en de fout |
| WooCommerce antwoordt 500 of geeft een time-out | opnieuw met een langere pauze | een regel in het logboek |
Een batch in WooCommerce antwoordt met lijsten create, update en delete. De koppeling vergelijkt die per product met wat hij stuurde en zet alleen de ontbrekende of mislukte opnieuw in de wachtrij. Een product dat blijft falen wordt met de oorspronkelijke inhoud bewaard en gaat opnieuw mee na een correctie in Akeneo. Voor livegang draait de koppeling als dry run tegen een kopie van de winkel.
Wij hosten en bewaken de koppeling en passen hem aan als Akeneo, WooCommerce of WPML iets wijzigt. De systeemkant staat op Akeneo koppeling, de platformkant op WooCommerce koppeling, en alle stromen op koppelingen. Verwante combinaties: Akeneo Shopify koppeling en Akeneo Magento koppeling. Vertel hoeveel producten, families en talen je hebt.
Veelgestelde vragen
Heb ik WPML nodig voor meerdere talen?
Voor meerdere talen in één WooCommerce-winkel heb je een meertalige plugin nodig: de REST API van WooCommerce heeft per product één naam en één omschrijving. Met WooCommerce Multilingual van WPML maakt de koppeling per taal een vertaald product aan met lang en translation_of. Termen zoals Blauw zijn via de API te vertalen, de naam van een attribuut zoals Kleur niet: die vertaal je één keer in WPML.
Wordt elk Akeneo-attribuut een filter in de winkel?
Alleen als je dat wilt. Een globaal attribuut in WooCommerce is een taxonomie met termen en daarop kan de klant filteren. Een lokaal attribuut staat alleen bij het product. Wat geen keuzelijst is, zoals een maat in millimeters of een EAN, gaat naar meta_data of naar een lokaal attribuut. Per familie leg je vast welke attributen globaal worden.
Wat gebeurt er als we een label in Akeneo wijzigen?
WooCommerce koppelt een variatie aan de naam van de term, niet aan een code. Wordt Blauw in Akeneo Donkerblauw, dan hernoemt de koppeling de bestaande term in plaats van een nieuwe aan te maken. Hij bewaart daarvoor per term het paar van Akeneo-code en WooCommerce-ID. Zonder die tabel ontstaat een tweede term en verwijzen de bestaande variaties naar een waarde die niet meer bij het product hoort.
Komen prijzen en voorraad ook uit Akeneo?
Meestal niet. Akeneo kan een prijsattribuut hebben, maar in de meeste landschappen levert het ERP de prijs en het ERP of magazijnsysteem de voorraad. De koppeling uit Akeneo laat regular_price, sale_price en stock_quantity dan ongemoeid. Zie Picqer WooCommerce koppeling voor de voorraadkant.
Kan het met de CSV-export van Akeneo en de CSV-import van WooCommerce?
Voor een eenmalige vulling kan dat. Voor een doorlopende stroom loop je tegen drie dingen aan: de import draait als je hem start, afbeeldingen moeten op een publieke URL staan, en de import herkent bestaande producten op ID of SKU zonder te weten wat Akeneo sinds de vorige keer heeft gewijzigd.
Hoe snel staat een wijziging uit Akeneo in WooCommerce?
Met het Event Platform van Akeneo, op de SaaS-edities Enterprise en Growth, meldt Akeneo een gewijzigd product direct. Op de Community Edition of PaaS vraagt de koppeling op een vast interval op wat er sinds de vorige ronde is gewijzigd, bijvoorbeeld elk kwartier. Een product gaat pas door als het voor het kanaal 100% compleet is.
Vertel wat je nodig hebt
Vertel welke systemen je gebruikt en wat je wilt verbeteren. Je krijgt binnen één werkdag een persoonlijk antwoord. We helpen je de werkzaamheden helder te krijgen en spreken de prijs en planning af voordat je iets toezegt.
- Je weet de prijs en de doorlooptijd voordat je iets toezegt
- Wij zoeken uit welke koppeling het werk uit handen neemt
- Wij verzorgen de bouw, hosting, bewaking en het onderhoud
- Je team krijgt minder overtypwerk en minder uitzoekwerk