The catalog module is an essential part of every web shop application. At the very basic level, it is responsible for the management and display of categories and products. It is a foundation for later modules, such as checkout, that add the actual sales capabilities to our web shop application.
The more robust catalog features might include mass product imports, product exports, multi-warehouse inventory management, private members categories, and so on. These however, are out of the scope of this chapter.
In this chapter, we will be covering following topics:
Following the high level application requirements, defined in Chapter 4, Requirement Specification for Modular Web Shop App, our module will have several entities and other specific features implemented.
Following is a list of required module entities:
The Category entity includes the following properties and their data types:
id: integer, auto-incrementtitle: stringurl_key: string, uniquedescription: textimage: stringThe Product entity includes the following properties:
id: integer, auto-incrementcategory_id: integer, foreign key that references the category table ID columntitle: stringprice: decimalsku: string, uniqueurl_key: string, uniquedescription: textqty: integerimage: stringonsale: booleanAside from just adding these entities and their CRUD pages, we also need to override the core module services responsible for building the category menu and on sale items.