Create and configuring our custom store

WebSphere Commerce stores are considered remote stores, as they can be deployed anywhere outside the WebSphere Commerce server. Stores communicate with the WebSphere Commerce server by using REST API calls, taking advantage of services provided by the WebSphere Commerce REST API.We can create and configure our custom store in your Externalized Customization workspace through the configuration and execution of a Gradle script. We can then configure the store assets, sample data, and use your Externalized Customization workspace to customize that store.

Store assets The following assets are used when creating and configuring our custom store:

When you create our custom store, we can publish stores that are based on the preceding assets, with your choice of store names, inventory models, and sample data.

Differences between WebSphere Commerce store versions (local vs remote store)

There are several differences to be aware of between WebSphere Commerce store versions. In WebSphere Commerce Version 8 you publish a store archive using the store publish wizard, where the store is considered a local store. In WebSphere Commerce Version 9, you create a custom store by using a Gradle script, where the store is considered a remote store

Note: We can have a local store in WebSphere Commerce Version 9 only if you migrated your store from WebSphere Commerce Version 8. The following table summarizes the key differences and considerations between WebSphere Commerce store versions:

Local store Remote store
Deployment WebSphere Application Server Network Deployment-based deployment. Docker container-based deployment architecture.
MVC framework Struts. Spring.
Database access Direct access to database by using EJB and data beans. No direct access to database. REST calls are made to the Transaction server.
Tag library Local store tag library. Tag library reimplemented. Tag names remain the same, but Java package library names are different.
Store publish Store publish wizard and SAR files deployed locally. Gradle script and data load deployed remotely on the store server.
JavaScript library Dojo and jQuery. jQuery only.
Cache invalidation Database records exist for all changed data. A scheduler job is used to invalidate the cache registry. Apache Kafka is used to pass the invalidated cache ID from the Transaction server to the store server.


Before starting

Ensure that you complete the following task: Set up a WebSphere Commerce Developer environment.

Note: We can create custom stores only in your programming environment. After you have created, customized, and tested our custom store, we can deploy it to the authoring or live environment. See the Deployment documentation.

To use the Aurora starter store as a development base, load the WebSphere Commerce Developer database schema and indicate withSample=sampleData to include the Aurora sample data.

Or, to use our own data, after you create our custom store and populate its bootstrap data, we can use the Catalog Upload feature in the Catalogs tool to upload sales catalogs, categories, catalog entries (products, SKUs, bundles, and kits), attributes, asset references, and more into Management Center.


What to do next

After you have published a store, the new published store can be browsed directly without restarting the transaction server, if the cache invalidation function is enabled. To enable this behavior, update the registry from the Administration Console after the remoteStoreDataload scheduler and DynaCacheInvalidation schedule have completed. The DynaCacheInvalidation schedule has been predefined in scheduler by default. If Kafka is configured to invalidate cache from transaction server to store server, then the store server need not to be restarted. This assumes that no new store assets (such as JSP or XML files) were added during publication of the store. If new store assets were added, then the store server must be restarted .