About a year ago we got an email from August at BookLoco, LLC. They had a problem with their site, eBooks Are Forever, and were hoping we could help. Their issue was that they were using WooCommerce for their cart. Their business is selling ebooks from independent authors to libraries. The problem was that most libraries tend to just “add all” and doing so was killing the cart. It was running out of memory because there were so many items to add to the cart. This was causing a timeout issue.

Initially August was asking about ExpressionEngine. Most of the marketing portion of the site is now built out in ExpressionEngine. August and his team took care of that as well as the design for the site. We merely brought that into the store area and borrowed from it to complete the control panel. But August and I discussed it and decided that all of the commerce add-ons for EE would still have the same issue. We needed something that was custom that would not bog down on several hundred (or thousand) items. Enter Laravel.

For those of you reading this that are not developers, Laravel is a framework for the PHP development language. It has a lot of packages that allow for faster development timelines and better code. So we decided that we needed to use Laravel.

We created a control panel with the appropriate level of permissions for the different user groups needing to access it. So authors can have a login, upload images of their book covers, write descriptions, enter in information for getting paid, etc. Libraries can log in to make purchases. The system even allows for Purchase Orders. And Admins can go in to administrate the system, manage users, etc.

We also utilized Laravel’s power to create an API that would later be used to integrate with outside systems and extend ebooksareforever. It also allows us to control the checkout process. We can tell if a user has a book checked out and how many copies a library has available to them for users.

I think it is safe to say that this type of functionality would have been much more difficult in a Commercial Off The Shelf System. This was a unique problem, a unique application, and my only sadness is that I did not come up with it. I really think August and his team are onto something here. We are just happy they have allowed us to be part of the team.

It is no secret that we are primarily an ExpressionEngine shop but we do work with other Content Management Systems. And on occasion we know it is best to drop all of the CMSs and go with something that is custom. If you think you have a unique problem that requires a unique solution we can help. Just email me and we’ll get started.