Creating Custom Design Skins for Interprise Suite eCommerce
I recently developed another custom eCommerce design skin for one of our Interprise Suite eCommerce (ISE) clients. While I regularly design custom skins for ISE, each time I begin I realize how few online resources are available to help web designers skin the shopping cart side of ISE. So, I decided to walk through an example of creating a custom design with a different home page design/layout then the design/layout of the inner pages of the site.
Notes on this example: I assume the reader to have a web design mockup file ready (e.g., a Photoshop file), and to have an intermediate skill level for writing valid X/HTML markup and CSS. This example also assumes that Interprise Suite is installed and that the website is up and running in your dev environment.
ISE Skin Basics
Some basic Interprise Suite concepts that will make your custom design skin experience go smoothly:
- You can invoke a different skin through a browser by using the following querystring, where “X” is the unique skin #:
http://www.my-ecommerce-site.com/?skinid=X - All skin templates are located in the following directory, which is where you should put your CSS, images, Javascript, and custom XmlPackage files:
…/my-ecommerce-site/skins/skin_X/
…/my-ecommerce-site/skins/skin_X/css/
…/my-ecommerce-site/skins/skin_X/XmlPackages/
etc.(Note: make a backup copy of “…/skin_1/” you’ll need this later, plus just in case anything goes wrong throughout your customization process and you need to revert.)
- Learn to love Skin Tokens, you’ll use these a lot. Skin tokens are snippets of text [e.g., (!SKINTOKEN!)] that you can place in your template files for automatically adding specific ISE information to your template. For example, following are the skin tokens I typically use in my templates. Some of the information generated by these tokens can be setup in the ISE client tool:
- (!METATITLE!) – page title
- (!METADESCRIPTION!) – page meta description
- (!METAKEYWORDS!) – page meta keywords
- (!JAVASCRIPT_INCLUDES!) – required in your template (ISE Javascript libraries)
- (!PAGEINFO!) – not required, but very useful for generating page instantiation info
- (!USERNAME!) – by default, this generates “You’re logged in as: XYZ“
- (!SKINID!) – the current skin id being used, useful for various path-ing requirements
- (!SIGNINOUT_TEXT!) – by default, switches between “Login” and “Logout” automatically as necessary
- (!SIGNINOUT_LINK!) – by default, switches between “signin.aspx” and “signout.aspx”
- (!MINICART!) – generates a “mini shopping cart” to show items currently added to a visitor’s cart
Creating the Interprise Suite Skin Template Files
Now for the good stuff. Web designers have their own personal process for generating the required X/HTML markup and CSS from a design mockup file (like a Photoshop file). I’m not going to suggest any changes to your process, but here is the general process I use for customizing ISE:
My ISE Customization Steps:
- Create HTML template files and CSS from a design file. Plus, a couple of quick sanity tests for the design.
- Create custom ISE image buttons (used throughout the site).
- Wire-up the required ISE components: ASP.net controls, XmlPackages, and Skin Tokens in your template.
- Upload your files and change necessary configuration options in the ISE client.
- Reset the ISE Web Cache
1. Create HTML Template Files and CSS Stylesheets
So, you have a design mockup already – great! In my example I’ve created a different “home” page layout than the “inner” pages of the site. I’m not going to detail how to cut up your design file – there are lots of great resources online that would do more justice to the topic than I. That said, to follow along, get your design cut up into 2 HTML files with the following structure on your local/testing server:
inner template: …/ise-template/template.htm
css file(s): …/ise-template/css/
image file(s): …/ise-template/images/
javascript file(s): …/ise-template/js/
For now, don’t worry about getting any of the String Tokens in place. Focus on the HTML and CSS of the template files themselves and perform the following sanity tests on your design:
- How does font-scaling work +/- 2 font sizes? Does your design hold together?
- Have you used CSS font-families so that visitors without your fancy “minion pro” font still have a good browsing experience? Just a note, while the infamous “Tahoma” looks great in most Windows environments, in Safari (Windows & Mac) it looks chunky – consider using something more Safari friendly in your font-family.
- How does your design work in various versions of Safari, Firefox, Google Chrome, and Internet Explorer (IE)? Litmus can help you determine this. And for the various versions of IE, I’ve been using a handy little tool (still in alpha release at the moment my writing) called IE Tester.
- How does your design look and handle in a mobile browser like Blackberry or IPhone? eCommerce customers shop from all kinds of devices.
2. Create Custom ISE Image Buttons
The buttons i’m referring to are the buttons that come with the default skins included with ISE. For example:


