Stage 2: Import list content into the Product Catalog Site Collection

This is a blog post in the series “How to set up a product-centric website in SharePoint Server 2013.”  In this series, I’ll use data from a fictitious company called “Contoso” to show you how to use search features to set up a website based on product catalog data.
Note: Most of the features described in this series are not available in SharePoint 2013 Online.

For an overview of the blog posts in this series, go to How to set up a product-centric website in SharePoint Server 2013.


Start stage 2

Once you’ve set up your Product Catalog Site Collection, as described in Stage 1: Create site collections for cross-site publishing, we’ll import content into this site collection. To do this, we’ll use PowerShell scripts. Before we start, let’s take a look at what’s automatically created in a Product Catalog Site Collection.

In our newly created Product Catalog Site Collection, you can see a default list template named Products.

Products list

The Products list contains a managed metadata site column named Item Category.

Item Category site column

The Item Category site column is associated with the term set named Product Hierarchy.

Product hierarchy term set

To import list content into the Product list, we’ll use PowerShell scripts that will:

  • Add content to the Products list.
  • Add terms to the Product Hierarchy term set.
  • Associate each item in the Products list with the correct term from the Product Hierarchy term set, and display this in the Item Category column in the Products list.


Before we can run the PowerShell scripts, we’ll need to prepare the following:

  • A list of the site columns we want to add to the Products list.
  • A tab delimited text file containing the content you want to add to the Products list.
  • A tab delimited text file containing the taxonomy to be added to the Product Hierarchy term set.


The PowerShell scripts, instructions on how to create the tab delimited text files, and how to modify and use the import scripts so that it fits your catalog data can be found on the TechNet Gallery.


Once we’ve run the five PowerShell scripts, we get the following:

  • List content in the Products list. In our scenario, each list item is a product that Contoso is offering and want to display on their website.
  • Terms in the Product Hierarchy term set. In our scenario, the term set reflects how Contoso have categorized their products, for example one category is called “Laptops”, another one’s “MP3” players, etc.
  • In the Products list, content in the Item Category column is associated with the correct term from the Product Hierarchy term set. The screenshot below shows how the list item Southridge Video Laptop15.4W M1548  is associated with the term Laptops through the Item Category column.

Connection between an item and a term


So, now that we have content in the Products list, the next step is to enable this list as a catalog.



Next blog article in this series
Stage 3: How to enable a list as a catalog


Additional resources

