Structured Solutions http://www.structured-solutions.net/ Software to help you build a better store Structured Solutions Fri, 04 Mar 2005 23:09:08 GMT newtelligence dasBlog 1.7.5016.1 support@structured-solutions.net support@structured-solutions.net http://www.structured-solutions.net/Trackback.aspx?guid=d7b2ae83-62fb-415a-af63-7a4c89c8321b http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=d7b2ae83-62fb-415a-af63-7a4c89c8321b http://www.structured-solutions.net/CommentView.aspx?guid=d7b2ae83-62fb-415a-af63-7a4c89c8321b http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=d7b2ae83-62fb-415a-af63-7a4c89c8321b 0

Many ASP.NET sites rely on javascript being available and enabled on the browser. This self-contained user control has 3 tricks that will help you deal with the lack of javascript. If javascript is not running on the browser then:

  • A message is displayed (actually the message is hidden if javascript is running)
  • An event is raised
  • (optionally) The request is redirected to a new url

All the documentation is in the control source. Save this source as CheckJavascript.ascx , add it to your site and hopefully you will have fewer support calls.

<%@ Control Language="vb" AutoEventWireup="false"Inherits="System.Web.UI.UserControl"%>
<script runat="server">
' Copyright 2005 by Structured Solutions
'
' This work is licensed under the Creative Commons Attribution-ShareAlike License.
' To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/2.0/
' or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
'
' Revision History
' =============================================================================================
' Mar 04, 2005 Initial release
'
' This control will display a message to the customer if their browser is not running
' javascript. The way this works is that the message is hard coded (see below). If
' javascript is running the message is hidden by the browser. If javascript is not
' running the message remains visible.
'
' To use this control, place this line at the top of the page (aspx) or control (ascx)
' file in which you want the message to appear:
'
' <%@ Register TagPrefix="uc1" TagName="CheckJavascript" Src="CheckJavascript.ascx" %>
'
' Src is the path this file relative to the page or control file you are changing.
' Place this line where you want the message to appear:
'
' <uc1:CheckJavaScript id="CheckJavascript" runat="server" />
'
' The message is all the way at the bottom of this file.
'
' =====================================================================================
' Advanced feature: NoJavascript event
' =====================================================================================
PublicEvent NoJavascript As EventHandler
'
' This event is raised after a submit if the browser is not running
' javascript. This allows you to add an ASP.NET handler to your page
' to take some special action. This is not required...it's just here
' for completeness.
'
' <uc1:CheckJavaScript id="CheckJavascript" runat="server" OnNoJavascript="MyHandler" />
'
' =====================================================================================
' Advanced feature: NoJavascriptUrl
' =====================================================================================
Public NoJavascriptUrl AsString
'
' The browser will be redirected to this url after a submit if the
' browser is not running javascript. This allows you to add a landing
' page for customers that do not have javascript enabled. This is not
' required. If the string is empty, the browser will never be redirected.
'
' <uc1:CheckJavaScript id="CheckJavascript" runat="server" NoJavascriptUrl="SorryNoSale.html" />
'
' =====================================================================================
' The rest of this script has the code that implements the various functions.
' =====================================================================================
ProtectedOverridesSub OnPreRender(ByVal e As System.EventArgs)
MyBase.OnPreRender(e)
IfMe.Controls.Count > 0 Then
' Wrap the inner HTML in a <span> so it can be hidden
Dim innerHtml As Control =Me.Controls(0)
Me.Controls.Remove(innerHtml)
Dim span AsNew WebControl(HtmlTextWriterTag.Span)
span.ID ="span"
span.Controls.Add(innerHtml)
Me.Controls.Add(span)

' Create a javascript that will hide the span
Dim script AsNew System.Text.StringBuilder
script.AppendFormat("<script type=""text/javascript"" language=""javascript""> {0}", Environment.NewLine)
script.AppendFormat("<!-- {0}", Environment.NewLine)
script.AppendFormat(" if (document.getElementById) {{ {0}", Environment.NewLine)
script.AppendFormat(" if (document.getElementById(""{0}"")) {{ {1}", span.ClientID, Environment.NewLine)
script.AppendFormat(" document.getElementById(""{0}"").style.display = 'none'; {1}", span.ClientID, Environment.NewLine)
script.AppendFormat(" }} {0}", Environment.NewLine)
script.AppendFormat(" if (document.getElementById(""{0}"")) {{ {1}", ClientID, Environment.NewLine)
script.AppendFormat(" document.getElementById(""{0}"").value = ""1""; {1}", ClientID, Environment.NewLine)
script.AppendFormat(" }} {0}", Environment.NewLine)
script.AppendFormat(" }} {0}", Environment.NewLine)
script.AppendFormat("//--> {0}", Environment.NewLine)
script.Append("</")
script.AppendFormat("script> {0}", Environment.NewLine)
Page.RegisterStartupScript(script.ToString, script.ToString)

' Create a hidden field that will be examined during a submit for evidence of javascript
Page.RegisterHiddenField(ClientID, "0")
EndIf
EndSub

