This tutorial guides you through a scenario that demonstrates how the system can be customized without making changes to the product's core code. (From a maintenance and upgrade perspective, it is preferable to minimize changes to the core code.)
In this scenario, an anti-virus software company is using a subscription-based model to license its product (subscribe for 6 months, 12 months, etc.). At checkout, the customer must be able to choose to renew their subscription automatically when it expires. If the customer chooses this option, they will be automatically billed at the end of their subscription period.
In order to support the automatic renewal feature, several changes need to be made across the system: a new field must be added to the order table in the database schema, some domain model objects as well as some storefront view and controller beans must be extended, the UI templates and the Commerce Manager client application must also be updated. In this tutorial, you will learn:
- How to make modifications to the database schema.
- How to extend a domain model object and have its new data automatically persisted to and retrieved from the database.
- How to change the store front to make domain model changes visible to customers of the store, including changes to emails sent to the customer.
- How to change the Commerce Manager client application to make domain model changes visible to the store's CSRs.