William Clifford
Introduction
Professional Experience
Technical Expertise
Resume
 
Project Date: Multiple Releases from 2004 to 2007

wine.com : Checkout and Transfer Cart

wine.com
Project Goal
  • To simplify the checkout process and reduce customer dropout.
  • Clean up the code base and encorporate better error handling.
Project Considerations
The table below outlines all of the various routes a customer can pursue when transfering their cart to a new state or completing the checkout process.
Condition Options
State changed from within site to state that can sell wine. Directed back to original shopping page.
State changed from within site to a state that CANNOT sell wine. Directed back to original shopping page, the site handles all wine requests so no additional code is necessary.
State changed during checkout process to a state that can sell wine. In this case, there are still cart items available for the new state. The customer is presented with the following page options:
  • Continue checkout: take customer to the order review page.
  • Continue shopping: return customer to the Gift Center.
State changed during checkout process to a state that CANNOT sell wine. In this case, there are no items available for selected state. Directed back to the Gift Center landing page.
State changed during checkout process to a state that CANNOT sell wine. In this case, there are still cart items available for selected state. The user is presented with the following page options:
  • Continue checkout: take customer to the order review page.
  • Go to Gift Center Accessories.
  • Go to Gift Center Gourmet Gift Baskets.
  • Go to Gift Center Gift Certificates.
State changed during checkout process to a state that CANNOT sell wine. In this case, there are no items available for selected state. The user is presented with the following page options:
  • Go to Gift Center Accessories.
  • Go to Gift Center Gourmet Gift Baskets.
  • Go to Gift Center Gift Certificates.
Project Implementation
  • Instead of bouncing across several pages to complete the transfer process, I kept all transfer code on one page (Diagram 1 outlines how the transfer cart code executes). Isolating the transfer code to one page helped reduce complexity of the process, as well as provides better error handling and performance.
  • Original code base was extremely error prone. Rather than try to use the existing code base, I developed a new page, using some of the code that existed. This made it much easier to test my process and compare it with the existing process.
  • Lastly, to provide backward compatibility, I updated the all transfer cart prompt pages to redirect all requests to the new transfer cart page. This way, all transfer cart requests are handled appropriately.
  • The State Change Diagram (see Diagram 2) outlines the transfer cart process when a user changes their shipping state from anywhere within the site. In this case, we know where they made the transfer request, so we do not need to present the user with navigation options, we simply update their cart and send them back to the page that they where on. If that page is not available for their desired state, the site will react accordingly. Since we do not know the specific address they are shipping to, we might need to prompt the user for a zip code. If this happens, the user is taken to a prompt where they can enter a zip code.
  • The Checkout Diagram (see Diagram 3). outlines the transfer cart process when it is initiated from the checkout process. For the most part, this process is the same as the process described above, the main difference is that we cannot direct the user back to the checkout process if all items are removed from their cart. Instead, we ask the user where they would like to go within the site.