> ## Documentation Index
> Fetch the complete documentation index at: https://docs.enad.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Update product bundle

> Updates the specified product bundle's status, discount type, discount percentage, and discount rules. Supports partial updates where only provided fields are modified.



## OpenAPI

````yaml /swagger/management-api.json patch /api/v1/{team_slug}/{app_slug}/bundle-groups/{bundle_group_id}/bundles/{bundle_id}
openapi: 3.0.0
info:
  contact:
    email: support@enad.io
    name: API support
    url: http://enad.io/support
  description: This is the documentation for Public API v1
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  termsOfService: http://enad.io/terms/
  title: Public API
  version: '1.0'
servers:
  - url: //api.enad.io
security: []
paths:
  /api/v1/{team_slug}/{app_slug}/bundle-groups/{bundle_group_id}/bundles/{bundle_id}:
    patch:
      tags:
        - Product Bundles
      summary: Update product bundle
      description: >-
        Updates the specified product bundle's status, discount type, discount
        percentage, and discount rules. Supports partial updates where only
        provided fields are modified.
      parameters:
        - description: App slug
          in: path
          name: app_slug
          required: true
          schema:
            type: string
        - description: Team slug
          in: path
          name: team_slug
          required: true
          schema:
            type: string
        - description: Product bundle group UUID
          in: path
          name: product_bundle_group_id
          required: true
          schema:
            type: string
        - description: Product bundle UUID
          in: path
          name: bundle_id
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/internal_pkg_webserver_v1.UpdateProductBundlePayload
        description: Product bundle update data
        required: true
      responses:
        '200':
          description: Product bundle updated successfully
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/internal_pkg_webserver_v1.OkResponseProductBundle
        '400':
          description: Invalid request (e.g. bad UUID, validation error)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internal_pkg_webserver_v1.ErrorMessage'
        '401':
          description: Unauthorized access
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internal_pkg_webserver_v1.ErrorMessage'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/internal_pkg_webserver_v1.ErrorMessage'
      security:
        - BearerAuth: []
