* docs: added features and guides overview page * added image * added version 2 * added version 3 * added version 4 * docs: implemented new color scheme * docs: redesigned sidebar (#3193) * docs: redesigned navbar for restructure (#3199) * docs: redesigned footer (#3209) * docs: redesigned cards (#3230) * docs: redesigned admonitions (#3231) * docs: redesign announcement bar (#3236) * docs: redesigned large cards (#3239) * docs: redesigned code blocks (#3253) * docs: redesigned search modal and page (#3264) * docs: redesigned doc footer (#3268) * docs: added new sidebars + refactored css and assets (#3279) * docs: redesigned api reference sidebar * docs: refactored css * docs: added code tabs transition * docs: added new sidebars * removed unused assets * remove unusued assets * Fix deploy errors * fix incorrect link * docs: fixed code responsivity + missing icons (#3283) * docs: changed icons (#3296) * docs: design fixes to the sidebar (#3297) * redesign fixes * docs: small design fixes * docs: several design fixes after restructure (#3299) * docs: bordered icon fixes * docs: desgin fixes * fixes to code blocks and sidebar scroll * design adjustments * docs: restructured homepage (#3305) * docs: restructured homepage * design fixes * fixed core concepts icon * docs: added core concepts page (#3318) * docs: restructured homepage * design fixes * docs: added core concepts page * changed text of different components * docs: added architecture link * added missing prop for user guide * docs: added regions overview page (#3327) * docs: added regions overview * moved region pages to new structure * docs: fixed description of regions architecture page * small changes * small fix * docs: added customers overview page (#3331) * docs: added regions overview * moved region pages to new structure * docs: fixed description of regions architecture page * small changes * small fix * docs: added customers overview page * fix link * resolve link issues * docs: updated regions architecture image * docs: second-iteration fixes (#3347) * docs: redesigned document * design fixes * docs: added products overview page (#3354) * docs: added carts overview page (#3363) * docs: added orders overview (#3364) * docs: added orders overview * added links in overview * docs: added vercel redirects * docs: added soon badge for cards (#3389) * docs: resolved feedback changes + organized troubleshooting pages (#3409) * docs: resolved feedback changes * added extra line * docs: changed icons for restructure (#3421) * docs: added taxes overview page (#3422) * docs: added taxes overview page * docs: fix sidebar label * added link to taxes overview page * fixed link * docs: fixed sidebar scroll (#3429) * docs: added discounts overview (#3432) * docs: added discounts overview * fixed links * docs: added gift cards overview (#3433) * docs: added price lists overview page (#3440) * docs: added price lists overview page * fixed links * docs: added sales channels overview page (#3441) * docs: added sales overview page * fixed links * docs: added users overview (#3443) * docs: fixed sidebar border height (#3444) * docs: fixed sidebar border height * fixed svg markup * docs: added possible solutions to feedback component (#3449) * docs: added several overview pages + restructured files (#3463) * docs: added several overview pages * fixed links * docs: added feature flags + PAK overview pages (#3464) * docs: added feature flags + PAK overview pages * fixed links * fix link * fix link * fixed links colors * docs: added strategies overview page (#3468) * docs: automated upgrade guide (#3470) * docs: automated upgrade guide * fixed vercel redirect * docs: restructured files in docs codebase (#3475) * docs: restructured files * docs: fixed eslint exception * docs: finished restructure loose-ends (#3493) * fixed uses of backend * docs: finished loose ends * eslint fixes * fixed links * merged master * added update instructions for v1.7.12
4.2 KiB
description
| description |
|---|
| Learn about what Customers are in Medusa and how they are implemented. Customers are individuals that make purchases in your store. |
Customers
In this document, you’ll learn about Customers and their relation to other entities in Medusa.
Introduction
Customers are individuals that make purchases in your store. In Medusa, there are two types of customers: registered customers and guests or unregistered customers.
Both registered and unregistered customers can make purchases. However, only registered customers can log into their accounts and manage their details and orders.
An admin user can view and manage their customers, their details, their orders, and what customer group they’re in.
Customer Entity Overview
A customer is stored in the database as a Customer entity. A customer has attributes related to the customer’s details such as first_name, last_name, and phone. However, the only required attribute is email.
has_account Attribute
As mentioned earlier, customers can be either registered or unregistered. The type of customer is identified in the has_account attribute. This is a boolean attribute that indicates whether the customer is registered.
For example, when a guest customer places an order, a new Customer record is created with the email used (if it doesn’t already exist) and the value for has_account is false. When the unregistered customer creates an account using the same email, a new Customer record will be created with the value of has_account set to true.
Email Uniqueness
An email is unique to a type of customer. So, an email can be associated with only one registered customer (where has_account is true), and one unregistered customer (where has_account is false).
In the example mentioned above, after the unregistered customer places an order with an email, then creates an account with the same email, two Customer records are created. Each of these records have different has_account value.
:::info
This architecture allows creating the Claim Order flow, where a registered customer can claim an order they placed as an unregistered customer. You can learn more about it in this documentation.
:::
Relations to Other Entities
CustomerGroup
Customer groups allow dividing customers into groups of similar attributes, then apply special pricing or rules for these customer groups.
:::info
You can learn more about customer groups in this documentation.
:::
A customer can belong to more than one customer group. The relation between the Customer and CustomerGroup entities is available on both entities:
- You can access the customer groups of a customer by expanding the
groupsrelation and accessingcustomer.groups. - You can access the customers in a customer group by expanding the
customersrelation and accessingcustomerGroup.customers.
Orders
Customers can have more than one order. The relation between the Customer and Order entities is available on both entities:
- You can access the orders of a customer by expanding the
ordersrelation and accessingcustomer.orders. - You can access the customer that placed an order by expanding the
customerrelation and accessingorder.customer.
Address
A customer can have a billing address and more than one shipping address. Both billing and shipping addresses are represented by the Address entity.
The relation between the Customer and Address entities is available on both entities:
- You can access the billing address of a customer by expanding the
billing_addressrelation and accessingcustomer.billing_address. You can also access the shipping addresses of a customer by expanding theshipping_addressesrelation and accessingcustomer.shipping_addresses. - Likewise, you can access the customer that an address is associated with by expanding the
customerrelation and accessingaddress.customer.