Salesforce provides several tools to any partner organisation who wishes to publish an app on their 'AppExchange'.
The main listing page is: https://appexchange.salesforce.com/
These range of tools help you, the Salesforce partner to
manage the listing, including its title, keywords, and associated images/screenshots
track who is interested in the app, and
handle payment processing of the app licence fee.
The list on the AppExchange you need a few different types of Salesforce environment.
A contributing developer organisation - this is the environment where you have developed your cool new app and have tested it ready to upload to the AppExchange
A business/partner organisation - this is the environment where you would store the Leads and eventual customers who buy your app. After integrating with a payment solution like Stripe it is also where you would store payment history.
The setup steps for publishing on the appexchange are really well documented on Salesforce and I'll signpost to a few of the key user guides below if you are setting this up for the first time.
Stripe is a well known payment solution. You can connect your AppExchange listing to Stripe in order to collect credit card information from a customer and set up their subscription to your product automatically. This has the added benefit of allowing a customer to check out fully online, without requiring your intervention - this is a huge help with scaling.
Once the customer has purchased your app, Stripe controls the recurring billing request and then syncs that data back into your ORG via the Checkout Management App.
Checkout Management App
The Checkout Management App joins your partner ORG with your Stripe account and synchronises customer/payment data between Salesforce and Stripe.
Checkout Management App on AppExchange
Stripe Syncing Issue
I was recently working with the team at ClosePlan, who are working on a great new app for 'Team Selling' within Salesforce.
After configuring their checkout management app, and linking their partner org to their Stripe account everything looked good to go. However, whenever we edited a pricing plan in Stripe, it was not being updated the AppExchange listing.
Sometimes there is a small delay in the Stripe/AppExchange synchronisation but we would make an edit and wait up to 20 minutes and still the new information would not be showing.
The setup guide for AppExchange, Stripe, and Checkout Management app is really useful and using it we tested the web-hooks, usernames, passwords etc for the setup several times.
For those of you setting up your own app here is the overview page: https://developer.salesforce.com/docs/atlas.en-us.packagingGuide.meta/packagingGuide/cma_overview.htm.
However, we were still not seeing updated pricing appearing on the AppExchange listing.
he Eventual Solution
After a lot of hair-pulling we eventually tracked this issue down.
The AppExchange listing front end turned out to be connected to an old Stripe account that was no longer in use by the customer. Strangely, you cannot disconnect the AppExchange from an account once linked. We had to raise a Salesforce Case for this to happen.
Once Salesforce had disconnected the Stripe account from the old listing we were able to link Stripe Account 2. That meant that both the Checkout Management App and AppExchange were connected into the same Stripe account.
More information about ClosePlan
Close Deals Faster. Forecast with Accuracy.
Prevent close dates from pushing and avoid late-stage surprises in the sales cycle by managing a more predictable and transparent sales process. With ClosePlan, the path to close is well-defined & teams collaborate to execute the events needed to win.
Image from Pexels.com