This document provides important clues about Cartridge Development. It is addressed to developers and can be used as a guideline for the cartridge development.
Cartridges may vary considerably with respect to their actual content and their complexity. All cartridge development, however, follows a general and unified development process, no matter whether the cartridge functionality is simple or complex, generic or site-specific in nature.
The cartridge development cycle, which will be discussed in detail in this guide, can be divided into four stages:
Term | Description |
---|---|
Cartridge | A code container for implementation artifacts like templates, pipelines, Java code etc. that provide business logic or technical functionality to Intershop 7 (Enfinity Suite 6) |
Also see Intershop Studio User Guide for detailed specific operating procedures and instructions. (The Intershop Studio User Guide is available as Intershop Studio's Online Help.)
Before embarking on a development project, the cartridge should be carefully planned. At the beginning, you should focus on some general questions. For example, you need to exactly delineate the functionality of the entire application and decide whether to package the entire application within a single cartridge or to distribute the functionality across a set of cartridges. You should also carefully examine which existing Intershop 7 functionality your project can be based on. See Planning a Cartridge Project for some hints.
The actual development process starts out with several steps to create the cartridge project. These steps include:
Programming new business functionality is at the heart of cartridge development.
Programming typically cuts across several programming layers:
For new business functionality to become available on a server, it needs to be built, packaged, and deployed. The cartridge build and deployment process comprises the following steps:
When starting the development of a new application on the Intershop 7 platform it is recommended to identify required cartridges at the beginning of the development process.
Before embarking on a development project, you should carefully plan and design the cartridge. Planning and designing carefully will save development time and resources, and significantly contribute to the ultimate success of the project.
The following tasks are part of the design stage of a cartridge project.
Complex applications typically consist of more than one cartridge. It is essential to clearly define the overall functionality of the application and how the functionality is to be distributed across individual cartridges. Hence, cartridge development always starts out with a detailed and accurate definition of the functionality that the new cartridge is going to deliver. See Concept - Cartridges | Architectural Layers and Cartridge Types, for a model that can provide orientation.
Once the cartridge functionality has been defined, you should carefully examine connections to existing Intershop 7 functionality. The goal of this exercise is to identify where exactly the cartridge plugs in, and whether components of the functionality you want already exist. Is it really necessary to develop a new cartridge or would it perhaps be sufficient to reorganize an existing pipeline? Do you need to extend functionality or does the core functionality already exist, with only a few modifications necessary?
All cartridge projects are going to depend on functionality provided by other cartridges. For example, every cartridge depends on basic functionality implemented in the core cartridge, such as the cartridge controller class or the base classes for pipelets and business objects. If complex business functionality is implemented, typically many more dependencies exist. Check these dependencies carefully and make sure that all required cartridges are available on the development system.
It is important to be clear about the localization requirements of a cartridge. The cartridge should seamlessly integrate with Intershop 7's mechanisms for localization and internationalization.