fredag 21. mai 2010

Magento + Mailchimp

Som jeg nevnte i en av mine tidligere innlegg har vi valgt å bruke markedsføringstjenesten MailChimp for å sende ut nyhetbrev for Helti100.no. Det er virkelig et finslipt system - de har tilogmed hatt tid til å lage en lite apekatt som kommer med morsomheter til deg (hvis man ikke har skrudd på "party pooper mode" da). Utover det er det så uendelig mye bra... Automatisk utvasking av bounces (med et nokså intelligent skille på hard/soft bounces), complaints i form av integrering mot de store mailtjenestene (feks Gmail, Yahoo og  Hotmail) sine "This is junk" knapper, testlevering via lokale ISP'er for å teste hvorvidt spamfilter slår ut,  integrasjon med Google Analytics, omfattende API er tilgjengelig hvis man vil integrere tjenesten mot andre systemer. Lista er mye lenger...

Som dere skjønner ble jeg mer eller mindre besatt på at dette var et verktøy vi burde fortsette å bruke. I første runde var det jo bare en gammel databasedump til Excel og opplasting av mottagerlisten som skulle til. I etterkant kommer utfordringene... Både Magento og MailChimp kan motta avmeldinger (og påmeldinger forsåvidt, hvis man legger opp til det). Så man er avhengig av en form for synkronisering mellom systemene.

Etter å ha surfet litt rundt kom jeg over Advanced Newsletter modulen til Aheadworks. Den skiltet med toveis synkronisering mot MailChimp, blant en haug med andre features som nok også kunne være interessante. 89 US$ senere var modulen lagt inn og forhåpningene var store. Dessverre var det, såvidt jeg kunne forstå, en del ting som ikke var kompatibelt med vår Magento Enterprise 1.7.1.0. Noen av templatene som modulen overstyrte så ut til å være utdaterte ift CSS klasser og HTML kode. Etter litt knot fikk jeg det til å se OK ut, men det var flere problemer. Mer alvorlig så det ut til at nyhetbrev funksjonaliteten som ligger standard i Magento fikk et dobbeltliv ved siden av modulens egen liste over nyhetsbrev abonnenter. Kunden kunne feks få beskjed om å være påmeldt på en del av "Min konto", men samtidig avmeldt på en annen - rett og slett fordi det var 2 registre som til en viss grad levde hvert sitt liv. Enda mer alvorlig satte modulen til å sende mail til alle våre kunder når jeg opprettet et "segment", noe som tilsynelatende så helt harmløst ut og jeg ikke forventet i det hele tatt. Skepsisen økte rask og kjøpet ble hevet. Det kan være jeg gjorde noe feil, men jeg ville jo i utgangspunktet bare oppnå synkronisering med MailChimp og alle disse andre skumle tingene som skjedde ble for mye.

I etterkant har jeg puslet sammen et minimalistisk skript selv for å gjøre en synkronisering. Skriptet er skrevet i PHP og kjører spørringer direkte i Magento databasen og snakker med webservice API'et til Mailchimp.

Oppgaven så enkel nok ut til å begynne med, men som vanlig var det et par uforutsette utfordringer. Synkroniseringen er jo avhengig av å vite hvilken side (Magento eller Mailchimp) som har de ferskeste endringene. Mailchimp har dette parat så det er ingen utfordringer på den siden. Jeg har observert at Magento har et felt som sannsynligvis er tiltenkt dette i databasen (newsletter_subscriber.change_status_at), men dessverre ser det ikke ut til å være i bruk per versjon 1.7.1.0 - det er alltid null.

For å komme i mål tok jeg meg friheten til å lage en egen tabell i databasen for å logge tidspunkt for endring, fra og til status (av-/påmeldt). Deretter lagde jeg et par triggers mot newsletter_subscriber slik at statusendringene blir logget (og tidsmerket) på databasenivået.

Med den nye tabellen er det bare å laste ned mottakere fra begge sider, finne statuskonflikter, sjekke hvem status som er ferskest og synkronisere siden som har feil status! Skriptet slenges inn i cron og thats it! MailChimp og Magento er synkronisert. Enkel og litt skitten løsning, men for meg mye ganger raskere enn å begynne å skrive en Magento modul (som nok hadde vært det riktigste å gjøre).

Hvis noen andre kan ha glede av dette sleng gjerne inn en kommentar. Er det interesse pakker sammen filene og legger ut skriptet her...

