客户查询条件指南
客户细分指的是在 SHOPLINE Admin 筛选出的满足指定条件客户的分组,客户细分条件即这些条件的集合。例如:商家可以将所有订阅电子邮件营销的客户保存为一个客户细分。
你可以使用 Admin GraphQL API 中的 segmentCreate API 创建客户细分,本文主要介绍客户细分条件的组成以及如何创建 segmentCreate API 中的 query 参数。
客户细分条件组成
客户细分条件由多个条件组组成,条件组之间可以是且、或、除关系。例如,邮箱订阅状态等于已订阅 且 客户状态等于已注册 是一个条件组。
每个条件组由多个条件或条件组组成,条件之间可以是且、或关系。例如,邮箱订阅状态等于已订阅 是一个条件。

条件
SHOPLINE Admin 提供了丰富的条件供商家创建客户细分。

条件组
条件组由多个条件或条件组组成。下图中的 1、2、3 都是条件组。

组合条件
组合条件是包含固定条件和条件关系的条件组。
例如下图中的 购买过指定商品 条件,它的含义是在指定时间段内购买过指定商品的客户,它由 购买过指定商品 和 下单时间 两个条件组成,这两个条件之间是且关系,这种条件我们称为组合条件。
在 组合条件字段详细说明 里列举了所有的组合条件。组合条件的组成规则是固定的,不能自定义组合。

创建客户细分条件
你可以使用 Admin GraphQL API 中的 segmentCreate API 创建客户细分,该 API 中 query 参数可以通过以下方式创建。
条件
数据结构
通过以下 JSON 对象可以创建一个 客户状态 等于 已注册 条件。
{
"type": 0,
"metafield": false,
"mfType": null,
"key": "status",
"value": [
3
],
"operator": "IN",
"extInfo": "{\"operatorType\":\"EQ\",\"componentType\":\"ENUM\"}",
}

字段说明
| 字段 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| type | Number | 是 | 固定为 0,表示这是一个条件 |
| metafield | Boolean | 否 | 是否为 元字段 条件,true 表示是元字段条件 |
| mfType | EnumMFType | 否 | 元字段类型,metafield 为 true 时必填 |
| key | String | 是 | 条件唯一标识,可参考 条件字段详细说明 |
| value | Array | 是 | 条件值,可参考 条件字段详细说明 |
| operator | EnumOperator | 是 | 条件查询时的操作符 |
| extInfo | ExtInfo | 是 | 用于控制在 SHOPLINE Admin 页面上展示客户细分的交互 |
extInfo
extInfo 是一个 JSON 字符串,他的作用是让 SHOPLINE Admin 页面根据不同的条件类型展示不同的交互。
例如:邮箱订阅状态 和 上次购买时间 将展示不同的交互效果:
{
"key": "emailSubscribeStatus",
"type": 0,
"operator": "IN",
"value": [
1,
2
],
"extInfo": "{\"operatorType\":\"EQ\",\"componentType\":\"ENUM\"}"
}

{
"key": "lastOrderTime",
"type": 0,
"operator": "BETWEEN",
"value": [
1
],
"extInfo": "{\"componentType\":\"DATE\",\"dateType\":\"LAST_7_DAY\"}"
}

每个条件详细的 extInfo 取值可参考 条件字段详细说明。
EnumOperator
每个条件可选的 operator 值可参考 条件字段详细说明。
EnumMFType
| value | 说明 |
|---|---|
| date | 日期&单值 |
| date_time | 时间&单值 |
| number_integer | 整数&单值 |
| number_decimal | 小数&单值 |
| single_line_text_field | 单行文本&单值 |
| multi_line_text_field | 多行文本 |
| color | 颜色&单值 |
| boolean | 布尔值 |
| list.date | 日期&多值 |
| list.date_time | 时间&多值 |
| list.number_integer | 整数&多值 |
| list.number_decimal | 小数&多值 |
| list.single_line_text_field | 单行文本&多值 |
| list.color | 颜色&多值 |
条件组
数据结构
通过以下 JSON 对象可以创建一个条件组。
{
"type": 1,
"blockType": 0,
"relation": "and",
"children": [
{
"type": 0,
"blockType": 0,
"key": "emailDomain",
"value": [
"@gmail.com"
],
"operator": "IN",
"extInfo": "{\"operatorType\":\"EQ\",\"componentType\":\"LIST_PAGE\",\"listSource\":\"emailDomain\",\"label\":[\"@gmail.com\"]}"
},
{
"type": 0,
"blockType": 0,
"key": "language",
"value": [
"en"
],
"operator": "IN",
"extInfo": "{\"operatorType\":\"EQ\",\"componentType\":\"LIST\",\"listSource\":\"language\",\"label\":[\"English\"]}"
}
]
}

