The SitePages.config File

SitePages.config, normally stored in the theme’s xml folder, defines how CyberStore assembles storefront pages. Its human-readable XML maps each page to a theme and stylesheet, maps theme placeholders to controls, and supplies supported properties to those controls.

Treat the file as application configuration. Work in a non-production copy, keep valid XML, and back up the accepted version before making a change. A malformed element, incorrect filename, unknown placeholder, or unsupported control property can prevent a page from loading or change its behavior.

Configuration hierarchy

The file uses four nested elements:

<SitePages>
  <Page>
    <PlaceHolder>
      <Control />
    </PlaceHolder>
  </Page>
</SitePages>
Element Purpose
<SitePages> Root element. The file has one opening <SitePages> tag and one closing </SitePages> tag.
<Page> Defines the composition and settings for one storefront page.
<PlaceHolder> Identifies a named region in the selected theme. Define the placeholders required by that page’s theme file.
<Control> Loads a control inside a placeholder and optionally assigns supported control properties.

Element names, attribute names, filenames, and placeholder IDs must match the installed application and theme. XML is case-sensitive where the consuming configuration expects an exact name.

Page example

The following example shows the relationship among a My Account page, its theme, three placeholders, and the controls loaded into those placeholders:

<Page FileName="customermyAccount.aspx"
      Themesrc="EcomTheme.ascx"
      ThemeCss="site/themes/css/Theme.css"
      RequireSSL="False">
  <PlaceHolder ctrlID="Toolbar">
    <Control src="CatalogSearchControl.ascx"
             Name="Item Search"
             SearchControlLabel="Product Search" />
  </PlaceHolder>
  <PlaceHolder ctrlID="RightColumnTop">
    <Control src="CatalogCategoryNavigationControl.ascx"
             Name="MenuList" />
  </PlaceHolder>
  <PlaceHolder ctrlID="ContentArea">
    <Control src="CatalogContentDisplayControl.ascx"
             Name="Content Display"
             FileLocation="MyAccount.htm" />
    <Control src="CustomerLoginControl.ascx"
             Name="Customer Login" />
    <Control src="CustomerOrderStatus.ascx"
             ShowDateRangeSearch="true"
             ShowOrderNumberSearch="true" />
    <Control src="DistributorUploadLinkControl.ascx" />
  </PlaceHolder>
</Page>

The <Page> attributes select the page filename, theme wrapper, theme stylesheet, and SSL requirement. The exact security behavior and accepted values must follow the installed CyberStore version and deployment; do not weaken transport requirements when copying an older example.

Placeholders in the example

Placeholder Controls in the example Role
Toolbar CatalogSearchControl Places the catalog-search experience in the theme’s toolbar region.
RightColumnTop CatalogCategoryNavigationControl Places catalog navigation in the top of the right column.
ContentArea CatalogContentDisplayControl, CustomerLoginControl, CustomerOrderStatus, DistributorUploadLinkControl Builds the main account-page content and functions in their declared order.

The placeholder order and control order determine page composition. A ctrlID must identify a placeholder exposed by the selected theme; otherwise the intended content has nowhere to render.

Control properties

The src attribute selects the control file. Other attributes configure supported properties as name/value pairs:

PropertyName="Property Value"

For example, Name="Content Display" supplies the Name property for the content-display control, while ShowOrderNumberSearch="true" enables an available order-status option. A property is valid only when the selected control and installed version support it. Do not infer a property from a similarly named control or copy undocumented settings from another version.

Generated Control Library documentation remains the detailed reference for individual controls and properties. When that reference is not available for the installed version, confirm a proposed property with the implementation team before deploying it.

Show or hide empty child categories

CatalogCategoryListControl supports the Boolean property ShowOnlyCategoriesWithItems for its direct next-level categories.

Value Behavior
true Displays only next-level categories that contain items. This is the default and preserves the behavior of configurations that omit the property.
false Displays all next-level categories, including categories that do not currently contain items.

For example, the following control displays empty next-level categories:

<Control src="CatalogCategoryListControl.ascx"
         Name="List of Sub categories"
         PhotoWidth="200"
         ShowChildCategoryList="true"
         SubCategoryPhotoWidth="100"
         SubCategoryShowPhoto="true"
         RepeatDirection="Vertical"
         RepeatColumn="2"
         ShowCategoryItemCount="true"
         ShowOnlyCategoriesWithItems="false" />

Use false only when shoppers should see the complete next-level structure even before every category contains items. Test navigation into an empty category so the resulting storefront experience is intentional.

Change and validate a page

  1. Copy the accepted configuration and theme files to a development or staging environment.
  2. Locate the <Page> entry by its FileName.
  3. Confirm Themesrc, ThemeCss, and the page-level settings.
  4. Match each PlaceHolder ctrlID to the selected theme.
  5. Add or change controls only with supported src values and properties.
  6. Validate the XML before loading the page.
  7. Test the page as anonymous and signed-in users with the roles and Account types that can reach it.
  8. Verify navigation, content, form submission, validation, error handling, responsive layout, and any SYSPRO-dependent results.

Promote the same reviewed file through environments rather than recreating the edit manually. See CyberStore Themes for the other files and folders that participate in page presentation.


This site uses Just the Docs, a documentation theme for Jekyll.