AmazonFresh on Cart & Checkout

 In addition to leading UX for overall migration, my core focus was the shopping cart and checkout experience. This includes creating a new global shopping cart on Amazon, delivery scheduling & more.

In addition to being the UX lead for the migration project, I designed the shopping cart and checkout experience for AmazonFresh on This includes creating a new dual and global shopping cart on Amazondelivery scheduling, and product availability/conflict handling vis-a-vis search results

I developed the initial concepts and worked with Core Shopping teams to finalize a viable design that could launch on the current platform within a year. (What is currently live on Amazon represents this constraint and is not the end-stage scalable and fully-integrated design.) This involved close work with engineering teams from concept to launch and beyond. 

Why another shopping cart on Amazon?
AmazonFresh and other shopping programs on Amazon have their own minimums and thresholds required for checkout or benefits like free shipping. In the case of AmazonFresh, customers pay a premium free for the service. We determined that given this strong signal of intent, our customers should be able to find and shop AmazonFresh easily from wherever they are on Amazon. Due to the complexity of reengineering the cart and checkout pipeline for their own checkouts, other threshold-based programs like Prime Pantry and Wireless had cobbled together ad-hoc solutions. AmazonFresh's scope and strategic importance to the company represented an opportunity to improve upon the legacy experience for Amazon's most valued customers. 

“Everywhere Cart”

The "Everywhere Cart" or global cart represents a major new design pattern on While it was launched with this specific design to meet the need of AmazonFresh customers, its benefits are many.


For grocery customers
The average grocery cart size is 20-30 items and it becomes challenging to remember what's already in the cart. We knew from years of customer feedback and usability testing that the persistent cart on the AmazonFresh standalone site was critical to their shopping for large quantities of items, including sets of things like "school lunches" or "party supplies" — think grocery lists. They also actively managed their carts throughout the shopping trip, adding/subtracting quantities and removing items. We knew this was a must-have feature to bring to 

Other benefits for Fresh customers:

  • Delivery scheduling allows customers to schedule a time before shopping — it guarantees that the delivery time and method they need are available before spending time shopping.

  • Availability guarantee related to delivery scheduling: All products are not available at all times given the nature of fresh grocery sourcing and inventory, and scheduling a delivery time ensures that you only shop what is available when you need it. 

  • Minimum order size for free delivery: Customers must have $40 in their Fresh carts to get free delivery on their order and messaging this while they shop and build their carts makes sense. 

For general Amazon customers
Everywhere Cart was used by customers in usability testing to comparison shop among similar items, as well to as not lose their place on the site while searching and shopping. The legacy UX required customers to leave a product search or product page to view the contents of their cart, losing their "work" and place in their shopping journey.

Everywhere Cart solved a few different user problems with one solution.

Delivery Scheduling

Delivery scheduling is critical to ensuring product availability and delivery method/time availability.

Here are some entry points to delivery scheduling in the cart and global navigation:

The customer can access delivery slot selection from many points in the shopping experience. After they do so, it is displayed prominently throughout the Fresh store, cart, and checkout:

Conflict Handling: Cart vs. Product Availability vs. Delivery Time 

Product availability on AmazonFresh is dependent on location and delivery time, and delivery scheduling is key to displaying the right products for customers. So how do we avoid potential conflicts in the first place and manage conflicts when they arise? 

1) Set customer expectations correctly. 
2) Minimize potential conflicts. 
3) Give the customer control when conflicts do arise. 

Given that location and delivery time are critical to displaying the right products, why not force customers to select these before spending the time shopping? Because all customers are not the same, and because conditions may change during the course of shopping. Customer testing shows that they are either more: 

  • Time-sensitive: "I need salmon for my dinner tonight." 

  • Product-sensitive: "I need Pike Place Market salmon whenever it’s avaiable." 

So this means that some will lock in their delivery time first, and some will shop first and then schedule delivery for when everything is available. 

Some ways this is handled in the UX: 

  • Prompt, message, and encourage delivery time selection prominently throughout the Fresh store, cart, and other global elements tied to their order. For example: On sign-up for Fresh, the onsite welcome message prompts the user to choose their first delivery time. After their first shopping trip, the messaging is seen in the global nav and cart, but not as actively pushed/prompted.

  • If the customer is not logged into their account, we detect their IP address and general service region. Then we do everything to steer the customer to select their delivery address and, ideally, choose a delivery time. 

  • We display all items in search results, marking only outlier items not available today with their availability, e.g. "Available Tuesday." This is because most orders are placed for same-day delivery, and so we assume "today" as a default to minimize conflict risk. If the customer has a delivery time selected, this message is more prominent (in red) as adding it to cart will trigger a conflict-resolution dialog. 

  • In the event a customer selects or changes location mid-shopping, or adds to cart an item not available for their selected time, we allow them to resolve the conflict at that time, e.g. add item  to cart and clear delivery time, etc.

(In screen titles below, "ASIN" = inventory item.)