Elastic Path Commerce Development

Commerce Manager

Commerce Manager

The Commerce Manager is a web application built on the Eclipse Rich Client Platform (RCP) and Remote Application Platform (RAP).

RCP/RAP architecture

The Commerce Manager (CM) web application is composed of several feature plugins that contribute functionality to the system. All feature plugins are dependent on the core feature. The core feature exposes not only all required libraries but also provides access to the Elastic Path core jar. This core jar contains the lower layers of the Elastic Path architecture including the persistence layer, service layer, and domain objects. The persistence layer of the core jar uses the JPA object relational mapping API to store and retrieve domain objects directly to/from the database.

The CM performs operations by using the service layer (which delegates to the ORM-based persistence layer) to retrieve domain objects from the database. These domain objects encapsulate both data and functionality in typical object-oriented style. Field values of these domain objects are then displayed using SWT controls in the Eclipse UI so that the user can edit them. The SWT controls are bound to the domain objects using a databinding framework that updates the domain objects when controls are modified in the UI. The databindng framework also provides validation and conversion of UI types to the actual field types in the domain objects. Because the controls are directly bound to domain objects, saving changes to a domain object is simply a matter of passing the object to the service layer to be persisted.

Important Eclipse concepts

The following subsections describe how CM functionality is mapped to some of Eclipse's key UI concepts.

  • Views - In the CM, Eclipse views are typically used either to allow users to specify search criteria or to display search results in a table.
  • Editors - Editors allow users to modify existing Elastic Path domain objects. In a development environment, editors would typically be used for editing text files. However in the CM, editors display SWT controls for modifying object data rather than a free form text editor area.
  • Wizards - Wizards are used to create new domain objects and often contain a set of controls that is similar to those on the corresponding editor for the domain object. However, wizards should only request required information from the user and then defer to the editor for specifying additional details.
  • Dialogs - When viewing or editing a domain object in an editor, dialogs are used to create and edit sub-objects. For example, in the Customer editor a dialog box is used to create and edit addresses.
  • Perspectives - Eclipse perspectives define an arrangement of views around an editor. The CM uses several perspectives to group functionality that is relevant for a particular user role.
  • Eclipse Forms - The Eclipse Forms API applies a web-like look and feel to SWT controls. The CM uses Eclipse Forms in all Eclipse UI categories including editors, views, wizards, and dialogs.