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

# Delete Product by ID

> To keep the product list (catalog) up to date and current, it's important to remove products that are discontinued permanently. With this endpoint, you can delete a product (Item, Bundle, or Variant) by ID. Using `deleteVariants` as query parameter, you an optionally specify if you want to delete the associated variants as well. **Note**: If you don't have product ID, use the corresponding SKU-based endpoint - `DELETE /products/sku/{sku}`.



## OpenAPI

````yaml product.openapi delete /products/{id}
openapi: 3.0.0
info:
  title: Product Catalog API
  description: >-
    Product Catalog API, a subset of fabric **Product Catalog**, is designed to
    improve product management. At fabric, the term Product refers to an Item,
    Variant, and/or Bundle. Items are stand-alone and sold individually.
    Variants are the different variations of an item. For example, a Laptop that
    comes in three different sizes (13”, 15”, 17”) and four different colors
    (red, blue, grey, and white) has 12 variations. Variants are nested under a
    parent item, allowing the different options to appear for the item on the
    Storefront. Bundles are collections of two or more products sold exclusively
    together or as individual products. Product Catalog API enables you to
    create items, add variants to an item, create a bundle, add items to a
    bundle, update product attributes, get details of one or more products,
    delete products, find products, and more.
  version: 3.0.0
  x-audience: external-public
  contact:
    email: support@fabric.inc
    name: Product Team
  license:
    name: fabric API License
    url: https://fabric.inc/api-license
  termsOfService: https://fabric.inc/terms-of-use
servers:
  - url: https://api.fabric.inc/v3
    description: Production URL
security:
  - authorization: []
tags:
  - name: Product Operations by ID
    description: >-
      Products operations based on product IDs. You can use these endpoints to
      perform product operations outside of Storefront.
  - name: Product Operations by SKU
    description: >-
      Products operations based on product SKUs. Merchants are requested to map
      a unique product identifier against fabric standard `SKU` before using
      these endpoints.
  - name: General Product Operations
    description: Supports CRUD operations and product search
externalDocs:
  description: Find out more about Product (Previously called PIM)
  url: https://developer.fabric.inc/docs/products-overview
paths:
  /products/{id}:
    delete:
      tags:
        - Product Operations by ID
      summary: Delete Product by ID
      description: >-
        To keep the product list (catalog) up to date and current, it's
        important to remove products that are discontinued permanently. With
        this endpoint, you can delete a product (Item, Bundle, or Variant) by
        ID. Using `deleteVariants` as query parameter, you an optionally specify
        if you want to delete the associated variants as well. **Note**: If you
        don't have product ID, use the corresponding SKU-based endpoint -
        `DELETE /products/sku/{sku}`.
      operationId: deleteProductById
      parameters:
        - in: path
          name: id
          schema:
            type: string
          required: true
          example: 64184766610c0e32a86d8758
          description: 24-character system-generated product ID
        - $ref: '#/components/parameters/deleteVariants'
        - $ref: '#/components/parameters/x-fabric-tenant-id'
        - $ref: '#/components/parameters/x-fabric-request-id'
        - $ref: '#/components/parameters/statusQueryParamWithALL'
      responses:
        '200':
          headers:
            x-fabric-request-id:
              $ref: '#/components/headers/x-fabric-request-id-header'
          description: OK
        '400':
          $ref: '#/components/responses/badRequest'
        '401':
          $ref: '#/components/responses/notAuthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/notFoundError'
        '500':
          $ref: '#/components/responses/internalServerError'
components:
  parameters:
    deleteVariants:
      in: query
      name: deleteVariants
      description: >-
        true(default): Delete variants of the product <br /> false: Don't delete
        variants of the product and make them regular items. <br /> **Note**:
        This parameter will have no impact if the `status` is `DRAFT`.
      schema:
        type: boolean
        default: true
      example: true
    x-fabric-tenant-id:
      name: x-fabric-tenant-id
      in: header
      description: >-
        A header used by fabric to identify the tenant making the request. You
        must include tenant id in the authentication header for an API request
        to access any of fabric’s endpoints. You can retrieve the tenant id ,
        which is also called account id, from
        [Copilot](/v3/platform/settings/account-details/getting-the-account-id).
        This header is required.
      schema:
        type: string
        example: 517fa9dfd42d8b00g1o3k312
    x-fabric-request-id:
      name: x-fabric-request-id
      in: header
      description: Unique request ID
      schema:
        type: string
        example: 263e731c-45c8-11ed-b878-0242ac120002
      required: false
    statusQueryParamWithALL:
      in: query
      name: status
      schema:
        type: string
        enum:
          - DRAFT
          - LIVE
          - ALL
        example: LIVE
        default: ALL
      description: >-
        Determines the version of the product applicable for this operation
        (endpoint action). <br /> 1. If the status is 'DRAFT', this operation
        will only impact the Draft version of the product, if it exists. <br />
        2. If the status is 'ALL', this operation applies to both the Draft and
        Live versions of the product.
      required: false
  headers:
    x-fabric-request-id-header:
      description: Unique request ID
      schema:
        type: string
        example: 263e731c-45c8-11ed-b878-0242ac120002
  responses:
    badRequest:
      description: Request is invalid or malformed
      headers:
        x-fabric-request-id:
          $ref: '#/components/headers/x-fabric-request-id-header'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/genericError'
    notAuthorized:
      description: Request is unauthorized
      headers:
        x-fabric-request-id:
          $ref: '#/components/headers/x-fabric-request-id-header'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/genericError'
          example:
            type: UNAUTHORIZED_ERROR
            message: The requester is unauthorized
    forbidden:
      description: User isn't allowed to perform the action
      headers:
        x-fabric-request-id:
          $ref: '#/components/headers/x-fabric-request-id-header'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/genericError'
          example:
            type: REQUEST_DENIED
            message: User doesn't have the required permission
    notFoundError:
      description: The entity requested for isn't found
      headers:
        x-fabric-request-id:
          $ref: '#/components/headers/x-fabric-request-id-header'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/genericError'
          example:
            type: NOT_FOUND
            message: Resource not found
    internalServerError:
      description: Internal server error
      headers:
        x-fabric-request-id:
          $ref: '#/components/headers/x-fabric-request-id-header'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/genericError'
          example:
            message: Internal Server Error
            type: SERVER_ERROR
  schemas:
    genericError:
      type: object
      properties:
        message:
          type: string
          description: Place holder error message for all 4xx, 5xx errors
          example: Request is invalid
        type:
          type: string
          description: Place holder for error types such as 4xx, 5xx
          example: Bad request
        errors:
          type: array
          items:
            type: object
            properties:
              type:
                type: string
                description: Error type
                example: CLIENT_ERROR
              message:
                type: string
                description: Error message
                example: Invalid request. Unable to find or create product
  securitySchemes:
    authorization:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: S2S access token (JWT) from fabric Identity service (during Login)

````