Today we are releasing a reference architecture and sample app for running e-commerce apps on Heroku, with a simple pattern for integrating customer, order and product data with Salesforce via Heroku Connect. The documentation and open source repo can be found on GitHub. The key: Any transaction recorded in Heroku Postgres can be seamlessly integrated with Salesforce via Heroku Connect.
Many Salesforce customers are looking to extend their Salesforce deployments with e-commerce on Heroku. Whether running a single storefront, launching new concepts and brands, or innovating to improve core retail functions, these e-commerce experiences require orchestration across multiple business functions that already use Salesforce. Common Salesforce use cases include:
- Creation and maintenance of all customer information in the CRM system of record, including order history
- Purchasing on customer specific pricebooks, contracts or purchase orders
- Management of product catalog data using roles and workflows
- Creation and administration of promotions and campaigns
- Agent driven updates to prices, orders, and data (returns, cancellations, changes of address)
- Data consolidation for business and customer analytics and insight.
These companies choose Heroku for their e-commerce runtime environment because they:
- Need high-fidelity, highly bespoke e-commerce experiences
- Prefer using the languages/ technologies they already know (Node, PHP, Ruby, etc.)
- Want to deliver a mix of desktop and mobile browser/app experiences via a single PaaS
- Want to get started fast, on a service with proven scale in production.
Some of these reasons have been discussed by Heroku customers running e-commerce sites on Heroku, such as Soylent and Macy’s. This particular reference architecture uses Spree. There are other examples, such as this AppExchange App for Magento created by a Heroku partner, which use a similar Salesforce data synchronization approach and likewise runs on Heroku.
The sample app we are sharing today features a fictional coffee equipment shop called FIX. Built in Ruby and designed for use at different browser sizes, it has many of the e-commerce functions common to the apps that our customers run on Heroku, including different merchandising modes, a product catalog, shopping cart, and checkout.
Developers seeking to bootstrap a full e-commerce store will need to extend the sample with their own payment gateways, messaging providers, fulfillment vendors etc. What make this sample app different is how it connects into the Salesforce ecosystem: Orders attach to Contact records, service reps can cancel orders from within Salesforce, marketing can update product descriptions inside Salesforce and changes will be automatically pushed out to users.
This reference architecture demonstrates how to unify a representative e-commerce data model with the Salesforce system of record to deliver shopping experiences that are tightly integrated across all customer touchpoints. Contributions that help to improve the sample app, or add new e-commerce use cases, are welcome via pull requests on the repo.