The Catalogue template primarily maintains information about the organisation
of items and details of each item. Items could be considered as entities
of an e-business portfolio of products and/or services that are available to
internal and/or external consumers or indeed prospective customers.
The template supports a straightforward and comprehensive interface for easy
manipulation of catalogue information in the database.
A catalogue can have any number of categories. Each category has a standard
set of properties such as name and description and is assigned a unique identifier
(nodeID) when created. A multi-level hierarchy of categories can be formed
by linking each category to a parent identifier (parentID). Such links
can be formed when a category is created or modified. When a category is created
without a parentID or with a parent identifier of value zero, then it
is considered a top-level category. Each top-level category is implicitly a
sub-category of a virtual root category.
A catalogue can also have any number of items. An item has a standard set of
properties such as item code, description and keywords. It can also have multiple
prices and can be associated with multiple pre-existing files created by the
File Object. Each price has a standard set of properties
such as price order, base price, currency and description. Every item in the
catalogue is automatically assigned a unique identifier (itemID) when
it is created.
A newly created item is implicitly linked to or becomes a sub-item of the root
category. This implicit link is removed when the item is explicitly linked to
another category. An item can be explicitly linked to more than one category.
The catalogue template also allows explicit links to be removed and will again
implicitly link an item to the root node if the last explicit link is removed.
The catalogue template automatically maintains a marker (contentsMkr)
to indicate the presence of a category’s sub-entities (i.e. sub-items
and sub-categories). When the category is modified to change its parent, its
hierarchy of sub-entities also ‘move’ to the new parent. If instead,
a category is deleted from the catalogue, its parent category will automatically
become ‘foster’ parent to its sub-entities.
Items can also be logically grouped in a non-hierarchical manner within a container
item. The sub-items or contained items are all linked by the itemID
of the container. Every item in the catalogue is assigned a marker (containerMkr)
that denotes membership of a group. An item can belong to only one group
otherwise it is a self-contained item. The catalogue template automatically
maintains the integrity of each group of items by adjusting the container marker
as appropriate. For example, when a container item is deleted, its contained
items are automatically marked as self-contained.
The catalogue template allows categories, items and prices to have custom properties.
Meta data properties allow the standard set of properties of Whtiebeam objects to be
extended to cater for the specific requirements of the client.
The catalogue template allows an extensive set of search criteria to be specified
for retrieving categories and items. Either of these searches can be orientated
around a category or an item. For example, a search for the parent categories
of an item can be conducted as can a search for the sub categories of a specified
category. Similarly, all items linked to a particular category and that category’s
sub categories can be retrieved, as can container items and/or contained items.
To narrow down the search results, keywords can additionally be specified along
with the elements of each record in which to attempt a match. It is also possible
to specify how much data is returned for all categories or items matching the search
criteria. Reducing the amount of data returned may increase the overall turnaround time
for the search.
It is also possible to specify the index of the first item to be retrieved
from the set of results matching the set criteria.
The diagram below shows the type of relationships encapsulated by the Catalogue
Consider a video rental outlet that has a library of films. The details
of each film such as title, release date and rental price can be recorded as
a catalogue item. Films in the catalogue can be divided into categories such
as musical, comedy and thriller. Any film that is a musical comedy can be linked
to both the comedy category and the musical category. Each film can have a regular
price and perhaps a discount price for film club members.
Also, it may also be appropriate to form a grouping of old films
and another of newly released films through through items that have generic values
such as discount or premium to the regular rental price.
Films are sometimes promoted with other items (e.g. free T-shirts) and images
of these along, with the box cover, can be recorded as files using the File
template. A film can then be linked to as many of these images as is appropriate
which can then be used as prompt when the film is being ordered.
This application developers guide in its entirety can be considered a catalogue
with items organised in a simple hierarchy of categories:
would occupy the first or top-level category in the catalogue.
Whitebeam objects through
which template services are requested could occupy the second level of categories.
Each Whitebeam object
has methods and/or aggregate types that could be the third level of categories.
The individual object
methods and aggregate types can be items linked to the methods and aggregate
types categories respectively.
An example of a non-hierarchical group of items would be T-shirts of the
same design but different sizes in an online clothes catalogue. A user browsing
the catalogue would be presented with the container item that would contain
all the generic details of the T-shirts; if they decided to order they could
then be presented with the individually sized items within the container.