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