SHOPLINE Product Discount Functions - Admin rest API

:warning: 注意:使用创建、更新、查询 Function活动 的 admin rest API 时,调用应用 appkey 需为Function id 对应的应用。

1. 自定义折扣规则 - 自动折扣

1.1. 创建接口
  • POST:/sales/discount_automatic_app.json
  • 前置条件:需要write_discounts访问权限。
  • 描述:创建一个由应用管理的商品维度自动折扣。
  • 入参:
字段 类型 中文描述
combines_with Object 折扣可以与 SHOPLINE 的哪些折扣类别叠加。
combines_with.order_discounts Boolean 是否与订单折扣叠加。 true:叠加订单折扣 false:不叠加订单折扣 默认值:false
combines_with.product_discounts Boolean 是否与商品折扣叠加 true:叠加商品折扣 false:不叠加商品折扣 默认值:false
combines_with.shipping_discounts Boolean 是否与运费折扣叠加 true:叠加运费折扣 false:不叠加运费折扣 默认值:false
ends_at Date 折扣结束的日期和时间。对于无期限的折扣,请使用 null。
function_id* String 提供应用折扣类型的function ID。
metafields Object [] 要关联到该折扣规则的元字段。
metafields.description String 元字段的描述。 最大长度限制:255
metafields.key String 元字段定义在其 namespace 下的唯一标识符。仅支持字母、数字、连字符和下划线字符。 最小长度限制:3 最大长度限制:30 在创建元字段时必需,但在更新时是可选的。用于在更新时帮助识别元字段,但本身无法更新。
metafields.namespace String 元字段的命名空间。通过命名空间可对元字段进行分组,避免具有相同健名的元字段发生冲突。通过 key 和 namespace 可以唯一确定元字段。 仅支持字母、数字、连字符和下划线字符。 最小长度限制:2 最大长度限制:50
metafields.type String 存储在元字段中的数据类型。有效类型见:https://developer.shopline.com/zh-hans-cn/docs/storefront-api/common-objects/objects/metafield?version=v20250601
metafields.value String 存储在元字段中的数据。始终以字符串形式存储,无论元字段的类型如何。字符串的最大长度限制为500000。
starts_at Date 折扣开始的日期和时间。
title String 折扣的标题。用于展示在 SHHOPLINE 后台和前台,对商家和客户可见。
  • 出参:
字段 类型 描述
function_id String 函数的 ID。
combines_with Object 折扣可以与 SHOPLINE 的哪些折扣类别叠加。
combines_with.order_discounts Boolean 是否与订单折扣叠加。 true:叠加订单折扣 false:不叠加订单折扣
combines_with.product_discounts Boolean 是否与商品折扣叠加 true:叠加商品折扣 false:不叠加商品折扣
combines_with.shipping_discounts Boolean 是否与运费折扣叠加 true:叠加运费折扣 false:不叠加运费折扣
created_at Date 折扣创建的时间。
app_discount_id String 折扣规则的 ID。
ends_at Date 折扣结束的日期和时间。
starts_at Date 折扣开始的日期和时间。
status String 折扣的状态。
title String 折扣的标题。用于展示在 SHHOPLINE 后台和前台,对商家和客户可见。
updated_at Date 折扣更新的日期和时间。
metafields Object [] 要关联到折扣的附加元字段。
metafields.description String 元字段的描述。 最大长度限制:255
metafields.key String 元字段定义在其 namespace 下的唯一标识符。仅支持字母、数字、连字符和下划线字符。 最小长度限制:3 最大长度限制:30 在创建元字段时必需,但在更新时是可选的。用于在更新时帮助识别元字段,但本身无法更新。
metafields.namespace String 元字段的命名空间。通过命名空间可对元字段进行分组,避免具有相同健名的元字段发生冲突。通过 key 和 namespace 可以唯一确定元字段。 仅支持字母、数字、连字符和下划线字符。 最小长度限制:2 最大长度限制:50
metafields.type String 存储在元字段中的数据类型。有效类型见:https://developer.shopline.com/zh-hans-cn/docs/storefront-api/common-objects/objects/metafield?version=v20250601
metafields.value String 存储在元字段中的数据。始终以字符串形式存储,无论元字段的类型如何。字符串的最大长度限制为500000。
1.2. 更新接口
  • PUT:/sales/discount_automatic_app/:discount_app_id.json
  • 前置条件:需要write_discounts访问权限。
  • 描述:更新一个由应用管理的自动折扣活动。
  • 入参
    • Rest 参数:discount_app_id,需要更新的自动折扣活动规则的 ID。
