Salesforce Product Packages

Below is our current solution for how we create product packages and use them in opportunities.  I hope to do other posts like this that give examples of solutions without going into code.  We may build some of these solutions into AppExchange apps one day.

Creating Packages

We first create products in Salesforce that will act as the parent products for packages.  They are the products that users can search for and add to an opportunity like normal.  Using some custom objects and a visualforce page, we provide a way for other products to be related as child products to the parent product.  Children have options like initial quantity, max quantity, min quantity, locked quantity, and is it deletable.  All child prices are rolled up to the package level to form the initial package cost.  A discount can be applied to the package to bring the cost of the package down.  As the package price is changed, the pricebook entry record for the package product changes too so that as users are browsing packages they will see the correct cost.  If the price of a child product is ever changed, then an apex job will detect the change and update packages that used that product.

Using Packages in Opportunities

When package products are added to opportunities, we have triggers that identify the products as package products and copy the package children into the opportunity.  We have overriden the Opportunity page with a visualforce page that displays the user’s normal page layout, but replaces the standard product list with a custom list that highlights the relationship of the child products to the parent products.  Users can discount the package in the opportunity if they want to offer clients discounts or they can delete products that are marked as deletable.  Multiple packages can be added to an opportunity and, if the parent product is deleted, then the entire package is deleted. Enhanced Formula Editor Extension

This Google Chrome extension dynamically injects the Edit Area code editor into salesforce pages where formulas are edited.  Install the extension and when you visit a formula edit page it will automatically enhance the textarea.

Chrome Web Store Link

2015 Update!

This extension has started to receive updates and is listed in the chrome store again.  Have an issue or a great idea for this extension? Visit the github project URL below and create an Issue or contribute to it.


  • Syntax highlighting
  • Tabbing (tab and shift-tab)
  • Parenthesis matching
  • Find and Replace
  • No code wrapping
  • Resize editor window by clicking bottom right corner
  • Full screen feature


  • No downsides! Workflow Search Tool

The Workflow Search Tool makes it easy to find workflows where field names or values have been used in the criteria or the field updates.  Currently there is no easy way to search for workflows like this which can make it difficult to carefully make changes to fields or field values.  The only way I have been able to get this kind of information before is to include the workflows in my IDE project and then do a find in files search.  The benefit of this tool is that the results are displayed in a hierarchical fashion and the matching pieces are highlighted for you.


  • .NET 4.0
  • User must belong to a profile with the “API Enabled” and “Modify All Data” permissions.

How It Works

  • Logs in using the Partner WSDL
  • Downloads all of the workflow rules from the org using the Meta Data API
  • Loads the XML for the selected object and checks the different pieces of the workflow for the search text.  It returns only the workflows that had a match somewhere.