Elastic Path Promotions Standard API

The Promotions Standard API from Elastic Path — 3 operation(s) for promotions standard.

OpenAPI Specification

elastic-path-promotions-standard-api-openapi.yml Raw ↑
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.Requ

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/elastic-path/refs/heads/main/openapi/elastic-path-promotions-standard-api-openapi.yml