字段 类型 中文描述
combines_with Object 折扣可以与 SHOPLINE 的哪些折扣类别叠加。
combines_with.order_discounts Boolean 是否与订单折扣叠加。 true:叠加订单折扣 false:不叠加订单折扣 默认值:false
combines_with.product_discounts Boolean 是否与商品折扣叠加 true:叠加商品折扣 false:不叠加商品折扣 默认值:false
combines_with.shipping_discounts Boolean 是否与运费折扣叠加 true:叠加运费折扣 false:不叠加运费折扣 默认值:false
ends_at Date 折扣结束的日期和时间。对于无期限的折扣,请使用 null。
function_id* String 提供应用折扣类型的function ID。
metafields Object [] 要关联到折扣的附加元字段。走覆盖更新逻辑。
description String 元字段的描述。 最大长度限制:255
metafields.description String 元字段的描述。 最大长度限制:255
metafields.key String 元字段定义在其 namespace 下的唯一标识符。仅支持字母、数字、连字符和下划线字符。 最小长度限制:3 最大长度限制:30
metafields.namespace String 元字段的命名空间。通过命名空间可对元字段进行分组,避免具有相同健名的元字段发生冲突。通过 key 和 namespace 可以唯一确定元字段。 仅支持字母、数字、连字符和下划线字符。 最小长度限制:2 最大长度限制:50
metafields.type String 存储在元字段中的数据类型。
metafields.value String 存储在元字段中的数据。始终以字符串形式存储,无论元字段的类型如何。字符串的最大长度限制为500000。
starts_at Date 折扣开始的日期和时间。
title String 折扣的标题。用于展示在 SHHOPLINE 后台和前台,对商家和客户可见。
  • 出参
字段 类型 描述
function_id String 函数的 ID。
combines_with Object 折扣可以与 SHOPLINE 的哪些折扣类别叠加。
combines_with.order_discounts Boolean 是否与订单折扣叠加。 true:叠加订单折扣 false:不叠加订单折扣
combines_with.product_discounts Boolean 是否与商品折扣叠加 true:叠加商品折扣 false:不叠加商品折扣
combines_with.shipping_discounts Boolean 是否与运费折扣叠加 true:叠加运费折扣 false:不叠加运费折扣
created_at Date 折扣创建的时间。
app_discount_id String 折扣规则的 ID。
ends_at Date 折扣结束的日期和时间。
starts_at Date 折扣开始的日期和时间。
status String 折扣的状态。
title String 折扣的标题。用于展示在 SHHOPLINE 后台和前台,对商家和客户可见。
updated_at Date 折扣更新的日期和时间。
metafields Object [] 要关联到折扣的附加元字段。
metafields.description String 元字段的描述。 最大长度限制:255
metafields.key String 元字段定义在其 namespace 下的唯一标识符。仅支持字母、数字、连字符和下划线字符。 最小长度限制:3 最大长度限制:30 在创建元字段时必需,但在更新时是可选的。用于在更新时帮助识别元字段,但本身无法更新。
metafields.namespace String 元字段的命名空间。通过命名空间可对元字段进行分组,避免具有相同健名的元字段发生冲突。通过 key 和 namespace 可以唯一确定元字段。 仅支持字母、数字、连字符和下划线字符。 最小长度限制:2 最大长度限制:50
metafields.type String 存储在元字段中的数据类型。有效类型见:https://developer.shopline.com/zh-hans-cn/docs/storefront-api/common-objects/objects/metafield?version=v20250601
metafields.value String 存储在元字段中的数据。始终以字符串形式存储,无论元字段的类型如何。字符串的最大长度限制为500000。

2. 自定义函数规则 - 折扣码

2.1. 创建接口
  • POST:/sales/discount_code_app.json
  • 前置条件:需要write_discounts访问权限。
  • 描述:创建一个由应用管理的折扣码活动。
  • 入参:
