{"id":150,"date":"2024-07-17T04:46:51","date_gmt":"2024-07-17T04:46:51","guid":{"rendered":"http:\/\/katelane.com\/ux\/?page_id=150"},"modified":"2024-07-17T05:32:34","modified_gmt":"2024-07-17T05:32:34","slug":"case-study-cart-checkout","status":"publish","type":"page","link":"http:\/\/katelane.com\/ux\/case-study-cart-checkout\/","title":{"rendered":"Case Study: Cart\/Checkout"},"content":{"rendered":"\n<p><strong>Project:<\/strong> SquadLocker Cart\/Checkout<br><strong>Summary:<\/strong> When I started, the SquadLocker app was forcing users into a checkout flow that looked like a totally different site. It didn\u2019t have a cart. It had no transparency about subtotals\/fees\/tax\/charges, making it impossible for the user to figure out how exactly things added up. There weren\u2019t basic standards in place, such as a review step or onsite confirmation post-order. Users weren\u2019t even being asked for things like their billing address, which caused order problems right and left. The interface was buggy and often unresponsive, resulting in users who were not sure whether their order had been placed at all or what was going wrong. It was, in short, a disaster. So I cleaned it up. <br><strong>My Responsibilities:<\/strong> UX Evaluation, Mockups, UX QA during the build phase<br><strong>Worked With:<\/strong> Product Manager, Dev team, QA<\/p>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\"><\/div>\n\n\n\n<p><strong>1. Cart Page<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>implemented a separate cart page that served as a gateway to the checkout flow<\/li>\n\n\n\n<li>gave users an overview of their items and totals (this was, astoundingly, something that had been missing from the site \u2014 users were presented with a total but it was not broken down with any real transparency)<\/li>\n\n\n\n<li>language clarified: previously, a user who had added multiple colors of the same shirt would be told they had one item in their cart. Item definition was based on product itself, not on the number of product instances. I added the QTY [x] @ [price] = [product subtotal] line to help ease user confusion about how things added up, and we had to come to a company consensus about product vs. item (the warehouse, the product catalog and accounting all used slightly different systems, contributing to the muddle)<\/li>\n\n\n\n<li>moved coupon handling to the cart so users could have an accurate total before they entered the checkout flow. We also had lots of different discount combinations to consider \u2014 for example, shown below is an order that both qualifies for free shipping and is using a 10% off coupon<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"548\" height=\"1024\" src=\"http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/1-cart_coupon_multi-548x1024.png\" alt=\"\" class=\"has-border-color has-contrast-3-border-color wp-image-152\" style=\"border-width:1px\" srcset=\"http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/1-cart_coupon_multi-548x1024.png 548w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/1-cart_coupon_multi-161x300.png 161w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/1-cart_coupon_multi-768x1435.png 768w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/1-cart_coupon_multi.png 781w\" sizes=\"auto, (max-width: 548px) 100vw, 548px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\"><\/div>\n\n\n\n<p><strong>2. Guest Checkout<\/strong><br><br>We added a guest checkout option for users who didn&#8217;t want to create an account. Previously, we&#8217;d been forcing account creation and experiencing a high rate of dropoff and checkout abandonment.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"775\" src=\"http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/2-cart_new_guest-1024x775.png\" alt=\"\" class=\"has-border-color has-contrast-3-border-color wp-image-153\" style=\"border-width:1px\" srcset=\"http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/2-cart_new_guest-1024x775.png 1024w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/2-cart_new_guest-300x227.png 300w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/2-cart_new_guest-768x581.png 768w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/2-cart_new_guest-1536x1163.png 1536w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/2-cart_new_guest-2048x1550.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\"><\/div>\n\n\n\n<p><strong>3. General Streamlining and Evolution<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>improved the visuals so that the user was unaware that they&#8217;d entered a separate part of the site and were now operating within a streamlined flow that minimized distraction (minimal headers and footers in the checkout funnel)<\/li>\n\n\n\n<li>updated and improved the forms<\/li>\n\n\n\n<li>added more options to shipping (smarter dropdowns, PO Box, APO and Canada form shifts)<\/li>\n\n\n\n<li>implemented a stepped flow in the mobile cart so that users weren&#8217;t asked to do several things at once on a small screen \u2014 unlike on the desktop, mobile flow presented shipping and payment on separate screens<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"925\" src=\"http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/3-check_new-1024x925.png\" alt=\"\" class=\"has-border-color has-contrast-3-border-color wp-image-154\" style=\"border-width:1px\" srcset=\"http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/3-check_new-1024x925.png 1024w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/3-check_new-300x271.png 300w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/3-check_new-768x694.png 768w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/3-check_new-1536x1387.png 1536w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/3-check_new-2048x1850.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\"><\/div>\n\n\n\n<p><strong>4. Address Verification<\/strong><br><br>We added this step (which was missing from the site entirely before).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"924\" src=\"http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/4-check_address-1024x924.png\" alt=\"\" class=\"has-border-color has-contrast-3-border-color wp-image-155\" style=\"border-width:1px\" srcset=\"http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/4-check_address-1024x924.png 1024w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/4-check_address-300x271.png 300w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/4-check_address-768x693.png 768w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/4-check_address-1536x1386.png 1536w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/4-check_address-2048x1848.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\"><\/div>\n\n\n\n<p><strong>5. Error Handling<\/strong><br><br>We examined error handling and messaging for things like:<br>\u2022 fields required<br>\u2022 shipping issues<br>\u2022 billing issues like incorrect cards and invalid coupons<br><br>Previously, the site would rarely communicate errors, often timing out or becoming completely unresponsive, so this one was a particular triumph for me as far as improved user experience!<\/p>\n\n\n\n<figure class=\"wp-block-image size-large has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1020\" src=\"http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/5-check_carderrors-1024x1020.png\" alt=\"\" class=\"has-border-color has-contrast-3-border-color wp-image-156\" style=\"border-width:1px\" srcset=\"http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/5-check_carderrors-1024x1020.png 1024w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/5-check_carderrors-300x300.png 300w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/5-check_carderrors-150x150.png 150w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/5-check_carderrors-768x765.png 768w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/5-check_carderrors-1536x1529.png 1536w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/5-check_carderrors.png 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\"><\/div>\n\n\n\n<p><strong>6. Improved Post-Order Experience<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>implemented appropriate confirmations \u2014 previously users were getting an email but no confirmation within the app<\/li>\n\n\n\n<li>provided users with an order summary, including product thumbnails and subtotals<\/li>\n\n\n\n<li>added an option for authenticated users to look up their order history<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"989\" height=\"1024\" src=\"http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/7-check_conf_auth-989x1024.png\" alt=\"\" class=\"has-border-color has-contrast-3-border-color wp-image-158\" style=\"border-width:1px\" srcset=\"http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/7-check_conf_auth-989x1024.png 989w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/7-check_conf_auth-290x300.png 290w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/7-check_conf_auth-768x795.png 768w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/7-check_conf_auth-1484x1536.png 1484w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/7-check_conf_auth-1979x2048.png 1979w\" sizes=\"auto, (max-width: 989px) 100vw, 989px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\"><\/div>\n\n\n\n<p><strong>7. Account Creation<\/strong><br><br>Non-authenticated users were invited to create an account. We found that users were much more likely to do this after placing an order than they were at the beginning of the checkout flow.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large has-custom-border\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"913\" src=\"http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/8-check_conf_unauth-1024x913.png\" alt=\"\" class=\"has-border-color has-contrast-3-border-color wp-image-159\" style=\"border-width:1px\" srcset=\"http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/8-check_conf_unauth-1024x913.png 1024w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/8-check_conf_unauth-300x268.png 300w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/8-check_conf_unauth-768x685.png 768w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/8-check_conf_unauth-1536x1370.png 1536w, http:\/\/katelane.com\/ux\/wp-content\/uploads\/2024\/07\/8-check_conf_unauth-2048x1827.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\"><\/div>\n\n\n\n<p><strong>In summary<\/strong>, the creation of the cart was a significant improvement to the checkout flow and vastly improved both the user experience and several flows under the hood. As users, we take a lot of e-commerce site behaviors for granted, so it was a relief to implement what has become commonplace functionality within a long-neglected product.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Project: SquadLocker Cart\/CheckoutSummary: When I started, the SquadLocker app was forcing users into a checkout flow that looked like a totally different site. It didn\u2019t have a cart. It had no transparency about subtotals\/fees\/tax\/charges, making it impossible for the user to figure out how exactly things added up. There weren\u2019t basic standards in place, such [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-150","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"http:\/\/katelane.com\/ux\/wp-json\/wp\/v2\/pages\/150","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/katelane.com\/ux\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/katelane.com\/ux\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/katelane.com\/ux\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/katelane.com\/ux\/wp-json\/wp\/v2\/comments?post=150"}],"version-history":[{"count":6,"href":"http:\/\/katelane.com\/ux\/wp-json\/wp\/v2\/pages\/150\/revisions"}],"predecessor-version":[{"id":172,"href":"http:\/\/katelane.com\/ux\/wp-json\/wp\/v2\/pages\/150\/revisions\/172"}],"wp:attachment":[{"href":"http:\/\/katelane.com\/ux\/wp-json\/wp\/v2\/media?parent=150"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}