components:
  schemas:
    internal_pkg_webserver_v1.UpdateProductBundlePayload:
      properties:
        discount_percentage:
          description: >-
            Used if discount_type is relative. This will apply to all markets
            it's added to
          maximum: 100
          minimum: 0
          type: integer
        discount_type:
          enum:
            - relative
            - fixed
          type: string
        discounts:
          items:
            $ref: '#/components/schemas/internal_pkg_webserver_v1.BundleGroupDiscount'
          type: array
        status:
          description: Status of the bundle
          enum:
            - active
            - draft
            - inactive
          type: string
      required:
        - discounts
      type: object
    internal_pkg_webserver_v1.OkResponseProductBundle:
      properties:
        data:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Bundle
        details:
          description: >-
            Additional contextual information about the response. Used to
            provide supplementary details beyond the main data payload, such as
            validation warnings or processing notes
          items:
            type: string
          type: array
        success:
          type: boolean
      type: object
    internal_pkg_webserver_v1.ErrorMessage:
      properties:
        details:
          items:
            type: string
          type: array
        message:
          type: string
        success:
          type: boolean
      type: object
    internal_pkg_webserver_v1.BundleGroupDiscount:
      properties:
        amount_cents:
          minimum: 0
          type: integer
        currency_code:
          type: string
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.Bundle:
      properties:
        attributes:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute
          type: array
        compliant:
          allOf:
            - $ref: >-
                #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Compliance
          description: Compliance level for the bundle
        created_at:
          description: Creation timestamp
          type: string
        discount_percentage:
          description: Discount percentage [1-100]
          type: integer
        discount_type:
          description: Discount type [fixed, relative]
          type: string
        discounts:
          additionalProperties:
            format: int64
            type: integer
          description: Discount for bundle. Amount is stored in cents
          type: object
        id:
          description: ID
          type: string
        rules:
          description: Bundle rules
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleRule
          type: array
        status:
          description: Status of the bundle
          type: string
        updated_at:
          description: Last updated timestamp
          type: string
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute:
      properties:
        created_at:
          type: string
        description:
          type: string
        filterable:
          type: boolean
        id:
          type: string
        key:
          type: string
        name:
          type: string
        template_key:
          type: string
        template_name:
          type: string
        translatable:
          type: boolean
        translations:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeTranslations
        updated_at:
          type: string
        values:
          additionalProperties:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeValue
          type: object
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.Compliance:
      properties:
        info:
          description: >-
            Explanation of any issues with the bundle, it will be empty if the
            bundle is fully compliant
          items:
            type: string
          type: array
        level:
          allOf:
            - $ref: >-
                #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleCompliance
          description: >-
            Compliance level for the bundle, "full" if all rules are valid,
            "partial" if some rules are valid but it can still be used as a
            bundle, "none" if no rules are valid
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleRule:
      properties:
        bundle_id:
          description: Bundle ID
          type: string
        discount_percentage:
          description: Discount percentage [1-100]
          type: integer
        discount_type:
          description: Discount type [fixed, relative]
          type: string
        discounts:
          additionalProperties:
            format: int64
            type: integer
          description: Discount for bundle. Amount is stored in cents
          type: object
        exclude_discounted_price:
          description: If products with discounted price should be excluded
          type: boolean
        exclude_full_price:
          description: If products with full price should be excluded
          type: boolean
        id:
          description: ID
          type: string
        items:
          description: Products associated with the bundle rule
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleItem
          type: array
        quantity:
          description: Quantity of products needed to trigger the bundle
          type: integer
        tag_conditions:
          allOf:
            - $ref: >-
                #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.TagConditionsResp
          description: Conditions for discount tags
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeTranslations:
      properties:
        description:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation
          type: array
        name:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation
          type: array
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeValue:
      properties:
        field_id:
          type: string
        id:
          type: string
        image_id:
          type: string
        image_object:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Image
        translations:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeValueTranslations
        type:
          type: string
        value:
          type: string
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleCompliance:
      enum:
        - none
        - partial
        - full
      type: string
      x-enum-varnames:
        - BundleComplianceNone
        - BundleCompliancePartial
        - BundleComplianceFull
    github_com_enadhq_nabbit_internal_pkg_webserver_models.BundleItem:
      properties:
        description:
          type: string
        id:
          type: string
        image_urls:
          items:
            type: string
          type: array
        product_name:
          type: string
        product_number:
          type: string
        slug:
          type: string
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.TagConditionsResp:
      properties:
        brands:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.SingleTagConditionResp
        categories:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.SingleTagConditionResp
        collections:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.SingleTagConditionResp
        series:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.SingleTagConditionResp
        tags:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.SingleTagConditionResp
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation:
      properties:
        id:
          type: string
        locale:
          type: string
        value:
          type: string
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.Image:
      properties:
        alt:
          type: string
        app_id:
          type: string
        attributes:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute
          type: array
        blurhash:
          type: string
        copyright:
          type: string
        custom:
          additionalProperties:
            type: string
          type: object
        folder_id:
          type: string
        id:
          type: string
        parent_id:
          type: string
        public:
          type: boolean
        source_app_id:
          type: string
        source_id:
          type: string
        status:
          type: string
        title:
          type: string
        translations:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageTranslation
        url:
          type: string
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.AttributeValueTranslations:
      properties:
        value:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation
          type: array
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.SingleTagConditionResp:
      properties:
        mode:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.DiscountTagEntityMode
        values:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.TagConditionTag
          type: array
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageTranslation:
      properties:
        alt:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation
          type: array
        copyright:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation
          type: array
        title:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Translation
          type: array
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.DiscountTagEntityMode:
      enum:
        - include
        - exclude
      type: string
      x-enum-varnames:
        - DiscountTagEntityModeInclude
        - DiscountTagEntityModeExclude
    github_com_enadhq_nabbit_internal_pkg_webserver_models.TagConditionTag:
      properties:
        id:
          type: string
        name:
          type: string
      type: object

````