Hoe kunnen we helpen?

Inhoud

Importeer artikelen in Magento – verschillende methoden

Je bent hier:

Importeren van artikelgegevens is een van de grote uitdagingen met Magento. Er zijn verschillende manieren en elke oplossing heeft zijn voors en tegens. Andreas von Studnitz vergeleek de verschillende mogelijkheden op beschikbare functies en bruikbaarheid. Daarnaast testte en analyseerde hij verschillende importmethoden met circa 50.000 producten in- en exclusief (her)indexeren.

Naar aanleiding van deze presentatie van Andreas was ik gemotiveerd om zijn ervaringen eens tegen onze ervaringen af te zetten. Andreas heeft een aantal manieren getest om onder andere artikelgegevens in Magento te importeren. Deze heeft hij naast elkaar gezet en vervolgens heeft hij er ook performance metingen mee gedaan. Op zich is er veel af te dingen op de opzet van de test. Maar toch. Het gaat met name om de verschillen en die zijn behoorlijk significant. Op een goed getunde Magento server zullen alle beschreven methoden beter presteren en zal het totaalbeeld wellicht verschuiven. Maar dat doet niets af aan de resultaten.

Uiteraard is de oude jaren 80 methode het snelst, gewoon direct injecteren in de database. Dat heeft echter een zeer groot nadeel. De grote kans om de database te corrumperen.

Mage::getModel is met name geschikt voor programmeurs. Ik heb het ook wel gebruikt. Met name waar het gaat om het inlezen van een bestand dat lokaal beschikbaar is op de server. Voordelen zijn de betrouwbaarheid, ondersteuning van veel datatypen, goed op maat te maken en geïntegreerde indexering. Helaas is het behoorlijk traag.

Prestaties Magento artikelimports

SOAP / XmlRpc is de standaard ingebouwde webservice van Magento. Voornaamste voordelen zijn dat het is aan te roepen vanuit elke extern systeem, het standaard in Magento is opgenomen, veel gegevenstypen ondersteund. Helaas is het best lastig aan te passen op maatwerk en erg traag.

REST is een alternatieve webservice die kan worden aangeroepen vanuit externe systemen. Beschikbaar sinds Magento 1.7. Helaas worden een beperkt aantal datatypen ondersteund en is het erg traag.

Dataflow werkt met het Importeren van tekstbestanden in een specifiek formaat. Ondersteund een paar entiteiten en is erg lastig om in de eigen workflow te integreren. Outdated en traag.

Mage_ImportExport is de standaard import- en export voorziening voor gebruikers die in Magento standaard is opgenomen sinds Magento CE 1.5. Importeren van CSV-bestanden werkt erg snel. Helaas worden er maar een paar entiteiten ondersteund. Door het complexe dataformaat gaat het importeren snel fout. Uit eigen ervaring weten we dat het importeren behoorlijk vaak fout gaat en het proces zeer weinig terugmeldingen geeft over op tredende fouten. Daarmee is het niet echt een 100% betrouwbaar importproces.

Grafiek performance Magento imports

prestaties verschillende Magento importmethoden

FastSimpleImport is in de community beschikbare software die is gebaseerd op de Mage_ImportExport. Geïmplementeerd als Array Adapter die allen bruikbaar is voor programmeurs. Voegt met name meer gegevensentiteiten toe, geeft betere foutmeldingen en verzorgt indexeren on teh fly. Het dataformaat is nog steeds complex (maar wel overzichtelijker dan Mage_ImportExport).

ApiImport is gebaseerd op Mage_ImportExport. Ook ApiImport is geïmplementeerd als Array Adapter en dus alleen inzetbaar door programmeurs. Deze methode kan wel aangeroepen worden via SOAP/XmlRpc. Het voegt gegevensentiteiten, on the fly indexeren. Snel maar stelt wel eisen aan het te importeren gegevensformaat.

Magmi is een bijzondere in deze reeks. Het is extern php-programma, bijna een complete importsuite, met veel mogelijkheden en zelfs een plug-in structuur. Deze tool werkt supersnel omdat het direct werkt op de database van Magento. Hiermee is wel direct een risico. Als het Magento databasemodel wordt aangepast of er fouten zitten in de te importeren data dan kan de database behoorlijk gecorrumpeerd raken. Ik heb zelf zowel het snelle importeren als het corrumperen van de database meegemaakt en durf dit niet op een productieomgeving te gebruiken.

uRapidFlow (Pro) is een Commerciële Magento module, de Pro versie voegt zelfs nog extra gegevensentiteiten toe. Het importen gaat met CSV-bestanden in een specifiek formaat. De tool is erg flexibel en bevat configureerbare profielen. Importeren gaat erg snel. Groot minpunt en eigenlijk een no-go is de encodering van de broncode waardoor IonCube op de server moet draaien.