Checkout¶
Decisions behind the unified checkout's sign-in prompt, its list of places to collect from, and the
header around it. The checkout's look comes from fragment/checkoutStyles.html (the nc- classes on
the --nbc-* tokens), so every Nova-family theme re-skins it.
A customer we recognise¶
A returning customer can be known (from a cookie) without being signed in. The old box read "Welcome back, Chris Kellet! Sign In", with Sign In as a bold link beside the greeting, which looked like a signed-in state rather than an offer.
What shipped (extensions/account/authentication.html, compact mode, which is the checkout's):
- The greeting uses the first name ("Welcome back, Chris").
AuthenticationExtensionworks it out (greetingName) and falls back to the full name. - One line says they aren't signed in and what signing in does: "You're not signed in. Sign in and we'll fill in your details and saved addresses." The benefit is the reason to tap.
- Sign in is a button (
ui/button,ink: a strong action that isn't the purchase, which keepsbuyfor Pay). It goes to/loginand comes back to the checkout. - "Not Chris?" (
ui/button,text) forgets them, a sign-out, so someone else can check out as a guest. - Both actions are 44px tall on phones, and the button takes the full row there.
A guest gets the existing "Returning customer? Sign in for faster checkout" reminder, which opens in place.
Many places to collect from¶
More than four collection options (UnifiedCheckoutExtension.STORE_PICKER_THRESHOLD) fold into one
Collect from a store choice that opens a search box and a list. This now applies to any list of
collection points, not only Enterprise store collection: Clatter's ten kitchens filled a phone
screen four times over. Rows in the picker show the name, address and ready time; the collection
instructions appear only for the chosen one, so the list stays short. See
Click and collect.
No header switch in the checkout¶
Bistro's header strip carries a Collection / Delivery switch for the menu. In the checkout the
delivery options make that choice, so two controls for one decision disagreed (the header said
Delivery while the order said Collection, on the confirmation page too). OrderingStatusInterceptor
sets orderingInCheckout on /checkout, /p/checkout, /buy and /o pages, and the strip keeps
its open / closed line but drops the switch there.