In 2017, I was contacted by the writers and creators of a role playing game who had a unique problem. Orders for their game were being placed via two separate channels, and the team required a very specific solution that allowed the orders to be managed in one place. By building a completely bespoke, fully-integrated WordPress plugin, I was able to provide a long-term solution.
Spidermind Games are the writers and creators of Elite: Dangerous Role Playing Game (EDRPG), which is based on the successful video game by Frontier Developments. The game is a fully-backed crowdfunded project that consists of both virtual and physical products. EDRPG already had an existing WordPress website with an integrated WooCommerce account, and were receiving orders through this channel. However, they wanted a way to efficiently manage all orders – from both the crowdfunding platform and their website – in one place.
As with many Kickstarter projects, EDRPG’s products become available at different times, and orders could contain a combination of printed materials and downloadable PDFs. This would potentially mean that backers would have to wait until each item of the order was available before being shipped. They had no way of splitting, labelling and actioning the various stages of their orders. Also, a third-party company, GamesQuest, was chosen to fulfil EDRPG’s orders. To process the orders, GamesQuest required a CSV in a specific layout to match their existing processing systems. It’s incredibly important to Spidermind that their backers aren’t left to wait significant amounts of time for orders to be fully completed before being shipped. Once a product becomes available, they want their customers to receive it as soon as possible.
The solution was a bespoke WordPress plugin that organised both the web and crowdfunded orders, that allowed the team to split, label and ship orders, and that provided a CSV that met GamesQuest’s standards. Features of the application include:
- An admin page that the user can access through WordPress dashboard
- A page that lists all orders
- The ability to mark orders as virtual or shipped, two states that do not currently exist in WooCommerce by default
- A button that allows Spidermind to view orders in more detail, to see the products within that order and separate using designated prefix codes
- This enables individual products to be dispatched when available
- Whole orders and individual products can then be marked as shipped so they no longer appear on the CSV for GamesQuest
- In the case of an order being wrongly labelled, filters were added so that the user can review and update orders
I used PHP and a MVC (Model View Controller) design pattern to develop the application, which utilises and extends some of WordPress’ and WooCommerce’s existing functions. I also leveraged some Illuminate packages for communication with the WordPress database. This enables both the Plugin and WooCommerce to continually keep orders in sync.
An admin page that the user can access through WordPress dashboard
A page that lists all orders
The ability to mark orders as virtual or shipped, two states that do not currently exist in WooCommerce by default
A button that allows Spidermind to view orders in more detail, to see the products within that order and separate using designated prefix codes
This enables individual products to be dispatched when available
In the case of an order being wrongly labelled, filters were added so that the user can review and update orders