Akeneo en Magento
Akeneo Magento koppeling
Productdata uit Akeneo staat in Magento 2 op het juiste niveau: vertalingen per store view, families als attribute sets, productmodellen als configurable products en keuzewaarden als opties van jouw installatie. Alleen complete producten gaan door. Gebouwd op jouw families en store views, en daarna door ons gedraaid en bewaakt.
Wat je tussen Akeneo en Magento koppelt
De stroom loopt van Akeneo naar Magento. Akeneo is leidend voor wat een product is: teksten, attributen, varianten, afbeeldingen en categorieën. Magento toont het en verkoopt het. De koppeling leest via de REST API van Akeneo en schrijft via de REST API van Magento 2.
| Uit Akeneo | Endpoint in Akeneo | In Magento | Endpoint in Magento |
|---|---|---|---|
| Familie | /families |
attribute set | /V1/products/attribute-sets/{id}/attributes |
| Productmodel | /product-models |
configurable product | /V1/configurable-products/{sku}/options |
| Variantproduct | /products-uuid |
simple product, gekoppeld | /V1/configurable-products/{sku}/child |
| Waarden per locale | values met locale |
waarden per store view | /rest/{store_code}/V1/products |
| Keuzewaarden | /attributes/{code}/options |
opties met een eigen ID | options op het attribuut |
| Afbeeldingen | /media-files/{code}/download |
media gallery | /V1/products/{sku}/media |
Producten worden aan elkaar gekoppeld op de SKU. In Akeneo is de identifier sinds november 2022 optioneel en is de uuid de sleutel. Een product zonder identifier heeft in Magento geen SKU, dus de koppeling slaat het over en zet het op de controlelijst. Hoe productdata in het algemeen loopt staat op productdata koppelen.
Welk systeem is leidend, per gegeven
| Gegeven | Leidend | Richting | Gedrag |
|---|---|---|---|
| Naam, omschrijving, attributen | Akeneo | naar Magento | per store view, alleen complete producten |
| Attribute set en attributen | Akeneo, de familie | naar Magento | sets en opties worden vooraf aangemaakt |
| Varianten en assen | Akeneo, de family variant | naar Magento | configurable met gekoppelde simples |
| Afbeeldingen en volgorde | Akeneo | naar Magento | alleen gewijzigde bestanden |
| Categorieën | Akeneo, boom van het kanaal | naar Magento | op code, niet op naam |
| Prijs, tier prices, voorraad | ERP | niet uit Akeneo | de koppeling raakt ze niet aan |
| URL-sleutel en SEO-velden | per afspraak | Akeneo of Magento | vastgelegd per veld |
Wat Akeneo en Magento anders bewaren
Locale en kanaal tegenover website, store en store view
Akeneo bewaart een waarde per locale, per kanaal of allebei. Magento bewaart een waarde op het standaardniveau en daarnaast per store view, met een vinkje "Use Default Value" voor elke view die erft. De koppeling legt een tabel vast: kanaal ecommerce met nl_NL is store view nl, met de_DE is het store view de.
Magento schrijft per store view met een eigen aanroep: de store code staat in de URL. Een catalogus van 6.000 producten in 3 talen is per volledige ronde dus 6.000 aanroepen op het standaardniveau en 18.000 per store view, 24.000 in totaal. Daarom gaan in een gewone ronde alleen gewijzigde producten mee, en per store view alleen de velden die per taal verschillen. Een veld dat de koppeling per store view schrijft, erft daarna niet meer van het standaardniveau. Een prijs of status die per ongeluk op store-viewniveau wordt gezet, blijft dus hangen als het standaardniveau later verandert.
Optiecodes tegenover optie-ID's
Een keuzeattribuut bevat in Akeneo de code van de optie: blue. Magento slaat een keuze op als een optie-ID van die installatie, zoals 168. Dezelfde optie heeft op een testomgeving een ander ID dan op productie. De koppeling leest bij de start alle opties uit Magento, maakt ontbrekende opties aan met de labels per store view uit Akeneo, en bewaart de tabel van code naar ID per omgeving.
Productmodellen tegenover configurable products
Akeneo bouwt varianten op met een family variant van 1 of 2 niveaus en maximaal 10 assen per niveau. Een as mag in Akeneo een keuzelijst zijn, maar ook een maat met eenheid, een ja/nee-veld, een getal of tekst. Magento heeft één niveau: een configurable product met simple products eronder. Een as moet daar een attribuut zijn met scope Global, van het type Dropdown, Visual Swatch of Text Swatch, met een verplichte waarde.
Daaruit volgen twee regels. Een model met twee niveaus, kleur en dan maat, wordt in Magento één configurable met beide assen. De attributen die in Akeneo op het kleurniveau staan, zoals de afbeeldingen per kleur, zet de koppeling op elke simple van die kleur. En een as die geen keuzelijst is, zoals een lengte van 82 CENTIMETER, wordt in Magento eerst een optie. Zie varianten koppelen.
Familie tegenover attribute set
Een familie in Akeneo bepaalt welke attributen een product heeft en welke verplicht zijn per kanaal. Een attribute set in Magento bepaalt welke attributen op het product staan, ingedeeld in groepen. Het ID van een set, attribute_set_id, verschilt per installatie. De koppeling vergelijkt families en sets voor elke ronde. Een attribuut dat in Akeneo bij de familie hoort en in de set ontbreekt, wordt eerst aan de set toegevoegd of gemeld, en niet stil weggelaten.
De technische werkelijkheid van deze combinatie
| Limiet | Akeneo | Magento 2 |
|---|---|---|
| Tempo | 100 verzoeken per seconde per PIM | geen algemene limiet gedocumenteerd |
| Tegelijk | 4 per connectie, 10 per PIM | de server bepaalt het |
| Per verzoek | 100 per pagina, 10 standaard | invoerlimiet uit, aan: 20 synchroon, 5.000 asynchroon |
| Boven de grens | 429 met Retry-After |
afhankelijk van de hosting |
| Toegang | client ID, secret, token van 3.600 seconden | OAuth 1.0a of een toegangstoken |
De getallen zijn op 3 oktober 2026 nagelezen in de documentatie van Akeneo en Adobe Commerce.
Asynchroon schrijven. Magento heeft bulk-endpoints onder /async/bulk/V1/. Een aanroep met een lijst producten krijgt direct een bulk_uuid terug; de producten worden daarna verwerkt door een consumer via RabbitMQ. Per product is de status op te vragen: 1 is gelukt, 2 is mislukt en mag opnieuw, 3 is mislukt en vraagt eerst een correctie, 4 is nog open en 5 is geweigerd. Ook de bulkroute bevat de store code, dus ook hier telt elke store view apart. De 24.000 schrijfacties uit het voorbeeld zijn in blokken van 100 producten 240 aanroepen. Dat vraagt wel dat de consumers op de server draaien; staan ze uit, dan blijven de berichten in de wachtrij staan zonder foutmelding.
Lezen uit Akeneo. Paginering met een paginanummer stopt na het 10.000ste product. De koppeling gebruikt search_after en een filter op updated en op completeness voor het kanaal, zodat een product van 80% niet in Magento komt.
Afbeeldingen. Een afbeelding gaat naar Magento als base64 in content.base64_encoded_data, met types voor de rol: image, small_image, thumbnail. Akeneo levert een bestandscode, geen publieke URL. De koppeling downloadt het bestand en stuurt het mee. Een product wordt zonder het veld media_gallery_entries bijgewerkt: een lege lijst [] verwijdert volgens Adobe alle afbeeldingen uit alle store views. Meer over grote volumes in grote catalogus inladen.
Wat een standaardkoppeling hier niet doet
Akeneo levert zelf de Akeneo Connector for Adobe Commerce, een module die in Magento draait op cron. Op 3 oktober 2026 stond in de documentatie van Akeneo:
- Eén richting. Van het PIM naar Adobe Commerce, niet terug.
- Verwijderen gaat niet mee. Adobe Commerce blijft leidend voor verwijderen; een product dat uit Akeneo verdwijnt blijft in Magento staan.
- Assen van het type meerkeuze, tekst of getal worden niet ondersteund.
- Bestandsattributen komen alleen als tekstveld mee.
- Versies. De Enterprise-connector vraagt Magento 2.4.4 of hoger en PHP 8.0 of hoger.
Omdat de module op de Magento-server draait, gebruikt hij de cron en de rekenkracht van de webshop. Een gebouwde koppeling draait buiten de webshop, volgt jouw families en assen, en legt vast wat er met een verwijderd product gebeurt.
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 |
| Bulkoperatie met status 2 | het product gaat opnieuw mee | niets, tenzij het aanhoudt |
| Bulkoperatie met status 3 of 5 | het product op de controlelijst | het product en de melding van Magento |
| Bulkoperatie blijft op status 4 | melding na een vaste wachttijd | consumers op de server draaien niet |
| Optiecode zonder optie in Magento | optie aanmaken met de labels per store view | een regel in het logboek |
| Attribuut niet in de attribute set | het product gaat niet door | de familie, de set en het attribuut |
| Product zonder identifier in Akeneo | overgeslagen | het product en de uuid |
Een product dat blijft falen bewaart de koppeling met de oorspronkelijke inhoud, en na een correctie in Akeneo gaat het opnieuw mee. Voor livegang draait de koppeling als dry run tegen de testomgeving: hij laat per product en per store view zien wat hij in Magento zou aanmaken of wijzigen.
Wij hosten en bewaken de koppeling en passen hem aan als Akeneo of Magento een interface wijzigt, zoals bij een nieuwe Magento-versie. De systeemkant staat op Akeneo koppeling, de platformkant op Magento koppeling, en alle stromen op koppelingen. Verwante combinaties: Akeneo Shopify koppeling en Akeneo WooCommerce koppeling. Vertel hoeveel producten, families en store views je hebt.
Veelgestelde vragen
Werkt de koppeling met Magento Open Source en met Adobe Commerce?
Ja. Beide hebben dezelfde REST API voor producten, attributen, opties en afbeeldingen, en daar schrijft de koppeling naar. Het verschil zit in extra modules van Adobe Commerce, zoals B2B en events. Voor productdata uit Akeneo is dat niet nodig. Wel telt de versie: regulier support voor 2.4.6 is op 11 augustus 2026 gestopt.
Hoe gaan meerdere talen uit Akeneo naar Magento?
Elke locale hoort bij een store view. De koppeling schrijft de waarden per taal met een aanroep op de store code van die view, bijvoorbeeld /rest/nl/V1/products en /rest/de/V1/products. Alleen velden die per taal verschillen gaan per store view mee. Waarden zonder locale staan op het standaardniveau, zodat Magento ze overal erft.
Wat gebeurt er met een product dat we in Akeneo verwijderen?
Dat leg je vooraf vast. De gebruikelijke keuze is uitschakelen in Magento en niet wissen. De bestelhistorie blijft dan aan het product hangen. De koppeling ziet een verwijdering door de lijst producten in Akeneo te vergelijken met de producten die hij in Magento heeft aangemaakt.
Ons productmodel heeft een maat als getal. Wordt dat een configurable product?
Ja, maar niet rechtstreeks. Akeneo staat een getal of een maat met eenheid toe als as. Magento accepteert als as alleen een attribuut van het type Dropdown, Visual Swatch of Text Swatch met scope Global. De koppeling maakt van elke waarde, zoals 82 cm, een optie in Magento en gebruikt die als as.
Komen prijzen en voorraad ook uit Akeneo?
Meestal niet. Akeneo kan een prijsattribuut hebben met een bedrag per valuta, maar in de meeste landschappen is het ERP leidend voor prijs en voorraad. De koppeling uit Akeneo laat price, tier prices en de voorraad in Magento dan ongemoeid. Zie Magento Business Central koppeling voor de ERP-kant.
Hoe snel staat een wijziging uit Akeneo in Magento?
Met het Event Platform van Akeneo, op de SaaS-edities Enterprise en Growth, meldt Akeneo een gewijzigd product direct en verwerkt de koppeling het binnen enkele minuten. Op de Community Edition of PaaS vraagt de koppeling op een vast interval op welke producten sinds de vorige ronde zijn gewijzigd, bijvoorbeeld elk kwartier.
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