Comments (61)

  1. Bella_Engen says:

    Hi Rick,

    I agree that having the data would make the series much easier to follow, but the data is not available for download.


  2. Bella_Engen says:

    Hi Vijay,

    The Contoso data is not available for distribution.


  3. Bella_Engen says:

    Hello Smith,

    You can download a 180-day trial version here:…/hh973397.aspx


  4. Eric Lytle's response on 22 Aug 2013 8:54 AM to the missing "Item Category" was spot-on. Thank you Eric! ULS logs although very painful to parse, is filled with tons of useful troubleshooting information. Thanks again!


  5. Bella_Engen says:

    Hi Rothrock,

    You can import list data and a term set from an excel file, but those imports will not assign a term to your list items. If you want to use managed navigation on your catalog content, your catalog items need to be tagged with a term from your term set.

    But you could try to import your files, and then do some type of bulk editing.

    Hope this helps.


  6. Bella_Engen says:

    Hi Fix Me,

    If you used the Product Catalog template, the Item Category column should have appeared in the Products list by default.   However, if the Term Store is not available, it sounds like there is something not quite right with your configuration of the  Managed Metadata Service (…/12713.sharepoint-2013-how-to-configure-managed-metadata-service.aspx).

    Hope this helps.


  7. Cern McAtee says:

    Paul, if you want the URL for the PDFs to be relative to the publishing site, then you should put the PDF library either in the publishing site collection, or in a separate site collection within then same web application as the publishing site collection (for example, if you're creating an intranet, use http://mainsite for the publishing site, and http://mainsite/pdfs for storing the PDF library). That way, the URLs for the PDFs will be relative to the publishing site (as opposed to being stored in http://authoringsite). If you do this, be sure to then add the URL to the PDF library to the list of Suggested Content Browser Locations on the authoring site so that content authors are able to see & insert links to those files. For more information, see Plan the logical architecture for cross-site publishing in SharePoint Server 2013 (…/jj635882.aspx) and Plan authoring sites for cross-site publishing in SharePoint Server 2013 (…/jj635877.aspx).

    Cern McAtee

    Technical Writer, SharePoint UA

  8. Bella_Engen says:

    Hi Ryan,

    Troubleshooting the query in a CSWP can be somewhat "tricky.”  But I am not quite sure if I have quite understood your problem. Is the URL to your product catalog not "http://root/sites/productcatalog/lists/products"?

    When troubleshooting the query in the CSWP there are a few things that you can look for. First, in your catalog, are all items approved? If they are not approved, they will not show up in your search results. Then, is your result source correct?

    Another thing you can try is to go to the TEST tab, click Show more, and look in the Query text field. Here you can see what the query that is being issued looks like. This is very helpful when trying to figure out why items are not showing up in a CSWP.

    Hope this helps.


  9. Bella_Engen says:

    Hi Chris,

    The Contoso data is not available for distribution.

    However, the PowerShell scripts can be downloaded from the TechNet gallery:, so if you create files with your own taxonomy and catalog content, you can use the PowerShell scripts to import content.

    Hope this helps.


  10. Anonymous says:


    Now I have resolved the issue by removing "Item Category" values from the tab-delimted import list content file (previously I have used Comma separated file, which caused some errors).

    Finally it worked. Looks great.

    Thanks so much.

  11. Bella_Engen says:

    Hi C5,

    About the images, I actually didn’t use the Rollup Image site column in the catalog. I stored all images in an Asset library on the publishing site. The file name of the images are identical to the Product Number for each catalog item. In the display template, I then built the URL to the correct image by using the URL to the Asset library and adding the Product Number for each search result.

    And I understand your frustration regarding the design files. We are working to improve this.


  12. Bella_Engen says:

    Hi Arthur,

    Thanks for the feedback.

    Will try to update with better quality screen captures as soon as possible.


  13. Anonymous says:

    Hi Bella,

    I am a newbie and this article is very helpful. I have followed these steps for Cross Site Publishing in SP2013.

    Initially, I have created Auth. and Pub. Site collections.

    Then I have created site columns, product content type, term set .csv file, product list content .csv file (Title,Item Number,Group Number,Item Category,Color,Weight column header, values).

    While running PowerShell scripts (after 3ImportListContent.ps1), I get below error:

    Column 'Title,Item Number,Group Number,Item Category,Color,Weight' does not exist. It may have been deleted by another user.

    Please let me know how to fix this.


  14. Bella_Engen says:

    Hi Syed,

    The Product Catalog Site Collection is only available in SharePoint Server 2013.


  15. Anonymous says:


    I am able to resolve "Column does not exist…" error by modified from .csv to .txt file.

    But I am getting new error

    "The given guid does not exist in the term store"

    for Item Category column added in the ImportContentList.txt file.

    All fields except Item Category are imported to Products list.



  16. Bella_Engen says:

    Hi Cris,

    Thanks for the feedback 🙂

    Unfortunately, the material is not available for download.


  17. Bella_Engen says:

    Hi Kunal,

    Yes, you can manually add a new term to your  term set (…/create-and-manage-terms-in-a-term-set-HA102771989.aspx).

    You don’t have to use the scripts every time you want to make a change to your catalog content, but they are very helpful when you want to import large amounts of catalog data.

    Hope this helps.


  18. Joe Davies says:

    Hey Arthur,

    If you click on the screenshots (or any embedded graphic), you will see an enlarged version.


  19. Bella_Engen says:

    Hi Paul,

    Then the answer is yes. Authenticated users that have access rights to view the .pdf documents on your authoring site, will be able to view them seamlessly.


  20. Bella_Engen says:

    Hi Christian,

    The example files are currently not available for download.


  21. Bella_Engen says:

    Hi Imran,

    When you created the Product Catalog Site Collection, did you select the Product Catalog template?


  22. Bella_Engen says:

    Hi SK,

    Which template did you use when you created your authoring site collection?

    You have to use the Product Catalog template to get the default Products list (…/stage-1-create-site-collections-for-cross-site-publishing.aspx).

    Hope this helps.


  23. Anonymous says:

    Additionally, you will need to recreate the site collections after you make the change to the Managed Metadata Service Proxy setting… it's not retroactive.

  24. Anonymous says:

    Hi Bella,

    I just used the Product Catalog site template, and when I check the columns for the Products list, it has no Item Category column. So I have to manually add it from the existing site column. However, there is no Term Stores available.

    I have also configured my Managed Metadata Service before doing this.

    Please advise.


  25. Anonymous says:

    I have had the same issue with Item Category not showing up (along with the Product Hierarchy Term Set not being created) in 4 different environments.  The issue stems from creating the Managed Metadata Service either through Powershell or through the CA UI.  If you use Farm Configuration Wizard (NOT suggesting you do this) it will automatically check the appropriate box in the service proxy properties page – Powershell or CA will not, by default, have this checked.

    To fix:

    On the properties for your Managed Metadata service proxy, you need to select the option "This service application is the default storage location for column specific term sets."

    To find this issue I created a site collection and poured through the ULS logs and found this error : "Failed to add term set Product Hierarchy. Unable to fetch the Term Store of the Site Collection" and then the site collection GUID.


  26. Bella_Engen says:

    Hi Paul,

    To get a better understanding of your scenario, which type of users should be able to see the .pdf document? Anonymous, or known?


  27. Bella_Engen says:

    Hi Chinna,

    I am not quite able to understand your situation, so if you could provide me with a bit more information about when exactly you get the error message, that would be good.

    However, if you are using the PowerShell scripts to import list content, you should not include a value for the Item Category column when you run the script “3ImportListContent”.  The value for the Item Category column will only be filled after you have run the scripts “4ImportTaxonomy” and “5LinkListContentWithTaxonomy”.


  28. Bella_Engen says:

    Hi Troy,

    The product pictures are now available for download.


  29. Bella_Engen says:

    Hi KjellSJ,

    You can use BCS to get content into a catalog. But, if you want to use managed navigation on your publishing site, you’ll have to map each catalog list entry to the correct managed metadata field on your authoring site.


  30. paul says:

    Can a pdf filled document library be used and keep the link relative to the publishing site?

  31. paul says:


    The users viewing the files/documents from the publishing site will be authenticated but must not know that the authoring site exists.

  32. Arthur says:

    This is excellent. Would you be able to increase sligtly the resolution of your screen captures as the text is very hard to read?

  33. Arthur says:

    Thanks Joe. Yes, it does the trick.

  34. Christian says:

    Hi, great blog! Can you you please upload those .txt files for example content and terms, it would also if posible great if you can add a link to the 5 Ps files with all modification needed (exept the URLs) regarded to your example.

  35. Chris says:

    Great article Bella, but seriously – why did you not post the scripts to get this going?  Was there some reason that they couldn't be posted?

  36. SK says:

    The Products list contains a managed metadata site column named Item Category.

    This does not get created automatically when you just create the site collection. May be its only me, but i can't see any Item Category column being created.


  37. imran says:

    Hi Bella,

    I am new to SP. I am following this series. Now I have created both the Site Collections. But the Catalog site collection created with no "Item Category" column. I don't know why Item Category column is not created with other columns. I verified that Managed metadata service is started.

    Please comment.


  38. Kunal Bhat says:

    Hi Bella,

    After I have created the entire catalog, if I need to add another item to the term set (say a new kind of laptop), is there any way I can do that by just adding it to the Products list (and filling in the correct item category) instead of running the script?


  39. kunal says:

    Hi Bella,

    After creating the catalog if I wanted to add another term to the termset (say a new kind of laptop), is there any way that I can do it by just adding a new entry to the products list without having to run the script for the taxonomy?



  40. Smith says:

    Hello Bella,

    How do I get the sharepoint 2013 server

  41. vijay says:

    Hi Bella,

    Will it be possible to share the Data files for the products and Metadata? Just looking for a quick way to get the data in.



  42. Joms says:

    I have to add the <b>Item Category</b> manually from the existing site columns

  43. Stephan J. says:

    @Eric and all the readers

    I had the same issue regarding the Managed Metadata settings in the SharePoint Build PU March 2013. Just fixed the setting in the Managed Metadata as you described, the everything would be good. Thank you for sharing this experience!

  44. Rick Taylor says:

    Well, I am really sorry but even though this is great series, I feel like this step would stop many folks without correct data. PowerShell scripts are great but it would be nice to have sample data. Without sample data, it's really hard to follow this series..

  45. pcvg says:

    Hi Bella,

    Great tutorial!

    Just want to know if it's possible for us to download your excel file or csv data that you used on this article so we could easily follow your tutorial?



  46. ryan says:

    Hello again,

    My second issue is that the CSWP on the category / item pages of my publishing site don't show any of my products.

    – I can see the products in the search index from 'http://root/sites/productcatalog/lists/products&#39;.

    – If I change the query of the CSWP to show all items from 'http://root/sites/productcatalog/lists/products&#39; I can see the items.

    – If I configure the CSWP to use the product catalog I setup, I don't see the items anymore. Even without restrictions on tag or current page navigation.

    Thanks again,


  47. Hayden Hancock says:

    Is there example content that we can use?

  48. Bella_Engen says:

    Hi Hayden,

    There is no example content available.


  49. Jeroen Schoenmakers says:

    "Note: Most of the features described in this series are not available in SharePoint 2013 Online"

    I don't understand this.. how awesome would it be if I could do all of this in SharePoint Online / O365 !! Each small business could be creating it's own website, powered by SharePoint , for only a few bucks a month.. imagine the market-share instantly available …

    But no, it seems we have to wait until Microsoft is going to support this, because right now; it seems impossible:

    – Simple grouping in list fails for anonymous users (…/o365-snag-grouped-view-in-public-site.html)

    – REST connections using ListData.svc won't work for anonymous users

    – Reading list-data with SPServices won't work for anonymous users


  50. Bella_Engen says:

    Hi Jeroen,

    I agree that having these features available in SPO would be really awesome.

    We are currently investigating possibilities around this topic.


  51. Syed Uzair Uddin says:

    How i can use product catalog site collection. while I am using sharepoint foundation 2013.. Is there any way to use it, or any extention???

  52. canafri5 says:

    Hi Bella,

    From the outset, thanks for compiling this Post set.

    I'd like to make a comment about the limitations of the method of 'adding or importing content to the product list'.

    Unless I have completely goofed at understanding this concept, I fail to see how one can include the 'rollup image' in a tab delimited text file. Whereas it's relatively easy (but onerous) to compile the data in an excel spreadsheet, once the document is saved as a tab delimited text file, you lose the image stored in the rollup column.

    Moreover, I do concur with the posters that have made comments about the desirability of including the source files for download with this post set and that it would have presented us with a more robust learning experience.

    Cheers – C5

  53. Anonymous says:

    This is a blog post in the series “How to set up a product-centric website in SharePoint Server

  54. Rothrock says:

    We don't have access to run powershell commandlets. Is there a way that this can be done with importing an excel spreadsheet? I can import it to a new list, but not into the Producst list. And I can't figure out how to define which columns get created when I import.

  55. Troy says:


    Where can I download all the product pics?



  56. Daniel Galant says:

    I seem to be script challenged. I have created the files as mentioned in the posts following the format as described. however, when I run 2createsitecolumns, all I get are errors – Exception calling yadda, yadda and You cannot call a method on a null-valued

  57. Daniel A. Galant says:

    Not sure if this will make it in, but as a follow up to my previous posting regarding the error I was receiving when trying to run the scripts. It was a permission issue that caused the errors. It seems that it is not enough to be a farm admin to run the
    scripts and have them work, but you need to be the farm account. Also, to any others working through this, your column names are case sensitive between the files. If they do not match exactly, the data will not be populated. Also, if you use item category
    numbers that are more than three characters, the system will insert a comma in the usual number places and then not be able to match the item to your category taxonomy.

  58. mhamp says:

    The PowerShell script "4ImportTaxonomy" from the TechNet HAS SOME ERRORS


    #This script will do the following:

    # – Read input parameters from the script '1InputParameters'
    # – Import terms to the term set 'Product Hierarchy' from a .csv file
    # – Creates the custom property 'ItemCategoryNumber' and sets a term set value ID for each term

    # ******************************************* #

    # Get location of the script folder
    Add-PSSnapin “Microsoft.SharePoint.Powershell” –ErrorAction SilentlyContinue

    function Get-ScriptDirectory
    $Invocation = (Get-Variable MyInvocation -Scope 1).Value
    Split-Path $Invocation.MyCommand.Path

    # Load up our common functions
    $commons = Join-Path (Get-ScriptDirectory) "1InputParameters.ps1"
    . $commons

    $productCatalogSiteCollectionURL = "$productCatalogSiteCollectionURL"

    if ($TaxonomyInpFile -eq "") {
    Write-Host "Enter the name (with path) for the Taxonomy Input File, e.g. .Taxonomy.csv "

    $TaxonomyInpFile = Read-Host "Taxonomy Input File "

    # the address of the term store
    $termSetName = "Product Hierarchy"
    $SpSite = Get-SPSite $productCatalogSiteCollectionURL
    $taxonomySession = Get-SPTaxonomySession -Site $SpSite

    $termStore = $taxonomySession.DefaultSiteCollectionTermStore
    $termStoreName = "Site Collection – " + $productCatalogSiteCollectionURL.Replace("http://&quot;,"").Replace("/","-").Replace(":","-")
    $termStoreGroup = $termStore.Groups[$termStoreName]
    $termSetName = "Product Hierarchy"
    $termSet = $termStoreGroup.TermSets[$termSetName]

    if (!$TaxonomyInpFile.contains(":"))
    $TaxonomyInpFile = Join-Path (Get-ScriptDirectory) $TaxonomyInpFile

    # Import CVS file
    $data = import-csv $TaxonomyInpFile -delimiter "`t"

    #Loop data from CVS and add to list

    $cnt = $data.Count
    $i = 0
    foreach ($rec in $data)
    $i = $i + 1
    foreach ($elem in $rec)
    write-host "elem.ParentId is " + $elem.ParentId
    # Get term of parent and use it when creating the new term

    $termSet.CreateTerm($elem.Name, 1033)
    # Top node term
    $termSet.CreateTerm($elem.Name, 1033)

    # Set custom property & store term id in hash table
    $termset.SetCustomProperty("ItemCategoryNumber", $elem.Id)

    $p = [math]::Ceiling(($i/$cnt) * 100)

    write-progress -activity "Term store import progress" -status "$p% Complete:" -percentcomplete $p;

    # Commit changes

    Write-host " — Done –"

  59. tejesh says:

    can you tell power shell script commands in details if possible to show with screen shots.Thanks

  60. KjellSJ says:

    So BCS and external list is not an option as a content catalog?

  61. Mel H says:

    “5LinkListContentWithTaxonomy” $termSet.GetTermsWithCustomProperty() method does not return a value.

    I am having the same error as other users with "Item Category" not appearing in the "Target" publication site.

    Have spent some days Googling this and insuring that I have followed all the steps in your blog.

    I found the following issues in the script “5LinkListContentWithTaxonomy” on the following line:
    “$terms = $termSet.GetTermsWithCustomProperty("ItemCategoryNumber", $value, 0) “.
    The “$terms” variable returns no value, neither does executing the single statement: “$termSet.GetTermsWithCustomProperty("ItemCategoryNumber", $value, 0) “ return a value.

    However, the “$termset” returns the following:
    PS C:Windowssystem32> $termSet
    Description :
    Group : Microsoft.SharePoint.Taxonomy.Group
    IsAvailableForTagging : True
    IsOpenForTermCreation : True
    Name : Product Hierarchy
    Owner : inspirationitspadm13
    CustomSortOrder :
    Stakeholders : {}
    Contact :
    Terms : {Cameras, Computers, Digital Cameras, Electronics…}
    CustomProperties : {[_Sys_Facet_IsFacetedTermSet, True], [_Sys_Nav_IsNavigationTermSet, True], [ItemCategoryNumber, 202]}
    CreatedDate : 2/17/2015 10:30:42 PM
    Id : f748d0b0-2ed7-43c3-887e-101eaf1cc9fe
    LastModifiedDate : 2/17/2015 10:41:35 PM
    TermStore : Microsoft.SharePoint.Taxonomy.TermStore

    When the Authori's Porduct list is populated, the "Item Category" managed metadata fields are not populated.

    So as you can see, somehow “GetTermsWithCustomProperty()” does not
    So the problem is with the method: “$termSet.GetTermsWithCustomProperty("ItemCategoryNumber", $value, 0) “
    I have marked the Termset as Open in the Author’s (Source) “Term Set Management Tool” and

    Checked the fields for:
    • Available for Tagging
    • Use this Term Set for Site Navigation
    • Use this Term Set for Faceted Navigation
    I am using the Product Catalog Template and have configured both sites as SharePoint publication sites. Have also insured that the Target site’s Navigation is using managed metadata and connected to the Source Site.
    I have also tried to use the “GetTermsWithCustomProperty()” method on other fields of the termset without success.

    I have even tried populating “Item Category” manually, with term store data and then crawling and running “5LinkListContentWithTaxonomy” again, but still the “GetTermsWithCustomProperty()” returns no data even when run as a single command.

    So the result is that the “Item Category” field is not linked and populated in the list and is not set as a managed property.

    Does anyone have this issue. And Has anyone solved this issue.