Skip to content

loyalty ​

Member points

Overview ​

k.commerce.loyalty provides member points related operations, including point acquisition, redemption, membership level management, etc.

member creation

Members need to be created manually in the Kooboo backend: E-commerce → Member (default in hidden directory) → Create member

info() ​

Get the customer's membership points information.

ts
k.api.get(() => {
    const customer = k.commerce.customer.getByEmail('test@example.com')
    return k.commerce.loyalty.info(customer.id)
})

parameter:

ParameterTypeRequiredDescription
customerIdstringyesCustomer ID

Return: LoyaltyInfo

changeMembership() ​

Change membership level.

ts
k.api.post(() => {
    const customer = k.commerce.customer.getByEmail('test@example.com')
    const memberships = k.commerce.membership.list()
    if (memberships && memberships.length > 0) {
        k.commerce.loyalty.changeMembership(customer.id, memberships[0].id)
    }
    return 'change success'
})

parameter:

ParameterTypeRequiredDescription
customerIdstringyesCustomer ID
membershipIdstringyesMember ID

Return: void

earnPoints() ​

Earn points.

ts
k.api.post(() => {
    const customer = k.commerce.customer.getByEmail('test@example.com')
    k.commerce.loyalty.earnPoints(customer.id, 100, 'Purchase reward')
    return 'earn success'
})

parameter:

ParameterTypeRequiredDescription
customerIdstringyesCustomer ID
pointsnumberyesNumber of points earned
descriptionstringnoPoints description

Return: void

redeemPoints() ​

Spend points.

ts
k.api.post(() => {
    const customer = k.commerce.customer.getByEmail('test@example.com')
    k.commerce.loyalty.redeemPoints(customer.id, 50, 'Points redemption')
    return 'redeem success'
})

parameter:

ParameterTypeRequiredDescription
customerIdstringyesCustomer ID
pointsnumberyesAmount of points spent
descriptionstringnoPoints description

Return: void

points() ​

Get the customer's points record.

ts
k.api.get(() => {
    const customer = k.commerce.customer.getByEmail('test@example.com')
    return k.commerce.loyalty.points(customer.id, {
        pageIndex: 1,
        pageSize: 20
    })
})

parameter:

ParameterTypeRequiredDescription
customerIdstringyesCustomer ID
queryobjectnoquery parameters
query.pageIndexnumbernoPage number, default 1
query.pageSizenumbernoNumber of items per page, default 10

return:

ts
{
    list: CustomerPointModel[];
    count: number;
    pageIndex: number;
    pageSize: number;
}

memberships() ​

Get a list of member information.

Parameters: none.

ts
k.api.get(() => {
    const memberships = k.commerce.loyalty.memberships()
    return { count: memberships.length, items: memberships }
})

Return: Membership[]

renewMembership() ​

Renew membership.

ts
k.api.post(() => {
    const customer = k.commerce.customer.getByEmail('test@example.com')
    k.commerce.loyalty.renewMembership(customer.id)
    return 'renew success'
})

parameter:

ParameterTypeRequiredDescription
customerIdstringyesCustomer ID

Return: void

structure ​

LoyaltyInfo Property ​

PropertyDescriptionType
PointsMember pointsnumber
MembershipStatusMember statusMembershipStatus

MembershipStatus Property ​

PropertyDescriptionType
MembershipMember informationMembership
StartedAtMembership start timestring
EndAtMembership end timestring
ActiveIs the member valid?boolean

Membership attribute ​

PropertyDescriptionType
IDMember IDstring
nameMember namestring
descriptionMember descriptionstring
priceMember pricenumber
durationMembership lengthnumber
durationUnitMember time unit"Year" | "Month" | "Day" | "Week"
priorityMember prioritynumber
conditionUpgrade conditionsCondition
allowAutoUpgradeWhether to allow automatic upgradesboolean
allowPurchaseWhether to allow purchaseboolean
customDatacustom data{key: value}[] | null
createdAtcreation timestring
updatedAtUpdate timestring

Condition property ​

PropertyDescriptionType
isAnyAny condition can be metboolean
itemsList of conditional itemsConditionItem

ConditionItem Property ​

PropertyDescriptionType
optionCondition optionsstring
Methodconditional methodstring
valuecondition valuestring

CustomerPointModel Property ​

PropertyDescriptionType
customerIdCustomer IDstring
pointsintegralnumber
createdAtcreation timestring
Typetypestring
descriptionDescriptionstring
keykeystring
disabledWhether to disableboolean