> ## 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.

# Bulk update product variants

> Updates multiple product variants in a single batch operation. Supports partial updates to variant properties including name, status, stock levels, dimensions, and custom fields. Processes up to 50 variants per batch. Returns arrays of successful and failed updates.



## OpenAPI

````yaml /swagger/management-api.json patch /api/v1/{team_slug}/{app_slug}/variants/bulk
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}/variants/bulk:
    patch:
      tags:
        - Variants
        - Bulk
      summary: Bulk update product variants
      description: >-
        Updates multiple product variants in a single batch operation. Supports
        partial updates to variant properties including name, status, stock
        levels, dimensions, and custom fields. Processes up to 50 variants per
        batch. Returns arrays of successful and failed updates.
      parameters:
        - description: Team slug
          in: path
          name: team_slug
          required: true
          schema:
            type: string
        - description: App slug
          in: path
          name: app_slug
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/internal_pkg_webserver_v1.BulkPatchVariantsPayload
        description: Variants data to update
        required: true
      responses:
        '200':
          description: Variants updated successfully
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/internal_pkg_webserver_v1.OkResponseBulkPatchVariants
        '400':
          description: Invalid request
          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.BulkPatchVariantsPayload:
      properties:
        variants:
          items:
            $ref: >-
              #/components/schemas/internal_pkg_webserver_v1.BulkPatchVariantItem
          maxItems: 50
          type: array
      required:
        - variants
      type: object
    internal_pkg_webserver_v1.OkResponseBulkPatchVariants:
      properties:
        data:
          $ref: >-
            #/components/schemas/internal_pkg_webserver_v1.BulkPatchVariantsResponse
        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.BulkPatchVariantItem:
      properties:
        custom_fields:
          additionalProperties:
            type: string
          description: >-
            Custom fields - null value removes the field, non-null merges with
            existing
          type: object
        id:
          type: string
        purchase_price:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.PurchasePrice
        status:
          description: Status of the product
          enum:
            - active
            - draft
            - inactive
          type: string
        stock:
          description: Stock level of the variant
          items:
            $ref: '#/components/schemas/internal_pkg_webserver_v1.InputVariantStock'
          type: array
        validate_stock:
          type: boolean
        variant_dimensions:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Dimensions
        variant_group_id:
          type: string
        variant_name:
          description: Name of the variant
          type: string
      required:
        - id
        - stock
      type: object
    internal_pkg_webserver_v1.BulkPatchVariantsResponse:
      properties:
        failed:
          items:
            $ref: >-
              #/components/schemas/internal_pkg_webserver_v1.BulkPatchFailedUpdate
          type: array
        successful:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Variant
          type: array
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.PurchasePrice:
      properties:
        currency:
          type: string
        value_cents:
          type: integer
      type: object
    internal_pkg_webserver_v1.InputVariantStock:
      properties:
        inventory_date:
          description: ISO 8601 date format with time zone e.g. 2024-12-12T09:13:31.039Z.
          type: string
        quantity:
          type: integer
        warehouse_slug:
          type: string
      required:
        - warehouse_slug
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.Dimensions:
      properties:
        capacity_milliliter:
          description: the capacity in milliliter
          minimum: 0
          type: integer
        depth:
          description: The products depth in millimeter
          minimum: 0
          type: integer
        diameter:
          description: the products diameter in millimeter
          minimum: 0
          type: integer
        height:
          description: The products height in millimeter
          minimum: 0
          type: integer
        length:
          description: The products length in millimeter
          minimum: 0
          type: integer
        weight:
          description: The products weight in grams
          minimum: 0
          type: integer
        width:
          description: The products width in millimeter
          minimum: 0
          type: integer
      type: object
    internal_pkg_webserver_v1.BulkPatchFailedUpdate:
      properties:
        id:
          type: string
        reason:
          type: string
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.Variant:
      properties:
        attributes:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute
          type: array
        created_at:
          type: string
        custom_fields:
          additionalProperties:
            type: string
          type: object
        id:
          type: string
        images:
          description: Images of the product
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ImageWithPriority
          type: array
        listings:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VariantListings
        parent_product_id:
          type: string
        purchase_price:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.PurchasePrice
        shipping_attributes:
          items:
            type: string
          type: array
        source_app_id:
          type: string
        source_id:
          type: string
        status:
          type: string
        store_group:
          description: Product StoreGroup
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantStoreGroupWithPrices
          type: array
        tags:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Tag
          type: array
        translations:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantTranslations
        updated_at:
          type: string
        validate_stock:
          type: boolean
        variant_dimensions:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Dimensions
        variant_group_id:
          type: string
        variant_name:
          type: string
        variant_number:
          type: string
        videos:
          description: Videos of the product
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Video
          type: array
        warehouse_variant_stock:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.WarehouseVariantStock
          type: array
      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.ImageWithPriority:
      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
        priority:
          type: integer
        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.VariantListings:
      properties:
        smart:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VariantListing
          type: array
        static:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VariantListing
          type: array
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantStoreGroupWithPrices:
      properties:
        created_at:
          type: string
        id:
          type: string
        name:
          type: string
        prices:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantPrice
          type: array
        slug:
          type: string
        store_type:
          type: string
        updated_at:
          type: string
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.Tag:
      properties:
        attributes:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute
          type: array
        created_at:
          type: string
        filterable:
          type: boolean
        id:
          type: string
        key:
          type: string
        markets:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Market
          type: array
        name:
          type: string
        schedules:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Job
          type: array
        source_app_id:
          type: string
        source_id:
          type: string
        status:
          type: string
        translations:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.TagTranslations
        updated_at:
          type: string
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantTranslations:
      properties:
        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.Video:
      properties:
        attributes:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Attribute
          type: array
        description:
          type: string
        folder_id:
          type: string
        id:
          type: string
        path:
          type: string
        public:
          type: boolean
        status:
          type: string
        title:
          type: string
        translations:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VideoTranslations
        variants:
          items:
            $ref: >-
              #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.VideoVariant
          type: array
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.WarehouseVariantStock:
      properties:
        available_online:
          type: boolean
        created_at:
          type: string
        id:
          type: string
        inventory_date:
          type: string
        quantity:
          type: integer
        updated_at:
          type: string
        warehouse_name:
          type: string
        warehouse_slug:
          type: string
      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.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.VariantListing:
      properties:
        id:
          type: string
        slug:
          type: string
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.ProductVariantPrice:
      properties:
        amount_cents_with_tax:
          type: integer
        created_at:
          type: string
        id:
          type: string
        market:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.Market
        on_sale:
          type: boolean
        reference_price_with_tax:
          type: integer
        sale_end_timestamp:
          type: string
        sale_price_with_tax:
          type: integer
        sale_start_timestamp:
          type: string
        status:
          $ref: >-
            #/components/schemas/github_com_enadhq_nabbit_internal_pkg_webserver_models.PriceStatus
        updated_at:
          type: string
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.Market:
      properties:
        active:
          type: boolean
        country_codes:
          items:
            type: string
          type: array
        created_at:
          type: string
        currency_code:
          type: string
        id:
          type: string
        locale:
          type: string
        name:
          type: string
        slug:
          type: string
        updated_at:
          type: string
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.Job:
      properties:
        add_category_names:
          items:
            type: string
          type: array
        add_collection_names:
          items:
            type: string
          type: array
        add_tag_names:
          items:
            type: string
          type: array
        execute_at:
          description: Date when the job should run
          type: string
        finished_at:
          description: If a job is finished will this timestamp be filled
          type: string
        group_id:
          type: string
        id:
          type: string
        item_id:
          type: string
        item_name:
          type: string
        item_type:
          type: string
        remove_category_names:
          items:
            type: string
          type: array
        remove_collection_names:
          items:
            type: string
          type: array
        remove_tag_names:
          items:
            type: string
          type: array
        to_amount_cents_with_tax:
          type: integer
        to_market_id:
          type: string
        to_market_status:
          type: string
        to_on_sale:
          type: boolean
        to_sale_amount_cents_with_tax:
          type: integer
        to_start_sale_timestamp:
          type: string
        to_status:
          type: string
        to_stop_sale_timestamp:
          type: string
        to_store_group_id:
          type: string
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.TagTranslations:
      properties:
        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.Translation:
      properties:
        id:
          type: string
        locale:
          type: string
        value:
          type: string
      type: object
    github_com_enadhq_nabbit_internal_pkg_webserver_models.VideoTranslations:
      properties:
        description:
          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.VideoVariant:
      properties:
        format:
          type: string
        height:
          type: integer
        url:
          type: string
        width:
          type: integer
      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.PriceStatus:
      enum:
        - active
        - inactive
        - draft
      type: string
      x-enum-varnames:
        - ActivePrice
        - InActivePrice
        - DraftPrice

````