字段 类型 中文描述
code* String 客户用来应用折扣的代码。
combines_with Object 折扣可以与 SHOPLINE 的哪些折扣类别叠加。
combines_with.order_discounts Boolean 是否与订单折扣叠加。 true:叠加订单折扣 false:不叠加订单折扣 默认值:false
combines_with.product_discounts Boolean 是否与商品折扣叠加 true:叠加商品折扣 false:不叠加商品折扣 默认值:false
combines_with.shipping_discounts Boolean 是否与运费折扣叠加 true:叠加运费折扣 false:不叠加运费折扣 默认值:false
ends_at Date 折扣结束的日期和时间。对于无期限的折扣,请使用 null。
function_id* String 提供应用折扣类型的function ID。
metafields Object [] 要关联到该折扣规则的元字段。
metafields.description String 元字段的描述。 最大长度限制:255
metafields.key String 元字段定义在其 namespace 下的唯一标识符。仅支持字母、数字、连字符和下划线字符。 最小长度限制:3 最大长度限制:30 在创建元字段时必需,但在更新时是可选的。用于在更新时帮助识别元字段,但本身无法更新。
metafields.namespace String 元字段的命名空间。通过命名空间可对元字段进行分组,避免具有相同健名的元字段发生冲突。通过 key 和 namespace 可以唯一确定元字段。 仅支持字母、数字、连字符和下划线字符。 最小长度限制:2 最大长度限制:50
metafields.type String 存储在元字段中的数据类型。有效类型见:https://developer.shopline.com/zh-hans-cn/docs/storefront-api/common-objects/objects/metafield?version=v20250601
metafields.value String 存储在元字段中的数据。始终以字符串形式存储,无论元字段的类型如何。字符串的最大长度限制为500000。
starts_at Date 折扣开始的日期和时间。
title String 折扣的标题。用于展示在 SHHOPLINE 后台和前台,对商家和客户可见。
  • 出参:
字段 类型 中文描述
code string 客户可以用来兑换折扣的折扣码。
function_id String 函数的 ID。
combines_with Object 折扣可以与 SHOPLINE 的哪些折扣类别叠加。
combines_with.order_discounts Boolean 是否与订单折扣叠加。 true:叠加订单折扣 false:不叠加订单折扣
combines_with.product_discounts Boolean 是否与商品折扣叠加 true:叠加商品折扣 false:不叠加商品折扣
combines_with.shipping_discounts Boolean 是否与运费折扣叠加 true:叠加运费折扣 false:不叠加运费折扣
created_at Date 折扣创建的时间。
app_discount_id String 折扣规则的 ID。
ends_at Date 折扣结束的日期和时间。
starts_at Date 折扣开始的日期和时间。
status String 折扣的状态。
title String 折扣的标题。用于展示在 SHHOPLINE 后台和前台,对商家和客户可见。
updated_at Date 折扣更新的日期和时间。
metafields Object[] 要关联到折扣的附加元字段。
metafields.description String 元字段的描述。 最大长度限制:255
metafields.key String 元字段定义在其 namespace 下的唯一标识符。仅支持字母、数字、连字符和下划线字符。 最小长度限制:3 最大长度限制:30 在创建元字段时必需,但在更新时是可选的。用于在更新时帮助识别元字段,但本身无法更新。
metafields.namespace String 元字段的命名空间。通过命名空间可对元字段进行分组,避免具有相同健名的元字段发生冲突。通过 key 和 namespace 可以唯一确定元字段。 仅支持字母、数字、连字符和下划线字符。 最小长度限制:2 最大长度限制:50
metafields.type String 存储在元字段中的数据类型。有效类型见:https://developer.shopline.com/zh-hans-cn/docs/storefront-api/common-objects/objects/metafield?version=v20250601
metafields.value String 存储在元字段中的数据。始终以字符串形式存储,无论元字段的类型如何。字符串的最大长度限制为500000。
2.2. 更新接口
  • PUT:/sales/discount_code_app/discount_code_app_id.json
  • 前置条件:需要write_discounts访问权限。
  • 描述:更新一个由应用管理的折扣码活动。
  • 入参:

REST参数:discount_app_id

