Exportera och importera data mellan nätbutiker

När man ska flytta data från en nätbutik till en annan kommer man ställas inför några utmaningar på vägen. Vad man ska göra och hur man gör det beror på vilket stöd som finns i lösningen man ska flytta från och lösningen man ska flytta till. I vårt fall med Kodmyran som målplattform fanns det stora möjligheter att importera allt vi kunde behöva och så här gjorde vi upp planen för migreringen av data.

kodmyran-export

Kategorier

Basstrukturen i nätbutiken är dess kategoristruktur. Här hade vi möjligheten att importera dessa automatiskt, men då vi bara hade 130 stycken valde vi att migrera dem helt manuellt. I den nya butiken erbjuds vi möjlighet att jobba med HTML för kategoribeskrivningarna vilket gjorde att vi ändå ville gå igenom dem manuellt för att se vilka delar som skulle formatteras. Det handlade dessutom bara om en par timmars jobb att flytta över informationen.

Tack vare att man styr adressen själv på hur kategorin ska exponeras använde vi precis samma URL på kategorierna som de haft i Prestashop vilket gör att vi inte hade behov av att göra några redirects.

Vi förde en logg över de gamla identiteterna i Prestashop mot de nya i Kodmyran för att vid ett senare tillfälle kunna knyta produkter till rätt kategori.

Produkter

Produkterna tillhör kärnan av det man säljer och det är viktigt att få med så bra information som möjligt. Vi skapade därför en egen exportrutin till Prestashop som exporterade i ett format som man direkt kan importera i Kodmyrans lösning. Här byggde vi en enkel CSV-export där produktdata för det som skulle konverteras fanns med. I detta steg exporteras inte produkternas attribut.

Exporten kördes sedan flera gånger där vi vid varje körning tog in fler kolumner i importen bara för att verifiera att allt fungerade bra och att allt hamnade på rätt plats. För att inte riskera att förstöra något i den “skarpa” butiken hade vi under en period kvar en demobutik att testa importera data i. Mycket användbart och smidigt för att inte råka göra fel.

Hemmakategori i Prestashop importerades via denna fil mot en kategori i den nya butiken. Här använde vi mappningstabellen från steget innan för att koppla produkten mot det nya kategori-idt.

Det knepigaste var att lyckas med att få ut HTML på rätt sätt så att den långa beskrivningen kunde importeras utan problem. På det korta beskrivningsfältet skulle vi dessutom gå från HTML till ren text. Här uppstod en del fel med vissa tecken och vi har manuellt jobbat på att rensa bort frågetecken som uppkommit i vissa texter.

När väl importen var på plats pausade vi allt utom akuta uppdateringar av produktdata för återstoden av konverteringstiden för att inte behöva underhålla data i flera system. Det var lite trist då vi hade en hel del nyheter som bara låg och väntade på att läggas ut till försäljning.

Bilder

I Prestashop ligger bilderna kopplat mot de produkter de tillhör. Dessa bilder följer dock en logik där de hamnar under img/p och sedan heter produktnummer, ett minustecken och sedan ett löpnummer. Vi exporterade dessa bilder via exportrutinen så det skulle gå att koppla på bilden mot en relativ sökväg då man i Kodmyran jobbar med filer.

Bilderna exporteras i en struktur efter varumärke/ps/produktnamn-artikelnummer.jpg så att det skulle vara enkelt att koppla upp bilden vid importtillfället. Vi hade självklart här kunnat använda bilderna i originalformat som vi lagrat dem, men för att inte riskera att göra några fel med vilken bild som är kopplad till produkterna så ansåg vi att Prestashop hade bäst data.

Exporten av bilder från Prestashop gjordes enligt följande:

  1. Exportera data i CSV-formatet.
  2. Öppna CSV-filen och skapa en formel i Excel för att köra “wget” på filerna så de kan laddas ner via en scriptfil.
  3. Kör scriptfilen och ladda ner bilderna i originalstorlek.
  4. Använd Irfanview för att tillverkare för tillverkare skala ner bilderna till 1000×1000 pixlar som maximal storlek.
  5. Ladda upp filerna till bildstrukturen hos Kodmyran.

