magento-upgrade

10 jun Nyt modul til nem opdatering af Magento

Da vi har oplevet en stigende efterspørgsel for opdateringer af Magento fra fx 1.4 eller 1.5 til 1.9 besluttede vi os for at lave et modul der kunne automatisere denne proces da det ofte kræver noget manuelt arbejde at opdatere.

Derfor valgte vores backend programmør Lukas at arbejde på det og her er hvad han kom frem til:

Magento i sig selv tilbyder gode muligheder for at eksportere & importere produkter og kunder med forudbestemte profiler med cross-kompatibilitet mellem versioner ved hjælp af “Data Flow” proces.
Ved første øjekast kunne det se ud som den indbyggede funktionalitet er perfekt og gør jobbet, men når du begynder at grave dybere begynder du at se de ulemper og problemer der er som standard i Magento.

En af de store ulemper ved det er eksport og import hastighed & hukommelse af footprint. Det tager for evigt – næsten en time (og som regel får serveren timeout eller php til at løbe tør for hukommelse) til at eksportere fx tusind produkter pr cyklus hvilket, begrænser dig til at gøre flere eksports, der er uacceptabelt, når du er nødt til at eksportere mere end 20000 produkter. Samme historie går til import også – det er bare alt for langsomt og normalt tager 2-5 sekunder pr produkt.

En anden væsentlig ulempe er, at Magento eksport & import kun tager de grundlæggende produkt parametre. Fx sku, pris, lager, beskrivelser og så videre. Det er okay, hvis du kun har enkle produkter uden andre forbindelser, men hvis du har konfigurerbare produkter med tilhørende produkter, brugerdefinerede indstillinger og parametre, herunder produkter, der har up-sælger, cross-sælger, anmeldelser og så videre så kræver det en del tilpasninger. Magento har indbygget eksport værktøj og vil ikke eksportere noget af det.

Den sidste ulempe, som var relevant for os var, at der var ingen måde at man kunne eksportere kategorierne sammen med produkterne. Du er nødt til at eksportere & importere kategorier adskilt og derefter re-justere alle id’er i henhold til den gamle butik og derefter importere de produkter, for at få dem placeret korrekt.

Hvordan vi løste det:
Da Magento er nemt at tilpasse, ønskede vi ikke at bruge en masse tid på at lave vores egen standalone eksport plugin besluttede vi at lave et plugin, der udvider “Data Flow” af Magento. Ideen var at kombinere den nuværende funktion på “Data Flow” med vores brugerdefineret version, der indeholder alle de data, vi ønsker (tilknyttede produkter, up-sælger, brugerdefinerede-indstillinger osv) og output i en csv, så hurtigt som muligt. Sjovt nok, formåede “Data Flow” proces, faktisk at indsamle alle de data temmelig hurtig og vi havde ikke brug for nogen forbedring, men en af de flaskehalse var, at med hver post eksport ville spare en temmelig lang række i en database (dataflow_batch_export tabel).

Når alle poster blev læst og tilføjet til tabellen vil magento læse bordet igen og begynde at udsende alt til CSV række for række. Hvert produkt vil generere en ekstra linie, så i tilfælde af 20000 produkter magento skulle indsætte 20000 gange, og derefter læse 20000 gange det samme bord i løbet af en over igen. Bare ved at ignorere denne database læse / skrive og i stedet for at lagre ting i en hukommelse i et partier af 1000 og skylning, at til csv forbedret ydeevne betydeligt. Nu har vi en hurtig og pålidelig måde at eksportere alle produkter med deres optioner, billeder og kategorier fra gamle Magento versioner.

Heldigvis når det kommer til at importere der allerede er en meget god open source værktøj til rådighed, der interagerer direkte med databasen og håndterer alle import af sig selv. Værktøjet kaldes “Magmi”. Det er meget tilpasselig og hurtig. Efter at have tilpasset den til at understøtte formatet af vores eksporterede CSV-og struktur var vi i stand til at importere tusindvis af produkter, opretholde alle de tidligere egenskaber og sammenslutninger af den gamle butik sammen med billederne. Det tager omkring 100 ms for at importere et enkelt produkt ved hjælp Magmi stedet for 2-5 sek der fandt ved hjælp af Magento bygget i “Data Flow”.

Det betyder at vi i dag kan tilbyde en af de billigste og mest sikre opdateringer af Magento. Vi er et af Danmarks førende Magento webbureauer . Kontakt os hvis du vil vide mere. Du kan finde Magentoxperten i Aarhus og København. 

Kristoffer Hjerrild
kontakt@kristoffer-hjerrild.dk

Kristoffer er CEO og har ansvaret for Magentoxperten.dk's operative udvikling.

Ingen kommentarer

Skriv en kommentar