Develop Your SCA Customization
You should use the SCA developer tools only if you are customizing the Kilimanjaro release of SuiteCommerce Advanced (SCA) or earlier. If you are implementing the Aconcagua Release of SCA or later, the best practice is to use themes and extensions to customize your site unless your customization requires access to objects not available using the Extensibility API.
SCA provides a fully functional application that you can use to implement your ecommerce solutions. The Kilimanjaro release of SCA and earlier were designed to give you access to all SCA source code and to let you customize the application to fit your specific business needs. The source code for the SCA application is organized into modules. You can make changes to existing modules or add new modules to modify or enhance the functionality of an SCA website. You can change everything, from the user interface of your site to adding your own custom logic and functionality.
This section outlines the process for using the SCA developer tools. Follow the procedures outlined in this section only if you are customizing:
-
An SCA site using the Kilimanjaro release or earlier.
-
An SCA site using the Aconcagua release or later and you need to access JavaScript, SuiteScript, or configuration objects that are not available using the Extensibility API.
To make changes to SCA, you must have experience working with JavaScript, TypeScript, HTML, and CSS. The level of experience required depends on the types of changes you want to make. The core functionality of SCA can be augmented or modified, but advanced JavaScript programming skills, including knowledge of Backbone.js and jQuery, are required. For more information, see What Resources Do I Need?
The module source files for SCA 2019.1 and earlier are JavaScript files with .js filename extensions. The module source files for SCA 2019.2 and later are TypeScript files with .ts filename extensions. For more information about TypeScript, see TypeScript.
Before making changes to SCA, you must read and understand Best Practices for Customizing SCA. When reviewing these best practices, it is important to understand the following concepts:
-
Customize – refers to all changes you make to SCA. Customizations can include new features and modules that you create, extensions to JavaScript functionality, and overrides to JSON or template files.
-
Extend – refers to customizations you make to JavaScript code or style sheets. In the case of JavaScript, this refers to changes that alter or enhance the behavior of properties and methods. This involves using the JavaScript prototype of an object or using a helper method like Backbone.extend.
-
Override – refers to changes where you replace the functionality of an entire property, method, or file with your own custom version. In some contexts, override is the only option. In general, however, you should not use this process when making changes to JavaScript source files, TypeScript source files, or style sheets.
-
Configuration Modification – refers to changes you make to the SCA configuration record user interface by modifying the configurationManifest.json file. This involves creating custom JSON configuration modification files. This method requires the Vinson release of SCA or later.
Before customizing SCA, be sure to read and understand the following topics:
-
Customize with SCA Tools – describes the knowledge, skills, and resources you need to customize Commerce websites with the SCA tools.
-
SCA Framework Technologies – describes the underlying technologies that the SCA application is built on.
-
SCA Module Architecture – describes the types of modules that make up the SCA application.
-
Set Up SCA Developer Tools – describes how to set up your local development environment.
-
Item Search API – describes how to construct queries for product search results.
-
Configuration File Types – describes how JSON configuration files impact the SuiteCommerce configuration record user interface.
When you are ready to start customizing SCA, read the following topics to learn more: