discountNodes
query
需要 read_discounts 权限点。
接口访问需要令牌,具体如何获取令牌参考:身份认证。
查询店铺的折扣活动列表。
Arguments
返回指定游标之后的元素。如果指定了该参数,也必须要指定
first 参数。返回指定游标之前的元素。如果指定了该参数,也必须要指定
last 参数。返回列表中的前 n 个元素。
返回列表中的最后 n 个元素。
是否反转列表的顺序。
● true:反转
● false:不反转
默认值:false
指定一个或多个查询结果筛选器。支持的筛选字段及可选值如下:
discount_type:折扣优惠类型。可选值包括:bogo:买 X 送 Y。fix_amount:固定金额折扣。percentage:百分比折扣。free_shipping:免运费。
status:活动状态。可选值包括:active:进行中。expired:已过期。scheduled:待开始。
times_used:折扣使用次数,可以是次数范围。
例如,times_used:>0表示筛选使用次数大于0的活动。starts_at:活动开始时间,可以是开始时间范围。
例如,starts_at:>='2023-01-10T00:00:00Z'表示筛选在2023-01-10T00:00:00Z后开始的活动。title: 活动的名称,传入的关键词需要包裹在单引号''里面。
按名称筛选时采用模糊匹配。code:折扣码,传入的关键词需要包裹在单引号''里面。
按折扣码筛选时采用精确匹配。sales_channel:销售渠道。可选值包括:web:在线销售渠道。pos:POS 销售渠道。all:所有销售渠道。
source_key:指定折扣活动创建来源。
筛选出的折扣活动的排序依据。例如,
STARTS_AT 表示按活动开始时间排序,TIMES_USED 表示按折扣使用次数排序。Return
edges列表
DiscountNodeEdge 中包含的节点列表
帮助分页的信息
错误码
关于更多通用错误码说明,参考:状态码和错误码。
Example
通过标题查询折扣活动
Code
query MyQuery {
discountNodes(
first: 2
query: "title:'demo'"
sortKey: CREATED_AT
reverse: true
) {
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
nodes {
discount {
... on DiscountAutomaticBasic {
endsAt
asyncUsageCount
status
shortSummary
minimumRequirement {
... on DiscountMinimumQuantity {
__typename
greaterThanOrEqualToQuantity
}
... on DiscountMinimumSubtotal {
__typename
greaterThanOrEqualToSubtotal {
amount
currencyCode
}
}
}
summary
title
updatedAt
startsAt
createdAt
customerGets {
items {
... on AllDiscountItems {
__typename
allItems
}
... on DiscountCollections {
__typename
collections
}
... on DiscountProducts {
__typename
productVariants
products
}
}
value {
... on DiscountAmount {
appliesOnEachItem
amount {
amount
currencyCode
}
}
... on DiscountPercentage {
__typename
percentage
}
... on DiscountOnQuantity {
__typename
effect {
... on DiscountAmount {
appliesOnEachItem
amount {
amount
currencyCode
}
}
... on DiscountPercentage {
__typename
percentage
}
}
quantity {
quantity
}
}
}
}
discountAutomaticBasicDiscountClass:discountClass
}
... on DiscountCodeBasic {
summary
minimumRequirement {
... on DiscountMinimumQuantity {
__typename
greaterThanOrEqualToQuantity
}
... on DiscountMinimumSubtotal {
__typename
greaterThanOrEqualToSubtotal {
amount
currencyCode
}
}
}
shareableUrls {
targetType
title
url
}
appliesTimesPerCustomer
asyncUsageCount
codeCount
createdAt
customerSelection {
... on DiscountCustomers {
__typename
customers
}
... on DiscountCustomerAll {
allCustomers
}
... on DiscountCustomerSegments {
__typename
segments
}
}
endsAt
shortSummary
startsAt
status
title
totalSales {
amount
currencyCode
}
updatedAt
usageLimit
combinesWith {
orderDiscounts
productDiscounts
shippingDiscounts
}
customerGets {
items {
... on AllDiscountItems {
__typename
allItems
}
... on DiscountCollections {
__typename
collections
}
... on DiscountProducts {
__typename
products
productVariants
}
}
value {
... on DiscountAmount {
appliesOnEachItem
amount {
amount
currencyCode
}
}
... on DiscountPercentage {
__typename
percentage
}
... on DiscountOnQuantity {
__typename
effect {
... on DiscountAmount {
appliesOnEachItem
amount {
amount
currencyCode
}
}
... on DiscountPercentage {
__typename
percentage
}
}
quantity {
quantity
}
}
}
}
discountCodeBasicDiscountClass:discountClass
}
... on DiscountCodeBxgy {
summary
appliesTimesPerCustomer
asyncUsageCount
codeCount
createdAt
customerSelection {
... on DiscountCustomers {
__typename
customers
}
... on DiscountCustomerAll {
allCustomers
}
... on DiscountCustomerSegments {
__typename
segments
}
}
endsAt
startsAt
status
title
usageLimit
usesPerOrderLimit
customerBuys {
items {
... on DiscountCollections {
__typename
collections
}
... on AllDiscountItems {
__typename
allItems
}
... on DiscountProducts {
__typename
productVariants
products
}
}
value {
... on DiscountQuantity {
__typename
quantity
}
... on DiscountPurchaseAmount {
amount
}
}
}
customerGets {
items {
... on DiscountCollections {
__typename
collections
}
... on DiscountProducts {
__typename
productVariants
products
}
... on AllDiscountItems {
__typename
allItems
}
}
value {
... on DiscountPercentage {
__typename
percentage
}
... on DiscountOnQuantity {
__typename
effect {
... on DiscountPercentage {
__typename
percentage
}
... on DiscountAmount {
appliesOnEachItem
amount {
amount
currencyCode
}
}
}
quantity {
quantity
}
}
... on DiscountAmount {
appliesOnEachItem
amount {
amount
currencyCode
}
}
}
}
combinesWith {
orderDiscounts
productDiscounts
shippingDiscounts
}
discountCodeBxgyDiscountClass:discountClass
shareableUrls {
targetType
title
url
}
totalSales {
amount
currencyCode
}
}
... on DiscountAutomaticFreeShipping {
summary
asyncUsageCount
totalSales {
amount
currencyCode
}
title
updatedAt
status
startsAt
shortSummary
minimumRequirement {
... on DiscountMinimumQuantity {
__typename
greaterThanOrEqualToQuantity
}
... on DiscountMinimumSubtotal {
__typename
greaterThanOrEqualToSubtotal {
amount
currencyCode
}
}
}
endsAt
createdAt
destinationSelection {
... on DiscountCountries {
includeRestOfWorld
countries
}
... on DiscountCountryAll {
allCountries
}
}
maximumShippingPrice {
amount
currencyCode
}
discountAutomaticFreeShippingDiscountClass:discountClass
}
... on DiscountCodeFreeShipping {
summary
asyncUsageCount
appliesTimesPerCustomer
codeCount
combinesWith {
orderDiscounts
productDiscounts
shippingDiscounts
}
createdAt
customerSelection {
... on DiscountCustomers {
__typename
customers
}
... on DiscountCustomerAll {
allCustomers
}
... on DiscountCustomerSegments {
__typename
segments
}
}
destinationSelection {
... on DiscountCountries {
includeRestOfWorld
countries
}
... on DiscountCountryAll {
allCountries
}
}
endsAt
maximumShippingPrice {
amount
currencyCode
}
minimumRequirement {
... on DiscountMinimumQuantity {
__typename
greaterThanOrEqualToQuantity
}
... on DiscountMinimumSubtotal {
__typename
greaterThanOrEqualToSubtotal {
amount
currencyCode
}
}
}
shareableUrls {
targetType
title
url
}
shortSummary
startsAt
status
title
totalSales {
amount
currencyCode
}
updatedAt
usageLimit
discountCodeFreeShippingDiscountClass:discountClass
}
... on DiscountAutomaticApp {
createdAt
appDiscountType {
appKey
description
discountClass
targetType
title
functionId
}
asyncUsageCount
combinesWith {
orderDiscounts
productDiscounts
shippingDiscounts
}
discountId
endsAt
startsAt
status
title
updatedAt
discountAutomaticAppDiscountClass:discountClass
}
... on DiscountAutomaticBxgy {
summary
asyncUsageCount
combinesWith {
orderDiscounts
productDiscounts
shippingDiscounts
}
createdAt
customerBuys {
items {
... on DiscountCollections {
__typename
collections
}
... on AllDiscountItems {
__typename
allItems
}
... on DiscountProducts {
__typename
productVariants
products
}
}
value {
... on DiscountQuantity {
__typename
quantity
}
... on DiscountPurchaseAmount {
amount
}
}
}
customerGets {
items {
... on DiscountCollections {
__typename
collections
}
... on AllDiscountItems {
__typename
allItems
}
... on DiscountProducts {
__typename
productVariants
products
}
}
value {
... on DiscountPercentage {
__typename
percentage
}
... on DiscountOnQuantity {
__typename
effect {
... on DiscountPercentage {
__typename
percentage
}
... on DiscountAmount {
appliesOnEachItem
amount {
amount
currencyCode
}
}
}
quantity {
quantity
}
}
... on DiscountAmount {
appliesOnEachItem
amount {
amount
currencyCode
}
}
}
}
endsAt
status
title
updatedAt
usesPerOrderLimit
discountAutomaticBxgyDiscountClass:discountClass
}
}
id
}
edges {
cursor
node {
discount {
... on DiscountCodeBxgy {
summary
asyncUsageCount
appliesTimesPerCustomer
codeCount
combinesWith {
orderDiscounts
productDiscounts
shippingDiscounts
}
createdAt
customerBuys {
items {
... on DiscountCollections {
__typename
collections
}
... on AllDiscountItems {
__typename
allItems
}
... on DiscountProducts {
__typename
productVariants
products
}
}
value {
... on DiscountQuantity {
__typename
quantity
}
... on DiscountPurchaseAmount {
amount
}
}
}
customerGets {
items {
... on DiscountCollections {
__typename
collections
}
... on AllDiscountItems {
__typename
allItems
}
... on DiscountProducts {
__typename
productVariants
products
}
}
value {
... on DiscountPercentage {
__typename
percentage
}
... on DiscountOnQuantity {
__typename
effect {
... on DiscountPercentage {
__typename
percentage
}
... on DiscountAmount {
appliesOnEachItem
amount {
amount
currencyCode
}
}
}
quantity {
quantity
}
}
... on DiscountAmount {
appliesOnEachItem
amount {
amount
currencyCode
}
}
}
}
customerSelection {
... on DiscountCustomers {
__typename
customers
}
... on DiscountCustomerSegments {
__typename
segments
}
... on DiscountCustomerAll {
allCustomers
}
}
endsAt
shareableUrls {
targetType
title
url
}
startsAt
status
title
totalSales {
amount
currencyCode
}
usageLimit
usesPerOrderLimit
discountCodeBxgyDiscountClass:discountClass
}
... on DiscountAutomaticBxgy {
summary
asyncUsageCount
combinesWith {
orderDiscounts
productDiscounts
shippingDiscounts
}
createdAt
customerBuys {
items {
... on DiscountCollections {
__typename
collections
}
... on AllDiscountItems {
__typename
allItems
}
... on DiscountProducts {
__typename
products
productVariants
}
}
value {
... on DiscountQuantity {
__typename
quantity
}
... on DiscountPurchaseAmount {
amount
}
}
}
customerGets {
items {
... on DiscountCollections {
__typename
collections
}
... on AllDiscountItems {
__typename
allItems
}
... on DiscountProducts {
__typename
products
productVariants
}
}
value {
... on DiscountPercentage {
__typename
percentage
}
... on DiscountOnQuantity {
__typename
effect {
... on DiscountPercentage {
__typename
percentage
}
... on DiscountAmount {
appliesOnEachItem
amount {
amount
currencyCode
}
}
}
quantity {
quantity
}
}
... on DiscountAmount {
appliesOnEachItem
amount {
amount
currencyCode
}
}
}
}
endsAt
status
title
updatedAt
usesPerOrderLimit
discountAutomaticBxgyDiscountClass:discountClass
}
... on DiscountAutomaticApp {
createdAt
appDiscountType {
appKey
description
discountClass
functionId
targetType
title
}
combinesWith {
orderDiscounts
productDiscounts
shippingDiscounts
}
asyncUsageCount
discountId
endsAt
startsAt
status
title
updatedAt
discountAutomaticAppDiscountClass:discountClass
}
... on DiscountCodeFreeShipping {
summary
asyncUsageCount
appliesTimesPerCustomer
codeCount
combinesWith {
orderDiscounts
productDiscounts
shippingDiscounts
}
createdAt
customerSelection {
... on DiscountCustomers {
__typename
customers
}
... on DiscountCustomerAll {
allCustomers
}
... on DiscountCustomerSegments {
__typename
segments
}
}
destinationSelection {
... on DiscountCountries {
includeRestOfWorld
countries
}
... on DiscountCountryAll {
allCountries
}
}
endsAt
maximumShippingPrice {
amount
currencyCode
}
minimumRequirement {
... on DiscountMinimumQuantity {
__typename
greaterThanOrEqualToQuantity
}
... on DiscountMinimumSubtotal {
__typename
greaterThanOrEqualToSubtotal {
amount
currencyCode
}
}
}
shareableUrls {
targetType
title
url
}
shortSummary
startsAt
status
title
totalSales {
amount
currencyCode
}
updatedAt
usageLimit
discountCodeFreeShippingDiscountClass:discountClass
}
... on DiscountCodeBasic {
summary
asyncUsageCount
appliesTimesPerCustomer
codeCount
combinesWith {
orderDiscounts
productDiscounts
shippingDiscounts
}
createdAt
customerGets {
items {
... on DiscountCollections {
__typename
collections
}
... on AllDiscountItems {
__typename
allItems
}
... on DiscountProducts {
__typename
productVariants
products
}
}
value {
... on DiscountPercentage {
__typename
percentage
}
... on DiscountOnQuantity {
__typename
effect {
... on DiscountPercentage {
__typename
percentage
}
... on DiscountAmount {
appliesOnEachItem
amount {
amount
currencyCode
}
}
}
quantity {
quantity
}
}
... on DiscountAmount {
appliesOnEachItem
amount {
amount
currencyCode
}
}
}
}
customerSelection {
... on DiscountCustomers {
__typename
customers
}
... on DiscountCustomerAll {
allCustomers
}
... on DiscountCustomerSegments {
__typename
segments
}
}
endsAt
minimumRequirement {
... on DiscountMinimumQuantity {
__typename
greaterThanOrEqualToQuantity
}
... on DiscountMinimumSubtotal {
__typename
greaterThanOrEqualToSubtotal {
amount
currencyCode
}
}
}
shareableUrls {
targetType
title
url
}
shortSummary
startsAt
status
title
totalSales {
amount
currencyCode
}
updatedAt
usageLimit
discountCodeBasicDiscountClass:discountClass
}
... on DiscountAutomaticFreeShipping {
summary
asyncUsageCount
combinesWith {
orderDiscounts
shippingDiscounts
productDiscounts
}
createdAt
destinationSelection {
... on DiscountCountries {
includeRestOfWorld
countries
}
... on DiscountCountryAll {
allCountries
}
}
endsAt
maximumShippingPrice {
amount
currencyCode
}
minimumRequirement {
... on DiscountMinimumQuantity {
__typename
greaterThanOrEqualToQuantity
}
... on DiscountMinimumSubtotal {
__typename
greaterThanOrEqualToSubtotal {
amount
currencyCode
}
}
}
shortSummary
startsAt
status
title
totalSales {
amount
currencyCode
}
updatedAt
discountAutomaticFreeShippingDiscountClass:discountClass
}
... on DiscountAutomaticBasic {
summary
asyncUsageCount
combinesWith {
orderDiscounts
productDiscounts
shippingDiscounts
}
createdAt
customerGets {
items {
... on DiscountCollections {
__typename
collections
}
... on AllDiscountItems {
__typename
allItems
}
... on DiscountProducts {
__typename
productVariants
products
}
}
value {
... on DiscountPercentage {
__typename
percentage
}
... on DiscountOnQuantity {
__typename
effect {
... on DiscountPercentage {
__typename
percentage
}
... on DiscountAmount {
appliesOnEachItem
amount {
amount
currencyCode
}
}
}
quantity {
quantity
}
}
... on DiscountAmount {
appliesOnEachItem
amount {
amount
currencyCode
}
}
}
}
endsAt
minimumRequirement {
... on DiscountMinimumQuantity {
__typename
greaterThanOrEqualToQuantity
}
... on DiscountMinimumSubtotal {
__typename
greaterThanOrEqualToSubtotal {
amount
currencyCode
}
}
}
shortSummary
startsAt
status
title
updatedAt
discountAutomaticBasicDiscountClass:discountClass
}
}
id
}
}
}
}
Response
{
"data": {
"discountNodes": {
"nodes": [
{
"discount": {
"asyncUsageCount": 0,
"endsAt": null,
"minimumRequirement": {
"__typename": "DiscountMinimumQuantity",
"greaterThanOrEqualToQuantity": 2
},
"startsAt": "2026-07-18T08:47:47.000Z",
"summary": "30% off 6 products • Minimum quantity of 2",
"totalSales": {
"currencyCode": "SGD",
"amount": "0"
},
"updatedAt": "2026-07-16T12:47:47.000Z",
"createdAt": "2026-07-16T12:47:47.000Z",
"title": "demo",
"status": "SCHEDULED",
"appliesTimesPerCustomer": 11,
"customerGets": {
"value": {
"percentage": 0.3,
"__typename": "DiscountPercentage"
},
"items": {
"__typename": "DiscountProducts",
"productVariants": [],
"products": [
"16064393365790313753160195",
"16064393365833431198690195",
"16064393365879904087440195",
"16064393365916813963040195",
"16064393365975701991600195",
"16064393366023181513580195"
]
}
},
"customerSelection": {
"allCustomers": true
},
"shareableUrls": [
{
"targetType": "HOME",
"title": "demo",
"url": "https://ella01pre.myshoplinestg.com/activity/SL201SAS07614808542429578265"
}
],
"usageLimit": 10,
"codeCount": 1,
"combinesWith": {
"shippingDiscounts": true,
"orderDiscounts": true,
"productDiscounts": true
},
"discountCodeBasicDiscountClass": "PRODUCT",
"shortSummary": "30% off 6 products"
},
"id": "gid://shopline/DiscountCodeNode/SL201SAS07614808542429578265"
}
],
"pageInfo": {
"endCursor": "C61FAE0199C84A33DB551A7831B8E034",
"hasNextPage": false,
"hasPreviousPage": false,
"startCursor": "2AAF90F13C58A5EF353DD555E8D6CCD6"
},
"edges": [
{
"cursor": "-",
"node": {
"discount": {
"totalSales": {
"amount": "0",
"currencyCode": "SGD"
},
"codeCount": 1,
"combinesWith": {
"orderDiscounts": true,
"productDiscounts": true,
"shippingDiscounts": true
},
"createdAt": "2026-07-16T12:47:47.000Z",
"customerGets": {
"items": {
"products": [
"16064393365790313753160195",
"16064393365833431198690195",
"16064393365879904087440195",
"16064393365916813963040195",
"16064393365975701991600195",
"16064393366023181513580195"
],
"__typename": "DiscountProducts",
"productVariants": []
},
"value": {
"__typename": "DiscountPercentage",
"percentage": 0.3
}
},
"shortSummary": "30% off 6 products",
"status": "SCHEDULED",
"updatedAt": "2026-07-16T12:47:47.000Z",
"usageLimit": 10,
"appliesTimesPerCustomer": 11,
"customerSelection": {
"allCustomers": true
},
"summary": "30% off 6 products • Minimum quantity of 2",
"title": "demo",
"asyncUsageCount": 0,
"discountCodeBasicDiscountClass": "PRODUCT",
"endsAt": null,
"shareableUrls": [
{
"targetType": "HOME",
"title": "demo",
"url": "https://ella01pre.myshoplinestg.com/activity/SL201SAS07614808542429578265"
}
],
"startsAt": "2026-07-18T08:47:47.000Z",
"minimumRequirement": {
"__typename": "DiscountMinimumQuantity",
"greaterThanOrEqualToQuantity": 2
}
},
"id": "gid://shopline/DiscountCodeNode/SL201SAS07614808542429578265"
}
}
]
}
},
"extensions": {
"cost": {
"actualQueryCost": 55,
"requestedQueryCost": 55,
"throttleStatus": {
"restoreRate": 50000,
"currentlyAvailable": 49929,
"maximumAvailable": 50000
}
}
}
}
这篇文章对你有帮助吗?