Rob Dempsey, a Certified Scrum Practitioner and Agile Development coach, approached us about launching a line of Agile Development training videos. During Phase 1 of the project he requested that we create an e-commerce store capable of doing digital products with instant downloads.
The Shopp plugin for WordPress was a perfect choice and did everything he wanted to do. However, after attending a conference on marketing Video products, the client changed his mind and wanted to switch his offering to video training on a Subscription basis. He wanted to keep the store, since he would have a couple of other products, unrelated to the subscription, to offer now and in the future. The final requirement was that the subscription had to be purchasable in 1 Click. That is, once they click the button to sign up, they had to land on the check out page, and not get the ‘Add to Cart’experience.
After perusing the Shopp API, I came up with a solution. Shopp allows you to specify your own call backs for AJAX events, and by supplying a window.location event inside of my custom ShoppCartAjaxHandler(), I was able to make the 1 Click check out a reality really easy.
var ShoppCartAjaxHandler = function (cart) {
(function($) {
window.location = '/shop/checkout/';
})(jQuery)
}
For the subscription, we had two things at play – the product that they buy (the subscription itself) and the actual product that is delivered (the videos in the subscription). The client did not want the subscription to auto-renew, so creating a product out of the subscription was easy, and allowed us to leverage the ecommerce engine built into Shopp. However, we had to create our own ‘Digital Product’and a way to deliver the goods to his subscribers. We did this by adding a metabox to the Add/Edit Post screen in WordPress in which we could specify some of the videos meta data.
We knew we were going to utilize Amazon S3 for storage, and had already made that easy by implementing S3FS, a Fuse plugin to mount an S3 bucket to the server like a network share. By symlinking this mount into the wp-content folder, we were able to allow the client to upload files directly to Amazon S3, and then select them in a drop down in the metabox we created.
We also gave him the ability to embed two versions of the video in Flash in our metabox. The first version was a teaser video, essentially a trailer to entice visitors to sign up. The second was the full movie in streaming format (still Flash). He utilized Wistia for this, since they provide awesome stats on his video viewership. To round out the solution, we used Shopp’s Customer API tags to control the display of the video and download links to only logged in subscribers, and added a List of the video subscriptions to the Account management pages that Shopp provides. We also leveraged S3′s ability to create expiring links so that we could further control the sharing of download links with non-paying friends. (Piracy hurts independent producers, folks).
We found that with a little bit of ingenuity and the careful study of the Shopp API that we could cleanly implement a non-standard use of the plugin with very little effort. Shopp will support subscriptions in the future, but since the client wanted something between a normal subscription and a digital product, I’m not sure we would have been able to leverage it the way that we wanted anyway. Either way, we were able to put Shopp to good use, and make our client very happy with the result.
If you’re interested in checking our solution in action, especially if you’re a developer interested in what Agile methodologies and Scrum can do for your process, head over to Agile Development with Rob Dempsey and check out his Agile Video Training series.
I always enjoy learning how other people employ Amazon S3 online storage. Check out my very own tool CloudBerry Explorer that helps to manage S3 on Windows . It is a freeware.
I’m always amazed at how some people can figure out how to get plug ins to do things that they were not originally intended to do… my hat’s off to you!