1

Lets say I've a free app on AppExchange (ie managed package) which provides end to end functionality and works great for most customers. Now I'm planning to build add-on logic which will provide additional functionality. This add-on logic to be paid.

Now the question is how do we deliver/prepare such add-on feature on top of a FREE managed package?

Option 1 : Create another managed package with only add-on code

  • More of Challenge here is to maintain (build,test and publish) another package

Option 2 : Add all logic of add-on functionality too in main managed package (with code declared as global) and then create few lines of unmanaged code in customer org directly.

  • Here the challenge is, if the unmanaged code is shared by customer in any public forum, then your paid add-on becomes free. To address same, how about we add some encryption key logic in main package code which is validated against key sent from unmanaged code. If key matches, the unmanaged code works else it simply skips.

Can someone please highlight Pros and Cons of either approach and also advise better options (if any).

Thank you!

1

Simply put, you don't want to do this in an unmanaged package. You'll have absolutely NO control over what happens with your code (esp if you also make it available on Github), you'll have no LMA package that comes with selling it through the App Exchange (assuming you don't distribute using the AE), and no free advertising that comes with the App Exchange distribution if you don't.

You can't do any kind of an upgrade to an unmanaged package, so if your add-on needs the base package to be upgraded in some manner, your add-on will have to do it which would be troublesome for you. I highly recommend you invest the time and money to read Andrew Fawcett's excellent book "Force.com Enterprise Architecture" which discusses the types of issues that you're facing. BTW, what you're suggesting doing could also be interpreted as a means of attempting to avoid paying Salesforce their fees for the cost of distributing your product through the App Exchange.

It's not at all unusual for "free apps" to come with a license which can be upgraded to enable additional features. In my view, that might be the wisest route to go. You then have only one package to distribute, can give a 30 day trial of all the features if you wish to which then goes back to the freeware version after 30 days, or can allow users to arrange for trials with a temporary license if you want with no additional install. Both get upgraded at the same time without any impact to your end users. That would seem to me to be the simplest way to go.

Edit

In response to your comments, yes, you can do this all with one package, but it cannot be an unmanaged package. If you want to charge for the additional features that you enable with a license, your package needs to be managed through the App Exchange. You can simply offer a default "free license" or unregistered version and sell a license that when entered, enables the additional features. Talking to an account rep from the Partner Program would be my recommendation. They can easily explain how that works. It's a very common model for many ISVs. Without it being a managed package, it would be impossible to use the LMA for enabling the added features or managing any kind of upgrade or updates to your app.

  • thanks for detailed response! Even my very last option would be unmanaged, I prefer keeping things managed and under LMA (ie AE package). My query is around how do I make a package free (for most users) and paid (for willing users to pay for additional functionality) at same time, if this is possible with single AE app, then that's best of solution. So is such a license option available in AE? Free and Free+Paid license at same time in single app? PS: I'm no way inclined or even thought of avoid paying Salesforce, seems you got me wrong there :) – Chirag Mehta Apr 29 '16 at 7:17
  • See my edits in response to your comments – crmprogdev Apr 29 '16 at 14:42
  • that will be perfect, let me reach our to AE and also discuss in Partner Portal. Thank you! – Chirag Mehta Apr 30 '16 at 9:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.