|
DotShoppingCart Blog
| By lukezy on 7/8/2010 |
Customization
|
Adding a custom page to DotShoppingCart is as simple as adding a page to any ASP.NET website. You can just create a page in folder that you like and start customizing your own content. If you wish to add a custom page that is integrated with DotShoppingCart e.g. page editor, theme etc, you will need to follow these steps.
1) Decide where you want to put the new page and create an entry in table DSC_Block_Type_lkp . And then retrieve the blockTypeId for the entry that has just been created.
e.g INSERT INTO DSC_Block_Type_lkp (Type, VirtualPath) VALUES ('My Page', '/Controls/Core/MyPage.ascx')
2) Add an entry to web\module.config to wire up the page url.
<add name="root" value="">
<pages>
<clear />
<add name="MyPage" blockTypeId="99" />
</pages>
</add>
3) Create a usercontrol under the path that you decided in step 1 e.g. web\controls\core\MyPage.ascx and make sure it's derived from PageBlockUserControl . You can take a look at any existing pages e.g. web\controls\UnSubscribe.ascx.cs for reference.
In V4.1 we added a few new features and several bug fixes. Check the following for the major new features.
You can take a look at the list of new major features in V4 below. V4 also comes with a long list of bug fixes.
DotShoppingCart Suite 4.0 is now available for purchase. The major features include Silverlight charting report, Form module, Photo block, XML bulk product export/import, templated product detail page etc. Check the full new feature list.
| By lukezy on 9/24/2009 |
Customization
|
In Store\OnePageCheckout.ascx add the following code after the line "<div><h3><asp:Literal runat="server" text="<%$ Resources:Common,ReviewInformationAndSubmitOrder %>" /></h3></div>"
<div>
<asp:CheckBox id="chkTerms" runat="server" text="I have read and agree the your terms." />
<asp:CustomValidator id="cvdAgree" runat="server" clientvalidationfunction="IsChecked"
onservervalidate="cvdAgree_ServerValidate" validationgroup="checkout" errormessage="The term agreement must be checked.">*</asp:CustomValidator>
<script type="text/javascript">
function IsChecked(obj, args) {
var checkbox = $("#<%= chkTerms.ClientID %>");
args.IsValid = checkbox.attr('checked');
}
</script>
</div>
In Store\OnePageCheckout.ascx.cs add the following code
protected void cvdAgree_ServerValidate(object source, ServerValidateEventArgs args) {
args.IsValid = chkTerms.Checked;
}
If you use & as part of URL e.g. use & in category name, you will get message "HTTP Error 400.0 - Bad Request ASP.NET detected invalid characters in the URL" from IIS7 server. This is because IIS 7 implements UrlScan 2.5 and disallows the ampersand (&) in the request for security reasons. As discussed here, you will need to do the following two in order to fix this.
| By lukezy on 3/31/2009 |
Customization
|
I had one person asking how to implement Telerik alike menu in DotShoppingCart. In this post I will describe how you can use the dynamic image creating feature in DotShoppingCart along with some basic CSS tricks to archieve this.
1. Start off the Legacy Theme
2. Change Accent colors.
3. Update the menu CSS and add search box CSS in the Legacy Theme "App_Data\Themes\Themes_Template\Legacy\Default.css"
div.mainmenu div.tab a:link, div.mainmenu div.tab a:visited {
background: url('/dyimage.axd?type=boxHeader&width=120&height=30&cornersize=0') no-repeat;
float: left;
margin-right: 1px;
width: 120px;
height: 30px;
color: %Accent Fore Color%;
font-weight: bold;
text-decoration: none;
text-align: center;
}
div.mainmenu div.tab a:active, div.mainmenu div.tab a.selected{
background: url('/dyimage.axd?type=boxHeader&subtype=highlight&width=120&height=30&cornersize=0&gradient=False') no-repeat;
color: %Accent Highlight Fore Color%;
}
div.mainmenu div.tab a:hover {
background: url('/dyimage.axd?type=boxHeader&subtype=highlight&width=120&height=30&cornersize=0') no-repeat;
color: %Accent Highlight Fore Color%;
}
td.searchBar {
background: url('/dyimage.axd?type=boxHeader&width=1&height=30&cornersize=0') repeat;
vertical-align: middle;
padding-left:10px;
border-right: solid 1px %Border Color%;
}
.searchShell {
background:transparent url('/web/images/searchBoxBg.gif') no-repeat scroll 0;
}
.searchInputBox {
height:13px;
line-height:12px;
margin-left:10px;
padding:0;
vertical-align:middle;
width:172px;
border:0 none;
}
.searchButton {
background:transparent none repeat scroll 0 0;
cursor:pointer;
height:22px;
vertical-align:middle;
width:23px;
border:0 none;
}
4. Update the search user control "Controls\Blocks\Search.ascx" to use the new search CSS.
<asp:Panel id="pnlBlockContent" runat="server">
<div class="searchShell">
<input type="text" class="searchInputBox" name="txtSearch" onkeydown="return GoSearch(event)" />
<asp:Button id="btnDoSearch" runat="server" cssclass="searchButton" />
</div>
</asp:Panel>
And finally you will get this.
There are a lot of bug fixes made into DotShoppingCart V3.1. Along with the bug fixes you can find a few new features as follows.
The full multi-language support is the major feature in DotShoppingCart V3.0. You can now translate it to other language easily or create a language pack. Other features include unlimited product custom fields, product bulk import, site admin UI improvements etc. Check below for more details.
DotShoppingCart Suite 3.0 is now available for purchase. It has tons of stuff that people are waiting for. The major ones are the full multi-language support, unlimited product custom fields, product bulk import, site admin UI improvements. Check the new features in V3.
| By lukezy on 10/23/2008 |
Customization
|
There was an old blog entry talking about adding custom ASP.Net user control to DotShoppingCart. From DotShoppingCart V2.5 the page editor has been rewritten by using JQuery. As the result the way to integrate the custom ASP.NET user control is simplified.
1) Create a Standard ASP.NET stardard User Control and derive it from BlockUserControl
Check "Web/View/Blocks/TagCloud.ascx.cs" for the example.
using DotShoppingCart.Commercial.Core;
public partial class View_Blocks_TagCloud : BlockUserControl {
2) Hook up the new block type in DB
a) Insert a new entry to dbo.DSC_Block_Type_lkp table
e.g. INSERT INTO DSC_Block_Type_lkp (type, virtualPath) VALUES ('My Block', '/Controls/Blocks/MyBlock.ascx')
b) Insert a new entry to dbo.DSC_Block_Type_Group_Block_Type_Map
e.g. INSERT INTO DSC_Block_Type_Group_Block_Type_Map (BlockTypeGroupId, BlockTypeId, SortOrder) VALUES (3, <id that is created in step a>, 10)
To add your custom user control to page, just enable page edior and click "+" sign. Find the custom block in the proper group (which you add in the step b above).
Product bulk import is the major feature in V2.6. Now you can work on the products offline and then import it into store admin easily. Several admin UI interfaces have been cleaned up and made consistent throughout the admin site. There are also several other admin improvements including File Management and user ghost feature.
| By lukezy on 9/24/2008 |
Customization
|
DotShoppingCart allows you to customize the product summary easily. To do that just go to any product summary page and enable the page editor. Click "Edit" in the dropdown menu of the product summary block. See the image below.
Update the html code in "Product Summary Template". Notice there are tokens wrapped by %% e.g. %%ProductName%%. These tokens will be replaced by the product properties during the runtime.
| By lukezy on 9/23/2008 |
General
|
Before you apply these migration steps please make sure you back up your database and files web\web.config & DSC.config.
Here are the manual steps to migrate DotShoppingCart Suite V2.1 to V2.5.
1) Migrate database
2) Update web.config and DSC.config
a) Replace string "OpenSource" to "Commercial" in web.config and DSC.config
b) Remove table based shipping and table based tax configuration (see yellow background below) in DSC.config
<shippingServiceConfiguration defaultProvider="">
<providers>
<clear />
<addenabled="True" sortOrder="0" name="Table Based Shipping" type="DotShoppingCart.Commercial.Shipping.TableBasedShippingProvider" />
</providers>
</shippingServiceConfiguration>
<taxServiceConfiguration defaultProvider="">
<providers>
<clear />
<add name="Table Based Tax" type="DotShoppingCart.Commercial.Tax.TableBasedTaxProvider, DotShoppingCart.Commercial.Tax, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" />
</providers>
</taxServiceConfiguration>
c) Compare web.config and DSC.config in V2.5 to the existing ones and bring the new changes in V2.5 to the existing ones.
d) Go to Store admin and configure table based shipping and table based tax again
| By lukezy on 9/20/2008 |
Customization
|
In DotShoppingCart themes and skins are dynamic. When you change the colors in site admin, all the images in the themes are created again by using GDI+ API.
Check the areas surrounded by the red rectangles below. These background images are created dynamically.
and
The bottom ones are called block headers. This article describes how you can replace the block headers with your customized static images.
The css class for the block headers is "blockHeader". If you search the "blockHeader" against your entire solution, you will find one in Default.css
div.blockHeader {
text-align:center;
font-weight: bold;
}
div.blockHeader a {
text-decoration: none;
}
and the other one in web/controls/blocks/BlockContainer.ascx.cs.
header.Attributes.Add("class", "blockHeader");
header.Attributes.Add("style", string.Format(BlockHeaderFormat, buc.HeaderData.Height - 6, buc.HeaderData.Width, buc.HeaderData.Height));
header.InnerText = buc.HeaderData.Title;
blockDiv.Controls.Add(header);
To use your customized static image as the block header background, please do
1) Add your background image to the div.blockHeader css style e.g. background-image:url(<your image url>);
2) Remove the code adding the inline style
header.Attributes.Add("style", string.Format(BlockHeaderFormat, buc.HeaderData.Height - 6, buc.HeaderData.Width, buc.HeaderData.Height));
Here is an example of the customzed header blocker.
| By lukezy on 9/16/2008 |
General
|
For things like FAQ, knowledge base or online documentations DotShoppingCart has a built-in module "Hierarchy View" for these. In this article I am going to describe how easy to create a FAQ page.
In your site admin, go to Content -> Content and click "Add" button to create a content group.
Make sure you change the Default View to "Hierarchy". See the arrow sign above.
After you create the FAQ content group, click "View" button and you will be brought to the FAQ page. Check the URL of the FAQ page. It will be something like <your site>/View/Hierarchy/FAQ.aspx. You could use the relative link "/View/Hierarchy/FAQ.aspx" in any page or menu.
You can see the FAQ page that was just created.
Then you can use the highlighted the icons above to start creating the entries in FAQ.
| By lukezy on 9/15/2008 |
New Features
|
Many people asked if there is a tool which can do bulk import tax table since tax table could be hundreds of tax regions. We have implemented the bulk tax import feature in the next version.
In Site Admin -> Store -> Tax, you will see the "Import Tax Regions" button.
After clicking the button you will see this.
You can point it to a text format tax file to import the tax regions defined in the tax file. Check online document for the format of the tax file.
For people want to use this feature now, you could download from here. And then copy the files to the web directory that your store was installed to.
DotShoppingCart Suite V2.5 has been released. The last version of DotShoppingCart Suite V2.1 was about 6 months ago. Now DotShoppingCart Suite has been kept up with its On Demand service sibling enjoying the new features.
Here are the links to the new features included in this release.
| By lukezy on 9/8/2008 |
Customization
|
After you enable page editor, you will find a special menu item "Adavanced" in the dropdown menu of any block container. After you click it, you will see a warning sign "Note: please stop if you don't know HTML! Do not touch anything inside %% or you will get your site screwed up." As the general rule, if you are not familar with the raw HTML editing then please don't use this feature. Also you don't want to touch anything wrap around %%.
There are a lot of improvements made into V2.5. The page editor has been completely rewritten in JQuery. As a result you will notice a significant performance improvement when using page editor. Blog module has been enhanced as well. We added new blocks such as Tag Cloud, Article Archive, Recent Comments etc.
|
|