Performance Considerations
StoreConnect is built to scale with your demand, our Shared Success approach means we scale your environment according to the volume of paid orders coming into your site.
As incoming orders ramp up on your store, our system will automatically scale to add more servers and load. StoreConnect stores are able to scale to very high order volumes, and we have found that any performance issues usually relate to inefficient Workflow, Flow, Process Builder or custom custom Apex within your Salesforce environment (see below).
If your store is expecting high traffic volume (due to a marketing campaign or the like) it is best to let the support team know so we can pre-scale your servers, however, if you don’t, the system will automatically scale, just with a short delay.
If you are having high traffic volume without a comparable volume of Shared Success fees, and are suffering from site speed issues, you can contact the support team to purchase high performance servers to handle your load. As a guide, if your shared success fees are 10 times the cost of additional scaling resources, you will not be charged for extra servers.
Salesforce Performance Considerations
When StoreConnect accepts an order from one of your customer, it will usually create or update the following records for each order:
- One Account
- One Contact
- One Order
- One OrderItem record per product entry in the cart
- One OrderCampaign record per UTM source clicked prior to purchase
- One Payment record
- One Shipping record (if shipping selected)
- One CampaignMember record per Store Campaign signed up to
- One Attendee record per booking product
- One Subscription record per subscription product
Any custom flows, workflows, process builder and custom Apex you have within your Salesforce org should be optimised so as to not delay StoreConnect from writing to the above records.
For example, if you have customisations within your Salesforce Org that take 10 seconds to complete writing to the above objects, then your maximum order rate from StoreConnect will be limited to less than 6 orders per minute.
This is because StoreConnect must write orders to Salesforce sequentially to ensure consistency in Salesforce with regards to stock levels, account creation and security.
Issues with Long Running Salesforce Custom Code
If your Salesforce Org does slow down the process of creating objects, then you will see delays in the order being placed by the customer and it appearing within Salesforce as StoreConnect just backlogs the orders waiting for your Salesforce org to finish writing.
These delays will be as long as it takes for your Salesforce Org to complete the record creation. However, the orders will not be lost, just delayed in synchronising to your Salesforce instance.
Recommended Approach
The recommended approach for a high performance StoreConnect store is to not fire custom workflows, flows, process builder processes or custom Apex on records created by StoreConnect, and instead, fire any custom code in a queueable action after StoreConnect successfully creates the record.
As a guide, any custom code in your Salesforce instance that happens before create or before update on the above record types should complete within less than a tenth of a second (0.1s) to avoid impacting the ability of your StoreConnect store from handling high traffic volume. Your Salesforce developers should also follow the Salesforce Apex Code Best Practices to ensure your code runs as efficiently as possible.
If custom actions are required on records generated or updated from your StoreConnect store, and performance is a consideration, then use highly optimised custom Apex to achieve this and avoid using Flows, Workflows or Process Builder actions.
Keeping StoreConnect record creation as fast as possible will ensure there is no backlog on orders and your customers receive their notification emails and payments as fast as possible.
Back to Documentation