What authentication do you use in your app? Google Accounts API / Google Apps Domain? Custom authentication (e.g. webapp2)?
Is it intentional, that you mix authentication and roles into the same "person data"? If your app is more than rudimentary, I suggest to separate both concerns. Especially if it comes to authentication and user-related or other sensitive data, you don't want to replicate and maintain the models and code all over the place. In an ancient map, this territory would be named "Dragons Here" ;-)
What is the nature of the relationship between admins and customers? Is admin a key-account manager of these customers? Can one customer have more than one admin assigned? Or do you actually want to implement a multi-tenancy system with strictly separated customer data? In that case, namespaces could be a better approach.
Although, there are plenty of questions remaining, here a rather generic suggestion for your models:
User (for signup, login, password forgotten etc.)
- id/name (e.g. from Google, or your own)
- name
- email
- password (hash it or eternal hell awaits - better use Users API, if possible)
Admin
- id/name (same as in User?)
- phone
- address
Customer
- id/name (same as in User?)
- phone
- billing address
- invoice address
- admin: key (repeated?)
Basket, Purchase, Invoice,...
- parent : customer key
- id/name
- items
- date
- status etc...
User, Admin, and Customer would be with-out parents, that is, each forms its own entity-group. You would get strongly consistent views per customer with all their baskets, purchases, invoices etc. (but not a strongly consistent view across all customers of an admin).
If you want to prevent that a user can have more than one admin role or more than one customer role, you could assign the user ID/name to the associated admin or customer role. For example: Key(User, 123) -> Key(Customer, 123).
It would also help to consider your most frequent use-cases, i.e. which request handlers will be used most of the time and are most important (e.g. little latency for customers). Then evaluate what kind of datastore operations these request handler need. What information is read or queried and is eventually consistency ok or is strong consistency required? What information is written to the datastore and which of them must be inside transactions? Also how often will you need to write into the same entity groups? Answering these questions will help to decide how to model your entity groups, how granular or big your entity kinds are, which properties to index, or where you need a composite index.