字段说明
| 字段 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| type | Number | 是 | 固定为 1,表示这是一个条件组 |
| blockType | Number | 是 | 需要展示为 组合条件 时传 1,否则传 0 |
| key | String | 否 | blockType 为 1 时必填,取值请参考 组合条件 |
| relation | String | 是 | children 之间的逻辑关系,可选 and 或 or。and 表示 children 之间是且关系,or 表示 children 之间是或关系 |
| children | Array | 是 | 条件或条件组数据集合 |
条件组合逻辑
客户细分条件由满足的条件和不满足的条件两部分组成。
满足的条件
满足的条件由多个条件组组成。对应下图中 蓝框部分,在 query 参数中对应 conditions 字段。

示例:
{
"conditions": {
"type": 1,
"relation": "and",
"blockType": 0,
"children": [
{
"type": 1,
"blockType": 0,
"relation": "and",
"children": [
{
"type": 0,
"blockType": 0,
"key": "emailDomain",
"value": [
"@gmail.com"
],
"operator": "IN",
"extInfo": "{\"operatorType\":\"EQ\",\"componentType\":\"LIST_PAGE\",\"listSource\":\"emailDomain\",\"label\":[\"@gmail.com\"]}",
},
{
"type": 0,
"blockType": 0,
"key": "language",
"value": [
"en"
],
"operator": "IN",
"extInfo": "{\"operatorType\":\"EQ\",\"componentType\":\"LIST\",\"listSource\":\"language\",\"label\":[\"English\"]}",
}
]
},
{
"type": 1,
"blockType": 0,
"relation": "and",
"children": [
{
"type": 0,
"blockType": 0,
"key": "userSource",
"value": [
"1",
"2"
],
"operator": "IN",
"extInfo": "{\"operatorType\":\"EQ\",\"componentType\":\"ENUM\"}",
},
{
"type": 0,
"blockType": 0,
"key": "status",
"value": [
3
],
"operator": "IN",
"extInfo": "{\"operatorType\":\"EQ\",\"componentType\":\"ENUM\"}",
}
]
}
]
}
}
不满足的条件
不满足的条件也是一个条件组,但它内部只能添加一个条件组。对应下图中蓝框部分,在 query 参数中对应 not 字段。

