Materials and articles for ProductCart 5 can be found at our brand new support center.
Table of Contents
Managing Content Pages in ProductCart v4
The ability to create, manage, and display non-catalog pages (pages that are not products, categories, etc.) on your ProductCart-powered ecommerce store was significantly improved with ProductCart v4. Among the new 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
Adding and editing Content Pages
To add a new Content Page select Pages > Add New Content Page from the Control Panel navigation menu. The page is organized in different tabs.
Name, Title & Content
- Page Name (Link)
This is the text used in the link to the Content Page. Max 255 characters. It's shown in both the Control Panel and the storefront when linking to the page.
- Page Title
This is the title that store visitors see when viewing the page. Max 255 characters. Optional. Displayed using an H1 HTML tag on the page itself.
The main page content. Use the built-in HTML editor to create the page or copy text or HTML code from another program.
Check this option unless you want the page to remain inactive, and therefore invisible in the storefront. Inactive pages cannot be accessed by your customers. If you are still working on a page (or do not want to show it in the storefront for any other reason), set it to be inactive.
- Only accessible by…
You can restrict access to specific customer groups. For example, if you have resellers that you do business with and want a page on your store that provides “Reseller News” you can set up that page so that only resellers can view it. In this scenario, you will first need to create a ”Customer Pricing Category” for your resellers (e.g. “Gold Resellers”), then select that entry from the Only accessible by… drop-down.
- Review Status and Notes
Review Status and Review Notes are only shown to Control Panel users with publishing permissions. The Review Status of a page can be:
- Published: a store manager with publishing permissions has reviewed the page and decided that it's ready to be shown in the storefront.
- Under Review: a new page has been created and needs to be reviewed by a store manager with publishing permissions.
- Reviewed: a page has been reviewed by a store manager with publishing permissions, but changes are needed, which could be added in the Review Notes. Review Notes are not shown in the storefront
- Parent (Optional)
To simplify browsing Content Pages, you can organize them in a two-level tree. In the storefront, you can link to a page where customers can browse content pages by adding a link to a file called ”viewPages.asp”, which is in the “pc” folder, just like all other storefront files.
- Thumbnail (Optional)
The thumbnail is used when browsing Content Pages if the category display settings have been set to use this feature. That is: content pages follow the same display settings set for categories. For example, if you set your categories to be displayed as text links, 3 categories per row and 4 rows per page, that's exactly how top-level content pages will be displayed on the Browse Content Pages page (pc/viewPages.asp).
- Display Order
Used when displaying a list of pages (e.g. navigation).
Include store header & footer
Check this option if you would like ProductCart to create a page that includes the store's graphical interface. This is normally what you will want to do. If this is the case, and if you decide to copy HTML code that you have created in another HTML editor (e.g. MS FrontPage, Macromedia Dreamweaver, etc.), make sure to include only code that is in between the <body> and </body> tag.
For example, you could copy and paste an HTML table that you have created in your favorite HTML editor, but you should not copy an entire HTML page. If you wish to copy an entire HTML page into the Page Description field, then make sure NOT to select the Include store header & footer feature.
So, to recap:
- If you are creating your pages elsewhere (e.g. using Adobe® Dreamweaver® or Microsoft® Expression® Web), and copying an entire HTML page into the Page Description field, do not select the Include store header & footer option.
- If you are using the built-in HTML editor or are copying only a portion of an HTML page created with an external HTML editor, then you must select the Include store header & footer option.
- Exclude from Content Pages navigation
New in ProductCart v4 is the ability to generate a navigation menu for your content page. You can then use the navigation anywhere you wish in your store's graphical interface, style it with CSS, or use it as part of whatever navigation script you like to use. This feature allows you to exclude from the navigation pages that you do not wish to show there.
You can enter page-specific TITLE, DESCRIPTION, and KEYWORDS meta tags for Content Pages.
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 v4, you have 2 options.
Dynamically load a list of pages
The 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 Code
The 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>
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>
Using Content Page Navigation
New in ProductCart v4 is the ability to create a separate navigation for your content pages. For example, you could have content page navigation at the top, organized horizontally and with drop-down menus, and category/product navigation in your design's left column.
Which pages are included
The system will generate an unordered list with all content pages that are:
- Not excluded from the navigation
Both of these settings were discussed earlier in this article.
Type of Navigation
ProductCart can help you create a horizontal or vertical navigation menu by leveraging the Adobe® Spry framework that is included in the system. By leveraging Spry, you can easily add a navigation system with drop-down menus or fly-out menus without doing any programming of any kind.
- Spry Menu Bar Widget documentation (you can tweak it as much as you want, if you wish to do so)
Prepare for SPRY menu bar
ProductCart will “prepare” an unordered list of navigation links that are ready to be used with Spry. They will then be displayed in your storefront based on the settings that you have configured within the Spry files themselves (e.g. that's where colors, font types, etc. are set). More on this below. First, you can choose between two types of menus:
- Spry Horizontal Menu Bar
- Spry Vertical Menu Bar
Of course, you can style and control the navigation using any other navigation script (or no script at all). The advanced settings can help you do just that as they allow you to assign a CSS class to the most relevant elements in the unordered list. These settings are ignored if using the SPRY option above.
- <UL> Tag ID
- <UL> CSS Class
- Top-level <LI> CSS Class
- Top-level <LI> with Sub-Items CSS Class
Generating the menu
When you generate the menu, ProductCart will create the unordered list and save it to a text file located in the pc folder. The file is called cmsNavigationLinks.inc. The raw HTML code is also shown to you in a text area on the page so you can copy and paste it directly in your Web store design, if you wish to.
If you opted to use a Spry menu, you will see a link that allows you to preview the menu. Here are two examples.
First, an example of using the Spry Horizontal Menu:
And here is an example of generating a Vertical Menu, for the same pages:
Tweak the Content Page settings (e.g. page names, order in which they are displayed, etc.) until the preview looks good to you. Once you are ready to use it in the storefront, you will need to change the code of your header.asp or footer.asp file a bit. See this page for detailed instructions.
Frequently Asked Questions
Showing & hiding page titles in the navigation
I upgraded from v3 and my store's interface is set to load and display all content page titles automatically in the navigation. Can I change that? Can I hide some of them?
Yes, there is. In the Control Panel, set the Content Page to be excluded from content page navigation. That's a new feature in ProductCart v4 that is accessed from the “Settings” tab of the page “Edit Content Page”. Then, in the storefront, you have two choices:
(a) Remove the code that automatically loads Content Pages in your header.asp or footer.asp and instead use the new “Pages > Generate Page Navigation” feature to create a navigation menu that you can then insert into your header.asp or footer.asp.
(b) Change the SQL query in that section of the code that automatically loads Content Pages in your header.asp or footer.asp . The new SQL query will be:
sdquery="SELECT pcCont_IDPage, pcCont_PageName FROM pcContents WHERE pcCont_InActive=0 AND pcCont_MenuExclude<>1 ORDER BY pcCont_PageName ASC;"