字段 类型 中文描述
code* String 客户用来应用折扣的代码。
combines_with Object 折扣可以与 SHOPLINE 的哪些折扣类别叠加。
combines_with.order_discounts Boolean 是否与订单折扣叠加。 true:叠加订单折扣 false:不叠加订单折扣 默认值:false
combines_with.product_discounts Boolean 是否与商品折扣叠加 true:叠加商品折扣 false:不叠加商品折扣 默认值:false
combines_with.shipping_discounts Boolean 是否与运费折扣叠加 true:叠加运费折扣 false:不叠加运费折扣 默认值:false
ends_at Date 折扣结束的日期和时间。对于无期限的折扣,请使用 null。
function_id* String 提供应用折扣类型的function ID。
metafields Object [] 要关联到折扣的附加元字段。走覆盖更新逻辑。
metafields.description String 元字段的描述。 最大长度限制:255
metafields.key String 元字段定义在其 namespace 下的唯一标识符。仅支持字母、数字、连字符和下划线字符。 最小长度限制:3 最大长度限制:30
metafields.namespace String 元字段的命名空间。通过命名空间可对元字段进行分组,避免具有相同健名的元字段发生冲突。通过 key 和 namespace 可以唯一确定元字段。 仅支持字母、数字、连字符和下划线字符。 最小长度限制:2 最大长度限制:50
metafields.type String 存储在元字段中的数据类型。
metafields.value String 存储在元字段中的数据。始终以字符串形式存储,无论元字段的类型如何。字符串的最大长度限制为500000。
starts_at Date 折扣开始的日期和时间。
title String 折扣的标题。用于展示在 SHHOPLINE 后台和前台,对商家和客户可见。
  • 出参
字段 类型 中文描述
code string 客户可以用来兑换折扣的折扣码。
function_id String 函数的 ID。
combines_with Object 折扣可以与 SHOPLINE 的哪些折扣类别叠加。
combines_with.order_discounts Boolean 是否与订单折扣叠加。 true:叠加订单折扣 false:不叠加订单折扣
combines_with.product_discounts Boolean 是否与商品折扣叠加 true:叠加商品折扣 false:不叠加商品折扣
combines_with.shipping_discounts Boolean 是否与运费折扣叠加 true:叠加运费折扣 false:不叠加运费折扣
created_at Date 折扣创建的时间。
app_discount_id String 折扣规则的 ID。
ends_at Date 折扣结束的日期和时间。
starts_at Date 折扣开始的日期和时间。
status String 折扣的状态。
title String 折扣的标题。用于展示在 SHHOPLINE 后台和前台,对商家和客户可见。
updated_at Date 折扣更新的日期和时间。
metafields Object [] 要关联到折扣的附加元字段。
metafields.description String 元字段的描述。 最大长度限制:255
metafields.key String 元字段定义在其 namespace 下的唯一标识符。仅支持字母、数字、连字符和下划线字符。 最小长度限制:3 最大长度限制:30 在创建元字段时必需,但在更新时是可选的。用于在更新时帮助识别元字段,但本身无法更新。
metafields.namespace String 元字段的命名空间。通过命名空间可对元字段进行分组,避免具有相同健名的元字段发生冲突。通过 key 和 namespace 可以唯一确定元字段。 仅支持字母、数字、连字符和下划线字符。 最小长度限制:2 最大长度限制:50
metafields.type String 存储在元字段中的数据类型。有效类型见:https://developer.shopline.com/zh-hans-cn/docs/storefront-api/common-objects/objects/metafield?version=v20250601
metafields.value String 存储在元字段中的数据。始终以字符串形式存储,无论元字段的类型如何。字符串的最大长度限制为500000。

3. 查询接口

3.1. 查询应用折扣活动
  • GET:/sales/discount_app/:discount_app_id.json
  • 描述:通过活动规则 ID 查询一个 应用折扣活动。
  • 前置条件:要求应用程序必须具有read_discounts访问权限范围
  • 入参:

REST参数:discount_app_id,function活动的 ID

  • 返回:
