ProductCart allows you to create and manage your own Content Pages - such as “About Us” , “Customer Service”, etc. - directly from the Control Panel. In other words, ProductCart includes a basic content management system that allows you to create and manage any number of Web pages, without using an external HTML editor.
Selecting Pages > Manage Content Pages will take you to a screen like the one below. From there, you can click on a page title to edit your content pages.
The ability to create, manage, and display non-catalog pages (pages that are not products, categories, etc.) on your ProductCart-powered ecommerce store have been significantly improved. Among the features:
- Establish a review process: create, review, and publish content pages
- Have multiple store managers collaborate, with different permissions
- Restrict access only to certain customer categories
- Create a two-level tree of content pages (e.g. About Us > Our Team; About Us > How We Started; etc.)
- Create a separate navigation for content pages
- Specify separate text for the page link and the page title
Showing Content Pages in the storefront
To allow customers to find the content pages that you have created, link to them from other pages on your Web site, and/or from your store’s navigation. With ProductCart, you have 2 options.
Dynamically load a list of pagesThe default version of header.asp contains some ASP code that dynamically loads content page titles and corresponding links from the store database. This allows you to create a list of links to these pages that is automatically updated every time you add a new page and remove/edit an existing page.
You could place the code below anywhere in your custom version of header.asp or footer.asp (or another ASP file set up to query the ProductCart database) to load such list. This also means that you could load your content pages in another navigation script that you might want to place somewhere on your store interface.
The SQL query is designed to filter out Inactive Content Pages and those set to be Excluded from Navigation and order the active pages by name.
Default Header.asp CodeThe following code is slightly different from the one found in the default version of header.asp. The main difference is that here we are not assuming that there is already an unordered list that the list items are added to, and therefore we are adding <ul> and </ul> to the beginning and the end of the code, to respectively open and close the unordered list.
This code automatically links to keyword-rich URLs for your content pages if that feature is active on your store.
<ul> <% '// START CONTENT PAGES '// Select pages compatible with customer type if session("customerCategory")<>0 then ' The customer belongs to a customer category ' Load pages accessible by ALL, plus those accessible by the customer pricing category that the customer belongs to queryCustType = " AND (pcCont_CustomerType = 'ALL' OR pcCont_CustomerType='CC_" & session("customerCategory") &"')" else if session("customerType")=0 then ' Retail customer or customer not logged in queryCustType = " AND pcCont_CustomerType = 'ALL'" ' Load pages accessible by ALL else queryCustType = " AND pcCont_CustomerType = 'W'" ' Load pages accessible by Wholesale customers only end if end if '// Load pages from the database: active, not excluded from navigation, and compatible with customer type sdquery="SELECT pcCont_IDPage, pcCont_PageName FROM pcContents WHERE pcCont_InActive=0 AND pcCont_MenuExclude<>1 " & queryCustType & " ORDER BY pcCont_Order ASC, pcCont_PageName ASC;" set rsSideCatObj=Server.CreateObject("ADODB.RecordSet") set rsSideCatObj=conlayout.execute(sdquery) do while not rsSideCatObj.eof pcIntContentPageID=rsSideCatObj("pcCont_IDPage") pcvContentPageName=rsSideCatObj("pcCont_PageName") '// Call SEO Routine pcGenerateSeoLinks '// %> <li><a href="<%=pcStrCntPageLink%>"><%=pcvContentPageName%></a></li> <% rsSideCatObj.MoveNext loop set rsSideCatObj=nothing '// END CONTENT PAGES %> </ul>
Technical Note: The name of the recordset can certainly be different in your code (here it's “rsSideCatObj”). Just make sure that it is properly created and emptied using the two “set” statements as shown above.
The code above creates an unordered list of content pages. You can use CSS to change the display of an unordered list to create all sorts of nice navigation menus (run a Google search on this topic).
When using CSS, you will typically add a class to your unordered list, so that you can style that specific unordered lists (versus other lists that might exist on the same page). For example, assuming the class were called “contentPageNavigation”, it would look as follows:
<ul class="contentPageNavigation"> ... code that generates the list of content pages ... </ul>