<?xml version="1.0" ?> 
<?xml-stylesheet type='text/xsl' href='rss.xslt' version='1.0'?>
<!--  RSS generation by 'A blog for web developers about all things ecommerce.' on Sat, 04 Feb 2012 23:02:55 GMT   --> 
<rss version="0.92">
	<channel>
		<title>A blog for web developers about all things ecommerce.</title> 
		<link>http://blog.cartweaver.com/</link> 
		<description>A blog for web developers about all things ecommerce.</description> 
		<webMaster>lawrence@cartweaver.com</webMaster> 
		<language>en-us</language> 
		<item>
			<title>Preview of Cartweaver 4!</title>
			<description><![CDATA[<p>Hello Cartweaver users,</p>
<p>  The rumors are true, Cartweaver 4 is on its way! We are very  pleased that we can now begin to share the details of what we have been up to,  and what Cartweaver 4 is all about!<br />
  </p>
<p>First, we have listened to your requests for features in the  next version of Cartweaver, and we are excited to share what we have done in  response to your feedback. We are also very pleased to say that Cartweaver 4  takes advantage of modern web standards and capabilities, with full support of  CSS layout and formatting, and dynamic UI features made possible by the jQuery  framework. Cartweaver 4 is not just an  update to Cartweaver 3 &#8211; It is a complete rewrite from the database up!</p>
<p> Cartweaver 4 will be available in <em>PHP</em> and <em>ColdFusion</em>. The  ColdFusion version also supports <em>Railo</em>, the open source CFML server.</p>
<p><strong>For Adobe Dreamweaver users</strong>, we have completely rewritten  the Dreamweaver extension. The installation of Cartweaver 4 into your  Dreamweaver site is now easier than ANY other shopping cart solution... period!</p>
<p>  <strong>For code developers using text based editors or standalone  IDEs</strong>, Cartweaver 4 is amazingly easy to add to your site manually, in a matter  of minutes. Cartweaver 4 is not tied to Dreamweaver or the Dreamweaver Extension.  You can work directly with the Cartweaver code, which has been completely  reworked and simplified into a reusable library of functions and components. </p>
<p> We are looking forward to sharing much more information with  you in coming days, and are confident that you&rsquo;ll love what we have done with  Cartweaver 4.  Not only is version 4 the  best Cartweaver there has ever been, but we are sure it will raise the bar for <em>ALL</em> shopping cart applications. You will find you <em>can</em> have it both ways - easy and powerful tools for both designers  and developers can and do exist in the same package!</p>
<p> The new Cartweaver.com website and a presales event will be  available very soon. If you would like to take a look at some of the new  features, you will find live demos of a basic store installation, the free  Cartweaver 4 template, and the online administration area at <a href="http://www.YourCartweaverStore.com" target="_blank">http://www.YourCartweaverStore.com</a></p>
<p>  For more demonstrations and a look at some of the new  features in Cartweaver 4, visit our </p>
<p><strong>YouTube channel</strong>: <a href="http://www.YouTube.com/CartweaverTV" target="_blank">http://www.YouTube.com/CartweaverTV</a> <br />
  (We already have a lot of videos there now, with more on the way!)</p>
<p> If you have any questions, please join the discussion on the  </p>
<p><strong>Cartweaver user forums</strong>: <a href="http://forums.cartweaver.com" target="_blank">http://forums.cartweaver.com</a> or on our </p>
<p><strong>Facebook page</strong> <a href="http://www.Facebook.com/Cartweaver" target="_blank">http://www.Facebook.com/Cartweaver</a></p>
<p><strong>or on Twitter:</strong> <a href="http://www.Twitter.com/Cartweaver" target="_blank">http://www.Twitter.com/Cartweaver</a></p>
<p>  We look forward to sharing more with you very soon!</p>
<p>  Thank you, <br />
  Cartweaver Development Team</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=98</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=98</guid>
			<pubDate>Fri, 03 Feb 2012 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>&quot;White Page&quot; problem with CF 9.0.1</title>
			<description><![CDATA[<p>I ran into a perplexing problem with my dedicated server this week. First of all it was hacked! That was not fun. Fortunately I got an instant flood of emails letting me know it was hacked and was able to immediately work with my host to resolve the issue. The hack wasn't anything terrible, just a malicious prank that ended up routing requests for any of the sites to an obnoxious "You've been hacked" screen. Don't these people have anything better to do?</p>
<p>So, we tightened up security even more and "Sand boxed" the web sites, restored a clean backup and updated CF9 server to the latest release 9.0.1 and all seemed good. Until an order came in... We received an order verification from our Gateway - Authorize Net - but order transaction didn't show in the database! The customer's record was there, but not the order. Fortunately the customer contacted me right away and was very helpful in explaining what happened. Once he had clicked the buy button, what is supposed to happen is the transaction is sent to Authorize Net, then Auth Net returns the transaction results so the purchase can be recorded and confirmation given. What happened is the transaction was sent off to Auth Net and then the customer saw a white screen... No error, no broken page, nothing, just a white screen. After doing a test transaction and getting the same results I worked with the host support to see if the problem could be identified.</p>
<p>Since we had restored all the original code we were sure there wasn't any hacker "foot prints" laying around, so what could it be? We back traced our updates and it turned out the culprit was the CF 9.0.1 update. Although no error was displayed on the screen and my auto error email was never sent to me as it should have been the host did see an error in the CF logs, as follows...</p>
<p class="commentseven"><em>"Error","jrpp-3","12/31/10","08:44:26","CartweaverDotComThreeOh","coldfusion.runtime.CfJspPage._mergeToLocal(Ljava/util/Map;Ljava/util/Map;)V  The specific sequence of files included or processed is: C:\ActualFileStructureChanged\page.cfm,  line: 312 "<br />
  "Error","jrpp-0","12/31/10","08:53:33","CartweaverDotComThreeOh","coldfusion.runtime.CfJspPage._mergeToLocal(Ljava/util/Map;Ljava/util/Map;)V  The specific sequence of files included or processed is: C:\C:\ActualFileStructureChanged\page.cfm.cfm,  line: 312 "</em></p>
<p>In doing a Google search on this "White Screen" problem we found a mention of it in <a href="http://www.coldfusionjedi.com/index.cfm/2010/7/13/ColdFusion-901-Released" target="_blank">Ray Camden's blog post</a> on the release of CF 9.0.1 where someone commenting on the blog post mentioned the same problem and had to roll back to 9.0.</p>
<p>Well I'm pleased to say, with the help of my buddy Dan Short - CFr extraordinaire - we found what the problem was. For whatever reason CF 9.0.1 was having a conflict with us explicitly declaring a local variable. The error showed, for lack of a better term, that CF was trying to re-declare the variable again as a local variable and was choking on it in the process. Once we no longer explicitly declared it and just let CF assume it was a local variable CF was happy and all was back to normal. This is really odd because we explicitly declare local variables all over the application and no other instance causes this problem, just this spot.</p>
<p>So, what's the use of all this? I'm hoping by sharing this that if any of you get the same "White Screen" problem when updating to ColdFusion 9.0.1 that this post will help you identify the problem.</p>
<p>We are documenting as much of this as we can and sending it along to the CF development team at Adobe, hopefully we can help them find and kill this troublesome bug.</p>
<p class="highlight">Just as a side note, the code we use in the Cartweaver site is very modified and this issue does not affect the standard Cartweaver CF code. It works just fine under CF 9.0.1 <br />Thought I'd mention that to avoid an undue panic :-)</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=97</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=97</guid>
			<pubDate>Fri, 31 Dec 2010 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Don&apos;t Under Bid Your Projects</title>
			<description><![CDATA[<p>A few words of advice if you are new to developing shopping cart web sites. Just because you found an affordable ecommerce app that is easy to integrate - such as Cartweaver - doesn't mean you should be doing shopping cart sites for cheap! Sure Cartweaver provides a real leg up and makes things so much quicker and easier, but a fully dynamic, database driven, ecommerce site still has complexities and many times unforeseen complications, that have nothing to do with Cartweaver itself. There can be host issues. Issues with the payment Gateways. Merchant accounts, you know, all the elements involved in an dynamic, professional, ecommerce site. Then there's the client who springs that infamous "could you just...[ fill in blank here ]" feature request or change orders on you. The point is, when you are creating an ecommerce site for a client you are stepping into a more complex role than just a web designer. You also end up being a consultant. Be sure you charge accordingly! The end result is both you and your clients will take your job more seriously, and you'll make more money. Both of those are good things!
<br /><br />
Hope you find this helpful.<br />
  </p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=71</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=71</guid>
			<pubDate>Sat, 25 Dec 2010 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Yet another reason NOT to use MS Access as your databse.</title>
			<description><![CDATA[ <p>Cartweaver CF supports MS Access, but should you use Access?  (note the PHP version doesn't - It uses MySQL by default) Cartweaver supports Access because some users insist on it and we'd likely lose sales if we didn't, so the market sort of forces us to do so. But we don't have to like it. My advice to anyone is to move, right from the start to a database server such as MySQL or MS SQL Server. (Cartweaver ColdFusion also supports MS SQL Server and Cartweaver ColdFusion also Supports MySQL)</p><p>Here's yet another reason why this statement is so true..</p> <p>I had a CW user email me in an absolute panic! He had used Dreamweaver's Synchronize function to update his site and inadvertently overwritten the Access database file on the server with the test one he had locally! Six months of orders GONE! I told him to contact his host immediately and see if they had a  backup of his site, which thankfully they did and he ended up only losing a couple of orders that he could re enter based on the sale notification emails he had.</p><p>Think of it, one click of a button and you could destroy years worth of data. Having your database data stored in one little file is just too risky! Besides all the load and traffic vulnerabilities Access presents, the danger of having your  data stored in this little corruptible file is just to big of a gamble.</p> <p>If you are using Access, the first thing you should do is use Dreamweaver's "Cloak" feature to protect the folder your database is in so this synchronize mistake will never happen.</p><p>The next thing you should do is move to a server type database. I highly recommend MySQL. It's fast, stable, robust, and since version 4 is fully relational. It's a lot of database and pretty much every host out there offers it for free, as part of their hosting packages. If you add Navicat - in my opinion the best MySQL admin tool out there - to the mix, you'll actually find MySQL easier to work with than Access.</p><p>Moving your database to a serious platform, especially for ecommerce where your income depends on it,is just the right and responsible thing to do.</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=60</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=60</guid>
			<pubDate>Sun, 19 Dec 2010 18:01:12 GMT</pubDate>
		</item>
		<item>
			<title>Should I use a CMS or learn to code PHP or CF?</title>
			<description><![CDATA[<p>I find that those who use CMS like   Druple or Joomla, Mura, or even WordPress in some cases in hopes of avoiding   the need to know code end up with sites and site admins that their end   users ultimately find frustrating and confining.  Does this mean the the   CMS is bad?  No. It means the developer is - well maybe not bad, but lazy.  I've seen all  of the   apps mentioned above do amazing things, in the hands of developers who   really dig in and learn the framework and how to adapt it to all the   inevitable tweaks and customizing they are bound to be asked for by   their clients. No "as-downloaded" pre-done app is going to fill every   need, and the more they try to the more complex, bloated and cumbersome   they become.  So the burden still rests with the developer to dig in, learn code, be it PHP, CF,  the framework of their chosen CMS or combination thereof.</p>
    <p>My personal preference for a CMS is a   hybrid of custom database/cms and Adobe Contribute.  Things that are   repetitive such as a shopping cart (obviously I'm partial to Cartweaver   for this) or things like photo galleries, news   pages, calendars and the like I use little apps, with simple web based   admins that I've developed and then reuse all the time.  For the rest of   the site, pages that are for the most part static, but you still want   the client to be able to update them I use Adobe Contribute, because   it's easy enough to use that even the most computer fearful client can   pick it up in pretty short order.</p>
    <p>This approach has worked   very well for me and I can jump in and make any modifications the   client wants.   Is this THE right way to do it?  Nope. It is for me, but  if I had spent the time and the effort to become an absolute wizard at  Joomla, then it would be the right choice, again <em>for me</em>. <br/> Mind you, I'm pretty proficient in Joomla, WordPress and Mura - but I'm not as able to deliver complex custom solutions in these as I am in my method, so I do what I do best and call on a roster of for-real experts in these other solutions that work with me when a client needs work done in these.</p>
    <p>The one thing  that I feel is important is that the solution be portable.  There are a lot of available as a hosted solution and personally I just can't bring myself to recommend these to my clients. CMS provider XYZ may be great, afford-ably priced, and offer the latest in   what's cool... for now, but things change. If a service or a provider/host goes bad or decides to change their service or jack their pricing and you are tied into their proprietary system, you are screwed. Don't sacrifice your clients long term welfare for short term easy.</p>
    <p>So to sum it up, decide what you want to use based on what "clicks" best for you, then be committed to become totally proficient in it. Don't choose any solution as a way of avoiding the need to "learn code" . That approach will eventually only lead to grief, both for you and your clients. Instead be committed to learn all you can and truly master your platform of choice. Taking that approach will pay off very well... for both you and your clients.</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=96</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=96</guid>
			<pubDate>Tue, 02 Nov 2010 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>PCI compliance, What you should know.</title>
			<description><![CDATA[<p>It's no secret that identity theft and customer information security has become a huge concern for anyone doing business on the web. Unfortunately there are far too many careless online merchants who  improperly handle sensitive consumer data and countless unscrupulous  individuals eager to take advantage of the situation. The industry is trying to  do something about it, but it's extremely difficult when you are dealing with a  rapidly moving target like the internet. One of the efforts to increase the  security of online commerce is the movement toward PCI Data Security Standards.  Will this be the solution? The magic bullet to kill identity theft and bring  security to the web...  Who knows, time  will tell. But any effort to increase the security of online commerce is a worthwhile  endeavor, so what can you do to see about being PCI compliant and make yours a  safer site to do business with.</p>
<p> First of all, go to <a href="http://www.pcicomplianceguide.org/">http://www.pcicomplianceguide .org/</a> and become more familiar with what PCI is and what you can do to better secure  your online business. 
  Next, if you have a Cartweaver site or any shopping  cart site for that matter, what should you do? Let's take a look at what is required  to have a "PCI secure site" and briefly discuss what can be done to see if your  site measures up.</p>
<p> The following requirements are taken directly from <a href="http://www.pcicomplianceguide.org/pci-basics.html">http://www.pcicomplianceguide.org/pci-basics.html</a> -- let's look at these one at a time and see how Cartweaver addresses the issues  it can, and what steps you need should take to better secure your online store.<br />
  ..................................<br />
  <strong>Build and Maintain a Secure Network </strong><br />
  <em>Requirement 1: Install and maintain a  firewall configuration to protect cardholder data</em></p>
<ul>
  <li><strong>This is in your court as a  developer</strong>. If using an Access database, make sure that it is stored in a safe  non-brows-able folder, if you are using a SQL Server or MySQL database; be sure  your host has it properly secured.</li>
</ul>
<p><em>Requirement 2: Do not use vendor-supplied defaults for system passwords  and other security parameters </em></p>
<ul>
  <li><strong>Yes!</strong> By all means change all default usernames and passwords and be sure you use something that is sufficient to ward off hack attempts. A good mix of numeric and alphanumeric characters and at least 8 to ten characters in length will be good and change them occasionally to be sure they don't get compromised.</li>
</ul>
<p><strong>Protect Cardholder Data </strong><br />
    <em>Requirement 3: Protect stored cardholder  data</em></p>
<ul>
  <li><strong>Cartweaver NEVER stores  this data</strong> -- it is handed off to the payment gateway and then promptly "forgotten".  No matter what your client may say, never be persuaded  to alter your site to store the credit card type, number, expiration date, or  security code... Ever! Just don't go there. Truthfully, in a shared host environment  there is no way to store this data securely. Treat it like the hot potato it is  and hand it off as quickly as possible and be free of it.</li>
</ul>
<p><em>Requirement 4: Encrypt transmission of cardholder data across open,  public networks </em></p>
<ul>
  <li><strong>Yes</strong> -- by all means get an  SSL Certificate and have it properly installed in the root directory of your  site. Resist the temptation to use the host's shared SSL if they offer one, get  your own 124 bit encryption certificate and have it installed before your first  transaction.</li>
</ul>
<p><strong>Maintain a Vulnerability Management Program </strong><br />
    <em>Requirement 5: Use and regularly update  anti-virus software<br />
Requirement 6: Develop and maintain secure systems and applications </em></p>
<ul>
  <li><strong>This would be the responsibility  of your host</strong>. Have in-depth, frank discussions with your host to 1. Know what  steps they take in this regard and 2. Make sure they continually monitor and maintain  security. If they don't provide clear and detailed information about this  issue, or get annoyed with your insistence of getting this information... change hosts! </li>
</ul>
<p><strong>Implement Strong Access Control Measures </strong><br />
    <em>Requirement 7: Restrict access to  cardholder data by business need-to-know</em></p>
<ul>
  <li>Again, Cartweaver does not  store this data.</li>
</ul>
<p><em>Requirement 8: Assign a unique ID to each person with computer access</em></p>
<ul>
  <li><strong>Cartweaver does this by  allowing you to create individual admin accounts</strong>. Be sure your host does the  same. Again risk is greatly minimized by the fact that credit card data is not  stored. The with the exception of the email address, the data in your  Cartweaver customer database is no more than what is freely accessible in the  local telephone directory.</li>
</ul>
<p><em>Requirement 9: Restrict physical access to cardholder data </em></p>
<ul>
  <li><strong>Once again -- this is not stored</strong>.  If you choose a reputable payment gateway this data is secure. Neither you the  developer, your employees, the merchant, nor their employees have any access to  this data. You can't steal or tamper with something you don't have.</li>
</ul>
<p><strong>Regularly Monitor and Test Networks </strong><br />
    <em>Requirement 10: Track and monitor all  access to network resources and cardholder data<br />
Requirement 11: Regularly test security systems and processes </em></p>
<ul>
  <li><strong>The credit card data is not stored in any way shape pr form</strong>, and with the SSL encryption it is securely transferred to your payment gateway -- that takes care of it from the application and your standpoint... Just  be sure to use a qualified, reputable payment gateway and host.</li>
</ul>
<p><strong>Maintain an Information Security Policy </strong><br />
    <em>Requirement 12: Maintain a policy that  addresses information security</em></p>
<ul>
  <li>Be proactive! Your application (Cartweaver) is secure provided your database is adequately secured and you have SSL in place and your usernames and passwords properly set. Beyond that,  talk frankly with your host and payment gateway provider to be sure their end  is taken care of.</li>
</ul>
<p>Being able to do business on line safely and securely is the right of every person that chooses to spend  their hard earned money online. Internet shoppers are showing a lot a trust when  they make a purchase online. It is the responsibility of every online merchant,  web application developer, web site developer and designer to do all they can to fulfill that trust by providing a safe, secure "place" to do business. I encourage  you to take the time out from your day to day activities and focus on making sure  your site meets the PCI standards. You and your customers will be glad you did.</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=19</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=19</guid>
			<pubDate>Fri, 22 Oct 2010 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Using Cartweaver to take donations.</title>
			<description><![CDATA[<p>I've often been asked if Cartweaver can be used on a site that primarily takes donations... The answer is certainly! We have a lot of folks that use Cartweaver to &ldquo;sell&rdquo; donations.  </p><p>What most do is of course sell any tangibles such a organization logo clothing and the sort from Cartweaver, and since Cartweaver tracks inventory and can remove sold out items from the web many use Cartweaver to sell donated items as well. </p><p>For taking cash donations you can add a Cash Donations &ldquo;Product&rdquo; then the the SKUs for the product are amount increments the contributor can select. This works very well, the contributor can simply select the dollar amount they want to donate and then go through the checkout process.  These amounts can go up to a reasonable amount, then what most do is included in the &ldquo;product&rdquo; description a statement that if the contributor wishes to make a large donation they should contact you directly.</p><p>Another way to handle this is to create a "product" with only one SKU and give the SKU the price of one dollar, then in your description for this product explain that the contributor can simply add a quantity to designate how many dollars they would like to donate. Either method can be quite effective.<p/><p>Using Cartweaver in this way provides a very effective and flexible donations platform.</p> ]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=95</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=95</guid>
			<pubDate>Wed, 20 Oct 2010 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Can you run  PHP and ColdFusion on the same development system, at the same time?</title>
			<description><![CDATA[<h1>Can CF and PHP Get Along? </h1>
  <p><img src="images/BlogPostImages/php-plus-cf.png" alt="PHP and CF together" width="250" height="85" align="right" />Yes you can run PHP and CF on the same system,<br />
I do it all the time. In fact for an easy way to set up both I often tell developers to download and install the free <a href="https://www.adobe.com/cfusion/tdrc/index.cfm?product=coldfusion" target="_blank">CF9 Developer's Edition</a> from Adobe and install it, then download <a href="http://www.apachefriends.org/en/xampp.html" target="_blank">XAMPP</a> (Windows and Mac) which has everything you'll need for a PHP development environment, and install it.</p>
  <p>This is an easy way to have both up and running in no time and will provide  everything you need to develop in both platforms. The nice thing about this is that you will have MySQL running and available to both platforms. While the CF version of Cartweaver can use and includes an MS Access version of the database, it is highly recommended that you use MySQL which is a far more robust, stable and secure database system. Since the Mac doesn't support Access, setting up MySQL is something Mac users will need to do anyway, and installing both <a href="http://www.apachefriends.org/en/xampp.html" target="_blank">XAMPP</a> and <a href="http://www.adobe.com/products/coldfusion/" target="_blank">ColdFusion 9</a> is an easy way to get this done. Unless your system is seriously depleted in resources you should notice no impact at all on your system to be running both. </p>
  <p>The only thing to look for is, when you install ColdFusion it by default uses port 8500, so to access your local ColdFusion sites you would go to</p>
<p>http://localhost:8500/YourSiteFolder</p>
<p>Now, if you have  installed PHP before ColdFusion and it by chance it is using port 8500, ColdFusion will use the next available port. So when you install ColdFusion 9 and you get to the part where it takes you to the browser based admin to finish the set up, look at the address bar and see which port ColdFusion is using, it may be :8510 or the like. Make a note of this because this is the port you will use to browse to your local ColdFusion sites.</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=94</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=94</guid>
			<pubDate>Tue, 05 Oct 2010 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Get found and indexed by Google quicker.</title>
			<description><![CDATA[<p>If you want your site to be found quickly and be indexed thoroughly by Google, the best thing to do is carefully, page by page, make sure that everything is SEO as you can possibly get it, you know... Title tags, H1 - H3 or 4 tags, body content in <p> tags and so on - Make sure the content, dynamic or static, is intelligently written to focus on key words and search terms for your business or product category - Just be sure all the tweaking is done. </p><p>Then create a Google Sitemap for the site and register the site with <a href="http://www.google.com/support/webmasters/bin/answer.py?hl=en&amp;answer=156184" target="_blank">Google Sitemaps</a>, next set up a <a href="http://www.google.com/analytics/" target="_blank">Google Analytics</a> account for the site and place the code on your site and get that all validated. Even if you use your host's site stats and maybe don't think you'll actually use Analytics, set it up anyway. </p><p>All this gets your site on Google's radar and indexed promptly, and re-indexed more often. <br /></p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=93</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=93</guid>
			<pubDate>Tue, 07 Sep 2010 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Simple tip for setting up local MySQL dev database.</title>
			<description><![CDATA[<p>Here's a real simple test to setting up your local development / test MySQL database.</p><p>Try creating a new user for your local MySQL database in whatever  MySQL admin you are using (I really like Navicat) - I like to create the  user with the exact same user name and password that the database on the  live server will eventually be using - this way you don't have to  modify any code when you upload your site.  Now give this user access to  only the one database you'll be connecting to for the particular site  you'll be working on and then give this use full permissions to this  database, and save the user. Then create your site data source with the same data source name you'll be using on the server, thus creating, as far as you code is concerned, a mirror setup.<br /></p><p>This should get you connected and it will also streamline the process when you start uploading and testing on the server.</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=92</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=92</guid>
			<pubDate>Sat, 04 Sep 2010 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>&quot;You gotta have Search Engine Friendly Links!&quot;</title>
			<description><![CDATA[<p>You hear this from time to time and it&rsquo;s usually spoken in a tone not unlike a parent talking about teaching your children a fire escape route from their second story bedroom.</p>
<p>First, of to be clear, what is meant by Search Engine Friendly Links? In a dynamic web site, like a shopping cart, a blog, or the like, data and page content are delivered based on variables passed in the URL, for example:</p>
<p><a href="http://www.cartweaver.com/demos/cfm/basic/Results.cfm?category=6"><u>www.cartweaver.com/demos/cfm/basic/Results.cfm?category=6</u></a></p><p>The part of the URL after the question mark is the variable being passed so the server knows to serve up the products associated with the category with the ID of &quot;6&quot; which in this example let&rsquo;s say is &quot;boots&quot;.  In times past a URL that ended in something other than a recognized page extension such as .htm, .php, or .cfm would leave search engines scratching their virtual heads. So clever developers of the time came up with programming tricks that would convert these variables to something more legible to the human eye, such as;</p><p>.../Basic/results/boots</p><p>Behind the sense you had specially coded functions at work translating the URLs from and to a form that the humans and search engines could read and one the server could make sense of. There are some developers that still doggedly cling to the perceived need for this, but it&rsquo;s time has passed. Web technology moves on. Case in point, when is the last time you worried about the &quot;web safe color pallet&quot; or spent time wishing you could reliabley format your page using CSS, or wishing browsers recognized .png files? The market forces change! The masses wanted these things so the industry moved to meet the demand.</p><p>The is also true of search engine technology. Not long ago Yahoo! Was THE search engine powerhouse, then came along this upstart Google. The market force that Google understood and grabbed on to is that that Yahoo was not a true search engine, it was an index, powered by people sitting at computer screens reviewing and adding sites to its database. As fast as the web was moving, there was no way on God&rsquo;s green earth this could keep up.  Google understood this and developed a search technology that moved at the speed of the web, in the process blew right by Yahoo! and the others. When&rsquo;s the last time you even heard of Lycos or AltaVista?</p><p>This same market force is at work when it comes to effectively indexing dynamic web sites. The search engines simply can not site back and dictate to the web development community that they have to jump through programming hoops and waist time bowing to the inadequacies of their technology.  They are fully aware of the fact that the one that indexes the web the fastest and easiest, for the development community and consumers alike will win... Every time! Search engines have caught up! Google does an outstanding job of following and indexing dynamic links, and it continues to get better. They are even spending billions on figuring out how to index the contents of images by reading their binary code, and indexing Flash and mpg files.</p><p>So am I saying that there is absolutely no benefit to be gained from having so called Search Engine Friendly links in your site? No, there is still a little to be gained, but the little remaining advantage is dwindling more and more all the time.</p><p>Your efforts are far better spent making sure your site content is well written and provides rich relevant information in your key subject areas. You should also spend time making sure you head tags are very well written and targeted, along with a good use of the H1 through H3 or H4 tags. Be sure all your image alt tags are populated and relevant. Finally spend the time to have both a complete HTML and XML site map and register it with Google sitemaps.  Doing this detail work will net you FAR better, and longer lasting results that trying to implement a system of search engine friendly links.</p><p>To sum it up, search engines are far more focused on what&rsquo;s IN the site, your content;  than they are in how you link to that content. They have gotten smart enough to follow dynamic links... They have had to; the whole web is becoming dynamic! Static web sites and URLs are going the way of the Web Safe Color Pallet... R.O.P.</p><p>Good Sales!</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=6</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=6</guid>
			<pubDate>Mon, 16 Aug 2010 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>MasterCard Mulit Payment Mandate - Update</title>
			<description><![CDATA[<p>Just a quick update on the progress of this issue:</p><p>This storm cloud may have passed. I'm waiting for the official word from my Authorize Net sources but things are looking up for now.</p><p>I can't say more than this for now, and this being as fluid a situation as it is, things could "cloud up" again, but it's looking good. I'll post more as soon as I can! <br /></p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=91</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=91</guid>
			<pubDate>Thu, 10 Jun 2010 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>MasterCard Partial Payment Requirements shake things up!</title>
			<description><![CDATA[<h2><img src="images/BlogPostImages/AuthNet-MasterCard.jpg" alt="MasterCard-Authorize Net" width="211" height="145" align="right" />MasterCard/Discover New Partial Authorization Rule</h2>
<p>Authorize Net, one of the web's largest online payment gateways sent out an email to all their merchants that as of <em>May 1 2010</em> Master Card and Discover were going to go live with a new processing rule that would require virtually ALL  merchants to allow partial payments and multiple payment transactions. (There are a some exceptions, but few fit the profile) Yes you read that date right. This notice went out right about the time the rule was to go into effect, and the rule states that if the merchant was found to not be in compliance they would be hit with a penalty!</p>
<p>The first thought that jumped to mind was "What the !$#!@$!@!" - Fortunately even MasterCard realized you can't announce a new rule that will fundamentally change the way EVERY shopping cart website on the web processes credit cards and realistically expect this quick of a response. So Authorize Net got an extension for their merchants that pushes the deadline out to <strong>June 30th 2011</strong>. It appears that  other gateway provides are getting such extensions as well. Best check with your gateway provider to see what they say on this.</p>
<p><strong>So what does it mean?</strong><br />A quick Google search on the topic brings up a lot of hits, but  clicking on the results just takes you to a lot sites and blogs that just regurgitate the word for word content of the email notice which can be read <a href="http://community.developer.authorize.net/t5/News-and-Announcements/New-MasterCard-Discover-Processing-Requirements/m-p/2634">here</a>. Not a lot of helpful "what do I do" content to be found.</p><p><strong>What's it really mean?</strong><br />I'm not going to go into detail repeating the same thing that is available in the email or on on the Auth Net site, that can  be found here:</p>
<ul>
  <li><a href="http://community.developer.authorize.net/t5/News-and-Announcements/New-MasterCard-Discover-Processing-Requirements/m-p/2634" target="_blank">New MasterCard/Discover Processing Requirements</a></li>
  <li><a href="http://www.authorize.net/support/pafaqs/" target="_blank">MasterCard/Discover Partial Authorization FAQs</a></li>
  <li><a href="http://www.authorize.net/support/AIM_apiupdates.pdf" target="_blank">http://www.authorize.net/support/AIM_apiupdates.pdf</a>.</li>
</ul>
<p><em>I'd recommend reading over these thoroughly!</em></p>
<p>Fortunately over the years we have developed a very good relationship with Authorize Net, we refer a lot of business their way, So I had a direct line to call. Talking to my contact at Authorize Net led to two conclusions;</p>
<ol>
  <li>They were on it and trying to be as responsive as they could</li>
  <li>And that they had almost as many questions as I did</li>
</ol>
<p>So we arranged a conference call with one of the lead techs working on the updates to their API to discuss what all this really meant from a technical standpoint. The call cleared up a lot of questions, but it also raised a number of concerns that still needed to be addressed. My contact at Authorize Net called me back the next day to ask if I would be involved in another conference call, this time with  ten or twelve other eCommerce community leaders and  if prior to the call I would email my primary concerns and questions so they could be covered during the call. So we had a "LiveMeeting" presentation and conference call with lead Authorize Net API techs and a number of eCommerce developers around the country.</p>
<h2>So the big question: How's this impact my eCommerce web site?</h2>
<p>It's is pretty simple to visualize. Assuming you are using Authorize Net or a similar real-time payment gateway, the way your web site works now is like this</p>
<h2>Current Process</h2>
<p><img src="images/BlogPostImages/PaymentPathNow.jpg" width="569" height="129" alt="Current Payment Process" /></p>
<p>The payment is submitted to the payment gateway, if there's sufficient funds available on the card  the payment is competed and the transaction is complete. If there are insufficient funds the transaction is terminated. In other words a single payment attempt is made and it will pass or fail. If it fails due to insufficient funds the user must start over.</p>
<h2>New Payment Process</h2>
<p><img src="images/BlogPostImages/PaymentPathNew.jpg" width="569" height="137" alt="New payment process" /></p>
<p>If the card submitted has funds available, but not enough to complete the full transaction, the available funds will be captured and the cart must allow the customer try  with another card to pay the balance due.</p>
<ul>
  <li>Merchants must accept multiple payments for individual orders</li>
  <li>Number of payments not known in advance</li>
  <li>Payment software must recognize multiple payments</li>
</ul>
<p>While this is easy to visualize it's not an easy technical change! As you can see, this is a fundamental shift in he way virtually EVERY shopping cart site on the web will have to behave! This is going to take some pretty extensive programing to adapt the flow of the cart checkout process to allow for multiple attempts, and to clean up the mess of partial payments if a user decides to bail out in the middle of the process.</p>
<p><strong>So, can we just opt out and do things the way we are now?</strong></p>
<p> Well from a technical standpoint, yes. To prevent sites all over the web from breaking, "non compliant" sites will continue to work just as they do now. </p>
<p><strong>Good, no problem then right? Wrong!</strong></p>
<p><em>MasterCard will penalize merchants whose sites are found to be non compliant!</em> How much is the penalty? No body is telling! Everyone just points to someone else. But some of the figures being passed around range from significant to bloody outrageous! To the point where the immediate reaction is "how can that even be legal!" I'm still digging to see if I can get somebody to give me a straight answer and will report as soon as I do, but suffice it to say that MasterCard & Discover are serious about this and they aren't going to make it easy to ignore. They are going to force you into one of three choices. Comply, No longer accept Discover or MasterCard, or shut down.</p>
<p><strong>What about just not taking MasterCard or Discover anymore?</strong> Well some may choose to do this, but the hand writing is on the wall! Even though they are not being required to do so Authorize Net is preemptively building this functionality into their system for Visa and AmEx as well. They are pretty much expecting them to follow suit.</p>
<p><strong>Why don't we hear more from all the gateway providers about this?</strong> Don't worry, you will. <a href="https://www.x.com/docs/DOC-2021" target="_blank">PayPal</a> is already hard at this and making information available to developers. All other gateways will fall into line. Many of them are likely waiting to see what Authorize Net does, since many of them offer Auth Net emulation and their APIs work pretty much the same.</p>
<h2>So, what next?</h2>
<p>Fortunately we have some time. We are working closely with Authorize Net and will be releasing updates to users of current the version of Cartweaver for Authorize Net, and depending on what paths some of the other gateways take, we will release other updates as we can. We will stay on top of the changes and keep you informed.</p>
<p>To stay updated on how this progresses check back here or follow us on <strong><a href="http://www.facebook.com/pages/Cartweaver/252364203438?ref=mf" target="_blank">Facebook</a></strong> and <strong><a href="https://twitter.com/Cartweaver" target="_blank">Twitter</a></strong>. We will release up to the minute information there.</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=90</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=90</guid>
			<pubDate>Sat, 29 May 2010 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Cartweaver 3 is Adobe Dreamweaver CS5 Ready!</title>
			<description><![CDATA[<p><img src="images/CS5-Ready-boxshot.png" alt="Dreamweaver CS5" width="105" height="165" hspace="15" align="right" />Adobe has released Dreamweaver CS5 and it looks to be quite the upgrade! I'm pleased to say that Cartweaver 3, ASP, PHP and ColdFusion have been fully tested and are Dreamweaver CS5 ready!</p>
<p>If you are currently using an older version of Dreamweaver, especially anything pre CS3 you should definitely <a href="http://www.adobe.com/products/dreamweaver/" target="_blank">download</a> the CS5 trial and give it a good looking over. If you've been holing off upgrading CS5 will make you glad you did. This is the upgrade you've been looking for - and no, this is not an Adobe advertisement - I'm just pretty jazzed about the improvements in this version and don't mind giving credit where credit is due.</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=89</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=89</guid>
			<pubDate>Wed, 28 Apr 2010 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Adding your Cartweaver database to MySQL</title>
			<description><![CDATA[<p>Although the ColdFusion and ASP versions of Cartweaver ship with an Access database we have never made any secret out of the fact that it's <strong>far better to use a for-real database</strong> server such as MySQL or MS SQL Server for your ecommerce database.</p>
<p>This may cause new users some confusion because these databases are not a file that you can upload. Usually your host creates the database for you but it's empty. Now what?</p>
<p>To demonstrate how to add your Cartweaver database tables and fields to your database, we will use MySQL as the our example since it is the most common database for many and the only one supported by the Mac and Cartweaver PHP. The process is similar for SQL Server.</p>
<ul>
  <li>First go to the Cartweaver customers page and log in. This will give you access to the Customer's Free Downloads page. Once there, download the MySQL database creation script. <br />
    <br />
  </li>
  <li>Once you have it downloaded un-zip it and look for Cartweaver3_MySQL-Creator.sql<br />
    <br />
    </li>
  <li>Open this file in a text editor such as note pad - Do Not use Word as it will add characters that will corrupt the script. Use only a simple text editor.<br />
    <br />
  </li>
  <li>Now that you have your script ready, open your MySQL database in your MySQL administrator, in this example we will use phpMyAdmin since this is the one many hosts provide.</li>
  </ul>
<p><strong>Now that you are here - just follow the example in this video.</strong><br />
</p>
<p align="center">
<object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/1B3B9U1kj4s&hl=en_US&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/1B3B9U1kj4s&hl=en_US&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object>
</p>
<p><strong><br />
  Yes it is THAT simple.</strong></p>
<p>The process may vary depending on what admin you are using, and whether you are using MySQL or SQL Server, but the principle and the basic steps are the same.</p>
<p><em><strong>As an add note:</strong></em> I highly recommend <a href="http://www.navicat.com/" target="_blank">Navicat</a> (the commercial version) as your MySQL Administration tool. It is far and away the best, easiest MySQL admin out there and well worth the money! - No I'm not affiliated with Navicat in any way nor do I get any kind of commission. I recommend it so highly because I've tried a LOT of admin tools and haven't found any better. Definitely worth a look.</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=88</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=88</guid>
			<pubDate>Wed, 17 Mar 2010 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Duplicating online and local data source for an easy workflow!</title>
			<description><![CDATA[<p>There are some things you can do when developing and testing locally that can ease your work-flow when it comes time to move your site to the online server, here's one of them that I was surprised to learn a lot of developers weren't using.</p>
<p><strong>Mirroring your database / data source set up</strong></p>
<p>Although Cartweaver CF supports Access database, it is always our recommendation that you move to a true database server such as MySQL or SQL Server. The advantages of speed, security, and stability are undeniable and well worth the additional set up and learning curve if you are not yet familiar with a these DBS'. Since both the ColdFusion and PHP versions of Cartweaver support MySQL I'll use it as the example here, although the principle apples equally to SQL Server.</p>
<p><strong>Same user, both places.</strong></p>
<p>It's a pretty simple procedure that will save you a lot of headaches. I was surprised to find that many developers will keep different sets of data source files, one for local work and one for the server. The reason for this is they have different log on and permissions locally. This can really lead to confusion and potentially an emergency if the local files are unintentionally uploaded to the server thus overwriting the server settings and breaking your site.<img src="images/BlogPostImages/Navicat-makeUser.jpg" alt="Create a user" width="200" height="143" hspace="25" vspace="25" align="right" /></p>
<p><strong>So here's a simple tip. </strong></p>
<p>Using your Database admin - I'll use Navicat (my absolute favorite database admin tool) in this example - set up your local development database. Give this database the exact same name as you or your host used when setting up your database on the server. </p>
<p>Then in the user admin, create a new user and assign the exact same username and password you will be using on your host server. Finally when you set up your data source name (DSN) use the exact same DSN you have on the server... When I say exact, this includes CASE as well, due to the fact that many hosted MySQL servers are on Unix / Linux boxes and are therefore case sensitive. For ease of set up, go ahead and give the local user full permissions to the database for this application, the permissions don't have to mirror the server exactly.</p>
<p>Now, when setting up your local data source direct your DSN to this database using the username and password you just created. Now when moving files back and forth between your host server and your local development environment you wont have to worry about maintaining two data source set ups, since they are both identical it wont matter where the files are.</p>
<p>If you haven't been using this set up already, by all means start today, I hope you find this as big of a time saver as I did when I first discovered it.</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=87</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=87</guid>
			<pubDate>Fri, 26 Feb 2010 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>IE6 The wicked 6 is dead - Goodbye, and good riddance!</title>
			<description><![CDATA[<p><img src="images/BlogPostImages/IE6.jpg" alt="IE6 is dead." width="125" height="152" hspace="20" vspace="0" align="right" />
One universal thorn in the side of developers the world over in adopting AJAX, jQuery (and other cool JavaScript frameworks) and more complex CSS, not to mention looking ahead to HTML 5 is the abomination called IE6. This Microsoft non-standards-compliant train wreck of a browser has been the unwelcome guest that has just refused to leave the party.Dumbing down our sites and applications to support for this blemish on the web has been the bain of the web developers/designers existance for far too long.</p>
<h3>At last! Let's have a good Ol' Irish wake and party it's passing!</h3>
<p>Recently Google announced that it will no longer support or worry about compatibility with IE6. This follows on the heels of Microsoft announcing the same.</p>
<p>The cool thing here is, the biggest block of &quot;hangers on&quot; to IE 6 has been large corperate and government IT departments, and them not allowing users on their networks to update. </p>
<p>NOW with  two of the largest players in the market saying &quot;IE6 is dead and we are moving on&quot; the playing field has officially shifted in our favor. With major business and employers being pushed forward there's no reason to not tell users to update as well.</p>
<p>If one of our clients says &quot;my site looks funny&quot; and we find they still have IE6 we can, with authority, tell them they need to update their browser and back this up by saying even Google and Microsoft have abandoned all support for IE6 and for this reason we no longer developed with it in mind. The update is free, there are many choices, just do it. All said with a reassuring head nod and smile of course.</p>
<p><a href="http://googleenterprise.blogspot.com/2010/01/modern-browsers-for-modern-applications.html" target="_blank">Google's formal announcement</a></p>
<p>OH YEAH!  What a glorious time this is. All together now...</p>
<p><em>&lt;Munchkin voice&gt; Ding done the 6 is dead, the wicked 6 is   dead!!!&lt;/Munchkin voice&gt;</em></p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=86</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=86</guid>
			<pubDate>Sat, 06 Feb 2010 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Dang! My session timed out!</title>
			<description><![CDATA[<h3>A Heartbeat script may be the end of your session time-out frustrations.</h3>
<p>We have all been there. Updating a web form and after working on it for quite a while the phone rings or somebody need our attention. You go back to you web form and finish it, then submit it only to find that your log in session has expired and you lose all your work!!! (insert explicative here).</p>
<h4>&quot;I can hear your heartbeat&quot;</h4>
<p>There is a way around this with AJAX / jQuery. There are several variations available of what has become to be known as a &quot;Heartbeat&quot; script. The purpose of this script is to Asynchronously ping or poll the server at given intervals to keep your session on the server alive. Here are a few exasmples:</p>
<ul>
<li><a href="http://www.jasons-toolbox.com/JHeartbeat/" target="_blank">http://www.jasons-toolbox.com/JHeartbeat/</a></li>
<li><a href="http://www.ajtrichards.co.uk/jquery-hearbeat/" target="_blank">    http://www.ajtrichards.co.uk/jquery-hearbeat/</a></li>
<li><a href="http://www.ajaxpatterns.org/Heartbeat">http://www.ajaxpatterns.org/Heartbeat</a><br />
</li>
</ul>
<p>There are numerous others that you can find by doing a quick Google search on &quot;Heartbeat jQuery Script&quot; </p>
<p>Some of the scripts you will find use the jQuery framework, others do not, but all follow the same idea and that is to simply interact occasionally with the server in the background to let the server know you are still there. This can save a lot of frustration for our clients and ourselves - c'mon admit it... Even though you constantly tell your clients to remember to update frequently to save their work you forget from time to time and get caught by this as well! </p> 
<h4>The cure-all?</h4>
<p>Is this little script the cure-all that we have been looking for? Quite possibly, but as with any JavaScript function you'll need to test it with your application to be certain it doesn't conflict with anything else you have going on. It's pretty easy to implement, and worth the time however, so you might want to give it a try.</p>
]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=85</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=85</guid>
			<pubDate>Thu, 04 Feb 2010 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>FWIW - My take on the new Apple iPad</title>
			<description><![CDATA[<h3><img src="images/BlogPostImages/iPad.png" alt="iPad" width="307" height="196" align="right" />iPad, from a developer's perspective</h3>
<p>When I watched Steve Jobs introduce the Apple iPad on Wednesday, my first reaction was, this is cool, but it really didn't move me. Like the MacBook Air, it impressed me as innovative and kind of &quot;wiz-bang&quot; but it doesn't have the horse power to replace my laptop nor does it have the communications ability of my smart phone, it just didn't seem to fit.</p>
  <h3>&quot;Walk a mile in my shoes.&quot;</h3>
  <p>Then it struck me, I am looking at this from a developer's perspective. Face it were are not a mainstream lot. So I stepped out of my own perspective for a bit and tried to wrap my head around this new device from a run-of-the-mill user's stand point. NOW I get it! For the way the vast majority of my more &quot;normal&quot; family and friends use computers, this  device is absolutely brilliant!</p>
  <p>For example, my daughter went to Japan for three months and took my old MacBook with her. While this is a pretty easy traveling companion, the iPad would do everything she ever uses the MacBook for, and it would do it lighter, faster, better, and cheaper! I realized that Apple once again &quot;Got It&quot; - maybe even before the rest of us even knew what &quot;it&quot; was. I'd be willing to bet that 60% of the consumer market uses their computers for no more than what the iPad does, and the iPad does it in a new and more human friendly way. I feel a &quot;I've got to have one of these&quot; feelings coming over me!</p>
  <h3>What about our clients?</h3>
  <p>Then I took a moment and thought about our clients. So many of our clients have smaller &quot;mom-n-pop&quot; ecommerce sites for whom selling on the web is as much a part of their lives as it is a business. With an inexpensive, easy to use, access to the web anywhere, device like this in their hands, administering their web site, checking orders, adding new products and emailing customers just got a whole lot easier and more portable! And affordable! Our clients could literally be on a beach on Maui, or camping in the mountains of Colorado and with the G3 version of the iPad be connected and able to run their store and keep tabs on their business. For small one or two person businesses this spells freedom.</p>
  <h3>Social media on steroids.</h3>
  <p>Now that Social Media is becoming such a significant element in how we communicate and promote our business, the iPad's larger interface, compared to smart phones, will open things up and make staying current and connected much more friendly and therefore easier than in the cramped confines of even the best iPhone or Blackberry Storm or Droid. As we all know, when you make something you should be doing easier, you're more likely to actually do it.</p>
  <h3>A new category of computing &amp; communications.</h3>
  <p>Like the iPod, and the iPhone, I think Apple has done it again. They managed to see just a little further over the horizon that the rest of us and identified a huge, primed and ready market, and got their first! </p>
  <p>There's two things I'm resolved to buy now... an iPad, and more Apple stock. I'm 100% confident that these will both be expenditures that I'll be very pleased with.</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=84</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=84</guid>
			<pubDate>Fri, 29 Jan 2010 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Don&apos;t go public with your site before you&apos;re ready!</title>
			<description><![CDATA[<p><strong>Clients like to see what we are up to, right?</strong></p>
  <p>As web developers we need share our progress with our clients as we wok on their new sites, but we only want to share our work with them or a select group users. </p>
  <p>That being said you'd be amazed how often the ever busy Google bots crawl their way to one of these staging sites and then, as they were designed to do, index it and then share it with the world!</p>
  <p>What brought this thought to mind was, I have a Google Alert set up for the term &quot;Cartweaver&quot; as well as several eCommerce related search terms  and frequently I'll get an alert that directs me to a site that is obviously the basic, initial install of Cartweaver. <br />
    What is no doubt happening here is a developer is putting this up as a test case for themselves or a client so see - I seriously doubt that they intended for Google to find and index their site at this time however.</p>
  <p><strong>So, how do you share your progress with your clients, yet protect it from Google and other uninvited &quot;guests&quot;?</strong></p>
<p>The best solution here is to set the folder on the server that contains your site  to be protected and to require a username and password to allow access. If you have a dedicated server this is no problem, and some hosts will set this up for you... but not all. So what do you do if you want to test things on your host server, and allow you client to check progress, but keep the site private and block access for everyone else until you are ready to go live?</p>
  <p><strong>A simple User Authentication Method with a &quot;Security Index Page&quot;</strong></p>
  <p>Here's a simple set up you can use.  You can create a placeholder / log in page and name it as your index page. This page will serve to as you temporary home page. This page will force users to log in to view the rest of the site. During development of your site, just name your home page &quot;home.cfm&quot; (or PHP or ASP) - When you are ready to go live you can eliminate the &quot;security&quot; index page and rename your &quot;home&quot; page to &quot;index&quot;. If you do this in Dreamweaver's file view Dreamweaver will even update the links to the home file to index for you so you won't have to worry about doing this manually.</p>
  <p>Now what you do is add a log in form to the security index page that will allow users to log in. If the log in is correct they will be automatically taken to the home page and be allowed to browse the site, if not the will be bounced back to the security index page. </p>
  <p>What if they are not logged in and manually enter a url for one of the interior pages? Won't they be abe to see the site then?  </p>
  <p><strong>We can prevent this with a simple validation / relocation script.</strong></p>
  <p>We will set a default log in session variable and if a log in is correct this default will be replaced  by expected &quot;logged in&quot; value. To prevent access to any pages other than  the security index page for anyone not properly logged in we will place code that checks the logged in variable value. If the user is correctly logged in we do nothing and allow access to the requested page, if the value is incorrect we will automatically redirect the user back to the security index page. For ColdFusion we would include this code in the Application.cfm or Application.cfc file, depending on which you are using. For PHP or ASP you will need to include this code at the very top of each page on your site.  </p>
  <p>Doing this will effectively hide your site-in-progress from prying eyes or Google bots, until you are ready for them to see it, but makes your work in progress easy to see for your clients.  </p>
  <p><strong>Download the example files here:</strong> </p>
  <ul>
    <li><a href="downloads/TempSiteProtector_CF.zip">ColdFusion</a></li>
    <li><a href="downloads/TempSiteProtector_PHP.zip">PHP</a></li>
    <li><a href="downloads/TempSiteProtector_ASP.zip">ASP</a></li>
  </ul>
  <p>Once the site is ready to go live, we delete the index page and rename the home page to index, as mentioned above. Then we delete the included checking code from the site. For Coldfusion, you select the include from you Application file, for PHP you can do a quick search and replace to eliminate the include code. </p>
  <p><em>A note to remember:</em><br />
    It is better if you can secure the site on the server at the folder permissions level, but if this option is not reasonably available to you, this method will do the trick!</p>
  <p>Hope you find this helpful!</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=83</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=83</guid>
			<pubDate>Tue, 19 Jan 2010 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Continuing participation in Adobe Community Professionals</title>
			<description><![CDATA[<p class="UIIntentionalStory_Message"><span class="blogitem">I'm very pleased to have been selected to continue my participation in the Adobe Community Professionals program! </span></p><p class="UIIntentionalStory_Message"><span class="blogitem">This program affords me the opportunity to give back to a community that has been such a large part of my career! It also gives me a chance to stay on the inside track of where Adobe and the web development industry as a whole is headed. </span></p><p class="UIIntentionalStory_Message"><span class="blogitem">A BIG thank you to Adobe for asking me back - it's an honor and a privilege to be part of such a dynamic community!  Find the list of ACPs here - <a target="_blank" href="http://tinyurl.com/yh47gp8">http://tinyurl.com/yh47gp8</a></span></p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=82</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=82</guid>
			<pubDate>Mon, 18 Jan 2010 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Mystery of the missing order...</title>
			<description><![CDATA[<p>
    I received a tech support email the other day that raised a topic I thought would be worth covering here. The email, stated that there was a transaction that was showing on the users payment gateway, but not in the store database... How could this happen?</p>
  <p><strong>First let's look at what happens in a normal purchase transaction.</strong></p>
  <p>When the customer clicks the final checkout button the credit card and customer data is passed off via SSL encryption to the payment gateway (note, we are only discussing real-time gateways here like Authorize Net, Link Point or the like) The gateway verifies the information and validates the transaction, or not, depending on the response from the card issuing bank, then reports the results, either success or failed, back to the cart application. The cart then processes the transaction based upon the gateway response. </p>
  <ul>
    <li>Success - the order is added to the database and a confirmation page is displayed.</li>
    <li>Failed - a &quot;Transaction failed&quot; page is displayed and the customer is given the option to try again.</li>
  </ul>
<p>Simple enough, but what would cause a successful transaction to be recorded at the gateway, but not in the store database? </p>
  <p>What can cause this is something interrupting the response from the gateway, a glitch in the connection or a dropped packet transfer.  </p>
  <p><strong>What can you do?</strong></p>
  <p>Unfortunately there is nothing in the code or the app that can prevent a connection glitch on the web.  As long as you are reaching out to a remote service, and then requiring a response back from that remote service, there's always a chance that something will prevent the return response from getting through. Fortunately this is a very rare occurrence, but it does happen... Things are better now than they were a few or a couple of years ago, by a long shot! But still not perfect, and this can happen.</p>
  <p>Now what if it's happening frequently?  Well the first thing to keep in mind - it is not the code or the application.  The app works the same way for every transaction. It sends the data off, receives the return data, and acts accordingly based on the response. So the missing order issue  is happening to you frequently then you need to see what the possible cause that may be within your control could be.  First thing to look at is your host's system. If you are on  a host with overloaded servers or with internal connection issues, this could definitely cause this problem.  You see, when browsing from page to page on a web site, if the hosts system is a little glitchy or over stressed, drops in page requests can go pretty much unnoticed, but if this &quot;drop&quot; occurs mid transaction, then you have problems! There's no way to reinitiate the entire transaction - the app has already transferred the data to the gateway, all it can do now is wait for the response. There are a number of things that can cause this - many of them are beyond your control since they happen out on the web - but you do have control, or influence at least on what happens on your server - either by working with your host or seeking out a more reliable host.</p>
  <p>The main thing to remember here is this problem is a connection / communication issue, not an application code issue. This can happen every once in a while, simply because the web is not a perfect network. But if it's happening with any frequency, you need to see what you can do to assure more reliable connections between your site and your gateway. </p>
  <p>I hope this conversation will help clear the fog around this issue for you and help you make your system as reliable as present web technology will allow.
  </p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=81</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=81</guid>
			<pubDate>Tue, 22 Dec 2009 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>True Life Story - Lazy SKUs</title>
			<description><![CDATA[<div>Sometimes as web developers we run into situations where we must do our  level best to save the client from themselves. This happens often enough where  I thought it would be a good idea to share some of out tech support experiences.  I believe what we share will be helpful to many developers in their day to day  dealings with clients.</div> <div>&nbsp;</div> <div>Case in point.&nbsp;&nbsp; A feature of Cartweaver and many shopping cart  applications is to track product the same way a physical store would, by  Products and SKUs. Products being the manufacturers item such as a &quot;Nike Polo  Shirt&quot; the the SKUs are id numbers assigned to all the individual variations of  that item such as &quot;Blue, XL&quot; or Red, Small&quot; and so forth. It is the SKU that  caries the price and is counted for inventory.</div> <div>&nbsp;</div> <div>Ok, pretty basic stuff for a merchant that runs a bricks and mortar store.  But you would be amazed at how many merchants setting up an online store think  that they can just skip this and do it an easier way. Admittedly entering all  those individual SKUs can be daunting if you have a hundred products with ten to  fifteen SKUs each! But doing it right is vital. Physical store merchants  understand this, but those new to online sales can be pretty insistent on  wanting to go for the short cut.</div> <div>&nbsp;</div> <div>Here's a transcript of a support thread on the topic...</div> <div>&nbsp;</div> <div>=========================</div> <div>Q-post:</div> <div>I am trying to avoid using multiple skus for one product with multiple  options.</div> <div>&nbsp;</div> <div>A-Post</div> <div>Hi, sounds like you are wanting to bypass the functionality of skus and  replace it with that exact same functionality... why not use the skus and  options as they are?</div> <div>&nbsp;</div> <div>Q-post</div> <div>Yeah that's what I am doing. My client&nbsp;is trying to keep it simple with one  sku and multiple options w/ pricing (simple for them)</div> <div>Thanks.</div> <div>&nbsp;</div> <div>A-post</div> <div>A point to talk over with your client is that they should look at inventory  and sales online exactly like they would in a bricks and mortar store,&nbsp; When  they reorder from their suppliers they order by the SKU.&nbsp; They don't call a  supplier and just say I want a mix of various shirts and just charge me the same  for all of them and don't worry about having an actual count of each or have any  way of looking back and see which ones sold and which ones didn't.&nbsp; You know it  just sounds silly when it's put that way, but many new to ecommerce will dive  into this sort of mistake because they think they are making things easier, that  is until a year from now they want to do some sort of record checking... Then  it's that stupid web developer screwed this all up... Why didn't we get a  developer that knew what he was doing!</div> <div>&nbsp;</div> <div>This is one of those areas the we must help save the client from  themselves.&nbsp; It's well worth it in the long run.</div> <div>&nbsp;</div> <div>======================&nbsp; End post</div> <div>&nbsp;</div> <div>I feel this developer's pain. We all know that clients can get a thought  into their head and once they are convinced it's a good idea that are many times  really ready to go toe to toe over it. </div> <div>It's a tough one, bus as I stated in my response, giving in may be just  delaying the battle. Doing all you can, up front to do it right will ultimately  pay off. The important thing is to think these situations out in advance, so  when the client tries to run down one of these rat holes, you have sound  reasonable explanations ready to save them from themselves.</div> <div>&nbsp;</div> <div>Hope this helps!</div>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=80</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=80</guid>
			<pubDate>Sun, 13 Dec 2009 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Check out my article on Practical Ecommerce</title>
			<description><![CDATA[<p><span class="blogitem">I just finished an article for <a target="_blank" href="http://www.practicalecommerce.com/articles/1383-Social-Media-Marketing-Four-Steps-for-Getting-Started">PracticalEcommerce.com</a> about taking the initial steps toward having a social media strategy to promote your ecommerce site.</span></p><p><span class="blogitem"> One of the points I make is to respect the community etiquette and don&rsquo;t jump in and start selling. Doing this will make you about as welcome as an Amway salesman at a family reunion! Social media is a powerful direct -to-consumer communications tool but their are boundaries you should respect.</span></p><p><span class="blogitem">Take a look at the article and listen to the interview and let me know what you think.</span></p><p>&nbsp;</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=79</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=79</guid>
			<pubDate>Tue, 24 Nov 2009 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>Removing items from cart that are sold (ColdFusion)</title>
			<description><![CDATA[<p>One of the frequent questions I get doing support for Cartweaver is "How do I make sure that all the items in a customer's cart are still available?" What happens is that a customer will place an item in the cart, and then leave the site. Another customer comes along and buys the product. The first customer comes back and tries to purchase the item, but cannot. Unfortunately, the customer doesn't find out until the order information is entered. </p>
<p>The following modification for the ColdFusion version will remove items from the cart that are no longer available, and show the customer a message that an item has been removed from the cart because it is no longer available. </p>
<p>Now, in CWIncFunctions.cfm, add the following section of code at line 399, right after this line:</p>
<p class="code"> <cfset Cart.Products = ArrayNew(1) /> <br />
</p>
<p>Add the following code:</p>
<p class="code"><cfif application.allowbackorders EQ 0><br />
  <cfquery name="checkStock" datasource="#request.dsn#" username="#request.dsnusername#" password="#request.dsnpassword#"><br />
  SELECT c.cart_sku_ID, c.cart_sku_qty, s.SKU_Stock, c.cart_Line_ID<br />
  FROM tbl_cart c<br />
  INNER JOIN tbl_skus s<br />
  ON c.cart_sku_ID = s.SKU_ID<br />
  WHERE c.cart_custcart_ID = <cfqueryparam cfsqltype="cf_sql_varchar" value="#Arguments.CartID#" /><br />
  AND s.SKU_Stock < c.cart_sku_qty<br />
  </cfquery><br />
  <cfif checkStock.recordCount GT 0><br />
  <cfset request.FieldError = "An item or items in your cart are no longer available or had quantities adjusted" /><br />
  <cfloop query="checkStock"><br />
    <cfif checkStock.SKU_Stock LTE 0><br />
      <cfquery  datasource="#request.dsn#" username="#request.dsnusername#" password="#request.dsnpassword#"><br />
      DELETE FROM tbl_cart <br />
      WHERE cart_Line_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#checkStock.cart_Line_ID#" /><br />
      </cfquery><br />
    <cfelse><br />
      <cfquery  datasource="#request.dsn#" username="#request.dsnusername#" password="#request.dsnpassword#"><br />
      UPDATE tbl_cart SET cart_sku_qty = <cfqueryparam cfsqltype="cf_sql_integer" value="#checkStock.SKU_Stock#" /><br />
      WHERE cart_Line_ID = <cfqueryparam cfsqltype="cf_sql_integer" value="#checkStock.cart_Line_ID#" /><br />
      </cfquery><br />
    </cfif><br />
  </cfloop><br />
  </cfif><br />
</cfif></p>
<p>Now, when a user comes back to view his cart, any items that are no longer available are removed from the cart and a message is displayed to the customer, and items that have smaller quantities available than were available at the time of the cart creation have their values adjusted. This only affects carts where Allow Backorders is unchecked in the Cartweaver admin. </p>
<p><strong>Update: 10/4/2009</strong> Thanks to Alex in the CW support newsgroup for pointing out that the method does not consider quantities in the cart greater than available quantities. It was written for one situation, but I have now adjusted the code to work with all situations where a quantity is no longer available for a given item</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=78</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=78</guid>
			<pubDate>Sat, 03 Oct 2009 15:22:04 GMT</pubDate>
		</item>
		<item>
			<title>Removing items from cart that are sold (PHP)</title>
			<description><![CDATA[<p>One of the frequent questions I get doing support for Cartweaver is &quot;How do I make sure that all the items in a customer's cart are still available?&quot; What happens is that a customer will place an item in the cart, and then leave the site. Another customer comes along and buys the product. The first customer comes back and tries to purchase the item, but cannot. Unfortunately, the customer doesn't find out until the order information is entered. </p>
<p>The following modification for the PHP version will remove items from the cart that are no longer available, and show the customer a message that an item has been removed from the cart because it is no longer available. </p>
<p>In CWIncFunctions.php, add the following section of code at line 470, right after this line:</p>
<p class="code"> $Cart[&quot;Products&quot;] = array();</p>
<p>Add the following code:</p>
<p class="code"> if(!$cartweaver-&gt;settings-&gt;allowBackOrders) {<br />
&nbsp;&nbsp;$query_rsCWCheckStock = sprintf(&quot;SELECT <br />
&nbsp;&nbsp;s.SKU_Stock, <br />
&nbsp;&nbsp;c.cart_Line_ID<br />
&nbsp;&nbsp;FROM tbl_cart c<br />
&nbsp;&nbsp;INNER JOIN tbl_skus s<br />
&nbsp;&nbsp;ON c.cart_sku_ID = s.SKU_ID<br />
&nbsp;&nbsp;WHERE c.cart_custcart_ID = '%s'<br />
&nbsp;&nbsp;AND s.SKU_Stock &lt; c.cart_sku_qty&quot;,$cartID);<br />
&nbsp;&nbsp;$rsCWCheckStock = $cartweaver-&gt;db-&gt;executeQuery($query_rsCWCheckStock, &quot;rsCWCheckStock&quot;);<br />
&nbsp;&nbsp;$rsCWCheckStock_recordCount = $cartweaver-&gt;db-&gt;recordCount;<br />
&nbsp;&nbsp;$row_rsCWCheckStock = $cartweaver-&gt;db-&gt;db_fetch_assoc($rsCWCheckStock); <br />
&nbsp;&nbsp;if($rsCWCheckStock_recordCount &gt; 0) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;$cartweaver-&gt;setCWError(&quot;Item Sold&quot;, &quot;An item or items in your cart are no longer available or had quantities adjusted&quot;); <br />
&nbsp;&nbsp;&nbsp;&nbsp;do {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($row_rsCWCheckStock[&quot;SKU_Stock&quot;] &lt;= &quot;0&quot;) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$query_rsCW = sprintf(&quot;DELETE FROM tbl_cart <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE cart_Line_ID = %d&quot;,$row_rsCWCheckStock[&quot;cart_Line_ID&quot;]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$rsCW = $cartweaver-&gt;db-&gt;executeQuery($query_rsCW, &quot;rsCW&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$query_rsCW = sprintf(&quot;UPDATE tbl_cart SET cart_sku_qty = %d<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WHERE cart_Line_ID = %d&quot;,$row_rsCWCheckStock[&quot;SKU_Stock&quot;], $row_rsCWCheckStock[&quot;cart_Line_ID&quot;]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$rsCW = $cartweaver-&gt;db-&gt;executeQuery($query_rsCW, &quot;rsCW&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;} while ($row_rsCWCheckStock = $cartweaver-&gt;db-&gt;db_fetch_assoc($rsCWCheckStock));<br />
&nbsp;&nbsp;}<br />
}
</p>
<p>Now, when a user comes back to view his cart, any items that are no longer available are removed from the cart and a message is displayed to the customer. This only affects carts where Allow Backorders is unchecked in the Cartweaver admin.</p>
<p><strong>Update: 10/4/2009</strong> Thanks to Alex in the CW support newsgroup for pointing out that the method does not consider quantities in the cart greater than available quantities. It was written for one situation for a customer, but I have now adjusted the code to work with all situations where a quantity is no longer available for a given item.]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=77</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=77</guid>
			<pubDate>Sat, 03 Oct 2009 14:13:18 GMT</pubDate>
		</item>
		<item>
			<title>3 Steps Towards a Successful Cart</title>
			<description><![CDATA[Most web developers have their own methods to organize themselves. <br /><br />These steps aim top give a basic workflow for those of you that don't know where to get started when facing a blank screen.<br /><br />I usually use a simple 3 step approach to all my projects:<br /><br />Step 1: Plan<br />Step 2: Develop<br />Step 3: Test, test, TEST !<br /><br />(note: this is just *my* method. I am quite sure each reader has their own set of &quot;rules&quot;. <br /><br />General overview:<br /><br /><strong>Step 1: </strong>Plan<br /><br />A lot of developers neglect to give this step the proper importance. I' think it is the most important part of the entire project. <br />Not having a good initial plan will add a lot of extra work to any project in the long run. <br /><br />Why is it so important ?&nbsp; Becuase the plan, will guide you in *what*&nbsp; you need to develop, and will force you to know the exact details before you start the actual coding work. <br />Attempting to develop a shopping cart without previous planning is like attempting to build a house without a blueprint. <br /><br />A few good reasons why you should plan ahead:<br /><br />i. It is a lot easier changing things around on a paper than it is to actually change code.<br />ii. By having all the details before hand it is a lot less probable that you get stumped whilst developing your cat. <br />iii. Any problems/questions can be solved at the very beginning, instead of having to interrupt development. <br />iv. By getting your client's approval on your plan, you ensure that you won't have any unpleasant &quot;surprise&quot; features whilst finishing your project.<br /> <br /> A very important aspect of planning, is making sure you have all your tools ready, and, that you have a local development environment setup. <br /> <br /><br /><br /><strong>Step 2</strong>: Develop<br /><br />If you have done a good job in the initial planning stage, the development part should be a lot easier to handle. <br /><br />Your plan will act as a map, helping you focus on the actual development, without having to worry about possible setbacks.<br />Whilst developing, I recommend you do daily backups of your entire work folder. By doing this you can rest assured you don't loose any work, or accidentally overwrite any files. There is no such thing as &quot;too many backups&quot; !<br /><br />A lot more can be said about the actual development. In future entries, I will be focusing in detail in the actual development process.<br /><br /><br /><br /><strong>Step 3:</strong> Test, test, TEST !<br /><br />Once you have finished your project, be sure to test it thoroughly. You can't trust it to just work because it's supposed to.<br />You should try all existing site functions to make sure each works as expected. <br /><br />Never assume the user won't click somewhere!&nbsp; If there is something not working, chances are, users will try just that. <br /><br />Sometimes, I find it quite hard to test my own sites, since I know how to use it. I usually ask someone else with basic knowledge to try it.&nbsp; A lot of times, I just ask my mom; she's 60, and has no advanced knowledge of any kind. She knows the basics of sending email, browsing the web, and using Word.&nbsp; Having a &quot;non-tech&quot; person test your site is an excellent way of making sure your site is user friendly. <br /><br />A lot of times, we feel we have so much work to do, we don't take the proper time to test our work. I regret each of those occasions. Even if on a tight schedule, I test all of it. <br />This doesn't mean that all I do is bug free. But, at least i know that if there is a bug, it won't be an obvious one.<br /><br /><br />Over the next few weeks, I'll be focusing in detail in each of these steps, and giving some extra tips for advanced users.&nbsp; Next week, you'll get an in-depth guide on how to tackle Step 1, and how to setup your local staging server.<br /><br />Please, do post your opinions !<p>&nbsp;</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=76</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=76</guid>
			<pubDate>Mon, 28 Sep 2009 16:13:07 GMT</pubDate>
		</item>
		<item>
			<title>PHP 5.3 deprecated functions -- Cartweaver PHP 3.1.16 released</title>
			<description><![CDATA[<p>PHP 5.3.0 has been released, and contains many changes from previous PHP releases. Because of this, we have updated the Cartweaver code to work with this release, and will also allow the code to work on PHP 6.0 as well.</p><p>The full list of release notes can be found at <a href="http://us2.php.net/migration53">http://us2.php.net/migration53</a>.</p><p>The main reason for the updated code is the fact that the following functions are now all deprecated in PHP and will throw E_DEPRECATED error messages when used (E_DEPRECATED is a new error message level). The functions are removed in PHP 6:</p><p><strong>Deprecated functions:</strong> </p><blockquote dir="ltr" style="margin-right: 0px"><p>call_user_method() (use call_user_func() instead) <br />call_user_method_array() (use call_user_func_array() instead) <br />define_syslog_variables() <br />dl() <br />ereg() (use preg_match() instead) <br />ereg_replace() (use preg_replace() instead) <br />eregi() (use preg_match() with the 'i' modifier instead) <br />eregi_replace() (use preg_replace() with the 'i' modifier instead) <br />set_magic_quotes_runtime() and its alias, magic_quotes_runtime() <br />session_register() (use the $_SESSION superglobal instead) <br />session_unregister() (use the $_SESSION superglobal instead) <br />session_is_registered() (use the $_SESSION superglobal instead) <br />set_socket_blocking() (use stream_set_blocking() instead) <br />split() (use preg_split() instead) <br />spliti() (use preg_split() with the 'i' modifier instead) <br />sql_regcase() <br />mysql_db_query() (use mysql_select_db() and mysql_query() instead) <br />mysql_escape_string() (use mysql_real_escape_string() instead) <br />Passing locale category names as strings is now deprecated. Use the LC_* family of constants instead. <br />The is_dst parameter to mktime(). Use the new timezone handling functions instead. </p></blockquote><p>The functions previously used by Cartweaver are ereg(), ereg_replace(), session_unregister(), and split().</p><p>There is also a new PHP site devoted to Windows installations at <a href="http://windows.php.net/">http://windows.php.net/</a></p><p>If anyone has a Cartweaver version pre-3.1.16, you will want to download the latest version and apply the fixes/changes. To download Cartweaver, go to <a href="http://www.cartweaver.com/customers">http://www.cartweaver.com/customers</a> and login as a customer. You should see your downloads. If you have not updated a Cartweaver installation, the easiest way is to simply replace the files in the /cw3 folder. If you have made changes to any of the files in your site, the UpdateNotesCW3PHP.htm file details each change to each file showing line numbers and code before/after. I've found Beyond Compare (<a href="http://www.scootersoftware.com/">http://www.scootersoftware.com/</a>) to be a valuable tool for making line-by-line file changes, or comparing directories.<br /></p>
<p><strong>Update: 2009-09-08 6:47pm</strong> One thing I noticed on the PHP site is that the Windows ISAPI version of PHP is not supported any more. Hopefully the bugs have been addressed in the CGI versions, as previous versions of PHP were crash-prone when using the old CGI version. Supposedly the new FastCGI version is better.</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=75</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=75</guid>
			<pubDate>Wed, 09 Sep 2009 03:47:28 GMT</pubDate>
		</item>
		<item>
			<title>Off To CFUnited!</title>
			<description><![CDATA[<p>I'm pleased to say I'm headed for CFUnited!&nbsp; I'm going to Seattle today to spend the night so I can be at the Airport bright and early for my flight. </p><p>&nbsp;Keep an eye on my this blog as I will post anything  new or cool we hear about at the conference.<br /><br />Also, be sure to follow me  on twitter and.or Facebook. I'll be posting there frequently.<br /><br /><a href="http://twitter.com/LawrenceCramer">http://twitter.com/LawrenceCramer</a><br /><a href="http://www.facebook.com/home.php?ref=logo#/lawrence.cramer?ref=name">http://www.facebook.com/home.php?ref=logo#/lawrence.cramer?ref=name</a><br /></p><p>&nbsp;I hope to see as many of you there as possible, if you are there be sure to attend my session on &quot;Real World eCommerce&quot;&nbsp; at 2:00 on Tuesday&nbsp; <br /></p><p>Cheers!</p><p><br /></p><p>&nbsp;</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=74</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=74</guid>
			<pubDate>Mon, 10 Aug 2009 05:00:00 GMT</pubDate>
		</item>
		<item>
			<title>ColdFusion 9 and CF Builder Public Betas... What they mean to you.</title>
			<description><![CDATA[<p>The new ColdFusion 9 Public Beta gives a clear picture of where Adobe intends to take ColdFusion, not only as an easy-to-learn web development language, but as a key component in an entire development platform!<br />
  <br />
As for CF itself, some very cool new features have been added. Here's a couple articles worth a look-see:</p>
<p><br />
  Some very good <a href="http://labs.adobe.com/technologies/coldfusion9/videos/" target="_blank">videos on Adobe Labs</a><br />
  <a href="http://www.adobe.com/devnet/coldfusion/articles/coldfusion9_whatsnew.html" target="_blank">Ben Forta's Article</a><br />
  <a href="http://www.horwith.com/index.cfm/2009/7/14/CF9-feature-review" target="_blank">Simon Horwith's Blog</a><br />
  <br />
  Finally, a bit more in-depth take a look at <a href="http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSf01dbd23413dda0e-70d18ba71212f29e7cb-8000.html" target="_parent">Adobe's Live Docs</a><br />
  <br />
  One of really interesting aspects of the new betas is CF Builder (formally code named Bolt) For the first time since the Allaire days, pre Macromedia/Adobe ColdFusion will have a dedicated development environment for the hard core coder. This will open up some doors to serious development that were hard to get through using the hodgepodge of Open Source tools or Dreamweaver which is admittedly tilted more toward the visual designer/developer.<br />
  <br />
  So all in all, the next generation of CF is a big leap and there's no doubt that it will have a big impact on the way many of us do things. I would highly recommend all CF developers, or those wanting to learn more about ColdFusion go to <a href="http://labs.adobe.com/technologies/coldfusion9/" target="_blank">Adobe Lab</a>s and download the beta and give it a try!
</p>
<p>You should also give <a href="http://labs.adobe.com/technologies/coldfusionbuilder/" target="_blank">CF Builder</a> a try as well... A word of caution here, CF Builder is built on the Eclipse platform, which means if follows a significantly different workflow that Dreamweaver and there is a fairly significant learning curve involved to get your head around the way &quot;Projects&quot; - This is how CF Builder refers to &quot;sites&quot; as Dreamweaver calls them. Is it worth the effort? This is actually a fairly easy question to answer. If you develop ColdFusion based web sites, but most of your time is spent in Dreamweaver's design view, probably not. It you spend the majority of your time working with ColdFusion in Dreamweaver's code view, the most definitely yes. So depending how you currently work CF Builder may be the greatest thing to happen to the way you work in a long time, or a non issue. It'll be up to each individual to decide.</p>]]></description> 
			<link>http://blog.cartweaver.com/index.cfm?newsid=73</link>
			<guid isPermaLink="true">http://blog.cartweaver.com/index.cfm?newsid=73</guid>
			<pubDate>Tue, 14 Jul 2009 05:00:00 GMT</pubDate>
		</item>
	</channel>
</rss>