Därefter körde vi kopplingar genom import av CSV-filen med produktdata. Man kan importera kopplingar mot flera bilder samtidigt, men vi gjorde dessa kopplingar manuellt då det bara var 30 produkter som hade fler än en bild.

Den externa adressen för nästan alla produkter kunde vi behålla från Prestashop. Adresserna i Prestashop innehåller däremot EAN-koden, vilket skapar rätt långa adresser. På ett 20-tal blev adressen för lång och vi fick skapa 301-redirect för dessa specifika. Vilka som hade för lång adress räknade vi enkelt ut via en längd-formel i Excel och kunde då också generera .htaccess-rader för dessa specifika redirect.

Bloggar och texter

Här saknades det enkla importverktyg för att läsa in data på ett enkelt sätt. Därför beslutade vi även här att köra copy-paste-metoden. Det handlade om cirka 80 blogginlägg och 10 textsidor. Det var också bara frågan om en par timmars jobb, så här körde vi copy-paste och hade fixat det på några kvällar.

Det som fick hanteras manuellt här var bilder kopplade mot bloggtexter och informationstextern. Vi laddade ner dessa via en plugin till webbläsaren och laddade sedan upp den i nya butiken i en alternativ struktur med bilder i målformatet direkt. Därefter fick vi gå in på varje inlägg och koppla upp rätt bild.

Här vet vi om att det uppstått en del fel på både bilder och länkar, men prioriteringen har varit att de viktigaste texterna (ordervillkor, om oss etc) och mest besökta bloggposterna var korrekta.

Adresserna på bloggposterna fick bli desamma som tidigare.

Det som inte var klockrent att migrera var bloggkategorier och en förstasida för bloggen, då både kategoriverktyg och taggning saknades. Här blev det en halvmanuell sida där man kan lyfta fram blogginlägg att visa upp och en lista över samtliga blogginlägg längre ner som en rak lista. Inte helt optimalt, men det får rättas längre fram.

För bloggen saknades funktionalitet för att koppla produkter till blogginlägg, men detta kunde med lite klurande och några rader programkod i mallen implementeras av oss själva. Mycket smidigt!

Kopplingar mellan kategori och produkt

Vi har några olika alternativa strukturer för att navigera fram till samma produkt från några olika vyer. Dessutom har vi kategorier för toppsäljare och fyndhörnan som behövde fyllas med data.

Här gjorde vi en enkel SQL där vi exportera produktnummer och kategori-id för alla kategorier där produkten ingår. Kategori-id var den nya butikens identitet och en enkel excelformel användes för att översätta från gamla identiteter till nya via mappningstabellen från kategoriskaparsteget.

Kunder

Att importera kunder var något vi gjorde natten innan det var dags att gå live med den nya butiken. Från Prestashop kombinerade vi exporten av kunddata som kundregister och adressregister med den senast skapade leveransadressen.  Flagga med prenumeration på nyhetsbrev ingick också i exporten.

Order och orderrader

Dessa går också att importera i den nya lösningen, men det har vi ännu inte konverterat. Hade tänkt göra det och vi får se om det blir gjort, eller om orderhistoriken helt enkelt får ligga kvar i det gamla systemet.

Hur gick det då?

All form av migrering är klurigt att lyckas bra med. Vi lyckades väl inte perfekt, men det gick på det hela sett fantastiskt smidigt att migrera till Kodmyran. Det märks verkligen att de jobbat med att göra det smidigt. För dem som kanske inte har en lika stor verktyglåda som jag att klippa och klistra ihop kod med, har de några paket där de hjälper till att flytta data.

Nästa avsnitt

I nästa avsnitt tänkte jag berätta lite kring hur vi tänkte med mallarna för butiken och varför vi valde att inte gå all-in med en professionell design. Stay tuned!

Om Fredrik
Fredrik Gustavsson

IT-konsult som är konstant nyfiken. Intresserad av många saker. Jobbar i mitt eget IT-konsultföretag på dagarna där jag även driver nätbutik och fysisk butik. Har nog programmerat det mesta genom åren och skriver nu rätt mycket programvara i Microsoftmiljön C# eller PHP.

Leave a Reply

Your email address will not be published. Required fields are marked *