示例:
{
"not": {
"type": 1,
"relation": "and",
"blockType": 0,
"children": [
{
"type": 1,
"blockType": 0,
"relation": "and",
"children": [
{
"type": 0,
"blockType": 0,
"key": "status",
"value": [
0
],
"operator": "IN",
"relation": null,
"extInfo": "{\"operatorType\":\"EQ\",\"componentType\":\"ENUM\"}",
},
{
"type": 0,
"blockType": 0,
"key": "ageLevel",
"value": [
4
],
"operator": "IN",
"extInfo": "{\"operatorType\":\"EQ\",\"componentType\":\"ENUM\"}",
}
]
}
]
}
}
完整示例
以下是 segmentCreate API 中 query 参数的完整示例,注意需要将它转换为 JSON string 传入 API。
{
"conditions": {
"type": 1,
"relation": "and",
"blockType": 0,
"children": [
{
"type": 1,
"blockType": 0,
"relation": "and",
"children": [
{
"type": 0,
"blockType": 0,
"key": "emailDomain",
"value": [
"@gmail.com"
],
"operator": "IN",
"extInfo": "{\"operatorType\":\"EQ\",\"componentType\":\"LIST_PAGE\",\"listSource\":\"emailDomain\",\"label\":[\"@gmail.com\"]}",
},
{
"type": 0,
"blockType": 0,
"key": "language",
"value": [
"en"
],
"operator": "IN",
"extInfo": "{\"operatorType\":\"EQ\",\"componentType\":\"LIST\",\"listSource\":\"language\",\"label\":[\"English\"]}",
}
]
},
{
"type": 1,
"blockType": 0,
"relation": "and",
"children": [
{
"type": 0,
"blockType": 0,
"key": "userSource",
"value": [
"1",
"2"
],
"operator": "IN",
"extInfo": "{\"operatorType\":\"EQ\",\"componentType\":\"ENUM\"}",
},
{
"type": 0,
"blockType": 0,
"key": "status",
"value": [
3
],
"operator": "IN",
"extInfo": "{\"operatorType\":\"EQ\",\"componentType\":\"ENUM\"}",
}
]
}
]
},
"not": {
"type": 1,
"relation": "and",
"blockType": 0,
"children": [
{
"type": 1,
"blockType": 0,
"relation": "and",
"children": [
{
"type": 0,
"blockType": 0,
"key": "status",
"value": [
0
],
"operator": "IN",
"relation": null,
"extInfo": "{\"operatorType\":\"EQ\",\"componentType\":\"ENUM\"}",
},
{
"type": 0,
"blockType": 0,
"key": "ageLevel",
"value": [
4
],
"operator": "IN",
"extInfo": "{\"operatorType\":\"EQ\",\"componentType\":\"ENUM\"}",
}
]
}
]
}
}

