Let’s face it, in SharePoint 2013; Search is one of the main factors driving migrations forward. Otherwise, many would be content with their SharePoint 2010 as it provides a solid framework for collaboration, even today. Recently, I have dived into a new feature only available if you migrate to SharePoint 2013 On-Premises, at least for now. This feature is called the Product Catalog. Hold on! Don’t leave just yet, that is precisely the problem this amazing feature is encountering. Another naming problem, very similar to the issue we saw with “What is SkyDrive Pro”. Another feature misunderstood because of its’ name. The Product Catalog actually has nothing to do with products being sold using SharePoint.
Building Search-Driven Announcements using SharePoint 2013 Catalog
To show you the Product Catalog, I will use a basic scenario where I have an intranet and I want to be able to publish announcements to it. But, before we can dive into these features we need to recap the concept we covered of Cross-Site Publishing and the Product Catalog itself. See, if you just finished or are starting to migrate to SharePoint 2013, you probably have heard about this; Continuous Crawl, Content Search, etc… and you might be wondering how exactly that works.
I strongly believe that content creation should be separated from content consumption when architecting Intranets, Extranets or Internet SharePoint Sites. This has been difficult in the previous versions due to the actual limitations of SharePoint. However, today with the SharePoint 2013 search, we can help ease the content creation for our Power Users. Have them focus on creating your content in easily identifiable lists within a Site Collection and build a sophisticated and beautiful Publishing Site Collection that will leverage Search to pull the information they have created and display it the way you want. In a perfect world, the content creator never travels to this publishing site to “edit page” and the actual content is “fresh” by evolving as content is added to the Search Index.
Start by building the Site Collections
For my example, I will be creating a Content Authoring Site Collection using the Product Catalog template and a Publishing Site Collection that will display this information.
This gave me an empty Product Catalog Site.
When I explained what the SharePoint 2013 Product Catalog is, I mentioned that it’s simply a feature on a site that creates a list called Products. However, you are by no means forced to use this list. In fact, I will not use it to create my announcements and rather create a custom list.
All it needs now is some columns, but not just any columns because I need to make sure they will be searchable. A regular column will not do, I will need a Site Column because in SharePoint 2013 they are automatically associated to a “Managed Property”. Managed Properties are what the Search Engine uses to find information or values, not columns themselves. I also want to make sure my Titles are unique because I will need them to build URLs in the future.
“Using the SharePoint 2013 Product Catalog, you can automatically create friendly URLs using values of your item properties.”
Remember that these announcements will never be shown here, in this Site Collection. They will be crawled by our Search Engine and displayed in whatever Site Collection we want. Therefore, we do not want the URLs to point back to this “Authoring” Site Collection but rather build them automatically based on their properties. It’ll become clearer as we continue.
So I enforced unique values:
And followed it by adding my Site Columns. I created one called Body where I will store my actual announcement and a Managed Metadata column called Item Category. Item Category actually comes out of the box, though I did not have to use it, all I did was map to my own Term Set.
Here is what the Term Set I created looked like.
This part is actual very important, think about why we use this column. Well, it’s the only one that is available cross site collections, web applications or even farms. This means that when we create new Announcements with new categories, they will automatically be available in all sites using it. You will see that a big benefit of using the Product Catalog for Cross-Site publishing is the friendly and managed navigation URLs. This category will be used to build our URLs.
Then, I created a few announcements in the custom list.
Turn the list into a Catalog for the SharePoint 2013 Search
So far, nothing impressive at all because all we did is create a custom list, called it announcements and added two new Site Columns to it. Now we need to tell SharePoint 2013 Search that this is a Catalog that can be used or pulled from.
For this, I went to the Catalog Settings in the List Settings.
There, I checked the option to enable the list as a Catalog.
Anonymous Access: I often get questions relating to this option. Remember, we are using Search, meaning our content will be crawled into the Search Index and others will query this index to find the content. The enable anonymous access option does one thing, it tells search whether or not people need to have access to the actual item to see it wherever it is displayed. It has nothing to do with accessing this Announcement Catalog. It has everything to do with security trimming of the Search Results that will appear on pages.
Catalog Item URL Fields: This is awesome, choose which column or item property will be used to build URLs. In this case, I want my unique Title to be part of the URL.
Navigation Hierarchy: This is optional but is, at least for me, the heart of the Product Catalog feature. It allows you to select a property that will be used to categorize your items, in this case our announcements. But it will be used to drive your actual Site Navigation, either entirely or only a small part of it. Will cover this further in this article.
Don’t forget to revisit my explanation of the SharePoint 2013 Product Catalog before we move on if you are not sure of what we are doing so far.
Let’s put this into the Search Index!
Now that we have set up our “Authoring” environment, we are ready to tell SharePoint 2013 Search that it is available. Because we created and added new Site Columns, we are going to need to run a Full Crawl.
However, the beauty of SharePoint 2013 and things like Continuous Crawl is that the Power User could request a Full Crawl on his List or Document Library now without contacting IT or requesting a Full Crawl of the farm. We can do this through the Advanced Settings of our list.
Configure a SharePoint 2013 Publishing Site to use the Catalog
We’ve created an announcement list with the content that we want and enabled the list as a Catalog with the options that fit our needs. We then ran a Full Crawl to make sure all this information, our catalog, was stored in the Search Index of our brand new SharePoint 2013. Next, we need to connect our Catalog where we author our content to the desired Publishing Site Collections. Once we’ll do that, we’ll be able to pull information from our catalog using our Search Web Parts.
To do this, I navigated to the Site Settings and visited my Catalog Connections.
There I was able to “Connect” my Catalog.
Getting things properly configured for our scenario:
I want my Announcements Catalog to be integrated to my Publishing Site, this is necessary for me to build those friendly URLs automatically based on what the user is looking at. Othewise I could just connect it but there isn’t as much value to that in this case.
Navigation Hierarchy: You may have noticed that it automatically selected the column I had specified earlier. I chose the Term from my custom Term Set that I used to classify my announcements earlier. Because it is a Managed Metadata column from my Term Store, it is also available in this Publishing Site Collection.
As for the Navigation position, it’ll have to be stored at the root so that visitors will be able to choose Announcements and drill down through the available terms available.
You see, Managed Navigation in a Site Collection uses a “Site Collection Term Set” to show the terms within as your main navigation. What this does is take the property you had assigned in your Catalog List and copy and pin the terms to this “Site Navigation” Term Set. This means that it is completely independent but can be configured to be “Sync’ed” with your Term Set so that any additions or removals of terms will be reflected in your Navigation.
For now leave the other options to their default values and press on Ok.
Woah! My Terms have been inserted into this Site Collections Managed Navigation. It didn’t replace it or take over; it simply added that one term into it. But I am not sure I like the order, so I’ll go in the currently used Term Set to update it.
Understanding the Category and Item Pages
The beauty of Search-Driven content in SharePoint 2013 is that you do not need to maintain multiple pages. Before upgrading to SharePoint 2013, you might have use the Publishing feature with Page Layouts to create announcements, events and so on to be displayed to your users. This meant that you had way too many pages to maintain and as time passed by it became extremely difficult to maintain.
With what we just built, we will need to only maintain two pages. When using the Product Catalog you will need a “Category Page” and an “Item Page”. The concept is simple, these two pages do exactly the same thing. They both have a Content Search Web Part that shows content based on the URL built by the Catalog feature. Let me give you an example; remember that our announcements were classified under “Executive”, “General” or “Important”? Well, these are the Categories and we will need a page that shows all the announcements for a given Category. But we don’t want to create three pages and have to create a fourth if ever we get a new category or rebuild the Web Part query each time.
For the fun of it, try clicking on one of these categories in the navigation; you will notice the URL is driven by that choice. But whatever you choose out of these three choices, you will land on the same page that will filter the results shown based on that choice you made. And when you click on an item, whatever this may be, it will bring you to an item page with the Web Parts that will filter on that.
Why do we manage two pages? To have two different layouts, many times you will want to display all announcements in a category very differently than a single announcement. Still, I LOVE the fact that I will need to just manage two pages now.
There is nothing to it really, create any publishing page using the layout that you want in the Pages Library for example. Just makes sure you have two of them easily identifiable.
The magic happens with the Content Search Web Part you will be adding within each of these pages.
It’s important that you select your Catalog as the Source and to restrict the results by the current and child navigation terms, to use the navigation as filters. You will also need to fine-tune your query to filter on the property that you want. For example, I want my Item Page to only show Catalog Items where the Title Column is equal to the last part of the friendly URL. Remember that when I first created my Catalog List in the Authoring Site Collection, I could specify which property to use for the URL? Well I am going to use it now in my query:
The Title property should contain the same value as the URL Token 1. URL Token starts from right to left and increments after each forward slashes.
We are close to the end! Now we need to tell our Navigation Terms to use these two pages we just built when visitors click on them in the Navigation.
Now, all I need to do is start navigating and see the results without any links to or navigating to my “Authoring” Site Collection. I have built Search-Driven Announcements using the Product Catalog.
Use the SharePoint 2013 Product Catalog in other contexts
Hopefully this article has helped ignite some ideas for your next SharePoint 2013 project. If you are migrating to SharePoint 2013, make sure to leverage this and Search to build completely new architectures. There is nothing worse than to see SharePoint 2013 installed and architected as if it was a SharePoint 2010. The Product Catalog feature is, as you can see, a very powerful feature that can be leveraged in many different scenarios. After seeing everything we can do with the Search features in SharePoint 2013, I don’t see why I would not separate the Authoring of content from the Consumption of content. It makes it easier for the content creator to go in one place and create these rather than trying to navigate in a highly branded and heavily used publishing site.
I will be doing a live webinar on how to build a Product Catalog if you are interested in seeing it.