If you like these buttons, use them. If you don’t, get ready for a little Photoshop fun as (from my last count) there are over 100 different image buttons to customize throughout the website. All these buttons can be placed in your images folder:
Be sure to name them properly, else ISE won’t be able to find them. First, make a backup of all default skin buttons that come with ISE (check a default skin directory of ISE “../my-ecommerce-site/skin_1/images/”) and copy them wherever you’re checking your design cuts (“…/ise-template/images/”). Then as you create each new button, simply overwrite the same image button file, ensuring the file name stays the same.
3. Wire-up the Required ISE Components
Now that your basic design is tested and the general ISE image buttons are customized, it’s time to hook up your template with ISE. First things first, copy your “template.htm” file and rename it “template.ascx”; and copy your “home-template.htm” file and rename it “home-template.ascx”. These are the required ASP.net extensions for ISE.
Required ASP.net Components for your template:
- Take a look at the backup copy of “skin_1″ you made before you started – you did make one, right? Open “skin_1_backup/template.ascx” and copy the first 3 lines of the file into your custom “template.ascx” file. They should begin something like “<%@…” – these are the ASP.net controls and registers.
- <%@ Control Language=”c#” AutoEventWireup=. . . %>
- <%@ Register TagPrefix=”ComponentArt”. . . %>
- <%@ Register TagPrefix=”ise”. . . %>
- Just inside your <body> tag, place the following line. This line basically translates into your <form> tag which makes all the ISE whiz-bang magic possible:
- <body>
- <asp:Panel ID=”pnlForm” runat=”server” Visible=”false” />
- Inside the “content area” of your templates, place the following ASP.net tag. This tag is where “content” items (such as topics, shopping carts, messages, etc.) will be displayed in your template:
- <div id=”content”>
- <!– ISE Content Area –>
- <asp:PlaceHolder ID=”PageContent” runat=”server”>
- </asp:PlaceHolder>
- . . .
- </div>
Instantiate the Skin Tokens Required:
- The <head> section of your template files should look something like this:
- <head>
- <title>(!METATITLE!)</title>
- <meta name=”description” content=”(!METADESCRIPTION!)” />
- <meta name=”keywords” content=”(!METAKEYWORDS!)” />
- <link href=”/skins/Skin_(!SKINID!)/css/default.css”
rel=”stylesheet” type=”text/css” media=”screen” /> - <meta http-equiv=”Content-Type” content=”text/html;
charset=utf-8″ /> - <script src=”/jscripts/core.js” type=”text/javascript”>
</script> - (!JAVASCRIPT_INCLUDES!)
- </head>
- Include the (!PAGEINFO!) token just below the opening <body> tag and before the previously mentioned ASP.net tag:
- <body>
- (!PAGEINFO!)
- <asp:Panel ID=”pnlForm” runat=”server” Visible=”false” />
- Include the (!USERNAME!) token wherever your design calls for it, I typically put this information inside the top (or header) section of the design:
- <div id=”header”>
- <span id=”userName”>(!USERNAME!)</span>
- . . .
- </div>
- Breadcrumbs:
- <div id=”breadcrumbs”>(!SECTION_TITLE!)</div>
- My Shopping Cart and Login/Logout links:
- <a href=”(!SIGNINOUT_LINK!)” id=”topLogin”>
(!SIGNINOUT_TEXT!)</a> - . . .
- <a href=”/shoppingcart.aspx” id=”topCart”>
My Shopping Cart ((!NUM_CART_ITEMS!))</a>
- <a href=”(!SIGNINOUT_LINK!)” id=”topLogin”>
- Mini-cart Display, which I typically use on a side panel.
- <div id=”miniCart”>(!MINICART!)</div>
Instantiate your ISE XmlPackages:
- Call the Search Box XmlPackage:
- <div id=”iseSearchBox”>(!XmlPackage
Name=”skin.search”!)</div>
- <div id=”iseSearchBox”>(!XmlPackage
- If you want to display your shop categories, call the Categories XmlPackage:
- <div id=”catListing”>(!XmlPackage
Name=”rev.categories”!)</div>
- <div id=”catListing”>(!XmlPackage
There are several other XmlPackages available to you, depending on your needs and the type of eCommerce website you are creating. Check the ISE documentation for more help on this.
4. Upload your Files & Change ISE Client Configuration Options
Upload your template files (all images, all css, and .ascx files) to the desired skin directory. Typically, I just use Skin_1. Since I’ve already made a back-up of this, there is no harm in having your Skin set as Skin_1 – plus it saves you one step in the ISE client. Overwrite all the existing files with the ones you have created. Leave all the other files there, as-is. There’s no need to mess with them at this point. Now, all your files should now be uploaded to the server in a directory structure similar to this:
…/my-ecommerce-site/skins/skin_1/home-template.ascx
…/my-ecommerce-site/skins/skin_1/css/…
…/my-ecommerce-site/skins/skin_1/js/…
…/my-ecommerce-site/skins/skin_1/images/…
Next, open and login into your Interprise Suite client tool. Inside the client, you’ll need to goto the “eCommerce” module (800 eCommerce), and open “Utilities > Setup > Application Configuration”. (In here, make sure if you have multiple websites running, you are working with the correct site.)
Inside the “Application Configuration” select the group name “SITEDISPLAY”. There is an option here called “DefaultSkinID”, make sure this is set to the same Skin_X directory you are using for your skin files. If you are overwriting Skin_1 (as I have suggested) you do not need to change this, typically.

Then, select the group name “SKINS”. There are 2 options here to change. Ensure that “HomeTemplate” is set to the same file name you uploaded to the server (in this example “home-template.ascx”. The “HomeTemplateAsIs” option should be set to “false” if you are allowing users to define content on the home page through the ISE client “Topics” pages. If you set this to value to “true” then ISE will assume that you are providing all content for the home page inside your “home-template.ascx” file itself.

5. Reset the ISE Web Cache
You’ll likely need to reset the ISE web cache for your design to take effect completely. Also, if you make any changes to the template and/or ISE configuration settings you may need to reset it again, so it’s nice to know where to find it in the ISE client tool. One place you can find the “Reset Web Cache” button is under the eCommerce module (800 eCommerce), then select “Tools” > “Web Store”. Once inside the “Web Store” option, at the top of the tool bar you can see the button:

Congratulations – Your ISE Custom Skin Is Now Active!
At this point you should be able to see your custom design skin for Interprise Suite on the front-end of the website. Customizing Interprise Suite eCommerce can be tricky at points, but it’s worth it in the end as ISE is one of the best eBusiness solutions online when you need to manage inventory and provide eCommerce.
I hope i’ve helped you see how you can get around some of the issues of creating a custom ISE skin and that you’ve found this useful. We would love to hear from you if you have other thoughts on the process outlined above. If you have further questions about customizing Interprise Suite we invite you to contact us.
Tags: eCommerce Software, interprise suite, shopping cart software, Web Design
August 23rd, 2009 at 8:39 am
I have been looking at your document and found the problem that home-template is used through out the site with 5.3 instead of just on the home page. Any ideas or is it a bug.
October 1st, 2009 at 12:29 pm
In 5.3, we have also seen some trouble with implementing the home page template. From our end, whenever we’ve run into this we have implemented a code fix that ensures the home-template.ascx is indeed used for the home page and only the home page. We have submitted a bug fix request to the Interprise Suite team, hopefully in the next version it’s taken care of. If you want to learn more about our fix for setting a home-template.ascx, send us an email.