Admin GraphQL 示例
mutation {
segmentCreate(name: "Demo1", query: "{\"conditions\":{\"type\":1,\"relation\":\"and\",\"blockType\":0,\"children\":[{\"type\":1,\"blockType\":0,\"relation\":\"and\",\"children\":[{\"type\":0,\"blockType\":0,\"key\":\"emailDomain\",\"value\":[\"@gmail.com\"],\"operator\":\"IN\",\"extInfo\":\"{\\\"operatorType\\\":\\\"EQ\\\",\\\"componentType\\\":\\\"LIST_PAGE\\\",\\\"listSource\\\":\\\"emailDomain\\\",\\\"label\\\":[\\\"@gmail.com\\\"]}\"},{\"type\":0,\"blockType\":0,\"key\":\"language\",\"value\":[\"en\"],\"operator\":\"IN\",\"extInfo\":\"{\\\"operatorType\\\":\\\"EQ\\\",\\\"componentType\\\":\\\"LIST\\\",\\\"listSource\\\":\\\"language\\\",\\\"label\\\":[\\\"English\\\"]}\"}]},{\"type\":1,\"blockType\":0,\"relation\":\"and\",\"children\":[{\"type\":0,\"blockType\":0,\"key\":\"userSource\",\"value\":[\"1\",\"2\"],\"operator\":\"IN\",\"extInfo\":\"{\\\"operatorType\\\":\\\"EQ\\\",\\\"componentType\\\":\\\"ENUM\\\"}\"},{\"type\":0,\"blockType\":0,\"key\":\"status\",\"value\":[3],\"operator\":\"IN\",\"extInfo\":\"{\\\"operatorType\\\":\\\"EQ\\\",\\\"componentType\\\":\\\"ENUM\\\"}\"}]}]},\"not\":{\"type\":1,\"relation\":\"and\",\"blockType\":0,\"children\":[{\"type\":1,\"blockType\":0,\"relation\":\"and\",\"children\":[{\"type\":0,\"blockType\":0,\"key\":\"status\",\"value\":[0],\"operator\":\"IN\",\"relation\":null,\"extInfo\":\"{\\\"operatorType\\\":\\\"EQ\\\",\\\"componentType\\\":\\\"ENUM\\\"}\"},{\"type\":0,\"blockType\":0,\"key\":\"ageLevel\",\"value\":[4],\"operator\":\"IN\",\"extInfo\":\"{\\\"operatorType\\\":\\\"EQ\\\",\\\"componentType\\\":\\\"ENUM\\\"}\"}]}]}}") {
segment {
id
name
query
creationDate
lastEditDate
}
userErrors {
code
field
message
}
}
}
字段详细说明
条件字段详细说明
以下将按照不同的条件类型(例如:日期、列表选择、金额输入等),说明每个字段的传值方式:
日期
传入预设区间或者自定义日期区间。
value
自定义日期区间传时间戳数组,例如:[1701705600000, 1702051199999];
预设区间传入枚举,例如 ['-7d']。
| 预设枚举 | 说明 |
|---|---|
| 0d | 今天 |
| -7d | 过去7天 |
| -30d | 过去30天 |
| -90d | 过去90天 |
| -12m | 过去12个月 |
operator
| value | 说明 |
|---|---|
| EQ | 等于 |
| GT | 大于 |
| LT | 小于 |
| GTE | 大于等于 |
| LTE | 小于等于 |
| BETWEEN | 仅 value 为自定义区间时可用 |
extInfo
| key | value |
|---|---|
| componentType | 固定传 DATE |
| dateType | 自定义区间:CUSTOME,今天:TODAY,过去7天:LAST_7_DAY,过去30天:LAST_30_DAY,过去90天:LAST_90_DAY,过去12个月:LAST_12_MONTH |
key
以下条件是日期类型:
| 条件key | 名称 | 说明 |
|---|---|---|
| createTime | 客户加入日期 | 店铺首次获得客户信息的日期 |
| singleOrderAmountTime | 下单时间 | 在 组合条件 中和 singleOrderAmount 一起使用 |
| firstOrderTime | 首单时间 | 客户首次成单的时间 |
| lastOrderTime | 上次购买时间 | 客户上次成单的时间 |
| lastAbandonedCreateTime | 最近一次弃单时间 | 客户最近一次发生弃单的时间 |
| lastLoginTime | 最近一次登录时间 | 客户最近一次登录网店的时间 |
| loginChannelTime | 访问时间 | 在 组合条件 中和 loginChannel 一起使用 |
| lastCartCreateTime | 最近一次加购时间 | 客户最近一次将商品添加到购物车的时间 |
| purchasedItemTime | 下单时间 | 在 组合条件 中和 purchasedItem 一起使用 |
| purchasedCateTime | 下单时间 | 在 组合条件 中和 purchasedCate 一起使用 |
| registerTime | 客户注册日期 | 客户账号变成已注册的日期 |
示例
{
"key": "lastLoginTime",
"type": 0,
"operator": "EQ",
"value": [
'-30d'
],
"extInfo": "{\"componentType\":\"DATE\",\"dateType\":\"LAST_30_DAY\"}"
}
整数
传入一个整数范围。
value
operator 为 BETWEEN 时传入两个整数组成的数组,例如:[2, 10];
其他情况传入一个整数组成的数组,例如:[10]。
operator
| value | 说明 |
|---|---|
| EQ | 等于 |
| NE | 不等于 |
| GT | 大于 |
| LT | 小于 |
| BETWEEN | 区间 |
| GTE | 大于等于。仅当条件 key 为 payOrderCnt 时可用 |
| LTE | 小于等于。仅当条件 key 为 payOrderCnt 时可用 |
extInfo
| key | value |
|---|---|
| componentType | 固定传 NUMBER |
key
以下条件是整数类型:
| 条件key | 名称 | 说明 |
|---|---|---|
| payOrderCnt | 订单数量 | 历史累计成单的订单数量 |
| loginCount | 访问次数 | 客户90天内访问网店的次数 |
示例
{
"key": "loginCount",
"type": 0,
"operator": "EQ",
"value": [
2
],
"extInfo": "{\"componentType\":\"NUMBER\"}"
}
小数
传入一个小数范围。
value
operator 为 BETWEEN 时传入两个小数组成的数组,例如:[2.3, 10.9];
其他情况传入一个小数组成的数组,例如:[2.3]。
operator
| value | 说明 |
|---|---|
| EQ | 等于 |
| NE | 不等于 |
| GT | 大于 |
| LT | 小于 |
| BETWEEN | 区间 |
extInfo
| key | value |
|---|---|
| componentType | 固定传 FLOAT |
key
目前只有 元字段条件 有小数类型。
示例
{
"key": "my_fields.float",
"type": 0,
"operator": "EQ",
"value": [
1.33
],
"metafield": true,
"mfType": "list.number_decimal",
"extInfo": "{\"componentType\":\"FLOAT\",\"mfName\":\"小数\"}"
}
金额
传入一个金额范围,以分为单位,例如:¥20 对应 2000。
value
operator 为 BETWEEN 是传入两个金额组成 的数组,例如:[2000, 10000];
其他情况传入一个金额组成的数组,例如:[10000]。
operator
| value | 说明 |
|---|---|
| EQ | 等于 |
| NE | 不等于 |
| GT | 大于 |
| LT | 小于 |
| BETWEEN | 区间 |
| GTE | 大于等于。仅当条件 key 为 totalAmount、singleOrderAmount、unitPrice 时可用 |
| LTE | 小于等于。仅当条件 key 为 totalAmount、singleOrderAmount、unitPrice 时可用 |
extInfo
| key | value |
|---|---|
| componentType | 固定传 PRICE |
key
以下条件是金额类型:
| 条件key | 名称 | 说明 |
|---|---|---|
| totalAmount | 消费金额 | 历史累计的消费金额 |
| singleOrderAmount | 单次消费金额 | 历次成单的订单金额 |
| unitPrice | 客单价 | 客户平均每笔订单的消费金额 |
| preferPrice | 价格偏好 | 根据客户的购买记录计算出的客户偏好的商品价格 |
| preferDiscount | 优惠敏感度 | 根据客户的购买记录计算出的客户偏好的每笔订单中的优惠金额 |
示例
{
"key": "totalAmount",
"type": 0,
"operator": "EQ",
"value": [
20000
],
"extInfo": "{\"componentType\":\"PRICE\"}"
}
布尔
传入布尔值。
value
true 或 false。
operator
| value | 说明 |
|---|---|
| EQ | 等于 |
| NE | 不等于 |
extInfo
| key | value |
|---|---|
| componentType | 固定传 BOOLEAN |
key
目前只有 元字段条件 有布尔类型。
示例
{
"key": "my_fields.vip",
"type": 0,
"operator": "EQ",
"value": false,
"metafield": true,
"mfType": "boolean",
"extInfo": "{\"componentType\":\"BOOLEAN\",\"mfName\":\"重要客户\"}"
}
地址
传入一个地址对象。
value
| key | 类型 | 是 否必填 | 说明 |
|---|---|---|---|
| country | String | 是 | 国家或地区 |
| countryCode | String | 是 | 国家的 ISO 代码,采用 ISO 3166-1 (alpha 2) 格式 |
| province | String | 是 | 省份 |
| provinceCode | String | 是 | 省份编码 |
| city | String | 是 | 城市 |
| cityCode | String | 是 | 城市编码 |
| district | String | 是 | 地区 |
| districtCode | String | 是 | 地区编码 |
operator
| value | 说明 |
|---|---|
| EQ | 等于 |
| NE | 不等于 |
extInfo
| key | value |
|---|---|
| componentType | 固定传 ADDRESS |
key
以下条件是地址类型:
| 条件key | 名称 | 说明 |
|---|---|---|
| address | 地址 | 客户所在的国家、省份、城市 |
示例
{
"key": "address",
"type": 0,
"operator": "EQ",
"value": {
"countryCode": "US",
"country": "United States",
"provinceCode": "4200001",
"province": "Alabama",
"cityCode": "",
"city": "",
"districtCode": "",
"district": ""
},
"extInfo": "{\"componentType\":\"ADDRESS\"}"
}
标签
SHOPLINE 预设了一些推荐标签,通过这些标签条件可以快速筛选出指定的客户人群。
operator
固定传 EQ。表示属于此标签人群。
value
固定传 1。表示属于此标签人群。
extInfo
| key | value |
|---|---|
| componentType | 固定传 TAG |
| subGroup | 标签分类,参考下方表格 |
key
以下条件是标签类型:
| 条件key | 名称 | 说明 | subGroup |
|---|---|---|---|
| isLoginNotPay | 访问未下单客户 | 访问过店铺但未成单的客户 | attractNew |
| isAddCartNotPayIn30 | 近30天加购未下单客户 | 近30天订阅邮件并且有过加购,但是没有下单的客户 | attractNew |
| isAbandonedIn30 | 近30天弃单客户 | 近30天内订阅邮件并且有过弃单的客户 | attractNew |
| isNotOrderIn30 | 订阅邮件30天内未下单客户 | 近30天内订阅邮件并且未下单的客户 | attractNew |
| isFirstOrder | 订阅邮件的首单客户 | 订阅邮件并且只购买过一次的客户 | oldRepurch |
| isRecentHighConsume | 最近高消费金额客户 | 近90天有过高消费金额的客户 | oldRepurch |
| isRecentHighOrder | 最近高下单数量客户 | 近90天有过高下单次数的客户 | oldRepurch |
| isRecentConsumed | 近期消费过的客户 | 近90天消费过的客户 | lossRecovery |
| isOnceActived | 曾经活 跃的客户 | 过去有过高消费但是最近12个月没有消费的客户 | lossRecovery |
| isRecentAbandoned | 近期弃单的客户 | 最近30天有过弃单的客户 | lossRecovery |
| isHighValue | 高价值客户 | 根据RFM计算出的高价值客户 | keyPperations |
| isBirthdayInNextMonth | 下月生日客户 | 下个月过生日的客户 | keyPperations |
| isRecentActived | 近期活跃客户 | 30天内有过登录的客户 | keyPperations |
| isRepurchased | 复购人群 | 客户生命周期为复购阶段的客户 | keyPperations |
示例
{
"key": "isNotOrderIn30",
"type": 0,
"operator": "EQ",
"value": 1,
"extInfo": "{\"subGroup\":\"attractNew\",\"componentType\":\"TAG\",}"
}
枚举列表
传入一个枚举数据集合。例如 客户状态 的可选值是 黑名单、待邀请、已邀请、已注册,它们 不会因商家的客户数据不同而变化。
key
以下条件是枚举列表类型:
| 条件key | 名称 | 说明 |
|---|---|---|
| userSource | 客户加入渠道 | 店铺首次获得客户的来源渠道 |
| platform | 客户加入平台 | 店铺首次获得客户的平台销售渠道 |
| status | 客户状态 | 客户状态 |
| emailSubscribeStatus | 邮箱订阅状态 | 客户的电子邮件订阅状态 |
| gender | 性别 | 客户性别 |
| ageLevel | 年龄 | 客户年龄阶段 |
| birthdayMonth | 生日所在月 | 客户生日所在的月份 |
| smsSubscribeStatus | 短信订阅状态 | 客户的短信订阅状态 |
| preferActivity | 活动类型偏好 | 根据客户的购买记录计算出的客户偏好的活动类型 |
| rfm | RFM价值 | 根据客户的消费金额、消费次数、最近消费时间综合计算得到的客户价值 |
| customerCycle | 客户生命周期 | 按生命周期分布的客户数量,分为潜客、首单、复购、流失客户 |
value
key 对应以下枚举值的集合,例如:[1, 2]
userSource
| value | 说明 |
|---|---|
| 1 | 后台导入 |
| 2 | 网店注册 |
| 3 | 线下门店 |
| 4 | 店铺搬迁 |
| 5 | POS注册 |
| 6 | Multipass联合登录 |
| 7 | Storefront |
| 8 | 手动创建 |
| 16 | 社交媒体 |
| 17 | API创建 |
| 18 | 网站订阅 |
| 19 | 未登录下单 |
| 20 | |
| 23 | TikTok |
| 24 | Shop App |
| 25 | Marketplace |
| 26 | Apple |
platform
| value | 说明 |
|---|---|
| 1 | shopify |
| 2 | bigcommerce |
| 3 | woocommerce |
| 4 | lightspeed |
| 5 | shoplazza |
| 6 | etsy |
| 7 | zalora |
| 8 | kogan |
| 9 | amazon |
| 10 | ebay |
status
| value | 说明 |
|---|---|
| 0 | 黑名单 |
| 1 | 待邀请 |
| 2 | 已邀请 |
| 3 | 已注册 |
emailSubscribeStatus
| value | 说明 |
|---|---|
| 0 | 已取消订阅 |
| 1 | 已订阅 |
| 2 | 未订阅 |
| 3 | 订阅确认中 |
| 5 | 无效 |
gender
| value | 说明 |
|---|---|
| 0 | 未知 |
| 1 | 男 |
| 2 | 女 |
| 3 | 不透露 |
ageLevel
| value | 说明 |
|---|---|
| 0 | 0 - 20 |
| 1 | 21 - 30 |
| 2 | 31 - 40 |
| 3 | 41 - 50 |
| 4 | 51 - 60 |
| 5 | 61 - 70 |
| 6 | 71 - 100 |
birthdayMonth
| value | 说明 |
|---|---|
| 1 | 1月 |
| 2 | 2月 |
| 3 | 3月 |
| 4 | 4月 |
| 5 | 5月 |
| 6 | 6月 |
| 7 | 7月 |
| 8 | 8月 |
| 9 | 9月 |
| 10 | 10月 |
| 11 | 11月 |
| 12 | 12月 |
smsSubscribeStatus
| value | 说明 |
|---|---|
| 0 | 已取消订阅 |
| 1 | 已订阅 |
| 2 | 未订阅 |
preferActivity
| value | 说明 |
|---|---|
| 0 | 折扣活动 |
| 1 | 限时活动 |
| 2 | 捆绑活动 |
| 4 | 组合套餐 |
| 5 | 赠品活动 |
| 6 | 预售活动 |
rfm
| value | 说明 |
|---|---|
| 0 | 重要价值客户 |
| 1 | 一般价值客户 |
| 2 | 重要发展客户 |
| 3 | 一般发展客户 |
| 4 | 重要保持客户 |
| 5 | 一般保持客户 |
| 6 | 重要挽留客户 |
| 7 | 一般挽留客户 |
customerCycle
| value | 说明 |
|---|---|
| 0 | 潜客 |
| 1 | 首单 |
| 2 | 复购 |
| 3 | 流失 |
extInfo
| key | value |
|---|---|
| componentType | 固定传 ENUM |
| operatorType | 固定传 EQ |
operator
| value | 说明 |
|---|---|
| IN | 包含 |
| NOT_IN | 不包含 |
示例
{
"key": "status",
"type": 0,
"operator": "IN",
"value": [
3,
0
],
"extInfo": "{\"operatorType\":\"EQ\",\"componentType\":\"ENUM\"}"
}
动态数据列表
传入一个动态数据值集合。例如 购买过指定商品 的可选值会根据商家的商品数据不同而变化。
value
动态数据值集合,例如:数据源是商品,则传入商品id集合,['productId111', 'productId222']。最多支持 100 个值。
extInfo
| key | 类型 | value | 说明 |
|---|---|---|---|
| componentType | string | LIST、LIST_PAGE。按照下方表格中和条件key的对应关系传入 | 影响查询数据源的方式 。LIST 表示调用接口一次性查出并显示所有可选值;LIST_PAGE 表示分页调用接口并展示可选值; |
| operatorType | string | EQ、IN。按照下方表格中和条件key的对应关系传入 | 影响页面上的操作符显示文案。EQ 显示为 等于 和 不等于,IN 显示为 包含 和 不包含,具体效果参考下方截图 |
| listSource | string | 按照下方表格中和条件key的对应关系传入 | 数据源 |
| label | Array[string] | 例如 value 传入的是商品id集合,label 就传入商品名称集合 | value 对应的显示文本 |


