Prisfiler - Problematiken och vår lösning
Publicerad 2023-02-20 av Sandra Anvret
Prisfiler spelar en avgörande roll för e-handelsföretag som vill visa upp sina produkter i tjänster online. Trots detta har många e-handelsföretag stött på utmaningar med att hantera prisfiler på grund av specifika formatkrav och risken för korrupta eller felaktiga tecken som förstör filerna. Denna text kommer att beskriva utmaningarna med prisfiler och vår unika lösning för att lösa det.
Vad är prisfiler?
Prisfiler är viktiga för e-handelsbutiker som vill synas online i tjänster såsom Prisjakt, Pricerunner och Google Shopping men även i synkar mot Voyado Kundklubb, Facebook och Mailchimp. De innehåller information om produkter, som artikelnummer, namn och beskrivning, för en stor mängd produkter och är essentiellt för att visa produkterna i dessa tjänster automatiskt. Trots att prisfiler är nödvändiga för att öka synligheten på dessa tjänster, har vi ibland stött på utmaningar kring hantering av prisfiler som behövt lösas.
Utmaningen
Ett del av problematiken med prisfiler är att de oftast måste vara i ett specifikt format, och ibland kan det vara svårt att hålla sig till alla tjänsternas specifika formatkrav. Den vanligaste lösningen är att använda en XML-fil, eftersom de flesta stora tjänster är utformade för detta format. Men XML-filer är också i vissa fall känsliga för vissa tecken, och kan bli korrupta om det finns specialtecken eller annan konstig data i filen.
Det vanligaste felet är just att feleaktiga eller otillåtna tecken kommer in i Prisfiler när ett produktnamn eller en text har märkliga tecken i sig. Det kan vara medvetet - att specialtecken används med flit, men är oftast oavsiktigt när ibland osynliga tecken klistras in i en produkttext någon annanstans ifrån.
Förut upptäcktes detta inte när det hände, och filerna skickades direkt till respektive tjänst - korrupt eller ej. Då filen var korrupt kunde den inte läsas av tjänsten, och butikens produkter blev inte synliga i tjänsten.
Vår lösning
Vår lösning arbetades fram över tid, och i olika steg.
Första steget innebar att vi med alla medel försökte tvätta datan i filerna, och leta efter specifika vanliga otillåtna tecken. Vi kapslade även in vissa XML-taggar i såkallad "CDATA" vilket är ett sätt som man i XML-filer kan komma runt detta problem. Denna lösning tog oss en bit, men inte hela vägen.
“Rent tekniskt är prisfiler knepiga på det vis att varje aktörs prisfil ser väldigt annorlunda ut, men genom noggrann utveckling och kommunikation med respektive aktör har vi möjlighet att bygga välstrukturerade och detaljerade prisfiler.”
- Martin Camenius, Utvecklare
För att komma vidare mot en lösning för detta problem började vi därefter automatisera hela processen med att hitta otillåtna tecken - vi började köra filen genom en validator för att se om den var korrekt. Om den inte var det, skickades ett felmeddelande till oss så att vi kunde meddela butiken i fråga alternativt själva lösa problemet. Nackdelen med denna lösning var att felen dök upp - och när de dök upp var det alltid akut. Tills en lösning var på plats skickades inga filer.
Så, för att reda ut problemet en gång för alla, skapade vi en lösning där prisfilerna genereras automatiskt varje timme och kontrolleras för att se om de är korrekta. Om filen är korrekt, sparas den och skickas till tjänsten vid nästa tillfälle. Om filen inte är korrekt, sparas den senaste korrekta filen och vi får ett meddelande om problemet. Detta säkerställer att tjänsten alltid har aktuell information om våra kunders produkter, och vi kan hantera eventuella problem löpande utan bråttom eller komplikationer.
Nu senast dök ett nytt otillåtet tecken upp som vi aldrig i plattformens historia hade stött på - och fel loggades och vi kunde i lugn och ro identifiera felaktigheten och avhjälpa felet. Under tiden för felsökning så kunde filer skickas precis som vanligt till Prisjakt och övriga tjänster, så utåt uppfattades aldrig några problem.
Förbättring och optimering
Detta exempel visar vikten av löpande förbättring och automatisering samt vår proaktivitet i arbetet. Vi strävar efter att använda teknik och processer som gör våra tjänster och system mer effektiva, användarvänliga och säkra. Genom att kontinuerligt förbättra och optimera våra processer, kan vi garantera bästa möjliga upplevelse och resultat för våra kunder och användare.