字段 类型 描述
function_id String 函数的 ID。
discount_type String 折扣的类型。有效枚举值: automatic:自动折扣 code:折扣码
code string 客户可以用来兑换折扣的折扣码。当 discountType = code 时才有值。
combines_with Object 折扣可以与哪些折扣维度叠加使用。
combines_with.order_discounts Boolean 是否与订单折扣叠加。 true:叠加订单折扣 false:不叠加订单折扣
combines_with.product_discounts Boolean 是否与商品折扣叠加 true:叠加商品折扣 false:不叠加商品折扣
combines_with.shipping_discounts Boolean 是否与运费折扣叠加 true:叠加运费折扣 false:不叠加运费折扣
created_at Date 折扣创建的时间。
app_discount_id String 折扣 ID。
ends_at Date 折扣结束的日期和时间。
starts_at Date 折扣开始的日期和时间。
status String 折扣的状态。
title String 折扣的标题。
updated_at Date 折扣更新的日期和时间。
metafields Object [] 关联到该折扣活动的元字段信息。
metafields.description String 元字段的描述。 最大长度限制:255
metafields.key String 元字段定义在其 namespace 下的唯一标识符。仅支持字母、数字、连字符和下划线字符。 最小长度限制:3 最大长度限制:30
metafields.namespace String 元字段的命名空间。通过命名空间可对元字段进行分组,避免具有相同健名的元字段发生冲突。通过 key 和 namespace 可以唯一确定元字段。 仅支持字母、数字、连字符和下划线字符。 最小长度限制:2 最大长度限制:50
metafields.type String 存储在元字段中的数据类型。
metafields.value String 存储在元字段中的数据。始终以字符串形式存储,无论元字段的类型如何。
3.2. 查询店铺的应用折扣列表
  • GET:/sales/discount_app.json
  • 描述:查询店铺内由函数应用创建的折扣活动列表。
  • 前置条件:要求应用程序必须具有read_discounts访问权限范围
  • Query参数
    • limit integer:查询数量限制,默认50,不能超过100
    • page_info string:加密后的请求参数,用于上一页、下一页,直接取该字段解析访问
      • Example: eyJxdWVyeVBhcmFtU3RyaW5nIjoie1wic2l6ZVwiOjEsXCJzb3J0XCI6W1widWlkOmRlc2NcIl0sXCJzdG9yZUlkXCI6XCIxNjM5NjQwNTgxMzQ2XCIsXCJ1aWRcIjpcIjBcIixcInVwZGF0ZVRpbWVcIjpcIlwifSIsInNpbmNlSWRMaXN0IjpbIjU1NTUiXSwicGFnZSI6Miwic2l6ZSI6MSwiaW5pdFNvcnQiOlsidWlkOmRlc2MiXSwic29ydCI6WyJ1aWQ6ZGVzYyJdLCJkaXJlY3Rpb24iOiJuZXh0In0
    • function_id:支持通过function_id过滤。仅支持传入一个。
    • Status:支持通过活动状态过滤。
      • 有效枚举值:active (生效中), expired (已过期), scheduled (待生效)
    • Discount_type:支持通过折扣的形式过滤
      • 有效枚举值:code(折扣码)、automatic(自动折扣)
    • since_id:起始的折扣活动ID
    • update_at_min:更新时间最小值
    • update_at_max:更新时间最大值
  • 返回
字段 类型 描述
discount_apps Object 应用折扣列表。
function_id String 函数的 ID。
discount_type String 折扣的类型。有效枚举值: automatic:自动折扣 code:折扣码
code string 客户可以用来兑换折扣的折扣码。当 discountType = code 时才有值。
combines_with Object 折扣可以与哪些折扣维度叠加使用。
combines_with.order_discounts Boolean 是否与订单折扣叠加。 true:叠加订单折扣 false:不叠加订单折扣
combines_with.product_discounts Boolean 是否与商品折扣叠加 true:叠加商品折扣 false:不叠加商品折扣
combines_with.shipping_discounts Boolean 是否与运费折扣叠加 true:叠加运费折扣 false:不叠加运费折扣
created_at Date 折扣创建的时间。
app_discount_id String 折扣 ID。
ends_at Date 折扣结束的日期和时间。
starts_at Date 折扣开始的日期和时间。
status String 折扣的状态。
title String 折扣的标题。
updated_at Date 折扣更新的日期和时间。
metafields Object [] 关联到该折扣活动的元字段信息。
metafields.description String 元字段的描述。 最大长度限制:255
metafields.key String 元字段定义在其 namespace 下的唯一标识符。仅支持字母、数字、连字符和下划线字符。 最小长度限制:3 最大长度限制:30
metafields.namespace String 元字段的命名空间。通过命名空间可对元字段进行分组,避免具有相同健名的元字段发生冲突。通过 key 和 namespace 可以唯一确定元字段。 仅支持字母、数字、连字符和下划线字符。 最小长度限制:2 最大长度限制:50
metafields.type String 存储在元字段中的数据类型。
metafields.value String 存储在元字段中的数据。始终以字符串形式存储,无论元字段的类型如何。