I'm new to nopCommerce and I started looking for the documenation on how to skin the site. I paid $20 to download the documentation but the .pdf is really geared towards the end-user for administering the site and not the developer customizing the site. I feel good about paying the $20 because I can tell that alot of work was put into nopCommerce and I am appreciative of the developers contribution to the Open Source Community. One suggestion that I would make is to have a developer's manual for a nominal cost of $10.
First my shameless plug. My company, The Computer Tailors, Inc. isa a boutique website development company that specializes in custom programming, website development, SEO/SEM, Email Marketing, Text Messaging services. I'm investigating various Open Source shopping cart applications because I am moving away from dashCommerce. dashCommerce is a great app but does not have the developer or community support like nopCommerce.
dashCommerce did provide me with self taught education on how to customize every aspect of an ASP.Net Shopping Cart Application in C# using SQL Server. So I started transferring my skills to nopCommerce. The following is the start of a roadmap that I would appreciate you come along with me and guide me if I veer off course.
Customizing the nopCommerce Front End:
1. App Themes
2. Master Pages
1. App Themes:
First thing I discovered was that nopCommerce uses Themes. Using Visual Studio 2010, I created a new Theme. I then duplicated the darkOrange Theme and called it something like TheComputerTailors to easily recognize that it was my custom Theme. The darkOrange Theme appears to be the default theme when I installed nopCommerce 1.9. You can set the Theme by going to the Administration Section: Configuration, Global Settings, SEO/Display. The reason you create your own Theme is so you don't accidentally overwrite it with a reinstall. When a Theme is created in the App Themes directory, it is automatically displayed within the Themes dropdown in the SEO/Display page due to nopCommerce doing a directory search to populate the available Theme dropdown list. Next, I start incoporating my styles into the style.css file and start testing.
2. Master Pages:
Next, I discovered that nopCommerce makes use of Master Pages. There is a Root.Master which is like a main Master but each page references a OneColumn, TwoColumn, or ThreeColumn page master. The 1,2, or 3 column Master pages are nested from the Root.Master. Look at your template for your shopping cart pages, determine which is the best fit for each page and set the appropriate Master Page at the top of the .aspx page ( MasterPageFile="~/MasterPages/OneColumn.master" ).
Header contentPlaceHolder:
In customizing a Shopping Cart Site, you may be faced with the prospect of adding Flash, jQuery or other script that you only want on 1 or a few pages. I have found that the best way to do so is to place this code in the header section of only the pages that you designate. But how do you add code to a header section in an .aspx page that uses a Master Page? The answer is to add a content place holder in the header section of the master page.
Since each page in nopCommerce uses a Root.Master and one of the three other Master Pages, I added the following:
Root.Master:
Add
<asp:ContentPlaceHolder ID="cphHead" runat="server"></asp:ContentPlaceHolder> above the </head>tag.
OneColumn.Master, TwoColumn.Master,ThreeColumn.Master:
Add the following above the cph1 content place holder:
<asp:Content ID="Head1" ContentPlaceHolderID="cphHead" runat="server">
<asp:ContentPlaceHolder ID="cphHead" runat="server">
</asp:ContentPlaceHolder>
</asp:Content>
Within your .aspx page (Ex. Default.aspx):
Add your custom JavaScript or script reference above the cph1 content.
<asp:Content ID="Head1" ContentPlaceHolderID="cphHead" runat="server">
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<!-- Cufon -->
<script type="text/javascript" src="js/cufon-yui.js"></script>
<script type="text/javascript" src="js/myradpro.font.js"></script>
<script type="text/javascript">
Cufon.replace('h1')('h2')('h3')('h4');
</script>
<!-- flash script -->
<script type="text/javascript" src="js/flash_detect.v1.7.js"></script>
</asp:Content>
This will allow you to enter custom coding to an individual page but not conflict with any other code.
My next posts will be on the product detail page, the cart, and the checkout page.