In Digital Marketing one of the most commonly used functionality is the catalog. I recently worked on a solution where SharePoint’s unique features helped build a flexible, robust information request/catalog module. One of our main goals was to ensure that the information in the catalogs can be maintained by non-IT staff.
We implemented a solution capable of handling multiple catalogs from a single list. A SharePoint list was created to store information about the items such as product description, features, cost etc. Let’s call this list "Catalog list" and each item in this list was classified by category. Each category represents a separate Catalog. In order to put things in perspective, let’s consider an example of building an e-commerce site for a high end automobile dealer. Possible examples for Category would be Cars, Trucks and Motorcycle. We added an additional column called the Sub Category. This allowed for each Item to be further classified into Sub Categories, providing us with additional capability to better organize information in the catalogs. Staying with our example of a e-commerce site for an automobile dealer each category could be further classified based on vehicle size such as compact, Standard and Full Size. Using the Sub Category is optional and it is used only in scenarios where it helps better organize items when displayed on the web page. In our solution we designed it in such a way that the items belonging to a certain sub category within a category will be displayed in a single tab on the Catalog web page.
The Catalog list contains the information about the item, brochures(pdf files) for the item are contained in a document library and Images showcasing the item are contained in an Image Library. Lookup columns help create relationships between lists by allowing a many to many relationship between lists. This allows for more than one brochure or image to be associated with a particular item in the Catalog list. A many to many relationship means a brochure or image can also be associated with more than one item on the catalog list.
A Lookup column on the document library links documents in the document library with the corresponding item in the catalog list. Similarly a Lookup column on the image library is used to link one or more images in the image library with items on the Catalog list. Linking an item to more than one image allows the capability of having an image gallery on the catalog web page.
We used a CAML query to retrieve information based on the category from Catalog list.
newquery.Query = "<Where><Eq><FieldRef Name=’Category’ /><Value Type=’Choice’>" + strCategory + "</Value></Eq></Where><OrderBy><FieldRef Name=’SubCategory’ /><FieldRef Name=’SortOrder’ /></OrderBy>";
Brochures and Images were also retrieved through CAML queries. The query is used to retrieve items from the document or image library based on the value of the lookup column .
newquery.Query = "<Where><Eq><FieldRef Name=’LookUpColumn’ /><Value Type=’Lookup’>" + strItemName+ "</Value></Eq></Where>";
The lists are created on the site collection level. This allows the use of a single set of lists for any catalog created within the site collection. This is particularly helpful when the website contains a large number of sub sites with an equally large number of catalog lists. Creating the lists on the site collection level ensures that all the catalog information is accessible from a single location.
On the front end there are a number of ways the data can be displayed in the required format. A ASP. Net repeater control or a data table can be used in formatting the data in the required format.
SharePoint web parts can be used to create a template for the catalog page. To setup a catalog all the user has to do is add the web part to a publishing page and populate the list. SharePoint lists are easy to setup and requires only minimal technical expertise to maintain. Once the Catalog has been setup it is fairly easy to maintain the lists. SharePoint provides an intuitive user interface requiring only minimal training for non-IT personnel to be able to work with SharePoint lists.
Returning to our analogy of building an catalog module for the internet site of an auto dealer, imagine that the requirement was to provide the capability to request information on specific vehicles. In our solution we added a check box for each item on the catalog. The customer selects the vehicles he is interested in from the catalog and clicks the "Submit" button. We designed a mechanism on the OnSubmit event of the command button to store the selected items in a SharePoint list. Let’s call the list the "Information Request" list.
The customer is then taken to an information request form with fields for providing his contact information and options for either asking questions or requesting more information on the vehicles from the dealer. On clicking the submit button on the request form the user is taken to a "Thank You" page and the contact information is stored along with the selected items in the Information Request list. We also created an event receiver on the Item update event of the Information Request list to send out an email to a sales representative informing about the customer’s interest in the selected vehicles. The Information Request list acts as a sort of fallback in case the email module fails.