Gratis Magento-cursus · Module 3: Productinformatie met UnoPim · Les 3.2
Wat je leert
- Hoe Akeneo-begrippen op UnoPim aansluiten: families, productmodellen, varianten en media
- In welke volgorde je data overzet zodat er niets stukgaat
- Waarom alleen een vergelijking per waarde een migratie echt bewijst
- De valkuilen uit een echte test en hoe je ze vermijdt
Waarom teams van Akeneo naar UnoPim overstappen
Akeneo is al jaren de standaard open source PIM voor Magento-webshops. UnoPim is een nieuwere open source PIM op Laravel, onder de MIT-licentie, met ingebouwde AI-tools voor content, een REST-API en een module voor het Digitaal Productpaspoort. De redenen die we horen om over te stappen zijn praktisch: een zelf gehoste PIM zonder licentiekosten, een moderne stack en AI-hulp bij teksten en vertalingen. We vergelijken beide systemen uitgebreid in UnoPim als alternatief voor Akeneo. Deze les gaat over de verhuizing zelf.
Alles hieronder komt uit een echte haalbaarheidstest die we voor de catalogus van een klant uitvoerden: één product uit elke familie, via beide API’s van Akeneo naar UnoPim overgezet en daarna per waarde gecontroleerd. In die test gingen 150 families, 172 productrecords en ongeveer 3.000 bestanden over, en alle 64.660 productwaarden kwamen aan. Om daar te komen moesten we wel een aantal problemen oplossen die pas bij de vergelijking zichtbaar werden.
Stap 1: het datamodel in kaart brengen
Het goede nieuws: beide systemen kijken op een vergelijkbare manier naar productdata. Beide werken met attributen met opties, families die attributen groeperen, categorieën, kanalen, talen en valuta. Op een paar plekken verschillen de namen, en die moet je kennen voordat je één regel importcode schrijft.
| Akeneo | UnoPim | |
|---|---|---|
| Attributen en opties | Attributes, attribute options | Attributes, options |
| Groepering van attributen | Families, attribute groups | Families, attribute groups |
| Variantdefinitie | Family variants | Variant structures |
| Ouder van varianten | Product models | Configurable products |
| Koppelingen tussen producten | Association types | Association types |
| Eenheden | Measurement families | Measurement families |
Bron: Akeneo REST API-referentie en de broncode van UnoPim 3.1
Twee dingen vragen vooraf een beslissing. Ten eerste hebben de reference entities en asset families van Akeneo (betaalde edities) geen één-op-één tegenhanger; bestanden worden meestal bestands- of afbeeldingsattributen, of gaan naar de gratis UnoPim DAM-extensie. Ten tweede: schrijf elke taal en elk kanaal op dat je gebruikt. UnoPim slaat waarden net als Akeneo per kanaal en taal op, dus de koppeling moet exact zijn.
Stap 2: data in de juiste volgorde overzetten
Installeer UnoPim eerst op een testserver; onze installatiegids voor UnoPim laat zien hoe. Lees daarna alles via de Akeneo REST-API in lokale bestanden in, zodat je de import opnieuw kunt draaien zonder Akeneo nog eens aan te raken. Laad de data in deze volgorde via de REST-API in UnoPim, want elke laag hangt af van de vorige:
Koppelingen komen als laatste, omdat beide kanten van een koppeling moeten bestaan. In onze test kon maar een deel van de koppelingen worden gelegd, simpelweg omdat de doelproducten niet in de testselectie zaten. Dat is normaal in een proefrun en lost zich op in de volledige run.
Stap 3: elke waarde vergelijken
Een migratie die “0 fouten” meldt, is nog niet klaar. Schrijf een script dat elk product uit beide systemen leest en elk attribuut per kanaal en taal vergelijkt. Onze regel was simpel: neem Akeneo precies over zoals het is. Een lege waarde blijft leeg, en een Duitse tekst voor Zwitserland mag best verschillen van die voor Duitsland. Alleen verschillen die de vergelijking niet kan verklaren, zijn fouten.
De valkuilen die we tegenkwamen
- HTML in beschrijvingen. UnoPim schoont rich text op met een HTML-purifier. Tags die Akeneo accepteerde, zoals
divofspan, en HTML die uit Word was geplakt, werden aangepast of verwijderd. We pasten de purifier-instellingen aan en controleerden de weergegeven tekst daarna in een echte browser. - Variantassen. In onze test konden meetattributen (bijvoorbeeld een volume) in UnoPim niet als variantas worden gebruikt, dus een paar variantstructuren hadden een andere opzet nodig.
- Bestandsregels. Elk bestands- of afbeeldingsattribuut in UnoPim heeft eigen toegestane extensies en een maximale bestandsgrootte, en uploads worden gescand. Leg deze grenzen naast je grootste pdf’s en afbeeldingen voordat je de volledige run doet.
- Bestandsnamen en duplicaten. Schoon ongebruikelijke bestandsnamen op en hergebruik een identiek bestand alleen binnen hetzelfde product en attribuut, anders kan UnoPim het mediapad weigeren.
Instellingen die je voor een migratie aanpast, zoals purifier-regels of uploadlimieten, horen bij je installatie. Leg ze vast en pas ze na elke UnoPim-upgrade opnieuw toe.
Stap 4: de overstap plannen
Begin zoals wij met één product per familie. Zo raak je elke structuur aan met weinig data en zie je problemen vroeg. Zet daarna de hele catalogus over op de testserver, vergelijk opnieuw en koppel je webshop. Bevries op de dag van de overstap het bewerken in Akeneo, draai een laatste delta-import en houd Akeneo een paar weken alleen-lezen achter de hand.
De belangrijkste punten
- Akeneo en UnoPim delen dezelfde basisideeën; variantdefinities en productmodellen hebben alleen andere namen.
- Eerst de structuur, dan producten en media, en de koppelingen als laatste.
- Alleen een vergelijking per waarde, per kanaal en taal, bewijst dat er niets verloren ging.
- Test vóór de volledige run met één product per familie en houd Akeneo na de overstap alleen-lezen.
Test jezelf
Hoe heet een Akeneo-“family variant” in UnoPim?
Een variantstructuur (variant structure). Productmodellen uit Akeneo worden in UnoPim configureerbare producten.
Waarom worden koppelingen als laatste geïmporteerd?
Omdat voor een koppeling beide producten al moeten bestaan. Ontbreekt het doelproduct, dan kan de koppeling niet worden aangemaakt.
De import eindigde met 0 fouten. Is de migratie klaar?
Nee. Vergelijk elke waarde per kanaal en taal met Akeneo. Wijzigingen zoals opgeschoonde HTML komen pas bij die vergelijking boven.
Bronnen
- api.akeneo.com/api-reference-index.html
- github.com/unopim/unopim
- devdocs.unopim.com/3.1/introduction/installation.html
- github.com/unopim/unopim/blob/3.x/CHANGELOG.md
Hulp nodig hierbij?
Plan je een overstap van Akeneo? Als officiële UnoPim-partner doen wij de testmigratie en de controle per waarde voor je. Bekijk onze UnoPim-diensten of laat hieronder je gegevens achter.


