openapi: 3.1.0 info: version: 25.1126.6886238 x-version-timestamp: 2025-11-26 19:10:23+00:00 title: Addresses Introduction Account Addresses Promotions Standard API description: 'The Addresses API allows you to organize account addresses. Addresses are a sub-resource of `account` resources, an account can have multiple addresses, such as home, work, and neighbour. You can use an account address with either [client_credentials access token](/docs/api/authentication/create-an-access-token) or a combination of [implicit access token](/docs/api/authentication/create-an-access-token) and [Account Management authentication](/docs/api/accounts/post-v-2-account-members-tokens) token. ' contact: name: Elastic Path url: https://www.elasticpath.com email: support@elasticpath.com license: url: https://elasticpath.dev name: MIT servers: - url: https://useast.api.elasticpath.com description: US East - url: https://euwest.api.elasticpath.com description: EU West security: - BearerToken: [] tags: - name: Promotions Standard paths: /v2/promotions: parameters: - $ref: '#/components/parameters/Authorization' get: tags: - Promotions Standard summary: Get all Promotions description: "Returns all promotions.\n\n:::note\n\nYou can use pagination with this resource. For more information, see [pagination](/guides/Getting-Started/pagination).\n\n:::\n\n### Filtering\n\nThe following operators and attributes are available when filtering on this endpoint. See [Supported Filtering Characters](https://elasticpath.dev/guides/Getting-Started/filtering#supported-characters).\n\nUse `code` filter to search codes within promotions.\n\n| Attribute | Type | Operator | Example |\n|:-----|:---------|:---------|:----------------------------------------|\n| `code` | `string` | `eq` | `eq(code,some_code)` | \n\nFor filtering advanced promotion usages, pass the `EP-Public-Search-Type=cm_search` header. Advanced search filtering is only applicable when the promotion code is consumed and the promotion is not deleted.\n\n| Attribute | Type | Operator | Example |\n|:-----|:---------|:---------|:----------------------------------------|\n| `promo_id` | `string` | `eq`\t | `eq(promo_id, 69c63c9d-8ccf-44b1-8e98-1e7feebfb581)` |\n| `promo_name` |`string`\t | `eq`, `like`\t | `eq(promo_name,cart percent discount)` |\n| `promo_type` | `string`\t | `eq`\t | `eq(promo_type,fixed_discount)` |\n| `promo_status` | `string`\t | `eq`\t | `eq(promo_status,Running)` |\n| `promo_checkouts` | `string`\t | `eq`,`gt`, `ge`, `lt`, `le`\t | `eq(promo_checkouts,2)` |\n| `promo_skus_prod_ids` |\t`string`\t | `eq`, `like`\t | `eq(promo_skus_prod_ids, sku1)` |\n| `promo_start_date` |\t`string`\t| `eq`, `gt`, `gr`, `lt`, `le` | `eq(promo_start_date,2023-01-01)` |\n| `promo_end_date` |\t`string` | `eq`, `gt`, `gr`, `lt`, `le`\t | `eq(promo_end_date,2050-06-15)` |\n| `code_id`\t | `string` | `eq` | `eq(promo_id,2ea0cd1d-43a9-441b-b03f-3cab84aaee0c):eq(code_id,14b55e6c-3f80-436e-a90a-4de5f0e36240)` |\n| `code_code` | `string` | `eq`, `like` | \t`eq(code_code,cart_fixed_10)` |\n| `code_used`\t | `string` | `eq`, `gt`, `gr`, `lt`, `le`\t | `eq(code_used,2)` |\n| `code_created_date` |\t`string`\t| `eq`, `gt`, `gr`, `lt`, `le`\t | `eq(code_created_date,2023-11-15)` |\n| `order_id` |\t`string` | `eq`, `like`\t | `eq(order_id,ccb13673-627c-4976-88da-f77c542b528f)` |\n| `order_customer_email`\t | `string` | `eq`, `like`\t | `like(order_customer_email,andy*)` |\n| `order_created_date`\t | `string`\t| `eq`, `gt`, `gr`,`lt`, `le`\t | `le(order_created_date,2023-11-15)` | \n" operationId: getAllPromotions parameters: - name: page[offset] in: query description: The number of records to offset the results by. style: form explode: true schema: type: string examples: - '0' - name: page[limit] in: query description: The number of records per page. style: form explode: true schema: type: string examples: - '10' responses: '200': description: '' headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/Response.Data' - properties: data: type: array items: $ref: '#/components/schemas/Data.PromotionObject' links: $ref: '#/components/schemas/Response.PageLinks' meta: $ref: '#/components/schemas/Response.Meta.Promotions' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Response.Error' example: - errors: - status: 401 title: Unauthorized deprecated: false post: tags: - Promotions Standard summary: Create a Promotion description: "You can use this endpoint to create the following types of promotion:\n - Cart Fixed Discount Promotion\n - Cart Percent Discount Promotion\n - X for Y Discount Promotion\n - X for Amount Discount Promotion\n - Fixed Bundle Discount Promotion\n - Item Fixed Discount Promotion\n - Item Percent Discount Promotion\n - Free Gift Promotion\n\n### The `schema` object\n\nPromotions are defined by schemas that are used internally to verify promotions and calculate discounts. You must define a schema when you create the promotion. For more information, see the schema.exclude criteria and the targeting fields criteria.\n\n#### The `schema.exclude` criteria\n\nWhen creating a promotion, you can specify when it **should not** be applied. The promotion will not be applied on any cart (or cart item, depending on the promotion type) that fulfills at least one of the `schema.exclude` criteria. The following criteria can be set to exclude items from a promotion:\n\n- `schema.exclude.targets`\n- `schema.exclude.nodes`\n- `schema.exclude.attributes`\n- `schema.exclude.conditions`\n\nFor example, if you want to create a promotion with value as *SKU1* in `schema.exclude.targets` and and color *yellow* and size *small* in `schema.exclude.attributes`, then any products with *SKU1* or the color *yellow* or the size *small* will be excluded from the promotion.\n\nTo exclude products from a promotion based on multiple conditions at the same time, use `schema.exclude.conditions`. For example, use `schema.exclude.conditions` to exclude items that are both *yellow* in color and *small* in size.\n\n#### The targeting fields criteria\n\nWhen creating a promotion, you can also specify when it **should** be applied. To define the targeted products, use the following fields:\n\n - `schema.target_catalogs`\n - `schema.targets`\n - `schema.target_nodes`\n - `schema.target_attributes`\n - `schema.target_conditions`\n\nThe cart item's catalog is verified if you define the `schema.target_catalogs` field. If the item is in any of the targeted catalogs specified in `schema.target_catalogs`, the promotion will be applied. If the item is not in any of the catalogs, the promotion will not be applied.\n\nThen, the cart item is verified to see if it fulfills at least one criteria of any of the four other targeting fields. In other words, the `schema` targeting fields such as `schema.targets`, `schema.target_nodes`, `schema.target_attributes` and `schema.target_conditions` create *OR* targeting conditions.\n\nFor example, if you create a promotion with values as *SKU1* in `schema.targets` and color *yellow* and size *small* in `schema.target_attributes`, then it will be applied to any products with *SKU1* or the color *yellow* or the size *small*.\n\nTo create a promotion that targets products based on multiple conditions at the same time, use `schema.target_conditions`. For example, use it to target items that are both *yellow* in color and *small* in size.\n\n:::note\n\nFor Cart Fixed Discount Promotion and Cart Percent Discount Promotion, the cart item's catalog is verified if you define the `schema.target_catalogs` field. If the item is in any of the targeted catalogs specified in `schema.target_catalogs`, the promotion will be applied. If the item is not in any of the catalogs, the promotion will not be applied.\n\n:::\n\n:::caution\n\n- Line-item discounts are only supported by the line calculation method. For more information about this method, see the Calculation Method section.\n- Hierarchy-based promotions are not supported for fixed bundle discount promotion and free gift promotion. To promote a bundle, create the bundle in Product Experience Manager, and then create a promotion for that bundle. For more information, see Bundles in Product Experience Manager.\n- For Free Gift Promotion, we recommend using `auto_add_free_gift` feature with `automatic` setting enabled. When `automatic` is set to `true`, it indicates that promotions are added automatically, and discounts are applied accordingly. If you enable the `auto_add_free_gift`, but do not enable the `automatic` setting, gift items will be added without discounts. In this case, shoppers need to apply coupon codes twice, first to add the gift item and then to apply the discount.\n\n:::\n" operationId: createAPromotion parameters: [] requestBody: description: '' content: application/json: schema: required: - data properties: data: $ref: '#/components/schemas/Data.PromotionObject' required: false responses: '201': description: '' headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/Response.Data' - properties: data: type: object $ref: '#/components/schemas/Data.PromotionObject' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Response.Error' example: - errors: - status: 401 title: Unauthorized deprecated: false /v2/promotions/{promotionID}: parameters: - $ref: '#/components/parameters/Authorization' get: tags: - Promotions Standard summary: Get a Promotion description: Retrieves a promotion. operationId: getAPromotion parameters: - name: promotionID in: path description: The ID of the promotion. required: true style: simple schema: type: string responses: '200': description: OK content: application/json: schema: allOf: - $ref: '#/components/schemas/Response.Data' - properties: data: $ref: '#/components/schemas/Data.PromotionObject' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Response.Error' example: - errors: - status: 401 title: Unauthorized deprecated: false put: tags: - Promotions Standard summary: Update a Promotion description: "Use this endpoint to update a specific promotion.\n\n:::note\n\n You can re-enable an expired promotion by updating the end date to a future date. However, when you enable a promotion again, all codes previously attached to it are deleted to make sure that duplicate promotion codes do not exist on different promotions.\n\n:::\n\n### Errors\n\nWhen extending the end date of an expired promotion with over 1000 codes, you will receive the following error response. In such cases, we recommend duplicating the promotion, allowing you to set the new end dates and create promotion codes as needed.\n\n```json\n{\n \"errors\": [\n {\n \"status\": 422,\n \"source\": \"request\",\n \"title\": \"Unprocessable Entity\",\n \"detail\": \"\"\n }\n ]\n}\n```\n" operationId: updateAPromotion parameters: - name: promotionID in: path description: The unique promotion identifier. required: true style: simple schema: type: string requestBody: description: '' content: application/json: schema: allOf: - $ref: '#/components/schemas/Data.PromotionObject' required: false responses: '200': description: '' headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/Response.Data' - properties: data: type: object $ref: '#/components/schemas/Data.PromotionObject' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Response.Error' example: - errors: - status: 401 title: Unauthorized deprecated: false delete: tags: - Promotions Standard summary: Delete a Promotion description: Use this endpoint to delete a specific promotion. operationId: deleteAPromotion parameters: - name: promotionID in: path description: The ID of the promotion that you want to delete. required: true style: simple schema: type: string responses: '204': description: No Content '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Response.Error' example: - errors: - status: 401 title: Unauthorized deprecated: false /v2/promotions/{promotionID}/history: parameters: - $ref: '#/components/parameters/Authorization' get: tags: - Promotions Standard summary: Get a Promotion History description: Use this endpoint to retrieve a promotion history. operationId: getAPromotionHistory parameters: - name: promotionID in: path description: The ID of the promotion. required: true style: simple schema: type: string responses: '200': description: '' headers: {} content: application/json: schema: allOf: - $ref: '#/components/schemas/Response.Data' - properties: data: type: array items: $ref: '#/components/schemas/Data.PromotionObject' links: $ref: '#/components/schemas/Response.PageLinks' meta: $ref: '#/components/schemas/Response.Meta.Promotions' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/Response.Error' example: - errors: - status: 401 title: Unauthorized deprecated: false components: schemas: Data.AttributeObject: title: Data.AttributeObject type: object properties: attribute: type: object properties: template: description: Specifies the name of the template slug to be excluded from a promotion. type: string examples: - products(shoes) field: description: Specifies the unique slug identifier for the field excluded from a promotion. type: string examples: - brand type: description: Specifies the type of the field, such as `string`, `integer`, `boolean`, `float`, or `date`. type: string examples: - string value: description: Specifies the value of the field that was specified in the `attributes.field`. For example, you can specify any color in the value if you indicate color in the `attributes.field`. type: string examples: - adidas Data.FixedBundleDiscountPromotion: title: Data.FixedBundleDiscountPromotion allOf: - $ref: '#/components/schemas/Data.BasePromotions' - type: object properties: schema: allOf: - $ref: '#/components/schemas/Data.Promotions.Schema.TargetCatalogs' - $ref: '#/components/schemas/Data.Promotions.Schema.AmountAndCurrencyArray' - $ref: '#/components/schemas/Data.Promotions.Schema.Requirements' Data.XForAmountDiscountPromotion: title: Data.XForAmountDiscountPromotion allOf: - $ref: '#/components/schemas/Data.BasePromotions' - type: object properties: schema: allOf: - $ref: '#/components/schemas/Data.Promotions.Schema.TargetCatalogs' - $ref: '#/components/schemas/Data.Promotions.Schema.Targets' - $ref: '#/components/schemas/Data.Promotions.Schema.TargetNodes' - $ref: '#/components/schemas/Data.Promotions.Schema.AmountAndCurrencyArray' - $ref: '#/components/schemas/Data.Promotions.Schema.Exclude' - $ref: '#/components/schemas/Data.Promotions.Schema.XValue' Data.Promotions.Schema.Gifts: title: Data.Promotions.Schema.Gifts type: object required: - gifts properties: gifts: description: Specifies all the gift items that a shopper can avail when they qualify for the promotion. The gift quantity applies to each specified item. For example, if the promotion includes `giftA` and `giftB`, shopper can avail both the gifts if the cart qualifies for the gift promotion. If the cart qualifies for two gift promotions, the shopper can use two `giftA` and two `giftB`. type: array items: type: string auto_add_free_gift: description: When set to `true`, free gift items are automatically added to the shopping cart for all the eligible products. Default is `false`. type: boolean Data.Promotions.Schema.TargetNodes: title: Data.Promotions.Schema.TargetNodes type: object properties: target_nodes: description: Specifies the unique identifiers of the nodes to be applied for the promotion in addition to the product SKUs applied in targets. You can also define `schema.target_nodes` without defining the `schema.targets` if the promotion is intended for a certain node. You cannot define "targets":"all" and `schema.target_nodes` within the same schema. This will result in a validation error. type: array items: type: string examples: - ff7d62d4-740c-43ac-97cd-a7b0c32221c2 Data.Promotions.Schema.YValue: title: Data.Promotions.Schema.YValue type: object required: - y properties: y: description: Specifies the Y value for the promotion. type: integer Data.Promotions.Schema.PercentageAndCurrencyArray: title: Data.Promotions.Schema.PercentageAndCurrencyArray type: object required: - currencies properties: currencies: type: array items: $ref: '#/components/schemas/Data.Promotions.Schema.Currencies.PercentageAndCurrency' Data.Promotions.Schema.Currencies.AmountAndCurrency: title: Data.Promotions.Schema.Currencies.AmountAndCurrency type: object required: - amount - currency properties: amount: description: Specifies the fixed discount amount to be applied to the cart. For example, $10 off the total amount in the cart. type: integer currency: description: Specifies a three-letter currency code. For example, USD. type: string Data.ItemPercentDiscountPromotion: title: Data.ItemPercentDiscountPromotion allOf: - $ref: '#/components/schemas/Data.BasePromotions' - type: object properties: schema: allOf: - $ref: '#/components/schemas/Data.Promotions.Schema.TargetCatalogs' - $ref: '#/components/schemas/Data.Promotions.Schema.Targets' - $ref: '#/components/schemas/Data.Promotions.Schema.TargetNodes' - $ref: '#/components/schemas/Data.Promotions.Schema.TargetAttributes' - $ref: '#/components/schemas/Data.Promotions.Schema.Exclude' - $ref: '#/components/schemas/Data.Promotions.Schema.Percent' Data.Promotions.Schema.XValue: title: Data.Promotions.Schema.XValue type: object required: - x properties: x: description: Specifies the X value for the promotion. type: integer Response.PaginationPage: type: object properties: current: description: The current page. type: integer limit: description: The maximum number of records per page for this response. You can set this value up to 100. type: integer offset: description: The current offset by number of records, not pages. Offset is zero-based. type: integer total: description: The total page count. type: integer Data.ItemFixedDiscountPromotion: title: Data.ItemFixedDiscountPromotion allOf: - $ref: '#/components/schemas/Data.BasePromotions' - type: object properties: schema: allOf: - $ref: '#/components/schemas/Data.Promotions.Schema.TargetCatalogs' - $ref: '#/components/schemas/Data.Promotions.Schema.Targets' - $ref: '#/components/schemas/Data.Promotions.Schema.TargetNodes' - $ref: '#/components/schemas/Data.Promotions.Schema.TargetAttributes' - $ref: '#/components/schemas/Data.Promotions.Schema.AmountAndCurrencyArray' - $ref: '#/components/schemas/Data.Promotions.Schema.Exclude' Data.Promotions.Schema.Requirement: title: Data.Promotions.Schema.Requirement type: object required: - targets - quantity properties: targets: description: Specifies an array of required product SKUs or IDs for the bundle discount promotion. type: array items: type: string quantity: description: Specifies the quantities of products to be applied for the promotion. type: integer Data.FreeGiftPromotion: title: Data.FreeGiftPromotion allOf: - $ref: '#/components/schemas/Data.BasePromotions' - type: object properties: schema: allOf: - $ref: '#/components/schemas/Data.Promotions.Schema.TargetCatalogs' - $ref: '#/components/schemas/Data.Promotions.Schema.Requirements' - $ref: '#/components/schemas/Data.Promotions.Schema.Gifts' Data.Promotions.Schema.AmountAndCurrencyArray: title: Data.Promotions.Schema.AmountAndCurrencyArray type: object required: - currencies properties: currencies: type: array items: $ref: '#/components/schemas/Data.Promotions.Schema.Currencies.AmountAndCurrency' Data.Promotions.Schema.Currencies.PercentageAndCurrency: title: Data.Promotions.Schema.Currencies.PercentageAndCurrency type: object required: - percentage - currency properties: percentage: description: Specifies the discount percentage of the cart total value. For example, 10 represents 10% discount of the cart value of $100. You can add up to six decimal places for the discount percentage to be applied for the promotion. type: number currency: description: Specifies a three-letter currency code. For example, USD. type: string Response.Error: type: array properties: detail: type: string status: type: string title: type: string Data.BasePromotions: title: Data.Promotions type: object required: - type - id - name - description - automatic - enabled - promotion_type - schema - start - end properties: type: description: Specifies the type of the resource. The type of resource for promotions is `promotion`. type: string const: promotion id: type: string format: uuid readOnly: true name: description: Specifies a name for the promotion. type: string examples: - Buy SKU1 and SKU2 to get free gift description: description: Specifies a description for the promotion. type: string examples: - SKU1 and SKU2 for free gift promotion_type: description: Specifies the type of the promotion. type: string enum: - fixed_discount - percent_discount - item_fixed_discount - item_percent_discount - x_for_y - x_for_amount - bundle_fixed_discount - bundle_gift enabled: description: Specifies whether the promotion is enabled. The options are `true` or `false`, and the default setting is `false`. type: boolean examples: - true automatic: description: Specifies whether the promotion is applied automatically to the cart or a code is required to apply the promotion. The default setting is to `false`. When this value is set to `true`, a code is autogenerated. If this value is set to `false`, you must create the code manually. For more information about creating codes, see the Create Promotion Codes section. type: boolean examples: - true start: description: Specifies the start date and time of the promotion or the start date of the promotion. You can provide a specific time in the HH:MM format. type: string examples: - 2020-01-01 end: description: Specifies the end date and time of the promotion or the end date of the promotion. type: string examples: - 2100-01-01 min_cart_value: description: Specifies an array of currency-value objects, `min_cart_value[].currency` and `min_cart_value[].amount`, that provides the minimum cart value required for the promotion to apply. You can add one or several value specifications in different currencies. Do not use `max_discount_value` for Cart Fixed Discount promotion and Item Fixed Discount promotion. If `max_discount_value` is greater than the `fixed_discount` value, the `fixed_discount` value is applied; otherwise the `max_discount value` is applied. type: object examples: - amount: 1000 currency: USD max_applications_per_cart: description: Specifies the maximum number of application of a promotion per cart. type: number examples: - 0 Data.Promotions.Schema.Exclude: title: Data.Promotions.Schema.Exclude type: object properties: conditions: type: object $ref: '#/components/schemas/Data.Conditions' Data.NodesObject: title: Data.NodesObject type: object properties: node: type: object properties: values: description: Specifies unique identifiers of the nodes to be excluded from the promotion. type: array items: type: string description: node or hierarchy ids examples: - 19650d2e-7e9d-496a-8658-5107dd8ad803 - fe0cff14-1b7e-4abf-88db-cd0fd6a3ec5b Data.Promotions.Schema.Percent: title: Data.Promotions.Schema.Percent type: object required: - percent properties: percent: description: Specifies the discount percentage to be applied to the targeted SKU price. For example, 10% discount on a product SKU priced at $100. You can specify the discount percentage with up to six decimal places. type: integer Response.Meta.Promotions: title: Response.Meta.Promotions type: object properties: page: $ref: '#/components/schemas/Response.PaginationPage' results: $ref: '#/components/schemas/Response.PaginationResults' Data.CartPercentDiscountPromotion: title: Data.CartPercentDiscountPromotion allOf: - $ref: '#/components/schemas/Data.BasePromotions' - type: object properties: schema: allOf: - $ref: '#/components/schemas/Data.Promotions.Schema.TargetCatalogs' - $ref: '#/components/schemas/Data.Promotions.Schema.PercentageAndCurrencyArray' - $ref: '#/components/schemas/Data.Promotions.Schema.Exclude' Data.CartFixedDiscountPromotion: title: Data.CartFixedDiscountPromotion allOf: - $ref: '#/components/schemas/Data.BasePromotions' - type: object properties: schema: allOf: - $ref: '#/components/schemas/Data.Promotions.Schema.TargetCatalogs' - $ref: '#/components/schemas/Data.Promotions.Schema.AmountAndCurrencyArray' - $ref: '#/components/schemas/Data.Promotions.Schema.Exclude' Data.Promotions.Schema.TargetAttributes: title: Data.Promotions.Schema.TargetAttributes type: object properties: target_attributes: type: array items: type: object properties: template: description: Specifies the name of the template slug to be included in a promotion. type: string examples: - products(shoes) field: description: Specifies the unique slug identifier for the field to be included in a promotion. type: string examples: - brand type: description: Specifies the type of the field, such as `string`, `integer`, `boolean`, `float`, or `date`. type: string examples: - string value: description: Specifies the value of the field that was specified in the `attributes.type`. For example, you can specify any color in the value if you indicate color in the `attributes.field`. type: string examples: - adidas Response.PaginationResults: type: object properties: total: description: The total number of results. type: integer Response.Data: description: Specifies the type of the resource. The type of resource for promotions is, `promotion_codes`. type: object properties: data: {} Data.Promotions.Schema.Requirements: title: Data.Promotions.Schema.Requirements type: object required: - requirements properties: requirements: type: array items: $ref: '#/components/schemas/Data.Promotions.Schema.Requirement' Response.PageLinks: type: object properties: current: description: Always the current page. type: string first: description: Always the first page. type: string last: description: If there is only one page, it returns `null`. type: string next: description: If there is only one page, it returns `null`. type: string prev: description: If the user is on the first page, it returns `null`. type: string Data.Conditions: title: Data.Conditions type: object properties: or: type: array items: type: object properties: and: type: array items: oneOf: - $ref: '#/components/schemas/Data.AttributeObject' - $ref: '#/components/schemas/Data.NodesObject' Data.Promotions.Schema.TargetCatalogs: title: Data.Promotions.Schema.TargetCatalogs type: object properties: target_catalogs: description: Specifies the unique identifiers of the catalogs to be applied for this promotion. If you do not set this parameter, promotion will be applied to all catalogs. type: array items: type: string examples: - baff37e6-1c9b-449d-852c-80ec4d0e39c6 Data.XForYDiscountPromotion: title: Data.XForYDiscountPromotion allOf: - $ref: '#/components/schemas/Data.BasePromotions' - type: object properties: schema: allOf: - $ref: '#/components/schemas/Data.Promotions.Schema.TargetCatalogs' - $ref: '#/components/schemas/Data.Promotions.Schema.Targets' - $ref: '#/components/schemas/Data.Promotions.Schema.TargetNodes' - $ref: '#/components/schemas/Data.Promotions.Schema.TargetAttributes' - $ref: '#/components/schemas/Data.Promotions.Schema.Exclude' - $ref: '#/components/schemas/Data.Promotions.Schema.XValue' - $ref: '#/components/schemas/Data.Promotions.Schema.YValue' Data.Promotions.Schema.Targets: title: Data.Promotions.Schema.Targets type: object properties: targets: description: Specifies the product SKUs or unique identifiers of the products included in the promotion. Set "targets:all" if you want to apply the promotion to all SKUs. Leaving this field empty might cause errors. You need to define `schema.targets`, `schema.target_nodes` or `schema.target_attributes`, or all three of them to qualify for this promotion. type: array items: type: string examples: - sku1 Data.PromotionObject: type: object oneOf: - $ref: '#/components/schemas/Data.CartFixedDiscountPromotion' - $ref: '#/components/schemas/Data.CartPercentDiscountPromotion' - $ref: '#/components/schemas/Data.ItemFixedDiscountPromotion' - $ref: '#/components/schemas/Data.ItemPercentDiscountPromotion' - $ref: '#/components/schemas/Data.XForYDiscountPromotion' - $ref: '#/components/schemas/Data.XForAmountDiscountPromotion' - $ref: '#/components/schemas/Data.FixedBundleDiscountPromotion' - $ref: '#/components/schemas/Data.FreeGiftPromotion' discriminator: propertyName: promotion_type mapping: fixed_discount: '#/components/schemas/Data.CartFixedDiscountPromotion' percent_discount: '#/components/schemas/Data.CartPercentDiscountPromotion' item_fixed_discount: '#/components/schemas/Data.ItemFixedDiscountPromotion' item_percent_discount: '#/components/schemas/Data.ItemPercentDiscountPromotion' x_for_y: '#/components/schemas/Data.XForYDiscountPromotion' x_for_amount: '#/components/schemas/Data.XForAmountDiscountPromotion' bundle_fixed_discount: '#/components/schemas/Data.FixedBundleDiscountPromotion' bundle_gift: '#/components/schemas/Data.FreeGiftPromotion' required: - promotion_type properties: promotion_type: type: string enum: - fixed_discount - percent_discount - item_fixed_discount - item_percent_discount - x_for_y - x_for_amount - bundle_fixed_discount - bundle_gift parameters: Authorization: name: Authorization in: header description: The Bearer token required to get access to the API. required: true schema: type: string format: Bearer securitySchemes: BearerToken: type: http scheme: bearer