Met uniek design en Smart Bikes vond VanMoof de stadsfiets opnieuw uit. De volgende stap? Een fietsabonnement. Reach Digital ontwikkelde het Magento abonnementen, pre-order systeem en een maatwerk checkout voor de lancering van de Electrified S2 en X2.
Het vraagstuk van VanMoof bood een nieuwe kans om na te denken over de ultieme oplossing voor het verkopen van abonnementen in Magento 2. Voor ons bekend terrein, maar voor VanMoof een heel nieuw concept. We bouwden een zeer abstracte abonnementenmodule, flexibel genoeg om de abonnementen die pas op het laatste moment definitief waren (prijs, starttarief, looptijd) in te kunnen richten.
De Magento 2 abonnementenmodule is gebouwd op basis van Event Sourcing. Data wordt opgeslagen als een volgorde van mutaties, in plaats van waardes. Hierdoor is het mogelijk later functionaliteit te bouwen die met terugwerkende kracht het systeem kan verrijken. Bijvoorbeeld het in kaart brengen van alle adreswijzigingen die een klant ooit heeft gedaan. Zonder Event Sourcing onmogelijk, omdat de oude adressen niet meer in de database bestaan.
Het aanbieden van een product in abonnementsvorm, gebeurt met termijnen. Termijnen bepalen het 'facturatiepad'. Termijnen hebben een prijs, een frequentie en een looptijd. Zo is de keyfee (het starttarief van een VanMoof+ abonnement) termijn 0, met bedrag x en looptijd 1 maand. De maandelijkse prijs die daarna wordt gerekend, is een termijn met frequentie 'maandelijks' en looptijd 'oneindig'.
VanMoof biedt verschillende varianten van dezelfde fiets. Zo is de Smart S verkrijgbaar als 3 speed of 8 speed model. Doordat we product plans koppelden aan het onderliggende voorraadhoudende (simple) product, kunnen verschillende abonnementsprijzen per model worden gerekend. VanMoof kiest zelf het moment waarop facturatie van de door de bezoeker extra toegevoegde product opties gebeurt. De abonnementsprijs wordt niet hoger. Configurable products, bundled products en grouped products worden volledig ondersteund. In de productconfigurator gebruikten we webcomponents om het verschil in prijs live bij het maken live aan bezoekers te kunnen tonen. Zowel in de winkelwagen in de header, als in de configurator. Indien de bezoeker de duurste variant van een product kiest, dan tonen de goedkopere opties met een negatieve prijs. Bijvoorbeeld: -€100.
Een verzameling termijnen vormt samen een 'product plan' - een abonnementsvariant. Een product plan heeft een label, beschrijving en is gekoppeld aan een store view. VanMoof biedt het SmartBike Plus product plan aan, met een keyfee van €98 en prijs van €19 per maand (gedefinieerd als termijnen). Er is volledige vrijheid om meerdere product plans aan te maken. Bijvoorbeeld een actie waarbij de keyfee tijdelijk €0 is. Omdat plans gekoppeld zijn aan storeviews, kunnen voor andere landen andere abonnementsvarianten worden aangeboden.
Bij het plaatsen van een bestelling, wordt de prijs van de eerste termijn direct ter betaling aan geboden aan de klant. Bij het maken van de betaling, worden de creditcardgegevens ge-encrypt naar de payment service provider (Adyen) gestuurd, die deze beveiligd opslaat. Een payment token wordt gegenereerd en in Magento opgeslagen. Het payment token wordt gebruikt om opvolgende betalingen af te schrijven. Indien een betaling faalt, wordt automatisch de betaalmethode pay-by-mail geselecteerd. De klant ontvangt een email met daarin de mogelijkheid om te betalen met een betaalmethode naar wens.
Abonnementen zullen in de toekomst regelmatig veranderen. We realiseerden versiebeheer voor abonnementen, waarbij iedere verandering van een abonnement wordt opgeslagen wordt als een versie. Dit kunnen tekstuele wijzigingen zijn (Smartbike Plus wordt aangepast naar Smartbike Lite), of mogelijk een hele andere prijsberekeningen. Klantenservicemedewerkers kunnen zien op welke versie van een abonnement een klant is aangesloten. Indien wenselijk, kunnen ze klanten upgraden naar de laatste versie.
Het afrekenproces van VanMoof+ werd geïmplementeerd als maatwerk Magento checkout. Een volledige vervanging van de trage standaard (knockout.js) checkout, opgebouwd uit webcomponents en Polymer. Op deze manier werd het mogelijk om te voldoen aan de hoge eisen rondom *user experience* en de wensen rondom abonnementen. Via frontend API's wordt bij verschillende stappen gecommuniceerd met my.vanmoof.com, de persoonlijke omgeving van VanMoof gebruikers.
Een abonnement wordt automatisch aangemaakt op basis van de eerste bestelling van een klant. Met de prijs van de eerste termijn, wordt gedefinieerd of de klant bij het 'bestellen' een betaling moet doen. Wanneer er een levertijd is - bij VanMoof is dit 4-6 weken - dan kan het abonnement zo worden geconfigureerd dat het abonnement wordt gestart (betalingen pas worden afgeschreven) na verzending.
Een belangrijke technische ontwerpkeuze voor de Magento 2 subscription module is dat ieder product, samen met het gekozen product plan, een individueel abonnement is. Een bestelling met 3 producten vormt 3 abonnementen, die individueel kunnen worden geuprade of geannuleerd. Ook verzending gebeurt individueel. In de toekomst kan mogelijk functionaliteit worden gebouwd om verzending samen te voegen of éénmalig een product met ingeplande abonnementsverzending mee te sturen.
Kort na de lancering van VanMoof+ abonnementen, werden de Electrified S2 en X2 modellen gelanceerd als Pre-order. De eisen voor pre-orders vallen perfect binnen de functionaliteit van het abonnementensysteem. VanMoof richtte een 'Reservation Plan' in, met 2 termijnen. Een eerste termijn van éénmalig €100 bij het plaatsen van de bestelling, een tweede termijn van €2490 bij levering.
Nieuw binnen Magento 2 is Magento Vault, de API voor het veilig verwerken van terugkerende betalingen. Magento Vault is payment service provider onafhankelijk en reeds compatible met Paypal, Stripe en Braintree. Nog met geen enkele in Nederland populaire Payment Service provider (Mollie, Multisafeay, Buckaroo, Docdata, Sisow, Pay.nl, Icepay). In samenwerking met Adyen bouwden we compatiblity van Magento Vault met de Adyen Magento 2 module.