To help you plan for and build Optimizely Configured Commerce extensions that will work with the Mobile App and Mobile SDK both now and in the future, consider the following scenarios when approaching development.
Optimizely recommends adding custom business logic on the API and/or server-side first. Assess the impact of these customizations to ensure they work well on both your Configured Commerce website and the Mobile App/SDK before exploring other ways of extending the system or business logic. Remember that the UI of the Mobile App is not all extensible, so custom changes in the website's UI will not carry over to the Mobile App. The Mobile SDK, however, is fully customizable.
Scenario - Custom Field Required to Submit Orders
You add a custom field to the Configured Commerce storefront and want to require it to have a value before customers can submit orders. You change the relevant API endpoint to accommodate for and require the new field.
While Optimizely does not prevent you from adding custom fields to an API, consider:
- For example, adding a new required property on an API endpoint can be implemented in the storefront but not in the Mobile App
- Explore alternatives like making the new property on the API optional and adding in additional logic to handle the mobile application instance
Scenario - Product Availability Messages
Configured Commerce passes a product availability message to your customers as a string of data through an API. You want to format this message so it is easier for your customers to read. You put logic on the storefront side to insert pipes to parse the message when it displays to customers.
While using pipes in the storefront logic to parse the data string does not break anything, consider:
- The Mobile App uses the data string and displays the product availability message as-is to your customers
- Explore alternatives like adding logic to the relevant API if you want to expose additional values for use on both your Configured Commerce website and Mobile App
Reference this article for more about the server-side customizations and extensions available to you: