« back to blog

May 7 2013

Very excited to introduce Plugins and the 3rd Party Store!

I’m really excited to write this post today, it’s been a long time coming and I’m really happy to announce the plugin system. This is huge.

For many people Pancake works awesomely, however there are somethings that people would like different, myself included that really only fit my workflow and not that of the entire user base as a whole. One of which is invoice numbering, so I will use the new invoice numbering plugin as an example here so you can see the power and flexibility this brings to the system.

As it is right now, Pancake increments invoices based on the last invoice, so if your made #2005 the next one you created would be #2006 and that’s great. I number my invoices a little more complex to help me understand at a glance some more information about the invoice and like to include the date in the number, 20130506-001 for example. That tells me that the invoice was the first invoice I created on May 6th, 2013, each subsequent invoice I make that day will increment the integer count and will reset to 1 the following day, 20130507-001. Follow me so far?

To make this sort of thing happen before I would have needed to either modify the core functionality either locally or impose my methods on everyone and ship this new numbering as the new way, Evil Dictator like. Neither were awesome but this new plugin system makes this a breeze.

Where possible, Pancake now has hooks built in that you can register events with and manipulate the data in a rather easy way. In this case, I needed to register an event for “invoicenumbergenerated” which is currently returning the number “2001”, which is the core format for generating invoice numbers, and step in to modify that number to fit my new invoice number formatting convention.

So now, when Pancake goes to return a value it checks to see if an event is registered and if it finds a registered method it hands that off, allows the method to do its thing and returns that modified data set. This really opens the doors for customization and extension of Pancake in amazing ways.

Each plugin however can be built for more than just one set of rules in mind and as such, Plugins have their own settings so you can enable user configurable options to really make your plugin fit a need. For instance the invoice numbering system plugin allows for customization of the date and naming. To get my numbers the way I like it I use “{date:Ymd}-{int:4}” which tells it to use the PHP date method format for the date and follow it up with an incrementing 4 digit integer. You may want to change that to be just “{int:6}” to get an 6 digit number or maybe you want to output your date with “May 5th, 2013 - 00001” which is fine as well. This gives you the freedom :D

There is now a Plugin management settings area that allows you to see the list of available plugins you have allowing you to choose to enable or disable as you please and in the coming few weeks we will be rolling out the “Third Party Store” where users will be able to upload themes and plugins that they have created and you will be able to effortlessly purchase and install them.

We know that we serve a very gifted user base and we are excited to be able to help improve everyone’s lives by making it not only easy, but as worthwhile to create plugins and themes for Pancake as it can be.

In the coming few weeks we will be finalizing details for all of this, if you are a theme or plugin developer who is interested in helping please email me, lee@pancakeapp.com and we’ll chat.

I also wanted to take a minute to give some “props” to some people who are diligently working behind the scenes in one way or another to help all of this along. They are good friends, trusted peers and some pretty swell people to follow on twitter as well ;)

Adam Jackett => @darkhouseca
Bruno De Barros
Jack Whitting => @jackabox
Michael Price => @web_mech
Eric Roberts => @Cryode
Zack Kitzmiller => @zackkitzmiller
Phil Sturgeon => @philsturgeon (Without Phil’s help and some sharing of code this Plugin system would not have happened, and he has an awesome book just out)

This plugin system will be rolled out in the next couple beta releases so you’ll see it in your V4 admin area soon. The possibilities for this are endless, the invoice example I gave is just the tip of the iceberg, you can use this to hook Pancake together with other systems to suit your needs.

I hope you can see why we are so excited. Over the coming few weeks I’ll be sharing some more awesomeness with you, it’s an exciting time around here!