注意:使用创建、更新、查询 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 |
存储在元字段中的数据。始终以字符串形式存储,无论元字段的类型如何。 |