I discovered something that may be or may not be a bug. If a registered or admin user is also in the guest role, the system assumes they are a guest and prevents them from checking out. This is odd, since under the same case your allowed to log in without any issues.
The following code in ShoppingCartController.StartCheckout:
if (_workContext.CurrentCustomer.IsGuest()) // Can't proceed if the user is also an admin or registered user
{
if (_orderSettings.AnonymousCheckoutAllowed)
{
return RedirectToRoute("LoginCheckoutAsGuest");
}
else
{
return RedirectToRoute("Login");
}
}
else
{
return RedirectToRoute("Checkout");
}
This piece of code should take into consideration that the admin UI allows you to check off guest, registered and or admin roles for the same user. If you encounter this problem, ensure that the user hasn't been added to the guest role inadvertently.