Skip to content

Customer and Member

When a shopper at branch GS-KV-01 says “I’m a member”, the cashier looks up a membership card, not a customer account. The two are different records, and the difference decides what you have to create before points can be earned. Nothing more.

The member record

A member is one row in bl_crm_membership_hdr, with extension rows in bl_crm_membership_ext. What the row holds, in the words the Membership Admin form uses:

On the formWhat it is
Card NoThe business key. Every points endpoint takes it (…/membership-points-txn/balance/{card_no}). Generated by the applet’s running number, or taken from the IC / passport or mobile number, depending on Field Settings
Member ID, Referral CodeTwo more identifiers; the referral code is what another member enters to name their referrer
Member Name, Mobile No., Email, IC / Passport, Date of Birth, GenderIdentity as the loyalty programme knows it — independent of any customer record
Member ClassThe one tier the member is in (classes and labels)
LabelsAny number of tags, linked on the Labels tab
Verification StatusUNVERIFIED by default, then VERIFIED, REVIEWED or EXPIRED. POS can be set to let only verified members redeem points
Member Status, custom statusesACTIVE / INACTIVE plus up to two tenant-defined header statuses; labels only
Join / Start / End Date, or LIFETIMEThe membership period. bl_crm_membership_period_line rows record periods; the applet exposes the dates on the Details tab
Customer NameThe optional link to a customer entity (entity_hdr_guid)
Branch, Sales AgentShown when the tenant switches them on

Suspensions (a date range with a reason) and the member’s point transactions, point lots, referrals and MLM links are tabs on the same form.

The link to a customer

A member may point at a customer entity, and three things can make the link:

  1. You pick the customer on the member form, or the backend matches one when a card is created (MemberCardService resolves entity_hdr_guid by matching at creation).
  2. The ETL endpoint creates both at once: POST or PUT …/membership-cards/with-customer/etl-ep writes the customer entity and the card together — the path an external system or a migration uses.
  3. A processor back-fills it: ENTITY_LINKING_FOR_MEMBER_PROCESSOR creates a new entity and binds it to every member whose entity GUID is null.

Until one of those happens the member has no customer, and that is a valid state: a walk-in at the counter can be enrolled as a member on the spot (POS General creates the card with the default class and end date from its settings) and earn points on that bill without ever becoming a Customer Maintenance record. The customer record is what the finance side reads — credit terms, credit limit, addresses, tax identity, statement of account. The card is what the loyalty side reads.

Seen from the customer’s side, Customer Maintenance has a Membership tab (membership plan and points, with the points field permission-gated) and a Payment Config tab that can allow membership point currency as one of the customer’s settlement methods.

Who else creates members

  • The e-commerce storefront. CP Commerce Admin’s post-registration configuration can create membership and customer or create membership without customer the moment a shopper registers, with the website’s default membership class. That is how GadgetSphere Online’s sign-ups arrive as members of the same programme the branches use.
  • The contact centre. Contact Merging in the Unified Contact Center attaches an inbound contact to a membership card, so an agent chatting with a member sees the card’s history.
  • A CSV upload in Membership Admin (Upload Membership), where the class and labels must already exist by code.
  • The API — see API reference.

One card, one member

The tables model one member per card. The old version of this page described a customer holding several memberships in several “programs” with separate balances; nothing in the member table, the card controller or the points tables carries a program identifier on the card, and there is no endpoint that lists a customer’s memberships. What does vary per member is the point currency: one card holds a running balance and a set of lots in each currency it has earned in, which is where the “several balances” idea comes from.

Related