PrivateSub Page_Load(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMyBase.Load
If Page.IsPostBack Then
If Request(ClientID) <> String.Empty Then
If Request(ClientID) ="0"Then
RaiseEvent NoJavascript(Me, EventArgs.Empty)
If NoJavascriptUrl <> String.Empty Then
Response.Redirect(NoJavascriptUrl)
EndIf
EndIf
EndIf
EndIf
If Request(ClientID) <> String.Empty Then
If Request(ClientID) ="1"Then
Me.Visible =False
EndIf
EndIf
EndSub

</script>
<!--

CheckJavascript by Structured Solutions - www.structured-solutions.net

Everything below this comment will be displayed if javascript isnot
running in the browser. The message can contain text, HTML, links...
whatever you want.

-->
Some features on the store require javascript. <i>Please enable javascript and
then reload this page.</i>

ASP.NET User Control to Check for Javascript http://www.structured-solutions.net/PermaLink.aspx?guid=d7b2ae83-62fb-415a-af63-7a4c89c8321b http://www.structured-solutions.net/PermaLink.aspx?guid=d7b2ae83-62fb-415a-af63-7a4c89c8321b Fri, 04 Mar 2005 23:09:08 GMT <p> Many ASP.NET sites&nbsp;rely on&nbsp;javascript being available and enabled on the browser. This self-contained user control has 3 tricks that will help you deal with the lack of javascript. If javascript is not running on the browser then: </p> <ul> <li> A message is displayed (actually the message is hidden if javascript <strong>is</strong> running) <li> An event is raised <li> (optionally) The request is redirected to a new url</li> </ul> <p> All the documentation is in the control source. Save this source as CheckJavascript.ascx , add it to your site and hopefully you will have fewer support calls. </p> <div class=code> <p> <span style="FONT-SIZE: 11px; COLOR: black; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">&lt;%@ Control Language=<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"vb"</span> AutoEventWireup=<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"false"</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Inherits</span>=<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"System.Web.UI.UserControl"</span> <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">%</span>&gt;<br> &lt;script runat=<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"server"</span>&gt;<br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' Copyright 2005 by Structured Solutions</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' This work is licensed under the Creative Commons Attribution-ShareAlike License.</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/2.0/</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' Revision History</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' =============================================================================================</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' Mar 04, 2005 Initial release</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' This control will display a message to the customer if their browser is not running </span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' javascript. The way this works is that the message is hard coded (see below). If</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' javascript is running the message is hidden by the browser. If javascript is not </span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' running the message remains visible.</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' To use this control, place this line at the top of the page (aspx) or control (ascx)</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' file in which you want the message to appear:</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' &lt;%@ Register TagPrefix="uc1" TagName="CheckJavascript" Src="CheckJavascript.ascx" %&gt;</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' Src is the path this file relative to the page or control file you are changing.</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' Place this line where you want the message to appear:</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' &lt;uc1:CheckJavaScript id="CheckJavascript" runat="server" /&gt;</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' The message is all the way at the bottom of this file. </span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' =====================================================================================</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' Advanced feature: NoJavascript event</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' =====================================================================================</span> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Public</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Event</span> NoJavascript <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">As</span> EventHandler<br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' This event is raised after a submit if the browser is not running</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' javascript. This allows you to add an ASP.NET handler to your page</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' to take some special action. This is not required...it's just here</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' for completeness.</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' &lt;uc1:CheckJavaScript id="CheckJavascript" runat="server" OnNoJavascript="MyHandler" /&gt;</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' =====================================================================================</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' Advanced feature: NoJavascriptUrl</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' =====================================================================================</span> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Public</span> NoJavascriptUrl <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">As</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">String</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' The browser will be redirected to this url after a submit if the</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' browser is not running javascript. This allows you to add a landing</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' page for customers that do not have javascript enabled. This is not</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' required. If the string is empty, the browser will never be redirected.</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' &lt;uc1:CheckJavaScript id="CheckJavascript" runat="server" NoJavascriptUrl="SorryNoSale.html" /&gt;</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">'</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' =====================================================================================</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' The rest of this script has the code that implements the various functions.</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' =====================================================================================</span> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Protected</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Overrides</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Sub</span> OnPreRender(<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">ByVal</span> e <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">As</span> System.EventArgs)<br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">MyBase</span>.OnPreRender(e)<br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">If</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Me</span>.Controls.<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Count</span> &gt; 0 <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Then</span> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' Wrap the inner HTML in a &lt;span&gt; so it can be hidden</span> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Dim</span> innerHtml <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">As</span> Control <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Me</span>.Controls(0)<br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Me</span>.Controls.<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Remove</span>(innerHtml)<br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Dim</span> span <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">As</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">New</span> WebControl(HtmlTextWriterTag.Span)<br> span.ID <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"span"</span> <br> span.Controls.<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Add</span>(innerHtml)<br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Me</span>.Controls.<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Add</span>(span)<br> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' Create a javascript that will hide the span</span> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Dim</span> script <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">As</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">New</span> System.Text.StringBuilder<br> script.AppendFormat(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"&lt;script type=""text/javascript"" language=""javascript""&gt; {0}"</span>, Environment.NewLine)<br> script.AppendFormat(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"&lt;!-- {0}"</span>, Environment.NewLine)<br> script.AppendFormat(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">" if (document.getElementById) {{ {0}"</span>, Environment.NewLine)<br> script.AppendFormat(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">" if (document.getElementById(""{0}"")) {{ {1}"</span>, span.ClientID, Environment.NewLine)<br> script.AppendFormat(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">" document.getElementById(""{0}"").style.display = 'none'; {1}"</span>, span.ClientID, Environment.NewLine)<br> script.AppendFormat(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">" }} {0}"</span>, Environment.NewLine)<br> script.AppendFormat(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">" if (document.getElementById(""{0}"")) {{ {1}"</span>, ClientID, Environment.NewLine)<br> script.AppendFormat(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">" document.getElementById(""{0}"").value = ""1""; {1}"</span>, ClientID, Environment.NewLine)<br> script.AppendFormat(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">" }} {0}"</span>, Environment.NewLine)<br> script.AppendFormat(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">" }} {0}"</span>, Environment.NewLine)<br> script.AppendFormat(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"//--&gt; {0}"</span>, Environment.NewLine)<br> script.Append(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"&lt;/"</span>)<br> script.AppendFormat(<span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"script&gt; {0}"</span>, Environment.NewLine)<br> Page.RegisterStartupScript(script.ToString, script.ToString)<br> <br> <span style="FONT-SIZE: 11px; COLOR: green; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">' Create a hidden field that will be examined during a submit for evidence of javascript</span> <br> Page.RegisterHiddenField(ClientID, <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"0"</span>)<br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">End</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">If</span> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">End</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Sub</span> <br> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Private</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Sub</span> Page_Load(<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">ByVal</span> sender <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">As</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Object</span>, <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">ByVal</span> e <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">As</span> System.EventArgs) <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Handles</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">MyBase</span>.Load<br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">If</span> Page.IsPostBack <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Then</span> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">If</span> Request(ClientID) &lt;&gt; <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">String</span>.Empty <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Then</span> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">If</span> Request(ClientID) <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"0"</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Then</span> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">RaiseEvent</span> NoJavascript(<span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Me</span>, EventArgs.Empty)<br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">If</span> NoJavascriptUrl &lt;&gt; <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">String</span>.Empty <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Then</span> <br> Response.Redirect(NoJavascriptUrl)<br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">End</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">If</span> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">End</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">If</span> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">End</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">If</span> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">End</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">If</span> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">If</span> Request(ClientID) &lt;&gt; <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">String</span>.Empty <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Then</span> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">If</span> Request(ClientID) <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> <span style="FONT-SIZE: 11px; COLOR: #666666; FONT-FAMILY: Courier New; BACKGROUND-COLOR: #e4e4e4">"1"</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Then</span> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Me</span>.Visible <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">=</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">False</span> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">End</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">If</span> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">End</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">If</span> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">End</span> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">Sub</span> <br> <br> &lt;/script&gt;<br> &lt;!-- <br> <br> CheckJavascript by Structured Solutions <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">-</span> www.structured-solutions.net<br> <br> Everything below this comment will be displayed <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">if</span> javascript <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">is</span> <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">not</span> <br> running <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">in</span> the browser. The message can contain text, HTML, links...<br> whatever you want.<br> <br> --&gt; <br> Some features <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">on</span> the store require javascript. &lt;i&gt;Please enable javascript <span style="FONT-SIZE: 11px; COLOR: red; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">and</span> <br> <span style="FONT-SIZE: 11px; COLOR: blue; FONT-FAMILY: Courier New; BACKGROUND-COLOR: transparent">then</span> reload this page.&lt;/i&gt;</span> </p> </div> <img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=d7b2ae83-62fb-415a-af63-7a4c89c8321b"> http://www.structured-solutions.net/CommentView.aspx?guid=d7b2ae83-62fb-415a-af63-7a4c89c8321b Coding
http://www.structured-solutions.net/Trackback.aspx?guid=6c53294f-20cf-49a5-902d-bf6dd1b37138 http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=6c53294f-20cf-49a5-902d-bf6dd1b37138 http://www.structured-solutions.net/CommentView.aspx?guid=6c53294f-20cf-49a5-902d-bf6dd1b37138 http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=6c53294f-20cf-49a5-902d-bf6dd1b37138 0

Shipper 1.1 RC3 (1.1.0.2) is now available.

  • CHANGED: Removed check for update.
  • CHANGED: Shipment groups expanded by default.
  • FIXED: Stores appear in random order.
  • FIXED: Shipment list loses focus.
  • FIXED: Shipments reset after each send/receive.
  • FIXED: Select store changed when print format changed.
  • FIXED: Print format change is sometimes lost.

download | help | release notes

Shipper 1.1 RC3 http://www.structured-solutions.net/PermaLink.aspx?guid=6c53294f-20cf-49a5-902d-bf6dd1b37138 http://www.structured-solutions.net/PermaLink.aspx?guid=6c53294f-20cf-49a5-902d-bf6dd1b37138 Thu, 03 Mar 2005 23:16:52 GMT <p> Shipper 1.1 RC3 (1.1.0.2) is now available. </p> <ul> <li> <div class="">CHANGED: Removed check for update. </div> <li> <div class=""> <div class="">CHANGED: Shipment groups expanded by default. </div> </div> <li> <div class="">FIXED: Stores appear in random order. </div> <li> <div class="">FIXED: Shipment list loses focus. </div> <li> FIXED: Shipments reset after each send/receive. <li> <div class="">FIXED: Select store changed when print format changed. </div> <li> <div class="">FIXED: Print format change is sometimes lost. </div> </li> </ul> <blockquote dir=ltr style="MARGIN-RIGHT: 0px"> <p class=""> <a href="http://www.structured-solutions.net/downloads/shipper/1.1.0.0/shipper.setup_1.1RC3.msi">download</a> | <a href="http://www.structured-solutions.net/help/shipper/webframe.html">help</a> | <a href="http://www.structured-solutions.net/help/shipper/Release%20Notes.html">release notes</a> </p> </blockquote><img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=6c53294f-20cf-49a5-902d-bf6dd1b37138"> http://www.structured-solutions.net/CommentView.aspx?guid=6c53294f-20cf-49a5-902d-bf6dd1b37138 Shipper
http://www.structured-solutions.net/Trackback.aspx?guid=fc2a7b47-7b54-4841-8ca4-8e9467651d61 http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=fc2a7b47-7b54-4841-8ca4-8e9467651d61 http://www.structured-solutions.net/CommentView.aspx?guid=fc2a7b47-7b54-4841-8ca4-8e9467651d61 http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=fc2a7b47-7b54-4841-8ca4-8e9467651d61 0

Version 1.3.2 of the SignIn Control is now available. This is a free update for all current owners.

  • FIXED: Cart items with attributes are not restored correctly.

downloadpurchase | help | release notes

SignIn Control for StoreFront Version 1.3.2 http://www.structured-solutions.net/PermaLink.aspx?guid=fc2a7b47-7b54-4841-8ca4-8e9467651d61 http://www.structured-solutions.net/PermaLink.aspx?guid=fc2a7b47-7b54-4841-8ca4-8e9467651d61 Thu, 03 Mar 2005 15:58:21 GMT <p> Version 1.3.2 of the SignIn Control is now available. This is a <strong><font color=#008000>free</font></strong> update for all current owners. </p> <ul> <li> <div class="">FIXED: Cart items with attributes are not restored correctly. </div> </li> </ul> <blockquote dir=ltr style="MARGIN-RIGHT: 0px"> <p class=""> <a href="http://www.structured-solutions.net/downloads/storefront/signincontrolsetup.exe">download</a> |&nbsp;<a href="http://www.sfaddons.com/detail.aspx?id=19">purchase</a> | <a href="http://help.sfaddons.com/SignInControl/webframe.html">help</a> | <a href="http://help.sfaddons.com/SignInControl/Release%20Notes.html">release notes</a> </p> </blockquote><img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=fc2a7b47-7b54-4841-8ca4-8e9467651d61"> http://www.structured-solutions.net/CommentView.aspx?guid=fc2a7b47-7b54-4841-8ca4-8e9467651d61 StoreFront Add-Ons
http://www.structured-solutions.net/Trackback.aspx?guid=7208257b-b1d0-4b98-971b-dad3e01d150b http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=7208257b-b1d0-4b98-971b-dad3e01d150b http://www.structured-solutions.net/CommentView.aspx?guid=7208257b-b1d0-4b98-971b-dad3e01d150b http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=7208257b-b1d0-4b98-971b-dad3e01d150b 0

Version 1.3.1 of the SignIn Control is now available. This is a free update for all current owners.

  • NEW: RememberMeTimeout and RememberCartTimeout properties let you control how long the cart contents and login information are stored on the computer.
  • FIXED: Page will not load if a licensing error occurs.
  • FIXED: Cart contents are not store by FireFox.
  • FIXED: Property title reverts to generic title when property is saved.
  • FIXED: Cart contents are lost if an error occurs during checkout.
  • FIXED: Cart contents are restored after checkout if checkout on different domain.
  • FIXED: Properties are not shown in alphabetical order.
  • CHANGE: Removed unused Template attributes from sample controls. Template attributes were replaced by configuration values in version 1.3.0.

downloadpurchase | help | release notes

SignIn Control for StoreFront Version 1.3.1 http://www.structured-solutions.net/PermaLink.aspx?guid=7208257b-b1d0-4b98-971b-dad3e01d150b http://www.structured-solutions.net/PermaLink.aspx?guid=7208257b-b1d0-4b98-971b-dad3e01d150b Thu, 03 Mar 2005 00:39:58 GMT <p> Version 1.3.1 of the SignIn Control is now available. This is a <strong><font color=#008000>free</font></strong> update for all current owners. </p> <ul> <li> <div class="">NEW: RememberMeTimeout and RememberCartTimeout properties let you control how long the cart contents and login information&nbsp;are stored on the computer. </div> <li> <div class="">FIXED: Page will not load if a licensing error occurs. </div> <li> <div class="">FIXED: Cart contents are not store by FireFox. </div> <li> <div class="">FIXED: Property title reverts to generic title when property is saved. </div> <li> <div class="">FIXED: Cart contents are lost if an error occurs during checkout. </div> <li> <div class="">FIXED: Cart contents are restored after checkout if checkout on different domain. </div> <li> <div class="">FIXED: Properties are not shown in alphabetical order. </div> <li class=""> <div class="">CHANGE: Removed unused Template attributes from sample controls. Template attributes were replaced by configuration values in version 1.3.0. </div> </li> </ul> <blockquote dir=ltr style="MARGIN-RIGHT: 0px"> <p class=""> <a href="http://www.structured-solutions.net/downloads/storefront/signincontrolsetup.exe">download</a> |&nbsp;<a href="http://www.sfaddons.com/detail.aspx?id=19">purchase</a> | <a href="http://help.sfaddons.com/SignInControl/webframe.html">help</a> | <a href="http://help.sfaddons.com/SignInControl/Release%20Notes.html">release notes</a> </p> </blockquote><img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=7208257b-b1d0-4b98-971b-dad3e01d150b"> http://www.structured-solutions.net/CommentView.aspx?guid=7208257b-b1d0-4b98-971b-dad3e01d150b StoreFront Add-Ons
http://www.structured-solutions.net/Trackback.aspx?guid=3637dacc-6305-4d96-9a7e-56159d136a6b http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=3637dacc-6305-4d96-9a7e-56159d136a6b http://www.structured-solutions.net/CommentView.aspx?guid=3637dacc-6305-4d96-9a7e-56159d136a6b http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=3637dacc-6305-4d96-9a7e-56159d136a6b 0

Shipping Cost Calculator version 1.2.1 is now available:

  • FIXED: Calculated rates are occasionally incorrect when cart.aspx is first displayed.
  • FIXED: ZIP+4 invalid when GeoMonster service is used.
  • FIXED: Licensing error prevents cart.aspx from being displayed.
  • FIXED: Proposed address (postal code and region) is not carried through to checkout.

download | help | release notes

Shipping Cost Calculator for BVC2004 1.2.1 http://www.structured-solutions.net/PermaLink.aspx?guid=3637dacc-6305-4d96-9a7e-56159d136a6b http://www.structured-solutions.net/PermaLink.aspx?guid=3637dacc-6305-4d96-9a7e-56159d136a6b Sat, 26 Feb 2005 23:40:00 GMT <p> Shipping Cost Calculator version 1.2.1 is now available: </p> <ul> <li> FIXED: Calculated rates are occasionally incorrect when cart.aspx is first displayed. <li> FIXED: ZIP+4 invalid&nbsp;when GeoMonster service is used. <li> FIXED: Licensing error prevents cart.aspx from being displayed. <li> FIXED: Proposed address (postal code and region) is not carried through to checkout.</li> </ul> <blockquote dir=ltr style="MARGIN-RIGHT: 0px"> <p> <a href="http://www.structured-solutions.net/downloads/bvc2004/shippingcostsetup.exe">download</a> | <a href="http://www.structured-solutions.net/help/bvc2004/shippingcost/webframe.html">help</a> | <a href="http://www.structured-solutions.net/help/bvc2004/shippingcost/Release%20Notes.html">release notes</a> </p> </blockquote><img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=3637dacc-6305-4d96-9a7e-56159d136a6b"> http://www.structured-solutions.net/CommentView.aspx?guid=3637dacc-6305-4d96-9a7e-56159d136a6b BV Commerce Add-Ons
http://www.structured-solutions.net/Trackback.aspx?guid=b8443ca1-5cc5-41bc-9454-0d389c6cc4ce http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=b8443ca1-5cc5-41bc-9454-0d389c6cc4ce http://www.structured-solutions.net/CommentView.aspx?guid=b8443ca1-5cc5-41bc-9454-0d389c6cc4ce http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b8443ca1-5cc5-41bc-9454-0d389c6cc4ce 0

I use RC in the version as shorthand for Release Candidate. A Release Candidate is a version of the software that is almost, but not quite, ready for production release. If I sold copies of the software on CD's, a Release Candidate is not quite ready to send to the duplicators.

A Release Candidate has been tested and there are no known bugs (at least no critical bugs), but I can not test every possible condition (because I don't know what they are). This means there may be unknown bugs, possbily even critcial bugs that will eat your data and spit it back out in little pieces...honestly though, this is not likely.

I make Release Candidate software available while I am still testing obscure issues and editing the final release (i.e. writing documentation and tweaking the installers). Luckily, while I am testing what I know, some brave souls are also downloading the Release Candidate and testing what they know. The end result is much better product. A good example is the address encoding bug that was resolved in Shipper Service 1.1 RC2 for BVC2004. An alert customer let me know that her store had an ampersand in the company name and that BVC2004.5 was storing that value as &amp;amp; (this is a bug...it should be stored as &amp;), and that "&amp;" was being printed on the UPS label. RC2 includes a fix that will decode the address fields no matter how many times they have been encoded so that &amp;amp; is printed as & on the label.

I continue releasing Release Candidates until there are no more bug reports for a week or so. Then I make the final installers, and branch the project for the next release.

What does RC mean? http://www.structured-solutions.net/PermaLink.aspx?guid=b8443ca1-5cc5-41bc-9454-0d389c6cc4ce http://www.structured-solutions.net/PermaLink.aspx?guid=b8443ca1-5cc5-41bc-9454-0d389c6cc4ce Thu, 17 Feb 2005 02:15:51 GMT <p> I use RC in the version as shorthand for Release Candidate. A Release Candidate is a version of the software that is almost, but not quite, ready for production release. If I sold copies of the software on CD's, a Release Candidate is not quite ready to send to the duplicators. </p> <p> A Release Candidate has been tested and there are no <em>known</em> bugs (at least no critical bugs), but I can not test every possible condition (because I don't know what they are). This means there may be <em>unknown</em> bugs, possbily even <em>critcial</em> bugs that will eat your data and spit it back out in little pieces...honestly though, this is not likely. </p> <p> I make Release Candidate software available while I am still testing obscure issues and editing the final release (i.e. writing documentation and&nbsp;tweaking the installers). Luckily, while I am testing what I know, some brave souls are also downloading the Release Candidate and testing what they know. The end result is much better product. A good example is the address encoding bug that was resolved in Shipper Service 1.1 RC2 for BVC2004. An alert customer let me know that her store had an ampersand in the company name and that BVC2004.5 was storing that value as &amp;amp;amp; (this is a bug...it should be stored as &amp;amp;), and that "&amp;amp;" was being printed on the UPS label. RC2 includes a fix that will decode the address fields no matter how many times they have been encoded so that &amp;amp;amp; is printed as &amp; on the label. </p> <p> I continue releasing Release Candidates until there are no more bug reports for a week or so. Then I make the final installers, and branch the project for the next release. </p> <img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=b8443ca1-5cc5-41bc-9454-0d389c6cc4ce"> http://www.structured-solutions.net/CommentView.aspx?guid=b8443ca1-5cc5-41bc-9454-0d389c6cc4ce Shipper
http://www.structured-solutions.net/Trackback.aspx?guid=c4b77426-c5df-4c0a-a205-77fddc0f0a7c http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=c4b77426-c5df-4c0a-a205-77fddc0f0a7c http://www.structured-solutions.net/CommentView.aspx?guid=c4b77426-c5df-4c0a-a205-77fddc0f0a7c http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=c4b77426-c5df-4c0a-a205-77fddc0f0a7c 0

I am pleased to announce that Shipper Service 1.1 RC2 for StoreFront is available for download.

  • CHANGED: Minor UI tweaks.

This version can be installed on top of RC1.

Shipper Service 1.1 RC2 for StoreFront Available http://www.structured-solutions.net/PermaLink.aspx?guid=c4b77426-c5df-4c0a-a205-77fddc0f0a7c http://www.structured-solutions.net/PermaLink.aspx?guid=c4b77426-c5df-4c0a-a205-77fddc0f0a7c Thu, 17 Feb 2005 01:56:27 GMT <p> I am pleased to announce that Shipper Service 1.1 RC2 for StoreFront is available for <a href="Downloads.aspx">download</a>. </p> <ul> <li> CHANGED: Minor UI tweaks.</li> </ul> <p> This version can be installed on top of RC1. </p> <img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=c4b77426-c5df-4c0a-a205-77fddc0f0a7c"> http://www.structured-solutions.net/CommentView.aspx?guid=c4b77426-c5df-4c0a-a205-77fddc0f0a7c Shipper
http://www.structured-solutions.net/Trackback.aspx?guid=b24251a9-6e5f-4b70-8da2-7cde464b85d0 http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=b24251a9-6e5f-4b70-8da2-7cde464b85d0 http://www.structured-solutions.net/CommentView.aspx?guid=b24251a9-6e5f-4b70-8da2-7cde464b85d0 http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b24251a9-6e5f-4b70-8da2-7cde464b85d0 0

I am pleased to announce that Shipper Service 1.1 RC2 for BVC2004 is available for download.

  • CHANGED: Minor UI tweaks.
  • CHANGED: Order notes are now added when the order is changed by Shipper Service.
  • FIXED: Order status was not changed to Completed.
  • FIXED: Ship To and QVN Notification email address was blank.
  • FIXED: Address fields from BVC 2004.5 have extra layers of encoding (i.e. & is encoded as &amp;amp;).

This version can be installed on top of RC1.

Shipper Service 1.1 RC2 for BVC2004 Available http://www.structured-solutions.net/PermaLink.aspx?guid=b24251a9-6e5f-4b70-8da2-7cde464b85d0 http://www.structured-solutions.net/PermaLink.aspx?guid=b24251a9-6e5f-4b70-8da2-7cde464b85d0 Thu, 17 Feb 2005 01:54:58 GMT <p> I am pleased to announce that Shipper Service 1.1 RC2 for BVC2004 is available for <a href="Downloads.aspx">download</a>. </p> <ul> <li> CHANGED: Minor UI tweaks.</li> <li> CHANGED: Order notes are now added when the order is changed by Shipper Service.</li> <li> FIXED: Order status was not changed to Completed.</li> <li> FIXED: Ship To and QVN Notification email address was blank.</li> <li> FIXED: Address fields from BVC 2004.5 have extra layers of encoding (i.e. &amp; is encoded as &amp;amp;amp;).</li> </ul> <p> This version can be installed on top of RC1. </p> <img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=b24251a9-6e5f-4b70-8da2-7cde464b85d0"> http://www.structured-solutions.net/CommentView.aspx?guid=b24251a9-6e5f-4b70-8da2-7cde464b85d0 Shipper
http://www.structured-solutions.net/Trackback.aspx?guid=fa5215c3-0986-4075-9887-11646ae64dac http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=fa5215c3-0986-4075-9887-11646ae64dac http://www.structured-solutions.net/CommentView.aspx?guid=fa5215c3-0986-4075-9887-11646ae64dac http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=fa5215c3-0986-4075-9887-11646ae64dac 0

I am pleased to announce that Shipper 1.1 RC2 is now available for download.

  • NEW: Page header and footer are no longer included in print.
  • CHANGED: Shipper Service file name is no longer required during setup.
  • CHANGED: Faster shutdown when there are many pending shipments.
  • CHANGED: Minor UI tweaks.
  • FIXED: Some phone numbers caused an error during print.
  • FIXED: Occasional invalid "Invoke" during startup.
  • FIXED: Occasional null reference error during print.
  • FIXED: Occasional null reference error if shipment information changed between send/receive.

This version can be installed on top of RC1.

Shiper 1.1 RC2 Available http://www.structured-solutions.net/PermaLink.aspx?guid=fa5215c3-0986-4075-9887-11646ae64dac http://www.structured-solutions.net/PermaLink.aspx?guid=fa5215c3-0986-4075-9887-11646ae64dac Thu, 17 Feb 2005 00:00:27 GMT <p> I am pleased to announce that Shipper 1.1 RC2 is now available for <a href="http://www.structured-solutions.net/Downloads.aspx">download</a>. </p> <ul> <li> NEW: Page header and footer are no longer included in print. <li> CHANGED: Shipper Service file name is no longer required during setup. <li> CHANGED: Faster shutdown when there are many pending shipments. <li> CHANGED: Minor UI tweaks. <li> FIXED: Some phone numbers caused an&nbsp;error during print. <li> FIXED: Occasional invalid "Invoke" during startup. <li> FIXED: Occasional null reference error during print. <li> FIXED: Occasional null reference error if shipment information changed between send/receive.</li> </ul> <p> This version can be installed on top of RC1. </p> <img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=fa5215c3-0986-4075-9887-11646ae64dac"> http://www.structured-solutions.net/CommentView.aspx?guid=fa5215c3-0986-4075-9887-11646ae64dac Shipper
http://www.structured-solutions.net/Trackback.aspx?guid=1a271585-4240-4207-ac71-7232658d1b48 http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=1a271585-4240-4207-ac71-7232658d1b48 http://www.structured-solutions.net/CommentView.aspx?guid=1a271585-4240-4207-ac71-7232658d1b48 http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=1a271585-4240-4207-ac71-7232658d1b48 0

Video - Setting Up UPS WorldShip for Shipper 1.1

Video Tutorial - Setting Up UPS WorldShip for Shipper 1.1 http://www.structured-solutions.net/PermaLink.aspx?guid=1a271585-4240-4207-ac71-7232658d1b48 http://www.structured-solutions.net/PermaLink.aspx?guid=1a271585-4240-4207-ac71-7232658d1b48 Sat, 12 Feb 2005 00:49:36 GMT <p> Video - <a href="http://support.structured-solutions.net/videos/shipper/SettingUpYourStore.html">Setting Up UPS WorldShip for Shipper 1.1</a> </p> <img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=1a271585-4240-4207-ac71-7232658d1b48"> http://www.structured-solutions.net/CommentView.aspx?guid=1a271585-4240-4207-ac71-7232658d1b48 Shipper
http://www.structured-solutions.net/Trackback.aspx?guid=54742218-5272-4d3a-9254-6d45d6a0ba32 http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=54742218-5272-4d3a-9254-6d45d6a0ba32 http://www.structured-solutions.net/CommentView.aspx?guid=54742218-5272-4d3a-9254-6d45d6a0ba32 http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=54742218-5272-4d3a-9254-6d45d6a0ba32 0

Article - HOWTO: Install Shipper 1.1 and Shipper Service 1.1

HOWTO: Install Shipper 1.1 and Shipper Service 1.1 http://www.structured-solutions.net/PermaLink.aspx?guid=54742218-5272-4d3a-9254-6d45d6a0ba32 http://www.structured-solutions.net/PermaLink.aspx?guid=54742218-5272-4d3a-9254-6d45d6a0ba32 Fri, 11 Feb 2005 18:03:53 GMT <p> Article&nbsp;- <a href="http://support.structured-solutions.net/Customer/KBArticle.aspx?articleid=9">HOWTO: Install Shipper 1.1 and Shipper Service 1.1</a> </p> <img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=54742218-5272-4d3a-9254-6d45d6a0ba32"> http://www.structured-solutions.net/CommentView.aspx?guid=54742218-5272-4d3a-9254-6d45d6a0ba32 Shipper
http://www.structured-solutions.net/Trackback.aspx?guid=287b2997-67a8-4225-830b-ca66b68ebfc9 http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=287b2997-67a8-4225-830b-ca66b68ebfc9 http://www.structured-solutions.net/CommentView.aspx?guid=287b2997-67a8-4225-830b-ca66b68ebfc9 http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=287b2997-67a8-4225-830b-ca66b68ebfc9 0

Video - Setting Up Your Store in Shipper 1.1

Video Tutorial - Setting Up Your Store in Shipper 1.1 http://www.structured-solutions.net/PermaLink.aspx?guid=287b2997-67a8-4225-830b-ca66b68ebfc9 http://www.structured-solutions.net/PermaLink.aspx?guid=287b2997-67a8-4225-830b-ca66b68ebfc9 Fri, 11 Feb 2005 03:34:25 GMT <p> Video - <a href="http://support.structured-solutions.net/videos/Shipper/SettingUpYourStore.html">Setting Up Your Store in Shipper 1.1</a> </p> <img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=287b2997-67a8-4225-830b-ca66b68ebfc9"> http://www.structured-solutions.net/CommentView.aspx?guid=287b2997-67a8-4225-830b-ca66b68ebfc9 Shipper
http://www.structured-solutions.net/Trackback.aspx?guid=13e49b19-41c8-4580-a0af-3b4fb4c22452 http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=13e49b19-41c8-4580-a0af-3b4fb4c22452 http://www.structured-solutions.net/CommentView.aspx?guid=13e49b19-41c8-4580-a0af-3b4fb4c22452 http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=13e49b19-41c8-4580-a0af-3b4fb4c22452 0

See the announcement and downloads page for more information.

  • Shipper Service 1.1 is now a separate download from Shipper 1.1.
  • Shipper Service 1.1 now works with both StoreFront 6 and BVC 2004.
  • Shipper Service 1.1 for StoreFront 6 supports StoreFront 6.3 or above with either MS Access or SQL Server.
  • Shipper Service 1.1 for BVC 2004 supports BVC 2004.5 or above.
  • Shipper Service 1.0 and Shipper Service 1.1 can be installed at the same time on the same web site. They can even be installed in the same folder...although that might make it difficult to remove.
  • You do not need a separate license file for Shipper Service 1.1 RC1; there is a built-in beta license that expires on 3/31/2005. However, if you have a license for Shipper Service 1.0 it will take precedence.
  • Everyone that is using the beta license will have the same beta serial number. The serial number is used as an encryption key to secure the communication between Shipper 1.1 and Shipper Service 1.1. That means that everyone using the beta license will be able to communicate with all other Shipper Service 1.1 RC1 sites. However, if you leave User Authentication enabled they will not be able to access any data.
Shipper Service 1.1 RC1 Release Notes http://www.structured-solutions.net/PermaLink.aspx?guid=13e49b19-41c8-4580-a0af-3b4fb4c22452 http://www.structured-solutions.net/PermaLink.aspx?guid=13e49b19-41c8-4580-a0af-3b4fb4c22452 Wed, 09 Feb 2005 00:27:10 GMT <p> See the <a href="ShipperService1.1RC1.aspx">announcement</a> and <a href="Downloads.aspx">downloads</a> page for more information. </p> <ul> <li> Shipper Service 1.1 is now a separate download from Shipper 1.1. <li> Shipper Service 1.1 now works with both StoreFront 6 and BVC 2004. <li> Shipper Service 1.1 for StoreFront 6 supports StoreFront 6.3 or above with either MS Access or SQL Server. <li> Shipper Service 1.1 for BVC 2004 supports BVC 2004.5 or above. <li> Shipper Service 1.0 and Shipper Service 1.1 can be installed at the same time on the same web site. They can even be installed in the same folder...although that might make it difficult to remove. <li> You do not need a separate license file for Shipper Service 1.1 RC1; there is a built-in beta license that expires on 3/31/2005. However, if you have a license for Shipper Service 1.0 it will take precedence. <li> Everyone that is using the beta license will have the same beta serial number. The serial number is used as an encryption key to secure the communication between Shipper 1.1 and Shipper Service 1.1. That means that everyone using the beta license will be able to communicate with all other Shipper Service 1.1 RC1 sites. However, if you leave User Authentication enabled they will not be able to access any data.</li> </ul> <img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=13e49b19-41c8-4580-a0af-3b4fb4c22452"> http://www.structured-solutions.net/CommentView.aspx?guid=13e49b19-41c8-4580-a0af-3b4fb4c22452 Shipper
http://www.structured-solutions.net/Trackback.aspx?guid=6a73efab-0216-48b6-9df6-2003d26f8017 http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=6a73efab-0216-48b6-9df6-2003d26f8017 http://www.structured-solutions.net/CommentView.aspx?guid=6a73efab-0216-48b6-9df6-2003d26f8017 http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=6a73efab-0216-48b6-9df6-2003d26f8017 0

See the announcement and downloads page for more information.

  • Shipper 1.0 and Shipper 1.1 can be installed "side-by-side". This means that you can install Shipper 1.1 on the same computer with Shipper 1.0 without overwriting any Shipper 1.0 files and remove Shipper 1.1 without disabling Shipper 1.0. You do not need a separate license for Shipper 1.1 RC1; there is a built-in beta license that expires on 3/31/2005.
  • UPS WorldShip V7 must be installed prior to installing Shipper 1.1.
  • Shipper 1.1 uses different UPS WorldShip import/export files than Shipper 1.0. To import shipments from Shipper 1.1 to UPS WorldShip, select "From Shipper by Key" or "From Shipper by Order". To export shipments from UPS WorldShip to Shipper 1.1, select "To Shipper".
  • Print formats are now stored in the "Print Formats" folder within the Shipper 1.1 installation directory; typically "My Documents\My Applications\Structured Solutions\Shipper 1.1\Print Formats". Two new print formats are included as samples, and the Structured Solutions logo has been removed from all formats.
  • The help file has not been updated for Shipper 1.1 RC1.
  • Configuration information will be imported from Shipper 1.0; however, since Shipper 1.0 did not include integrated security the information is not complete. Please use Tools->Options->Change to fill in the missing information for each store.

 

Shipper 1.1 RC1 Release Notes http://www.structured-solutions.net/PermaLink.aspx?guid=6a73efab-0216-48b6-9df6-2003d26f8017 http://www.structured-solutions.net/PermaLink.aspx?guid=6a73efab-0216-48b6-9df6-2003d26f8017 Wed, 09 Feb 2005 00:12:27 GMT <p> See the <a href="Shipper1.1RC1.aspx">announcement </a>and <a href="Downloads.aspx">downloads </a>page for more information. </p> <ul> <li> Shipper 1.0 and Shipper 1.1 can be installed "side-by-side". This means that you can install Shipper 1.1 on the same computer with Shipper 1.0 without overwriting any Shipper 1.0 files and remove Shipper 1.1 without disabling Shipper 1.0. You do not need a separate license for Shipper 1.1 RC1; there is a built-in beta license that expires on 3/31/2005. <li> UPS WorldShip V7 must be installed prior to installing Shipper 1.1. <li> Shipper 1.1 uses different UPS WorldShip import/export files than Shipper 1.0. To import shipments from Shipper 1.1 to UPS WorldShip, select "From Shipper by Key" or "From Shipper by Order". To export shipments from UPS WorldShip to Shipper 1.1, select "To Shipper". <li> Print formats are now stored in&nbsp;the "Print Formats" folder within the Shipper 1.1 installation directory; typically "My Documents\My Applications\Structured Solutions\Shipper 1.1\Print Formats". Two new print formats are included as samples, and the Structured Solutions logo has been removed from all formats. <li> The help file has not been updated for Shipper 1.1 RC1. <li> Configuration information will be imported from Shipper 1.0; however, since Shipper 1.0 did not include integrated security the information is not complete. Please use Tools-&gt;Options-&gt;Change to fill in the missing information for each store.</li> </ul> <p> &nbsp; </p> <img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=6a73efab-0216-48b6-9df6-2003d26f8017"> http://www.structured-solutions.net/CommentView.aspx?guid=6a73efab-0216-48b6-9df6-2003d26f8017 Shipper
http://www.structured-solutions.net/Trackback.aspx?guid=c952b428-76df-46a1-b7e2-fe88549a2b9a http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=c952b428-76df-46a1-b7e2-fe88549a2b9a http://www.structured-solutions.net/CommentView.aspx?guid=c952b428-76df-46a1-b7e2-fe88549a2b9a http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=c952b428-76df-46a1-b7e2-fe88549a2b9a 0

Shipper Service 1.1 RC1 is now available for download. I will try to describe all the new features over the next few weeks. The most significant changes include:

  • Integrated Security
  • A Configuration Page
  • Support for both StoreFront and BVC 2004.5

Integrated Security

As I noted in the announcement for Shipper 1.1 RC1, one of the major new features in Shipper is the complete support for drop shippers. That meant that merchants had to have a way to restrict the amount of information that is presented to drop shippers. We don't want one drop shipper accidently getting the shipments meant for another. In order to filter the shipments, we need to know who is asking. To solve that, Shipper Service 1.1 can require a username and password to access the system. This is a separate username and password than the Windows credentials that your host assigned. This means that you can authorize and protect your data without contacting your host.

A Configuration Page

To define users and control what they can access, a new web-based configuration page is now included with Shipper Service 1.1. Using this simple interface, you can add, remove or edit users. Each user can have full access to the shipment data, no access, or anything in between. The most powerful way to use this feature is to create a unique user for each one of your drop shippers. Then you can give them access to your store via Shipper Service 1.1 assured that they can only see and process their own drop shipments.

Support for both StoreFront and BVC 2004.5

Many merchants run several shops using a mix of StoreFront and BVC 2004. Starting with Shipper Service 1.1, you can install Shipper Service on both. Shipper Service 1.1 for BVC 2004 works with BVC 2004.5 and above. Shipper Service 1.1 for StoreFront works with StoreFront 6.3 and above. Shipper 1.1 works with both Shipper Service for BVC 2004 and Shipper Service for StoreFront, so one copy of Shipper can handle all of your stores.

Shipper Service 1.1 RC1 http://www.structured-solutions.net/PermaLink.aspx?guid=c952b428-76df-46a1-b7e2-fe88549a2b9a http://www.structured-solutions.net/PermaLink.aspx?guid=c952b428-76df-46a1-b7e2-fe88549a2b9a Tue, 08 Feb 2005 23:57:17 GMT <p> Shipper Service 1.1 RC1 is now available for <a href="downloads.aspx">download</a>. I will try to describe all the new features over the next few weeks. The most significant changes include: </p> <ul> <li> <strong>Integrated Security</strong> <li> <strong>A Configuration Page</strong> <li> <strong>Support for both StoreFront and BVC 2004.5</strong> </li> </ul> <h4>Integrated Security </h4> <p> As I noted in the announcement for <a href="Shipper1.1RC1.aspx">Shipper 1.1 RC1</a>, one of the major new features in Shipper is the complete support for drop shippers. That meant that merchants had to have a way to restrict the amount of information that is presented to drop shippers. We don't want one drop shipper accidently getting the shipments meant for another. In order to filter the shipments, we need to know who is asking. To solve that, <strong>Shipper Service 1.1 can require a username and password to access the system</strong>. This is a separate username and password than the Windows credentials that your host assigned. This means that you can authorize and protect your data without contacting your host. </p> <h4>A Configuration Page </h4> <p> To define users and control what they can access, a new web-based configuration page is now included with Shipper Service 1.1. Using this simple interface, you can add, remove or edit users. Each user can have full access to the shipment data, no access, or anything in between. The most powerful way to use this feature is to create a unique user for each one of your drop shippers. Then you can give them access to your store via Shipper Service 1.1 assured that they can only <strong>see and process their own drop shipments</strong>. </p> <h4>Support for both StoreFront and BVC 2004.5 </h4> <p> Many merchants run several shops using a mix of StoreFront and BVC 2004. Starting with Shipper Service 1.1, you can install Shipper Service on both. Shipper Service 1.1 for BVC 2004 works with BVC 2004.5 and above. Shipper Service 1.1 for StoreFront works with StoreFront 6.3 and above. <strong>Shipper 1.1 works with both Shipper Service for BVC 2004 and Shipper Service for StoreFront, so one copy of Shipper can handle all of your stores</strong>. </p> <img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=c952b428-76df-46a1-b7e2-fe88549a2b9a"> http://www.structured-solutions.net/CommentView.aspx?guid=c952b428-76df-46a1-b7e2-fe88549a2b9a Shipper
http://www.structured-solutions.net/Trackback.aspx?guid=fb361e5d-8166-4868-9c71-59e7e2fe107f http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=fb361e5d-8166-4868-9c71-59e7e2fe107f http://www.structured-solutions.net/CommentView.aspx?guid=fb361e5d-8166-4868-9c71-59e7e2fe107f http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=fb361e5d-8166-4868-9c71-59e7e2fe107f 0

Shipper 1.1 RC1 is now available for download. There are literally 100's of changes since 1.0.6. I will try to describe all the important new features over the next couple of weeks, for now let me touch on the most significant new features:

  • Support for batch processing in UPS WorldShip V7.
  • Support for drop shippers.
  • Integrated security.

Support for Batch Processing in UPS WorldShip V7

Several new fields are now imported from Shipper to UPS WorldShip to support batch processing. Two of them -- Billing Option and Package Type -- are configured when you setup your store in Shipper. The rest of them make up the "ship from" address. The addresses are now pulled from your store. For shipments that are shipped directly from your store, the ship from address is the store's address. For drop shipments, the ship from address is the vendor's address. Since StoreFront does not provide an interface to edit either the store's or the vendor's complete address, a new feature was added to Shipper so you can edit the addresses from your computer. Try right-clicking on any store icon in Shipper and select Edit Addresses.

Once the shipments have been moved to the UPS Inbox in Shipper they are ready for batch processing in UPS WorldShip. Just select Batch Import from the UPS Online Connect menu. Note that the new import mapping files are named "From Shipper by Key" and "From Shipper by Order". Either one will pull in all the shipments.

Support for Drop Shippers

Shipper 1.0 did not include drop shipments at all. When it came time to add drop shipment support, several issues had to be solved. Among these, two issues really stuck out:

  • How to filter in or filter out specific drop shipments?
  • How to secure the data so one drop shipper does not see shipments for other drop shippers?

Shipper 1.1 solves both of those issues. When you setup your store in Shipper 1.1, you can now select exactly which drop shipments you want to include (by drop shipper name). Furthermore, you can override that choice in Shipper Service 1.1 by username. That means that as the merchant, you can give your drop shippers access to your store via Shipper Service 1.1 and they will only see the shipments that are meant for them.

Integrated Security

Shipper 1.1 now includes an integrated security system that will prevent unauthorized access to your shipment data -- even if you allow anonymous web access. The conversation between Shipper 1.1 and Shipper Service 1.1 can be completely protected with a username and password and the password is never sent in clear text.

Shipper 1.1 RC1 http://www.structured-solutions.net/PermaLink.aspx?guid=fb361e5d-8166-4868-9c71-59e7e2fe107f http://www.structured-solutions.net/PermaLink.aspx?guid=fb361e5d-8166-4868-9c71-59e7e2fe107f Tue, 08 Feb 2005 23:36:55 GMT <p> Shipper 1.1 RC1 is now available for <a href="downloads.aspx">download</a>. There are literally 100's of changes since 1.0.6. I will try to describe all the important new features over the next couple of weeks, for now let me touch on the most significant new features: </p> <ul> <li> <strong>Support for batch processing in UPS WorldShip V7. </strong> <li> <strong>Support for drop shippers. </strong> <li> <strong>Integrated security.</strong> </li> </ul> <h4>Support for Batch Processing in UPS WorldShip V7 </h4> <p> Several new fields are now imported from Shipper to UPS WorldShip to <strong>support batch processing</strong>. Two of them -- Billing Option and Package Type -- are configured when you setup your store in Shipper. The rest of them make up the "ship from" address. The addresses are now&nbsp;pulled from your store. For shipments that are <strong>shipped directly from your store</strong>, the ship from address is the store's address. For drop shipments, the ship from address is the vendor's address. Since StoreFront does not provide an interface to edit either the store's or the vendor's complete address, a new feature was added to Shipper so you <strong>can edit the addresses from your computer</strong>. Try right-clicking on any store icon in Shipper and select Edit Addresses. </p> <p> Once the shipments have been moved to the UPS Inbox in Shipper they are ready for batch processing in UPS WorldShip. Just select Batch Import from the UPS Online Connect menu. Note that the new import mapping files are named "From Shipper by Key" and "From Shipper by Order". Either one will pull in all the shipments. </p> <h4>Support for Drop Shippers </h4> <p> Shipper 1.0 did not include drop shipments at all. When it came time to add drop shipment support, several issues had to be solved. Among these, two issues really stuck out: </p> <ul> <li> How to filter in or filter out specific drop shipments? <li> How to secure the data so one drop shipper does not see shipments for other drop shippers?</li> </ul> <p> <strong>Shipper 1.1 solves both of those issues</strong>. When you setup your store in Shipper 1.1, you can now select exactly which drop shipments you want to include (by drop shipper name). Furthermore, you can override that choice in Shipper Service 1.1 by username. That means that as the merchant, you can give your drop shippers access to your&nbsp;store via Shipper Service 1.1&nbsp;and <strong>they will only see the shipments that are meant for them</strong>. </p> <h4>Integrated Security </h4> <p> Shipper 1.1 now includes an integrated security system that will <strong>prevent unauthorized access</strong> to your shipment data --&nbsp;even if you allow anonymous web access.&nbsp;The conversation between Shipper 1.1 and Shipper Service 1.1 can be completely protected with a username and password and the <strong>password is never sent in clear text</strong>. </p> <img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=fb361e5d-8166-4868-9c71-59e7e2fe107f"> http://www.structured-solutions.net/CommentView.aspx?guid=fb361e5d-8166-4868-9c71-59e7e2fe107f Shipper
http://www.structured-solutions.net/Trackback.aspx?guid=0b8343e3-66e3-44ce-89fa-21f850e69109 http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=0b8343e3-66e3-44ce-89fa-21f850e69109 http://www.structured-solutions.net/CommentView.aspx?guid=0b8343e3-66e3-44ce-89fa-21f850e69109 http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=0b8343e3-66e3-44ce-89fa-21f850e69109 0

Every few weeks someone at BV Forums or StoreFront Forums complains that the checkout process has too many steps...or the steps are in the wrong order...or the wrong questions are combined...or the text is the wrong color...

Well you get the idea. They are passionate. They are worried. I just don't get it.

I can't decide if I don't get it because it is an aesthetic issue or a control issue. Joel Spolsky spoke at Amazon DevCon today. According to the blogger that took notes, he made a case that it is a control issue...

"Learned Helplessness, when bad things happen to you that are out of your control, form of depression. Give people ways to exert control over their environment. Napkins to fold, windows to wash. Control over environment. This is what is attractive about being a programmer. Compiler does exactly what you say.

Abercrombie checkout page, 4 steps, in the order they designed. You are not in control. Vs. Amazon's page, more info, user is in control of the process. Change address, billing, or just place order."

I think he appreciates the Amazon way. But let's be clear here...he is talking about giving the customer control of the checkout...not the site designer. The best solution from the vendor is one that would let the customer move through the checkout in big or little steps, giving your customer something to control.

My personal experience is that I just don't care. As evidence of my indifference, I can not describe from memory the checkout process of any web site I have ever purchased from. It just does not stick, because I just don't care what the pages look like or what order they appear in. By the time I am checking out, I have already decided to make the purchase. I just move through the page(s) as they are presented...my mind is already focused on what I'm going to do when the thing arrives.

 

Checkout has too many...I mean...too few steps! http://www.structured-solutions.net/PermaLink.aspx?guid=0b8343e3-66e3-44ce-89fa-21f850e69109 http://www.structured-solutions.net/PermaLink.aspx?guid=0b8343e3-66e3-44ce-89fa-21f850e69109 Wed, 19 Jan 2005 19:50:27 GMT <p> Every few weeks someone at <a href="http://www.bvsoftware.com/forums">BV Forums</a> or <a href="http://forums.storefront.net">StoreFront Forums</a> complains that the checkout process has too many steps...or the steps are in the wrong order...or the wrong questions are combined...or the text is the wrong color... </p> <p> Well you get the idea. They&nbsp;are passionate. They are worried. I just don't get it. </p> <p> I can't decide if I don't get it because it is an aesthetic issue or a control issue. Joel Spolsky <a href="http://aws.typepad.com/aws/2005/01/amazon_devcon_j.html">spoke</a> at Amazon DevCon today. According to the blogger that took notes, he made a case that it is a control issue... </p> <blockquote dir=ltr style="MARGIN-RIGHT: 0px"> <p> "<a href="http://www.amazon.com/exec/obidos/ASIN/0195044673/qid=1106156512/sr=2-1/ref=pd_ka_b_2_1/103-0799714-8470246">Learned Helplessness</a>, when bad things happen to you that are out of your control, form of depression. Give people ways to exert control over their environment. Napkins to fold, windows to wash. Control over environment. This is what is attractive about being a programmer. Compiler does exactly what you say. </p> <p> Abercrombie checkout page, 4 steps, in the order they designed. You are not in control. Vs. Amazon's page, more info, user is in control of the process. Change address, billing, or just place order." </p> </blockquote> <p dir=ltr> I think he appreciates the Amazon way. But let's be clear here...he is talking about giving the customer control of the checkout...not the site designer. The best solution from the vendor is one that would let the customer move through the checkout in big or little steps, giving your customer something to control. </p> <p dir=ltr> My personal experience is that I just don't care. As evidence of my indifference, I can not describe from memory the checkout process of any web site I have ever purchased from. It just does not stick, because I just don't care what the pages look like or what order they appear in. By the time I am checking out, I have already decided to make the purchase. I just move through the page(s) as they are presented...my mind is already focused on what I'm going to do when the thing arrives. </p> <p dir=ltr> &nbsp; </p> <img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=0b8343e3-66e3-44ce-89fa-21f850e69109"> http://www.structured-solutions.net/CommentView.aspx?guid=0b8343e3-66e3-44ce-89fa-21f850e69109 BV Commerce Add-Ons
http://www.structured-solutions.net/Trackback.aspx?guid=13083748-db72-42ae-87ab-38620ce30f0b http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=13083748-db72-42ae-87ab-38620ce30f0b http://www.structured-solutions.net/CommentView.aspx?guid=13083748-db72-42ae-87ab-38620ce30f0b http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=13083748-db72-42ae-87ab-38620ce30f0b 0 Server Intellect

I moved all the *.structured-solutions.net sites a few months ago and have not had any problems since. The control panel is pretty standard (Helm) and lacks the ability to set folder permissions, but the support has been great. The database is fast and AppDomain load time is short...just what I wanted.

Server Intellect has been great http://www.structured-solutions.net/PermaLink.aspx?guid=13083748-db72-42ae-87ab-38620ce30f0b http://www.structured-solutions.net/PermaLink.aspx?guid=13083748-db72-42ae-87ab-38620ce30f0b Wed, 19 Jan 2005 04:36:10 GMT <a href="http://www.serverintellect.com/"><img style="WIDTH: 125px; HEIGHT: 125px" alt="Server Intellect" hspace=3 src="http://www.serverintellect.com/media/buttons/125x125-2.gif" align=right border=0></a> <p> I moved all the *.structured-solutions.net sites a few months ago and have not had any problems since. The control panel is pretty standard (Helm) and lacks the ability to set folder permissions, but the support has been great. The database is fast and AppDomain load time is short...just what I wanted. </p> <img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=13083748-db72-42ae-87ab-38620ce30f0b"> http://www.structured-solutions.net/CommentView.aspx?guid=13083748-db72-42ae-87ab-38620ce30f0b Structured Solutions
http://www.structured-solutions.net/Trackback.aspx?guid=23975aab-fd54-4fcf-8309-593f13a03858 http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=23975aab-fd54-4fcf-8309-593f13a03858 http://www.structured-solutions.net/CommentView.aspx?guid=23975aab-fd54-4fcf-8309-593f13a03858 http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=23975aab-fd54-4fcf-8309-593f13a03858 0 TestDriven.NET

Since I installed TestDriven.NET, my unit testing has really taken off :) I now have tests that cover every feature of Shipper Service 1.1. Shipper has been a bit harder. As a WinForms application (and a smart client of Shipper Service), it is a bit harder to test. Most of the wierdness I've seen is due to timing issues rather than "bugs" per se. For example, the main list of shipments is bound to an internal dataset. Everytime a field in the dataset is modified for any reason, the list gets an event which it tries to handle. Since most of the data updates are generated by background threads to keep the UI responsive, I don't know in what order they will arrive. This kind of stuff is very hard to test.

 

Unit tests are working out well http://www.structured-solutions.net/PermaLink.aspx?guid=23975aab-fd54-4fcf-8309-593f13a03858 http://www.structured-solutions.net/PermaLink.aspx?guid=23975aab-fd54-4fcf-8309-593f13a03858 Wed, 19 Jan 2005 04:26:18 GMT <a href="http://www.testdriven.net/Default.aspx?ReferrerId=2434"><img height=99 alt=TestDriven.NET hspace=3 src="http://images.testdriven.net/banner_reg_logo.gif" width=141 align=right border=0> </a> <p> Since I installed <a href="http://www.testdriven.net/Default.aspx?ReferrerId=2434">TestDriven.NET</a>, my unit testing has really taken off :) I now have tests that cover every feature of Shipper Service 1.1. Shipper has been a bit harder. As a WinForms application (and a smart client of Shipper Service), it is a bit harder to test. Most of the wierdness I've seen is due to timing issues rather than "bugs" per se. For example, the main list of shipments is bound to an internal dataset. Everytime a field in the dataset is modified for any reason, the list gets an event which it tries to handle. Since most of the data updates are generated by background threads to keep the UI responsive, I don't know in what order they will arrive. This kind of stuff is very hard to test. </p> <p> &nbsp; </p> <img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=23975aab-fd54-4fcf-8309-593f13a03858"> http://www.structured-solutions.net/CommentView.aspx?guid=23975aab-fd54-4fcf-8309-593f13a03858 Coding
http://www.structured-solutions.net/Trackback.aspx?guid=cb41d4de-ec80-43e9-b2d6-c877a4045880 http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=cb41d4de-ec80-43e9-b2d6-c877a4045880 http://www.structured-solutions.net/CommentView.aspx?guid=cb41d4de-ec80-43e9-b2d6-c877a4045880 http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=cb41d4de-ec80-43e9-b2d6-c877a4045880 0

SmarterTools I've been using SmarterTicket for a while to manage support tickets. The folks at SmarterTools recently came out with version 2.5 which...amoung other things...includes a knowledgebase. I have just started to add some articles.

I often get similar questions via email and, of course, no one else can see the answer. A knowledgbase seems like a great way to solve two problems: it is available 24 hours a day and anyone can see the answer to a common question.

A knowledgebase in the works http://www.structured-solutions.net/PermaLink.aspx?guid=cb41d4de-ec80-43e9-b2d6-c877a4045880 http://www.structured-solutions.net/PermaLink.aspx?guid=cb41d4de-ec80-43e9-b2d6-c877a4045880 Wed, 19 Jan 2005 04:13:47 GMT <p> <a href="http://www.smartertools.com/Default.aspx"><img alt=SmarterTools hspace=3 src="http://www.smartertools.com/Products/SmarterTicket/Images/EntryPage-Small.gif" align=right border=0></a>I've been using <a href="http://www.smartertools.com/Products/SmarterTicket/Overview.aspx">SmarterTicket</a> for a while to manage support tickets. The folks at <a href="http://www.smartertools.com/">SmarterTools</a> recently came out with version 2.5 which...amoung other things...includes a <a href="http://support.structured-solutions.net/Customer/KB.aspx">knowledgebase</a>. I have just started to add some articles. </p> <p> I often get similar questions via email and, of course, no one else can see the answer.&nbsp;A knowledgbase seems like a great way to solve two problems: it is available 24 hours a day and anyone can see the answer to a common question. </p> <img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=cb41d4de-ec80-43e9-b2d6-c877a4045880"> http://www.structured-solutions.net/CommentView.aspx?guid=cb41d4de-ec80-43e9-b2d6-c877a4045880 BV Commerce Add-Ons
http://www.structured-solutions.net/Trackback.aspx?guid=b9098f8a-233b-43db-9f57-ef4bd4036fc5 http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=b9098f8a-233b-43db-9f57-ef4bd4036fc5 http://www.structured-solutions.net/CommentView.aspx?guid=b9098f8a-233b-43db-9f57-ef4bd4036fc5 http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=b9098f8a-233b-43db-9f57-ef4bd4036fc5 0

Scott Hanselman announced that a new version of newtelligence dasBlag was out. I skipped the last update...mostly due to a lack of inertia...so I jumped on this one. I like it.

 

New dasBlog http://www.structured-solutions.net/PermaLink.aspx?guid=b9098f8a-233b-43db-9f57-ef4bd4036fc5 http://www.structured-solutions.net/PermaLink.aspx?guid=b9098f8a-233b-43db-9f57-ef4bd4036fc5 Wed, 19 Jan 2005 04:03:06 GMT <p> <a href="http://www.computerzen.com">Scott Hanselman</a> <a href="http://www.hanselman.com/blog/PermaLink,guid,6d174017-ac18-43fb-a747-bd46e0be3e91.aspx">announced</a> that a new version of newtelligence dasBlag was out. I skipped the last update...mostly due to a lack of inertia...so I jumped on this one. I like it. </p> <p> &nbsp; </p> <img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=b9098f8a-233b-43db-9f57-ef4bd4036fc5"> http://www.structured-solutions.net/CommentView.aspx?guid=b9098f8a-233b-43db-9f57-ef4bd4036fc5 Structured Solutions
http://www.structured-solutions.net/Trackback.aspx?guid=aeed8d96-ef34-4e92-aace-a6d8d3ae23a2 http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=aeed8d96-ef34-4e92-aace-a6d8d3ae23a2 http://www.structured-solutions.net/CommentView.aspx?guid=aeed8d96-ef34-4e92-aace-a6d8d3ae23a2 http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=aeed8d96-ef34-4e92-aace-a6d8d3ae23a2 0

The next release of Shipper Service will have some great new features:

  • Support for drop shipments
  • Built-in user authentication and authorization
  • Post-process shipment data using XSLT
  • Support for BVC 2004 and StoreFront
  • Web page to edit Shipper Service configuration

The preliminary documentation is here.

Preliminary Documentation for next Shipper Service http://www.structured-solutions.net/PermaLink.aspx?guid=aeed8d96-ef34-4e92-aace-a6d8d3ae23a2 http://www.structured-solutions.net/PermaLink.aspx?guid=aeed8d96-ef34-4e92-aace-a6d8d3ae23a2 Tue, 28 Dec 2004 17:37:54 GMT <p> The next release of Shipper Service will have some great new features: </p> <ul> <li> Support for drop shipments</li> <li> Built-in user authentication and authorization</li> <li> Post-process shipment data using XSLT</li> <li> Support for BVC 2004 and StoreFront</li> <li> Web page to edit Shipper Service configuration</li> </ul> <p> The preliminary documentation is <a href="http://www.structured-solutions.net/help/shipperservice/webframe.html">here</a>. </p> <img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=aeed8d96-ef34-4e92-aace-a6d8d3ae23a2"> http://www.structured-solutions.net/CommentView.aspx?guid=aeed8d96-ef34-4e92-aace-a6d8d3ae23a2 BV Commerce Add-Ons
http://www.structured-solutions.net/Trackback.aspx?guid=1b582e93-d207-4b09-aea0-118dc2297071 http://www.structured-solutions.net/pingback.aspx http://www.structured-solutions.net/PermaLink.aspx?guid=1b582e93-d207-4b09-aea0-118dc2297071 http://www.structured-solutions.net/CommentView.aspx?guid=1b582e93-d207-4b09-aea0-118dc2297071 http://www.structured-solutions.net/SyndicationService.asmx/GetEntryCommentsRss?guid=1b582e93-d207-4b09-aea0-118dc2297071 0

Following the humane example set by Nick Bradbury, everything I earn from my BVC 2004 and StoreFront add-ons through the end of this month will be donated to the International Red Cross and Mercy Corps to help those affected by this disaster.

Disaster Relief http://www.structured-solutions.net/PermaLink.aspx?guid=1b582e93-d207-4b09-aea0-118dc2297071 http://www.structured-solutions.net/PermaLink.aspx?guid=1b582e93-d207-4b09-aea0-118dc2297071 Tue, 28 Dec 2004 01:47:54 GMT <p> Following the humane example set by <a href="http://nick.typepad.com/blog/2004/12/disaster_relief.html" target="_blank">Nick Bradbury</a>, everything I earn from my BVC 2004 and StoreFront add-ons through the end of this month will be donated to the <a href="http://www.redcross.org/donate/donate.html" target="_blank"><font color="#6666cc">International Red Cross</font></a> and <a href="http://www.mercycorps.org/">Mercy Corps</a> to help those affected by <a href="http://www.cnn.com/2004/WORLD/asiapcf/12/26/asia.quake/index.html" target="_blank"><font color="#6666cc">this disaster</font></a>. </p> <img width="0" height="0" src="http://www.structured-solutions.net/aggbug.ashx?id=1b582e93-d207-4b09-aea0-118dc2297071"> http://www.structured-solutions.net/CommentView.aspx?guid=1b582e93-d207-4b09-aea0-118dc2297071 BV Commerce Add-Ons