Uploaded image for project: 'PUBLIC - Liferay Commerce'
  1. PUBLIC - Liferay Commerce
  2. COMMERCE-2402

As a buyer, I want to check out orders without having to register for an account

    Details

    • Type: Story
    • Status: Closed
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.1.1
    • Component/s: Shopping Experience
    • Labels:
      None

      Description

      Definition of Done

      1. A store administrator can define on a channel level whether or not they want to offer guest checkout in the channel
        This configuration is in the Orders section and is a toggle between Enable and Disable
      2. When a guest user tries to check out an order, the site provides them with the option to log in/register or check out as a guest
        This is encapsulated in a widget which can be placed on a page
        1. When a user without an account clicks a checkout button, they are redirected to this "authentication" page
        2. When a user logged in with an account clicks a checkout button, they are auto-redirected from the "authentication" page to the checkout page
      3. There is a health check on the channel which will auto-generate this authentication page for admins, creating the page layout, web content and placing widgets on the page.
      4. The headline, copy and button name are all stored in the display context and can be customized with an ADT
      5. If the user choose guest checkout, they also need to enter their email address during the check out process in the shipping or billing step (shipping, unless the shipping step is hidden because there are no shippable items).
      6. When the user submits the shipping or billing information step, a Commerce Account with the Guest Account Type is created
      7. When the user completes the checkout process and places the order, the order is associated with their Account
      8. The user can create an account using the email address they used to place the order and their Guest Account will be converted into a Personal account
      9. Admins can configure a cleanup job which will clean up Guest Account Types with no associated placed orders after having existed a specified number of days (nice to have)

      Technical Assumptions

      1. We should not recreate the log in and registration portlet. We should re-use the existing Portal portlet.
      2. We should not create more than one extra check out step
      3. We should use check out steps to cover this functionality, not a new widget

      Mocks

      See COMMERCE-2847 for mocks.

      Open Questions

      What happens when a person tries to checkout as a guest using an email address that matches the email of an existing user?
      We don't like their existing account and the guest order. Guest order will remain guest.

      Test Cases

      1. Create a cart as a guest, log in to an existing account, guest cart gets transferred
      2. Create a cart as a guest, create a new account, guest cart gets transferred
      3. Create a cart as a guest, try to check out, log in to an existing account, check out
      4. Create a cart as a guest, try to check out, create a new account, check out
      5. Create a cart as a guest, try to check out, choose to check out as guest
      6. View open order created by guest in the control panel
      7. View placed order created by guest in the control panel
      8. Guest order placed, receive email notification triggered by order placed

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              lorenzo.lapescara Lorenzo La Pescara
              Reporter:
              corbin.murakami Corbin Murakami
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Dates

                Due:
                Created:
                Updated:
                Resolved:

                  Packages

                  Version Package
                  2.1.1