Archive for the 'Software' Category
Magento Professional Edition
The recently announced Magento Professional Edition offers some exciting and useful new features for the online merchants, e-tailers and bricks and mortar retailers. Situated between the open-source Community edition and the feature rich Enterprise Edition, the new Professional Edition ships with some great revenue-generating, conversion improving features. This edition is a direct result of Magento incorporating customer feedback into its product line. We at Hybrid Forge think this is a brilliant move for Magento. Our experience with clients running Magento supports increased choice for licensed software.
Magento is a powerful, capable and flexible platform both from the technical feature set and site design perspectives. Magento’s use of an MVC framework makes the addition of conversion improving features cost-effective and reliable. This framework has allowed the 3rd party extension market to flourish as is evidenced by 2300+ extensions available via Magento connect. A div tag-based HTML layout affords skilled UX experts and graphics designers the UI malleability they require to bring novel and inspiring designs to life. The end result is intrinsically search optimized HTML output that is superlative to virtually all other eCommerce platforms. Magento demonstrates its commitment to supporting your growth by providing a direct and easy upgrade path to the Enterprise edition when the time is right.
Here are some of the great features available in Magento Professional Edition
Gift Cards and Gift Certificates
Your customers can buy physical (physical card mailed to recipient) and virtual (code provided via email to recipient) gift cards and gift certificates. Customers may include a optional personal message when purchasing, and recipients can then use the value to purchase items from your store.
Reward Points System
Reward Points functionality allows you, the online merchant, to implement customized programs designed to increase customer loyalty. Points may be awarded to your customers based on configurable exchange rates for transactions and promotions, as well as user actions such as contributing ratings and reviews, signing up for your newsletter and more.
Customer Store Credits
Store Credits can be created and tied to customer account. Orders can be refunded for store credit, Gift Cards can be redeemed to store credit, and customers can use the credit to purchase items during checkout. Store credits dramatically reduce the management challenges associated with tracking transaction in an external system.
Strong Data Encryption
Professional Edition includes the encryption and security standards in the Enterprise Edition which support PA-DSS standards and ensure that Magento is a fully secure solution.
Download the Magento Professional Edition Datasheet
Hybrid Forge – Magento Experts
Looking to maximize your conversions with Magento? Consider using layered navigation and our latest extension for your featured products. Call us today for more information.
Interested in re-platforming your eCommerce system to Magento? Call Hybrid Forge at (877) 663-6743 for a no cost preliminary assessment and quotation.
Leveraging Technical Expertise Locally
Hybrid Forge is pleased to announce that our solution to the City of Edmonton’s Leveraging Technical Expertise Locally (LTEL) Pilot Project was chosen as the best among 14 competing applicants. The city solicited proposals for an innovative solution to replace the Edmonton Transit Systems’ (ETS) lost-and-found management system. The city partnered with TEC Edmonton to develop this initiative to gain access to new technologies and products that haven’t been realized previously.
“This is an excellent opportunity for us, and we are excited about forging relationships with the City of Edmonton and TEC Edmonton” says Geoff Kliza, President of Hybrid Forge. “Our goal is to integrate business systems with emerging web trends such as social networking to provide a closer relationship between our clients and their customers.”
The solution proposed by Hybrid Forge encompasses a web-based application built using the Hybrid Forge BaseModel MVC framework. The BaseModel MVC framework provides the foundation for building user-friendly data-driven applications while providing key productivity improving features such as simplified inventory search, enhanced reporting and user authentication via enterprise directory. Novel features of the proposed lost-and-found application include barcode-scanning support and an API for integration with social networking sites like Twitter and FaceBook.
Link to the Press Release on the Edmonton of City Website
Magento Performance Optimization – Deployment and Beyond
More often than we thought we’re receiving inquiries from clients regarding a Magento deployment that is not performing to the level they expected. In this business the responsiveness of a client’s website is extremely important. If the browsing experience is lousy potential customers are going to move on to a competitor.
The single most effective configuration item for enhancing the performance of Magento is money – Crucial Hosting
If the site is intolerably slow potential shoppers will go back to the Google and pick the next vendor in the list for the product they are looking for. Typically, clients with the most challenging of these performance issues clients end up contacting the team Hybrid Forge for an assessment and a resolution. Since the Magento eCommerce platform is based on the MVC brilliance of the Zend Framework we know that its extremely flexible and powerful. However, with great power comes great responsibilities. In the rush to re-platform an existing eCommerce package such as ZenCart, osCommerce, AspDotNetStoreFront, etc to Magento we’ve seen some absolutely tragic hacks of this framework.
Some of the more disconcerting examples are modified files in the /app/code/core (broken upgrade), completely copied default design directories with only one or two modified files and modifications pinned to specific database version (pre-1.2.1). Let’s get this straight – the learning curve is steep and perilous and you’ll get what you pay for if you choose a firm with little verifiable experience. While assessing and resolving these challenges is good for our business I think we all agree the world be would be a better place if we could avoid Magento missteps in the first place. The work isn’t done when the software is launched either. There are a number of logging tables that will grow unchecked less you perform regular maintenance on the database. The latest culprit we encountered in a recent audit is the “report_event” table. This particular Magento deployment had been running for a few months and collected well over a 150,000 records in the “report_event” table. By truncating this table we immediately realized a 500% improvement in php page execution time. Let me say that again, by truncating this single table we reduced page load time by 5X!
The recent Magento Enterprise Whitepaper contains some very useful configuration insight. If you haven’t read it yet download the Magento Enterprise Edition Whitepaper on Methods and Best Practices for High Performance eCommerce today.
The processes Hybrid Forge has developed for deploying, maintaining and evaluating Magento installations is constantly evolving because Hybrid Forge subscribes to a philosophy of continuous improvement. However, there many common elements to each and every deployment and this post serves as a abridged guide to some of the key technical elements gathered from both personal experience as well as fellow Magento authorities.
Abridged Magento Linux Installation and Optimization
We tend to deploy Magento on Centos 5.3 running Apache 2.2.x, PHP 5.2.x and Mysql 5.x. One of the first tricks is that PHP 5.2 is not available in the standard yum repositories. In order to install PHP 5.2 you’ll need to download and install the remi repositories via rpm:
- wget http://download.fedora.redhat.com/pub/epel/5/i386/
epel-release-5-3.noarch.rpm - wget http://rpms.famillecollet.com/el5.i386/
remi-release-5-7.el5.remi.noarch.rpm - rpm -Uvh remi-release-5*.rpm epel-release-5*.rpm
Now download PHP 5.2 – don’t get tempted by the 5.3.x release of PHP. Magento, as of this post is not compatible with PHP 5.3 so save yourself the grief of rolling back the PHP version and just say no (for now).
- yum –enablerepo=remi install php-common-5.2.10-1.el5.remi
- yum —enablerepo=remi install php-5.2.10-1.el5.remi
- yum install gd gd-devel
- yum –enablerepo=remi install php-mcrypt-5.2.10-1.el5.remi
php-xml-5.2.10-1.el5.remi php-devel-5.2.10-1.el5.remi
php-imap-5.2.10-1.el5.remi php-soap-5.2.10-1.el5.remi
php-mbstring-5.2.10-1.el5.remi php-mysql-5.2.10-1.el5.remi - yum –enablerepo=remi install php-mhash-5.2.10-1.el5.remi
php-gd-5.2.10-1.el5.remi
Install APC (Alternative PHP Cache)
- yum –enablerepo=remi install php-pear php-devel-5.2.10-1.el5.remi httpd-devel
- pear install pecl/apc
- echo extension=apc.so > /etc/php.d/apc.ini
Now open the /etc/php.d/apc.ini and consider adding the following:
- apc.enabled = 1
- apc.shm_size = 128
- apc.include_once_override = 1
- apc.mmap_file_mask = /tmp/apc.XXXXXX
One more setting to consider and that’s:
- apc.stat = 0
If stat is disabled APC will NOT check for updated versions of PHP files automatically. Apache must be restarted to check for PHP file changes. It is useful in production servers where PHP code is not changed frequently and offers an increase in performance.
Apache Configuration
The Mozilla Firefox Firebug Net tab and the add-on Y-Slow will reveal if apache is configured to both compress files and send expiry details to visiting browsers.
Enable Apache Content Expiration
Locate your httpd.conf and adding the following section. Feel free to modify the expiration lengths if that’s not consistent with your front-end update strategy. Pay particular attention to the .css file expiration.
- <IfModule mod_expires.c>
- ExpiresActive on
- ExpiresByType image/gif “access plus 1 month”
- ExpiresByType image/jpeg “access plus 1 month”
- ExpiresByType image/jpg “access plus 1 month”
- ExpiresByType image/png “access plus 1 month”
- ExpiresByType text/plain “access plus 15 day”
- ExpiresByType text/html “access plus 1 second”
- ExpiresByType text/css “access plus 1 day”
- ExpiresByType text/javascript “access plus 1 day”
- ExpiresByType application/x-shockwave-flash “access plus 1 day”
- ExpiresByType application/x-httpd-php “access plus 1 second”
- </IfModule>
Enable Apache Output Compression
- <IfModule mod_deflate.c>
- AddOutputFilterByType DEFLATE text/html
- AddOutputFilterByType DEFLATE text/plain
- <FilesMatch “\.(js|css)$”>
- SetOutputFilter DEFLATE
- </FilesMatch>
- </IfModule>
After changes are made to the apache configuration you’ll of course need to restart the apache daemon.
MySQL Configuration
Open the /etc/my.cnf file and review the cache settings for MySQL. In a well spec’d server hosting a product catalog of up to 10,000 products these settings are a good rule of thumb. Magento uses Innodb type tables so the size of the innodb_buffer_pool_size is highly correlated to improved performance.
- query_cache_type = 1
- query_cache_size = 64M
- innodb_buffer_pool_size = 256M
- thread_cache_size = 16
- table_cache = 512
- key_buffer = 32M
.htaccess
Along with the standard Magento rewrite conditions avoid duplicate content issues by redirecting non-www requests to the www.mydomain.com.
- RewriteCond %{HTTP_HOST} ^mydomain.com [NC]
- RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]
File permissions
Reset your file permissions by running the following commands in the root of the Magento installation:
- find . -type f -exec chmod 644 {} \;
- find . -type d -exec chmod 755 {} \;
- chmod o+w var var/.htaccess includes includes/config.php app/etc
- chmod 550 pear
- chmod -R o+w media
In order run Magento Connect you may need to TEMPORARILY loosen file permissions by executing these commands in the root of the Magento installation:
- find . -type d -exec chmod 777 {} \;
- find . -type f -exec chmod 644 {} \;
Clean Up Script
Download the Magento Cleanup Tool and schedule its execution. I wouldn’t recommend exposing it to the world as suggested in the Magento Wiki page however.
http://www.magentocommerce.com/wiki/groups/227/resetting_file_permissions
References for this Post
Do it your-selfers will appreciate the single best, almost biblical, reference for Magento server setup and optimization is the Crucial Web Hosting blog at http://www.crucialwebhost.com/blog/magento-commerce-install-guide/
Tweaking the Interprise Suite eCommerce Minicart Display
Visitors to your eCommerce website will enjoy seeing a ‘mini cart’ while they shop around. A minicart is a smaller, stripped down version of their full shopping cart, typically placed on side panels or inside website headers. As a web designer, I am happy to take advantage of the Interprise Suite eCommerce (ISE) Skin Tokens for displaying a minicart inside my custom design skins [i.e., (!MINICART!) ]. But, I like to make some modifications to the default minicart display and I believe you might too.
There are a few CSS and Javascript workarounds I’ll discuss to get around having to edit any C#, because the minicart markup is generated directly by the ISE code-behind, and is not easily accessible without the need to recompile your code-base.
Notes on this example: I assume the reader to have an intermediate skill level for writing valid CSS and also manipulating HTML elements (DOM) with Javascript. In my example, I have used JQuery to traverse, manipulate, and edit some elements because it works great, it’s feature-rich, and appears to have no conflicts with ISE core Javascript libraries. You can use whichever Javascript package you prefer. You may also want to refer to a previous post: Creating Custom Design Skins for Interprise Suite.
The Generated ISE Minicart HTML Markup
By default, the minicart HTML generated by the ISE code-behind comes out looking like this:
- <table width=”150″ cellpadding=”0″ cellspacing=”0″ border=”0″>
- <tr><td align=”left” valign=”top”>
- <img src=”skins/Skin_1/images/minicart.gif” border=”0″><br>
- <table width=”190″ cellpadding=”4″ cellspacing=”0″
border=”0″ style=”border: 1px solid #444444;”> - <tr><td align=”center” valign=”top”>
- <a href=”p-1-product-abc.aspx”>Product ABC</a>
- <br>Qty 1 $ 5.00<br/><br/>
- <a href=”p-2-product-xyz.aspx”>Product XYZ</a>
- <br>Qty 1 $ 5.00<br/><br/>
- Sub Total: $ 10.00<br/><br/>
- <a href=”ShoppingCart.aspx”>
- <font color=”BLUE”><b>CHECKOUT</b></font></a>
- </td></tr>
- </table>
- </td></tr>
- </table>
And here’s how it ends up looking by default – not ugly, but a tad unattractive, in my opinion:

First the problems, besides the obvious markup errors like mixing “<br/>” with “<br>”:
- We can’t easily make changes to the HTML because it is derived from the C# code-behind;
- The output is in a table, not horrible, but the “align=center” on the table cell will need to be looked at; I like this kind of output to be aligned left or right;
- The “<FONT>” tag… my, oh my; But it will be useful for us, see below;
- There’s no ID or class associated with the minicart for targeting it with CSS;
- When the shopping cart is empty, the minicart doesn’t show anything – no nothing. This may or may not be what you want but in my case, i’d like it to show “Your Shopping Cart is Empty” when there’s nothing there.
Implementing the Interprise Suite Minicart Tweaks
First, you’re going to want to put your minicart Skin Token inside a wrapper in your template files so you can properly target it with CSS:
- <div id=”miniCart”>(!MINICART!)</div>
Here is my snippet of CSS that targets the minicart. Granted, i’m using that <FONT> tag in a way that probably wasn’t imagined originally, however it allows me to do what I need in modern browsers.
- /* Mini Cart CSS */
- #miniCart table { line-height:1.1em; }
- #miniCart table tr td img, #miniCart table tr td br,
#miniCart table table td a font b { display:none; } - #miniCart table table tr td br { display:inline; }
- #miniCart table table td { padding-bottom: 5px; }
- #miniCart table table td a font { float:right;
display:block; width:112px; height:22px;
background:url(‘../images/button-checkout.gif’) no-repeat 0 0;
cursor:pointer; } - #miniCart table table td a font:hover
{ /* roll-over sprite background-position */}
Because the table cell align=”center” and table border are both inline, I can’t override it with CSS. So, i’m going to use JQuery. And i’m also going to use JQuery to add some text to the ISE mini-cart when the cart is empty. So, first you’ll need to ensure you include the JQuery libraries in the <head> of your ISE template file:
- <head>
- <script src="/skins/Skin_(!SKINID!)/js/jquery-1.3.2.js"
type="text/javascript"></script> - . . .
- </head>
Then, you can use the following Javascript to target the minicart:
- /* JQuery Mini-cart Update */
- $(document).ready(function () {
- $(“#miniCart table table”).css({‘border-width’ : ‘0′});
- $(“#miniCart table table td”).attr({align : ‘left’});
- if ($(“#miniCart”).text() == “”) {
- $(“#miniCart”).append(“<p>Your Shopping Cart is Empty.</p>”);
- };
- }
You’ll have to create your own button image (and rollover sprite) for the checkout button. But with a little extra CSS tweaking (like adding an background image to the miniCart div) my minicart now looks something like this and works just great!

For more information on customizing Interprise Suite eCommerce, please feel most welcome to contact the Hybrid Forge design team: info@hybridforge.com.
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.
Interprise Suite Installation Success – A Pre-flight Checklist
Interprise Suite is a relative newcomer in the ERP (Enterprise Resource Planning) software marketplace. While the product has been around since 2006, not until recently has it been worthy of implementation within your business. Trust us, we started working with Interprise Suite in the fall of 2007 as the ERP platform for the start-up social enterprise ireturn inc. Like many things in life, first impressions are a very important indicator of future outcomes. In anticipation of the release of Interprise Suite 2009 we thought it was time to publish a handy pre-installation guide to ensure your first out-of-the-box experience is a success.
Drawing on my past experience as an Air Force officer I’ve have put together the Interprise Suite Pre-flight Checklist. As you may or may not be aware each and every time an aircraft leaves the ground there is a rigorous list of items to be checked before the pilot even starts the engines. Ultimately the pilot is responsible for determining the aircraft’s airworthiness before he embarks. As Interprise expands its marketing to offer single-user versions of Interprise Suite installable by virtually anyone, some of its requirements are bound to be overlooked prior to launching the installer. I admit that many of the checks I describe are simple RTFM to the propeller-head crowd, yet we anticipate many a motivated small-business owner who may not be schooled in the black art of aspnet_regiis.exe will want to evaluate the software for themselves.
This checklist makes the basic assumption that you are planning to install both the client and the server for Interprise Suite. To ensure your first flight is a success I present the Hybrid Forge Interprise Suite Pre-Flight Checklist.
Interprise Suite Install Pre-flight Checklist
Operating system
Interprise Suite is supported on the following operating systems: Windows XP Professional, Vista Business, Windows Server 2003 Standard or better, and Windows Server 2008 Standard or better. Home edition of Windows XP and the lighter versions of Vista do not have the Microsoft web server IIS so avoid those. Interprise will run on 64-bit versions of Windows but a specific 64-bit version is not currently available. I’m currently using the release candidate of Microsoft Windows 7 Ultimate available through our MSDN (Microsoft Developer Network) subscription and its a significant improvement over Vista and even Windows XP for those hold outs. In a future post I’ll describe our Interprise Suite experiences on Windows 7.
Disk Space
While the official requirement is 10GB for both the client and server, to avoid disk space issues from Microsoft service packs and other maintenance downloads as well as disk space for additional company or demo databases, ensure your machine has at least 20GB of free space.
Internet Information Server (IIS)
Prior to launching the Interprise Suite installer ensure you have Internet Information Server (IIS) installed. Installing IIS before running the installer will save you from wasting time restarting the installer when it fails to detects IIS. Be sure to test that IIS is running by starting your favorite web browser and pointing it to http://localhost. Check whether your firewall is blocking traffic on the standard HTTP port number 80. Be sure to open access to this port to your machine.
Instructions on installing IIS for Vista
.Net Framework 2.0
Ensure that Microsoft’s .Net Framework version 2.0 is installed. Note that this requirement is only relevant for early versions of Windows XP and Windows Server 2003 as newer Microsoft operating systems include the framework.
Download the .Net 2.0 Redistributable Package directly from Microsoft
Windows Installer 3.1
The Windows installer is an applications installation and configuration service that facilitates installation packages like Interprise.
Download the Windows Installer 3.1 package
Web Service Enhancements 3.0
In order for the Interprise Suite client to connect to your designated server over the internet you must install the Microsoft Web Service Extensions version 3. The Interprise “smart client” technology relies on web services to communicate with your server. There are multiple versions available for download from Microsoft and only one is detected by the Interprise installer. Here is the link to the version Interprise prefers:
Download the Web Services Enhancements (WSE) 3.0 for Microsoft .NET
Microsoft SQL Express 2005
The Interprise Installer will attempt to install Microsoft SQL Express 2005 if it can’t detect a previously installed version of Microsoft SQL Server. Microsoft recently reorganized the SQL Server website to promote the release of SQL Server 2008 and changed the location of the SQL Express 2005 download in the process. The download is now available at the Microsoft SQL Server 2005 product page.
After checking each of the items on the checklist you are finally cleared to proceed with installation. I hope you enjoy the flight! As Interprise Suite and the software that supports it evolves I will continue to update the checklist. In the short-term I look forward to support for Windows SQL 2008 and Windows 7 and of course the official release of Interprise Suite 2009.
We Speak ‘Interprise Suite’
Interprise Suite is a sophisticated platform for powering your business. At Hybrid Forge we speak Interprise Suite and can help you quickly climb the learning curve on the path to understanding why Interprise Suite is such a compelling choice for your next ERP platform.
My next post on Interprise Suite will discuss deploying to virtual servers and strategies for effectively managing an Interprise server in the cloud. At Hybrid Forge we use VMWare’s ESX Server for virtualizing and managing our servers. In our data-center environment ESX Server is extremely stable and the performance lost to the hypervisor is ‘virtually’ negligible. We have assisted clients deploying Interprise Suite within shared virtual server environments such as Parallels Virtuozzo and Amazon’s EC2 Cloud Computing Environment.
Contact Hybrid Forge today to discuss what Interprise Suite can do for your business at 877-66-FORGE (3-6743) toll-free.