During the spring of 2012, I helped my brother develop a website for his business. His site was developed in WordPress, and he needed to add eCommerce functionality. We chose to add this functionality with the relatively new WooCommerce plugin for WordPress. For credit card payments, he opened an account with Elavon, and subscribed to Elavon’s Converge service (formerly known as Virtual Merchant). He hoped to integrate this service into his WooCommerce powered site, but a Converge payment gateway was not available at the time. I chose to personally develop this plugin for him using the WooCommerce Payment Gateway API, and the Converge Developer Guide.
Developing a Commercial Plugin
After completing this plugin and successfully incorporating it into my brother’s site, I realized this may be something that other’s need. I contacted WooThemes to try and sell this directly on their site. They agreed to take me on, and I worked remotely with James Koster and Mike Jolly (via email, GitHub, and Trello) to clean up the plugin. Upon finishing it, we discovered that my plugin offered the same functionality as one that was completed a few weeks prior. James apologized for the inconvenience and suggested I sell my plugin on CodeCanyon. I subsequently set up an author account on CodeCanyon, and posted the plugin on August 28, 2012. When I removed the plugin in October of 2016, it had sold 429 copies and had a 4.5 star rating.
The Converge Payment Gateway is a plugin for WooCommerce which in turn is a plugin for WordPress. This translates to constant development changes that must be followed to ensure my plugin is compatible with the latest versions of WooCommerce and WordPress. Thus far, two major releases of WooCommerce broke my plugin requiring emergency updates. Other updates incorporated customer suggestions for feature additions.
Needless to say, the plugin has gone through several iterations of updates. It was apparent early on that some form of source control was necessary to track all of these changes, and to better help with any customer’s problems that may arise. The code base was developed in Eclipse, and source control was maintained via git with the repository hosted on Bitbucket. Bitbucket was chosen for its free private repo hosting. After removing the plugin from CodeCanyon, I made the code base freely available on GitHub.
This project provided an amazing customer support learning experience. I pride myself on being extremely responsive to customer needs, and love solving the problems they encounter. Though the financial gain from this plugin is minimal, I greatly enjoy helping others. The typical client for this plugin is likely bootstrapping their personal eCommerce site, and has probably suffered through several technical problems along the way. When they purchase from a site like CodeCanyon, they probably don’t expect much support for the price they paid. My goal is to contradict their past experiences, and do everything in my power to get them up and running as soon as possible. My fulfillment comes from finding solutions to their problems.