Themes
Object Models Reference for the data objects available in Print Store theme templates — categories, products, thumbnails, and more.
When EnableCategoryData="True" is set on a master page, PrintNow populates server-side objects that you can access in your theme markup using ASP.NET inline expressions. This page documents each object type, its properties, and usage examples.
Lightweight, menu-ready category objects with hierarchical structure. Returned by global functions like AllCategories() and CategoriesByTag().
Property Type Description IdInteger Category ID. NameString Category display name. UrlString SEO-friendly URL for the category page. DescriptionString Short category description. ChildrenList(Of CategoryMenuEntry) Child categories for building hierarchical navigation. ThumbnailsList(Of ThumbnailEntry) Category thumbnail images. StartPriceString Formatted starting price (e.g., "$9.99").
< ul class = "category-menu" >
< % For Each cat In AllCategories() %>
< li >
< a href = " < %= cat.Url %>" > < %= cat.Name %></ a >
< % If cat.Children IsNot Nothing AndAlso cat.Children.Count > 0 Then %>
< ul >
< % For Each child In cat.Children %>
< li >< a href = " < %= child.Url %>" > < %= child.Name %></ a ></ li >
< % Next %>
</ ul >
< % End If %>
</ li >
< % Next %>
</ ul >
The full category object available as Category on CategoryOverview, SubCategoryOverview, and ProductDetails master pages. Contains all category data including sub-categories, content, tags, and tabs.
Property Type Description Example IdInteger Category ID. <%= Category.Id %>NameString Category display name. <%= Category.Name %>DescriptionString Short description text. <%= Category.Description %>ContentString Full HTML content. <%= Category.Content %>SubCategoriesList(Of SubCategoryEntry) Child sub-categories. Requires loop (see below) TagsList(Of String) Assigned tag names. Requires loop TabsList(Of TabEntry) Content tabs. Requires loop ThumbnailsList(Of ThumbnailEntry) Category images. <%= Category.Thumbnails(0).Generate(400, 400, "fill") %>PageContentString CMS page content. <%= Category.PageContent %>PricingContentString CMS pricing content. <%= Category.PricingContent %>StartPriceString Formatted starting price. <%= Category.StartPrice %>
Function Returns Description ExtendedContent(key As String)String Returns extended content by key name. Keys are configured in the admin under Extended Content . HasExtendedContent(key As String)Boolean Returns whether extended content exists for the given key.
< %-- Display extended content sections --%>
< %= Category.ExtendedContent("overview") %>
< %-- Conditionally show a section --%>
< % If Category.HasExtendedContent("Paper&Specs") Then %>
< div class = "specs" >
< %= Category.ExtendedContent("Paper&Specs") %>
</ div >
< % End If %>
< % For Each tsCat In Category.SubCategories %>
< div class = "col-12 col-sm-6 col-lg-3" >
< a href = " < %= tsCat.Url %>" >
< img class = "img-fluid" src = " < %= tsCat.Thumbnails(0).Generate(255, 255, " fill ") % >" alt=" < %= tsCat.Name %>">
< h4 > < %= tsCat.Name %></ h4 >
< span >Starts: < %= tsCat.StartPrice %></ span >
</ a >
</ div >
< % Next %>
Available as Product on ProductDetails master pages. Contains all product data including thumbnails, tags, and related products.
Property Type Description Example IdInteger Product ID. <%= Product.Id %>NameString Product display name. <%= Product.Name %>DescriptionString Short description. <%= Product.Description %>ContentString Full HTML content. <%= Product.Content %>TagsList(Of String) Assigned tag names. Requires loop RelatedList(Of RelatedProductEntry) Related products. Requires loop (see below) ThumbnailsList(Of ThumbnailEntry) Product images. <%= Product.Thumbnails(0).Generate(555, 555, "fill") %>PageContentString CMS page content. <%= Product.PageContent %>PricingContentString CMS pricing content. <%= Product.PricingContent %>DisplayOrderInteger Sort order position. <%= Product.DisplayOrder %>DetailUrlString SEO URL for the product detail page. <%= Product.DetailUrl %>ActionUrlString URL for the product's action (order/customize). <%= Product.ActionUrl %>CustomizableBoolean Whether the product supports online customization. <%= Product.Customizable %>
< h1 > < %= Product.Name %></ h1 >
< %-- Thumbnail carousel --%>
< % For Each thumb In Product.Thumbnails %>
< img class = "img-fluid" src = " < %= thumb.Generate(555, 555, " fill ") % >" alt=" < %= thumb.AltText %>">
< % Next %>
< p > < %= Product.Description %></ p >
< %-- Category tags --%>
< % For Each tag In Category.Tags %>
< a href = "#" class = "badge" > < %= tag %></ a >
< % Next %>
< %-- Related products --%>
< % If Product.Related IsNot Nothing AndAlso Product.Related.Count > 0 Then %>
< h3 >Related Products</ h3 >
< % For Each prod In Product.Related %>
< a href = " < %= prod.Url %>" >
< img src = " < %= prod.Thumbnails(0).Generate(255, 255, " fill ") % >" alt=" < %= prod.Name %>">
< h4 > < %= prod.Name %></ h4 >
</ a >
< % Next %>
< % End If %>
Child categories within a CategoryEntry.SubCategories collection.
Property Type Description IdInteger Sub-category ID. NameString Sub-category display name. DescriptionString Short description. UrlString SEO-friendly URL. ThumbnailsList(Of ThumbnailEntry) Sub-category images. StartPriceString Formatted starting price.
Image objects available on categories, sub-categories, and products.
Property / Method Type Description UrlString Default thumbnail URL. AltTextString Alt text for the image. Generate(width, height, fit, borderWidth, borderColor)String Generates a resized thumbnail URL. All parameters are optional. Raw()String Returns the original, unprocessed image URL.
Parameter Type Default Description widthInteger — Target width in pixels. heightInteger — Target height in pixels. fitString "center"Resize mode: fill, center, trim, or stretch. borderWidthInteger 0 Border width in pixels. borderColorString — Border color (hex or named color).
Mode Behavior fillScales and crops the image to completely fill the target dimensions. May crop edges. centerScales the image to fit within the target dimensions, centered. May have whitespace padding. trimScales to fit and trims any whitespace around the image content. stretchStretches the image to exactly match the target dimensions. May distort aspect ratio.
< %-- 400x400 filled thumbnail --%>
< img src = " < %= thumb.Generate(400, 400, " fill ") % >" alt=" < %= thumb.AltText %>">
< %-- Raw original image --%>
< img src = " < %= thumb.Raw() %>" alt = "Full size image" >
< %-- 255x255 with 1px border --%>
< img src = " < %= thumb.Generate(255, 255, " center ", 1) % >" alt=" < %= thumb.AltText %>">
Products in a ProductEntry.Related collection.
Property Type Description IdInteger Product ID. NameString Product display name. UrlString SEO-friendly product URL. CategoryString Parent category name. ThumbnailsList(Of ThumbnailEntry) Product images.
Content tabs within a CategoryEntry.Tabs collection.
Property Type Description TitleString Tab heading text. ContentString Tab body content (HTML).
< ul class = "nav nav-tabs" >
< % For Each tab In Category.Tabs %>
< li class = "nav-item" >
< a class = "nav-link" href = "#tab- < %= tab.Title %>" data-toggle = "tab" > < %= tab.Title %></ a >
</ li >
< % Next %>
</ ul >
< div class = "tab-content" >
< % For Each tab In Category.Tabs %>
< div class = "tab-pane" id = "tab- < %= tab.Title %>" >
< %= tab.Content %>
</ div >
< % Next %>
</ div >
Landing page objects returned by GetLandingPages(). Represents a landing page with its child items, image, and navigation URL.
Property Type Description IdInteger Landing page ID. NameString Landing page title. TypeString Child type: "Category", "LandingPage", or "Group". Null for top-level pages. DisplayOrderInteger Sort order position. IsGroupBoolean True if this entry is a group container. UrlString SEO-friendly URL for the landing page. ThumbnailThumbnailEntry Hero image for the landing page. For category children, uses the category thumbnail. ChildrenList(Of LandingPageEntry) All child items (categories, landing pages, groups) sorted by display order. CategoriesList(Of LandingPageEntry) Only category-type children. PagesList(Of LandingPageEntry) Only landing page-type children. GroupsList(Of LandingPageEntry) Only group-type children.
< div class = "landing-pages" >
< % For Each lp In GetLandingPages() %>
< div class = "col-md-4" >
< a href = " < %= lp.Url %>" >
< img src = " < %= lp.Thumbnail.Url %>?width=200&height=200" alt = " < %= lp.Name %>" class = "img-fluid" />
< h4 > < %= lp.Name %></ h4 >
</ a >
</ div >
< % Next %>
</ div >
Tag objects returned by tag-related functions.
Property Type Description NameString Tag display name. UrlString URL to filter products by this tag.
Data Properties — Global properties and functions that populate these object models
Master Pages — Where object models are enabled via the EnableCategoryData directive
Extended Content — Configure the content keys used by CategoryEntry.ExtendedContent()
Landing Pages — Manage the landing pages returned by GetLandingPages()
Tags — Manage the tags used for filtering categories and products