tirsdag 4. mai 2010

...endelig på lufta!

Da klokken passerte 01:00 den 22. april var Tone og jeg i ferd med å gjøre de siste finjusteringene på vår nye nettbutikk. En halvtimes tid senere var det gjort -- IP adressen var endret i DNS for www.helti100.no og det gamle systemet (BITS) var satt opp med en www-redirect til den nye siden. Alle holder pusten...

Som om det ikke var nok sendte vi samtidig ut nyhetsbrev med tjenesten MailChimp for første gang. Vi hadde hørt om tjenesten før så vi hadde god tro på at det skulle gå bra, men man er jo alltid nervøs når man sender mailer til tusenvis av folk samtidig. Her var det også innfletting av brukernavn og nytt passord for alle våre brukere.

Heldigvis var det noen av våre kunder som var sporty nok til være våkne på den tiden av døgnet. Vi var så heldige at vi, før vi gikk hjem, fikk bekreftet at det allerede var kommet noen ordre i butikken og alt så ut til å fungere fint.

Et kjedelig punkt var imidlertid at alle brukerne måtte få nytt passord. Vi kunne ikke få de utlevert fra BITS siden de, som vanlig er, kun hadde lagret en hash-sjekksum av brukerpassordene. Problemet var imidlertid at de visstnok benytter en tredjeparts programvare for å lage denne sjekksummen, så de kunne ikke enkelt finne ut hva nøyaktig sjekksummen ble laget av, eventuelt salt som brukes ved siden av passordet etc. Hadde de funnet det kunne vi jo muligens replikert sjekksummen i Magento sin verden. Det hele endte med at Trollweb hjalp oss med et skript for å sette brukerpassord i Magento fra liste med klartekst passord - denne listen tok vi også i bruk ved utsending av nyhetsbrevet.

I tillegg opplevde vi en liten feil i Bring modulen til Trollweb som gjorde at MVA på oppkravsgebyret ble feilberegnet. Heldigvis stilte de opp raskt igjen og feilen var rettet iløpet av den første helgen etter lanseringen.

Alt i alt gikk lanseringen ganske bra! Nå gjenstår "bare" diverse integrasjon med økonomisystemet, EDI systemet, og andre systemer vi har kjørende. Det blir en spennende tid fremover!

torsdag 7. januar 2010

Magentos magiske verden

I disse dager fordyper jeg meg Magento, vårt nye websystem. Det er virkelig et hav av innstillinger og muligheter og bare å få et overblikk over hvilke muligheter som ligger klart er en utfordring. Jeg har blitt overrasket flere ganger når jeg har spurt våre leverandører hvordan noe kan gjøres, i tro om at jeg har funnet noe Magento ikke kan gjøre, bare for å få vite at det var 5 klikk unna på en undermeny jeg ikke ennå hadde funnet. Jeg er kort fortalt kraftig imponert!

En av de siste interessante observasjonene er muligeten for å sette opp flere butikker eller websites fra samme system med mulighet for å dele varekatalogen. Hva med en B2B butikk ved siden av vår eksisterende butikk? Spennende tanke, det!

torsdag 31. desember 2009

Nytt system er på vei

Vi har tatt avgjørelsen å gå over til å bruke Magento som netthandelsystem. Vi ser frem til å komme igang med dette systemet som faktisk er utviklet av programmerere over hele verden fordi det også eksisterer som en i en open source versjon. Vi har valgt å samarbeide med Trollweb og har valgt Enterprise versjonen av Magento.
Enterprise Magento gir utrolige muligheter. Blant annet personifiserte nettbutikker, dvs at brukernavn+passord styrer hvilke produkter det blir fokusert på - på samme måte som amazon.com. Jeg har alltid vært fascinert av måten Amazon tar hensyn til hvilke produkter jeg har vist interesse for tidligere - og at de klarer å vise meg nye produkter jeg sannsynligvis også er interessert i.
En av de store forbedringene er muligheten for å forstørre bilder slik som for eksempel denne produktsiden hos norwegianrainshop.no.

Supportfunksjon på helti100.no

Vi har satt opp et gratis supportsystem som heter LiveZilla www.helti100.no. Live supporten ble umiddelbart tatt i bruk av kundene våre. Jeg tror live support funksjonen er med å skape trygghet for mange kunder. Det er godt å vite å vite at det er en salgsrepresentant i den andre enden.