Litestore · Operator guide
Customers

Customers

See who buys from you, what they have spent, and which lifecycle stage their orders put them in.

Litestore keeps a record for every person who buys from you. You use it to look up someone's orders, addresses and spend, and to target email at people based on what they actually bought.

Customer records, addresses, order history, wishlists and lifetime spend are all stored in your own database.

A customer is a business identity. The record exists whether or not the person ever signs in.

Keep this distinction in mind: a customer is not an account. Someone who has bought from you twice as a guest and never made an account is still a customer. They have a record, an order history and a lifetime spend.

Litestore stores customer data in four records:

Customer
CustomerAddress
Wishlist
CustomerInvitation
AB
Ava BrooksCustomer since March · Portland
Repeat
$1,284Lifetime spend
9Orders
3Reviews
MarAprMayJunJulAugSepOct
new
registered
purchased
repeat
A customer record shows the person's orders, addresses, spend and stage in one place.

One customer per email address

A database index makes sure each email address belongs to only one customer, and it ignores upper and lower case.

This rule stops one person from turning into several customers in your store.

Are Jane@example.com and jane@example.com the same customer?

Yes. The database ignores case when it checks the address, so the two can't exist as separate records.

Without this rule you get a familiar mess. One person ends up with three records and their spend is split across all of them. Their order history looks thin, and their lifecycle stage says "new" even though they are on their fifth purchase.

The database enforces the rule, not the screen that created the record. That means it applies to every way a customer can be created: checkout, invitation, sign-in and import.

Guest checkout still creates a customer

When someone checks out as a guest, Litestore still creates a customer record for them.

The first time that person signs in with the same email, Litestore links their login account to that record.

Nothing is lost in between. The guest orders were attached to a real customer record from the start. When the person signs in later, their account joins a history that already exists instead of starting a new one.

Signing in

Customers and staff use the same login page. Both get an emailed sign-in link.

Litestore doesn't use email-and-password sign-in. There is:

  • No signup form
  • No password field
  • No reset flow

If you configure Google sign-in, customers can use it as a second option.

The role on the account is what separates staff from customers. They don't use different logins.

This removes a whole category of support work and a whole category of risk. Litestore never stores passwords, so nobody can leak them, reuse them, or get one reset by talking their way past your support team.

It also means "I can't log in" usually has one of two causes: the link did not arrive, or it went to a different address.

Invitations

You can invite someone by email. They then become an invited customer.

When they sign in with that email, Litestore accepts the invitation. They don't need to click anything else, because the sign-in link already proves they own the address.

A person can only have one pending invitation at a time. If you invite someone again, Litestore doesn't leave several live invitations behind.

What the customer sees

Signed-in customers get their own dashboard. It has pages for:

  • Their overview
  • Their orders
  • Their discounts
  • Their reviews
  • Their settings

Customers edit their addresses under settings. The wishlist has its own page.

Customers request returns and refunds from the order itself, not from a separate screen. The request stays attached to the order it is about, and the customer is looking at that order when they decide to send it back.

Lifetime spend

Litestore adds to a customer's spend and order count when an order is paid. It takes them back off when an order is cancelled.

The reversal on cancellation is the important part. If the figure only ever went up, it would count attempts rather than spend, and it would overstate every customer who ever cancelled.

Litestore also runs a standing alarm. It lists any customer whose stored totals don't match what their paid orders actually add up to.

So Litestore doesn't simply trust the stored figure. It checks the figure against the orders and shows you any mismatch to act on.

Lifecycle stages

Each customer is at exactly one stage:

new
invited
registered
purchased
repeat
restricted
banned

Litestore works out the stage from the customer's order count, their account state and any live invitation.

You don't apply the stage by hand like a tag. Nobody has to remember to move someone from purchased to repeat. Nobody can mark a customer as repeat by mistake after a single purchase.

Email broadcasts target these stages, which is why you can trust them. A campaign aimed at repeat customers reaches the people whose order history shows they are repeat customers.

Litestore leaves three groups out of broadcasts:

  • Restricted customers
  • Banned customers
  • Unsubscribed customers

The account score

The customer page shows three predictions:

  • Churn risk
  • Likelihood to buy again
  • Predicted lifetime value

Litestore calculates them from how often that customer orders, each time you open the page.

Litestore doesn't store the score, so it is never out of date. No nightly job can fall behind, and no cached score describes the customer as they were last month.

You can't edit the score. It is a reading of the order history, not a field you set.

How a customer record builds up

  1. Someone checks out, with or without an account. Litestore creates a customer record or matches an existing one by email.
  2. Orders add to the record. It collects orders, addresses and lifetime spend. Litestore works out the lifecycle stage again whenever an order is paid, cancelled or refunded.
  3. The customer serves themselves from their dashboard, while you segment email by stages that came from real orders.

Where to look

Open the customer record for anything about the person. It shows their history, addresses, spend, score and conversations with you.

Open the order for anything about a single purchase, including any returns and refunds on it.

Use lifecycle stages instead of manual tags when you segment email, because Litestore derives the stages from what people actually did.

Treat the drift alarm as a sign that a stored total needs investigating. Don't dismiss it as noise.

The idea behind all of this is simple:

The customer is the identity. Signing in is only how a person proves they are that customer.

On this page