key
以下条件是动态数据列表类型:
| 条件key | 名称 | 说明 | componentType | operatorType | listSource |
|---|---|---|---|---|---|
| language | 客户语言 | 客户访问店铺使用的语言 | LIST | EQ | language |
| lastLoginChannel | 最近一次访问渠道 | 客户最近一次访问网店时的来源渠道 | LIST | EQ | loginChannel |
| loginChannel | 访问过的渠道 | 客户90天内访问网店时的来源渠道 | LIST | EQ | loginChannel |
| purchasedCate | 购买过指定分类 | 购买过指定分类的商品 | LIST | IN | categoryList |
| preferCate | 商品分类偏好 | 根据客户的购买记录计算出的客户偏好的商品分类 | LIST | IN | categoryList |
| emailDomain | 邮箱域名 | 客户的邮箱域名 | LIST_PAGE | EQ | emailDomain |
| purchasedItem | 购买过指定商品 | 购买过指定的商品 | LIST_PAGE | IN | productList |
| preferItemTag | 商品标签偏好 | 根据客户的购买记录计算出的客户偏好的商品标签 | LIST_PAGE | IN | productLabelList |
| customerTag | 客户标签 | 客户列表中人工为客户添加的标签 | LIST_PAGE | IN | customerLabelList |
| companyId | 公司 | 客户加入的公司 | LIST_PAGE | IN | companyId |
operator
| value | 说明 |
|---|---|
| IN | 包含 |
| NOT_IN | 不包含 |
| IS_NULL | 为空。仅当条件 key 为 language 时可用 |
| IS_NOT_NULL | 不为空。仅当条件 key 为 language 时可用 |
示例
{
"key": "purchasedCate",
"type": 0,
"operator": "IN",
"value": [
"12257647834446320149372682",
"12257647834482223391662682"
],
"extInfo": "{\"operatorType\":\"IN\",\"componentType\":\"LIST\",\"listSource\":\"categoryList\",\"label\":[\"fashion shirt\",\"summer vacation\"]}"
}
元字段
所有属于客户模块下的元字段都可以作为条件。了解 元字段 更多信息。
key
{metafield.namespace}.{metafield.key},例如:my_fields.date。
value/operator/extInfo
这些参数按照对应的条件类型传入。元字段类型和条件类型映射关系:
| 元字段类型 | 条件类型 | 说明 |
|---|---|---|
| date | 日期 | - |
| date_time | ||
| list.date | ||
| list.date_time | ||
| boolean | 布尔 | - |
| single_line_text_field | 动态数据列表 | extInfo.componentType 传 LIST_PAGE_FRONT |
| list.single_line_text_field | ||
| multi_line_text_field | ||
| color | ||
| list.color | ||
| number_decimal | 小数 | - |
| list.number_decimal | ||
| number_integer | 整数 | - |
| list.number_integer |
extInfo
除了各类型条件需要的参数之外,还需要传入以下参数:
| key | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| mfName | string | 是 | 元字段名称 |
示例
{
"key": "my_fields.date",
"type": 0,
"operator": "EQ",
"value": [
3
],
"metafield": true,
"mfType": "list.date",
"extInfo": "{\"componentType\":\"DATE\",\"mfName\":\"日期\",\"dateType\":\"LAST_90_DAY\"}"
}
组合条件字段详细说明
relation
组合条件内的条件之间是且关系,固定传 and。
key
以下条件是组合条件:
| 条件key | 名称 | 包含的基础条件 |
|---|---|---|
| singleOrderAmount | 单次消费金额 | singleOrderAmount 和 singleOrderAmountTime |
| loginChannel | 访问过的渠道 | loginChannel 和 loginChannelTime |
| purchasedItem | 购买过指定商品 | purchasedItem 和 purchasedItemTime |
| purchasedCate | 购买过指定分类 | purchasedCate 和 purchasedCateTime |
购买过指定商品 示例
{
"key": "purchasedItem",
"type": 1,
"relation": "and",
"blockType": 1,
"children": [
{
"key": "purchasedItem",
"type": 0,
"operator": "IN",
"value": [
"16054924754902568180002744"
],
"extInfo": "{\"operatorType\":\"IN\",\"componentType\":\"LIST_PAGE\",\"listSource\":\"productList\",\"label\":[\"Halloween Pumpkin Print T-shirt\"]}"
},
{
"key": "purchasedItemTime",
"type": 0,
"operator": "EQ",
"value": [
2
],
"extInfo": "{\"componentType\":\"DATE\",\"dateType\":\"LAST_30_DAY\"}"
}
],
}
