Reservation System

September 9, 2016

The Problem:

Kickfurther Co-Op’s are launched at 5PM EST on a first-come first-serve basis. This means the majority of Kickfurther’s web traffic is hitting the site at 5PM trying to make a contribution before the funding limit is reached. The previous system would allow a user to choose a number of packs and then take the user to a checkout screen where they had to fill in their payment (Credit Card) information before the contribution was counted. If the user took a few minutes to fill out their Credit Card information, by the time they hit submit it was a very good possibility that the number of packs they were trying to purchase was no longer available and they would receive an error.

The Solution:

A reservation system. Once a user hits Contribute, before they enter any of their Credit Card details, they should instantly know whether or not those packs had been reserved for them.

The reservation system will reserve the requested number of packs for 10 minutes while the user takes their time to enter card information and verify everything looks correct upon checkout. This alleviates the stress of having to enter information and checkout as quickly as possible. Once the user sees the reservation timer, they can be rest assured that a reservation has been made for that time period and they do not have to rush their order.

On the Engineering front we are using the Laravel Scheduler to schedule a command that expires the reservations after the time is up. This solves the issue of a user reserving packs and then leaving the website mid-checkout.

$schedule->command('reservations:expire')->everyMinute();