Skip to content

Checkout form field count vs Baymard checkout research (alias, address2, company/VAT, phone) #96

Description

@boo-code

Summary

The one-page checkout guest form showed 12 visible form fields before the consent checkboxes. Baymard Institute's public checkout research (https://baymard.com/blog/checkout-flow-average-form-fields) reports the industry average at 11.3 fields while "most sites need only 8 form fields in total for a checkout flow", and identifies exactly the optional-field patterns the form used.

Findings and fixes

  1. Alias was the first address field a buyer met. An address-book nickname is an account concept, not a purchase field; a first-time guest has no basis for naming an address. Removed from the checkout form in Reduce the checkout address form to the essential fields #99 (the save paths already default an empty alias; the field stays in the modal and the account address book).
  2. Address Complement (address2) was always visible. Baymard measured 30% of test participants coming to a stop at Address Line 2 and recommends hiding it behind a link. Collapsed behind a native disclosure in Reduce the checkout address form to the essential fields #99 (renders open when required by the address format, filled or invalid).
  3. Company and VAT number were always visible. Collapsed behind one "Add company details" disclosure in Reduce the checkout address form to the essential fields #99, same keep-visible rules.
  4. Phone gave no reason for asking. A translated purpose hint now renders under the field: State what the phone number is used for on the checkout form #100.

With 1-4 the default guest form shows 8 fields, matching the research target while keeping every capability reachable.

Related fixes that came out of the same audit

Out of this module's scope

Baymard's delivery-selector guideline "Use 'Delivery Date' Not 'Shipping Speed'" (https://baymard.com/blog/shipping-speed-vs-delivery-date, 41% of sites fail it) cannot be satisfied by this module: the core Carrier model only carries a free-text delay string, not computed delivery dates. Left here as a Core-level enhancement candidate.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions