openapi: 3.1.0
info:
  title: 'Admin Catalog: Products'
  version: 1.0.0
paths:
  /stores/{store_hash}/v3/catalog/products:
    get:
      operationId: getProducts
      summary: List Products
      description: Returns a list of **Products**. Optional filter parameters can be passed in.
      tags:
        - products
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: id
          in: query
          description: |
            Filter items by product ID.
          required: false
          schema:
            type: integer
        - name: id:in
          in: query
          description: Pass a comma-separated list to filter by one or more product IDs.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: channel_id:in
          in: query
          description: Pass a comma-separated list to filter by one or more channel IDs.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: id:not_in
          in: query
          description: Pass a comma-separated list to exclude one or more product IDs.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: include
          in: query
          description: |-
            A comma-separated list of sub-resources to return with a product object.
            When you specify `options` or `modifiers`, results are limited to 10 per page.
          required: false
          schema:
            $ref: '#/components/schemas/IncludeParamBase'
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CatalogProductsGetParametersIncludeFieldsSchemaItems'
        - name: exclude_fields
          in: query
          description: >-
            Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID
            cannot be excluded.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: page
          in: query
          description: |
            Specifies the page number in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
        - name: limit
          in: query
          description: |
            Controls the number of items per page in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
            default: 50
        - name: direction
          in: query
          description: |
            Sort direction. Acceptable values are: `asc`, `desc`.
          required: false
          schema:
            $ref: '#/components/schemas/CatalogProductsGetParametersDirection'
        - name: sort
          in: query
          description: >
            Field name to sort by. Note: Since ID increments when new products are added, you can use the ID value to
            sort by product create date.
          required: false
          schema:
            $ref: '#/components/schemas/CatalogProductsGetParametersSort'
        - name: categories
          in: query
          description: >-
            Filters by a single category ID, returning only products assigned exclusively to that category. A product
            that also belongs to one or more other categories will not be returned — to match products in a category
            regardless of their other memberships, use `categories:in` instead.
          required: false
          schema:
            type: integer
        - name: categories:in
          in: query
          description: A comma-separated list of category IDs. Returns products that belong to any of the specified categories.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: id:min
          in: query
          required: false
          schema:
            type: integer
        - name: id:max
          in: query
          required: false
          schema:
            type: integer
        - name: id:greater
          in: query
          required: false
          schema:
            type: integer
        - name: id:less
          in: query
          required: false
          schema:
            type: integer
        - name: name
          in: query
          description: |
            Filter items by name.
          required: false
          schema:
            type: string
        - name: mpn
          in: query
          description: |
            Filter items by Manufacturer Part Number (MPN).
          required: false
          schema:
            type: string
        - name: upc
          in: query
          description: |
            Filter items by UPC.
          required: false
          schema:
            type: string
        - name: price
          in: query
          description: |
            Filter items by price.
          required: false
          schema:
            type: number
            format: double
        - name: weight
          in: query
          description: |
            Filter items by weight.
          required: false
          schema:
            type: number
            format: double
        - name: condition
          in: query
          description: |
            Filter items by condition.
          required: false
          schema:
            $ref: '#/components/schemas/CatalogProductsGetParametersCondition'
        - name: brand_id
          in: query
          description: |
            Filter items by brand ID.
          required: false
          schema:
            type: integer
        - name: date_modified
          in: query
          description: Filter items by `date_modified`.
          required: false
          schema:
            type: string
            format: date
        - name: date_modified:max
          in: query
          description: >-
            Filter items by `date_modified`. If the `date modified:max` does not include hours, minutes and seconds, the
            API automatically adds the current time of the request to the date. For example,
            `date_modified:max=2025-01-15` or `date_modified:max=2025-01-15T00:03:17Z`.
          required: false
          schema:
            type: string
        - name: date_modified:min
          in: query
          description: >-
            Filter items by `date_modified`. If the `date modified:min` does not include hours, minutes and seconds, the
            API automatically adds the current time of the request to the date. For example,
            `date_modified:min=2025-01-15` or `date_modified:min=2025-01-15T00:03:17Z`.
          required: false
          schema:
            type: string
        - name: date_last_imported
          in: query
          description: Filter items by date_last_imported.
          required: false
          schema:
            type: string
            format: date
        - name: date_last_imported:not
          in: query
          description: >-
            Filter products by specifying a date they were NOT last imported. For example,
            `date_last_imported:not=2015-08-21T22%3A53%3A23%2B00%3A00`.
          required: false
          schema:
            type: string
            format: date
        - name: date_last_imported:max
          in: query
          description: Filter items by date_last_imported. For example, `date_last_imported:max=2015-08-21T22%3A53%3A23%2B00%3A00`.
          required: false
          schema:
            type: string
            format: date
        - name: date_last_imported:min
          in: query
          description: Filter items by date_last_imported. For example, `date_last_imported:min=2015-08-21T22%3A53%3A23%2B00%3A00`.
          required: false
          schema:
            type: string
            format: date
        - name: is_visible
          in: query
          description: Filter items based on whether the product is currently visible on the storefront.
          required: false
          schema:
            type: boolean
        - name: is_featured
          in: query
          description: Filter items by is_featured. `1` for true, `0` for false.
          required: false
          schema:
            $ref: '#/components/schemas/CatalogProductsGetParametersIsFeatured'
        - name: is_free_shipping
          in: query
          description: Filter items by is_free_shipping. `1` for true, `0` for false.
          required: false
          schema:
            type: integer
        - name: inventory_level
          in: query
          description: |
            Filter items by inventory_level.
          required: false
          schema:
            type: integer
        - name: inventory_level:in
          in: query
          description: >-
            A comma-separated list of inventory levels. Returns a list of all products that have any of the listed
            inventory amounts.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: inventory_level:not_in
          in: query
          description: >-
            A comma-separated list of inventory levels. Returns a list of all products that have inventory amounts other
            than those specified.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: inventory_level:min
          in: query
          required: false
          schema:
            type: integer
        - name: inventory_level:max
          in: query
          required: false
          schema:
            type: integer
        - name: inventory_level:greater
          in: query
          required: false
          schema:
            type: integer
        - name: inventory_level:less
          in: query
          required: false
          schema:
            type: integer
        - name: inventory_low
          in: query
          description: |
            Filter items by inventory_low. Values: 1, 0.
          required: false
          schema:
            type: integer
        - name: out_of_stock
          in: query
          description: |
            Filter items by out_of_stock. To enable the filter, pass `out_of_stock`=`1`.
          required: false
          schema:
            type: integer
        - name: total_sold
          in: query
          description: |
            Filter items by total_sold.
          required: false
          schema:
            type: integer
        - name: type
          in: query
          description: Filter items by type.
          required: false
          schema:
            $ref: '#/components/schemas/CatalogProductsGetParametersType'
        - name: keyword
          in: query
          description: Filter items by keywords found in the `name`, `description`, or `sku` fields, or in the brand name.
          required: false
          schema:
            type: string
        - name: keyword_context
          in: query
          description: >-
            Set context used by the search algorithm to return results targeted towards the specified group. Use
            `merchant` to help merchants search their own catalog. Use `shopper` to return shopper-facing search
            results.
          required: false
          schema:
            $ref: '#/components/schemas/CatalogProductsGetParametersKeywordContext'
        - name: availability
          in: query
          description: |
            Filter items by availability. Values are: available, disabled, preorder.
          required: false
          schema:
            $ref: '#/components/schemas/CatalogProductsGetParametersAvailability'
        - name: sku
          in: query
          description: >-
            Filter items by main SKU. To filter by variant SKU, see [Get all
            variants](/developer/api-reference/rest/admin/catalog/product-variants/get-product-variants). 
          required: false
          schema:
            type: string
        - name: sku:in
          in: query
          description: A comma-separated list of SKUs. Returns a list of products with those SKUs.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products_getProducts_Response_200'
    put:
      operationId: updateProducts
      summary: Update Products (batch)
      description: |-
        Updates products in batches. Batches are limited to 10 products.

        **Required Fields**
        * `id` - product `id` is required for batch updates to products.

        **Read-Only Fields**
        - `id`
        - `date_created`
        - `date_modified`
        - `calculated_price`
        - `base_variant_id`
      tags:
        - products
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CatalogProductsPutParametersIncludeFieldsSchemaItems'
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products_updateProducts_Response_200'
        '404':
          description: The resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateProductsRequestNotFoundError'
        '409':
          description: >-
            `Product` was in conflict with another product. This is the result of duplicate unique values such as name
            or SKU; a missing or invalid `category_id`, `brand_id`, or `tax_class id`; or a conflicting
            `bulk_pricing_rule`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse_409'
        '413':
          description: 413 Request Entity Too Large
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_Base'
        '422':
          description: >-
            `Product` was not valid. This is the result of missing required fields or invalid data. See the response for
            more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse_422'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/product_Put_Collection'
    post:
      operationId: createProduct
      summary: Create Product
      description: >-
        Creates a *Product*. Only one product can be created at a time; however, you can create multiple product
        variants using the `variants` array.


        **Required Fields:**

        - `name`

        - `type`

        - `weight`

        - `price`

        - `categories` (required when you enable the V2 product experience in the control panel)


        **Read-Only Fields**

        - `id`

        - `date_created`

        - `date_modified`

        - `calculated_price`

        - `base_variant_id`


        **Limits**

        - 250 characters product name length.

        - A product can have up to 1000 images. Each image file or image uploaded by URL can be up to 8 MB.


        **Usage Notes**

        * You can create multiple product variants using the `variants` array.

        * This endpoint accepts a `video` array. To create a product video that accepts a `video` object, see [Create a
        Product Video](/developer/api-reference/rest/admin/catalog/products/videos/create-product-video) for
        information.
      tags:
        - products
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CatalogProductsPostParametersIncludeFieldsSchemaItems'
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products_createProduct_Response_200'
        '409':
          description: >
            `Product` conflicted with another product. This is the result of duplicate unique values, such as name or
            SKU; a missing or invalid `category_id`, `brand_id`, or `tax_class id`; or a conflicting `bulk_pricing_rule`
            or `custom_url`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProductRequestConflictError'
        '422':
          description: >
            `Product` was not valid. This is the result of missing required fields, or of invalid data. See the response
            for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProductRequestUnprocessableEntityError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/product_Base_POST'
    delete:
      operationId: deleteProducts
      summary: Delete Products
      description: >-
        To delete *Product* objects, you must include a filter. This prevents inadvertently deleting all *Product*
        objects in a store.


        > #### Note

        > The maximum number of products you can delete at one time is 250.


        **Example**:

        To delete products with IDs 1,2 and 3, use `DELETE /v3/catalog/products?id:in=1,2,3`.
      tags:
        - products
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: name
          in: query
          description: |
            Filter items by name.
          required: false
          schema:
            type: string
        - name: sku
          in: query
          description: >-
            Filter items by main SKU. To filter by variant SKU, see [Get all
            variants](/developer/api-reference/rest/admin/catalog/product-variants/get-product-variants). 
          required: false
          schema:
            type: string
        - name: price
          in: query
          description: |
            Filter items by price.
          required: false
          schema:
            type: number
            format: double
        - name: weight
          in: query
          description: |
            Filter items by weight.
          required: false
          schema:
            type: number
            format: double
        - name: condition
          in: query
          description: |
            Filter items by condition.
          required: false
          schema:
            $ref: '#/components/schemas/CatalogProductsDeleteParametersCondition'
        - name: brand_id
          in: query
          description: |
            Filter items by brand ID.
          required: false
          schema:
            type: integer
        - name: date_modified
          in: query
          description: Filter items by `date_modified`.
          required: false
          schema:
            type: string
            format: date
        - name: date_last_imported
          in: query
          description: Filter items by date_last_imported.
          required: false
          schema:
            type: string
            format: date
        - name: is_visible
          in: query
          description: Filter items based on whether the product is currently visible on the storefront.
          required: false
          schema:
            type: boolean
        - name: is_featured
          in: query
          description: Filter items by is_featured. `1` for true, `0` for false.
          required: false
          schema:
            $ref: '#/components/schemas/CatalogProductsDeleteParametersIsFeatured'
        - name: id:in
          in: query
          description: Pass a comma-separated list to filter by one or more product IDs.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: inventory_level
          in: query
          description: |
            Filter items by inventory_level.
          required: false
          schema:
            type: integer
        - name: total_sold
          in: query
          description: |
            Filter items by total_sold.
          required: false
          schema:
            type: integer
        - name: type
          in: query
          description: Filter items by type.
          required: false
          schema:
            $ref: '#/components/schemas/CatalogProductsDeleteParametersType'
        - name: categories
          in: query
          description: >-
            Filters by a single category ID, returning only products assigned exclusively to that category. A product
            that also belongs to one or more other categories will not be returned — to match products in a category
            regardless of their other memberships, use `categories:in` instead.
          required: false
          schema:
            type: integer
        - name: keyword
          in: query
          description: Filter items by keywords found in the `name`, `description`, or `sku` fields, or in the brand name.
          required: false
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /stores/{store_hash}/v3/catalog/products/{product_id}:
    get:
      operationId: getProduct
      summary: Get Product
      description: Returns a single *Product*. Optional parameters can be passed in.
      tags:
        - products
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include
          in: query
          description: A comma-separated list of sub-resources to return with a product object.
          required: false
          schema:
            $ref: '#/components/schemas/IncludeParamBase'
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CatalogProductsProductIdGetParametersIncludeFieldsSchemaItems'
        - name: exclude_fields
          in: query
          description: >-
            Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID
            cannot be excluded.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products_getProduct_Response_200'
        '404':
          description: |
            The resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProductRequestNotFoundError'
    put:
      operationId: updateProduct
      summary: Update Product
      description: |
        Updates a *Product*.

        **Limits**
        - A product can have up to 1000 images. Each image file or image uploaded by URL can be up to 8 MB.

        **Read-Only Fields**
        - id
        - date_created
        - date_modified
        - calculated_price
        - base_variant_id
      tags:
        - products
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include
          in: query
          description: |-
            A comma-separated list of sub-resources to return with a product object.
            When you specify `options` or `modifiers`, results are limited to 10 per page.
          required: false
          schema:
            $ref: '#/components/schemas/IncludeParamBase'
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CatalogProductsProductIdPutParametersIncludeFieldsSchemaItems'
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Products_updateProduct_Response_200'
        '404':
          description: |
            The resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateProductRequestNotFoundError'
        '409':
          description: >
            `Product` was in conflict with another product. This is caused by: duplicate unique values, such as name or
            SKU; a missing category, brand, or tax_class with which the product is being associated; or a conflicting
            bulk pricing rule.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateProductRequestConflictError'
        '422':
          description: >
            `Product` was not valid. This is the result of missing required fields, or of invalid data. See the response
            for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateProductRequestUnprocessableEntityError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/product_Put'
    delete:
      operationId: deleteProduct
      summary: Delete Product
      description: Deletes a *Product*.
      tags:
        - products
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /stores/{store_hash}/v3/catalog/products/metafields:
    get:
      operationId: getProductsMetafields
      summary: List Product Metafields
      description: Get all product metafields.
      tags:
        - batchMetafields
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: |
            Specifies the page number in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
        - name: limit
          in: query
          description: |
            Controls the number of items per page in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
            default: 50
        - name: key
          in: query
          description: Filter based on a metafieldʼs key.
          required: false
          schema:
            type: string
        - name: key:in
          in: query
          description: Filter based on comma-separated metafieldʼs keys. Could be used with vanilla `key` query parameter.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: namespace
          in: query
          description: Filter based on a metafieldʼs namespaces.
          required: false
          schema:
            type: string
        - name: namespace:in
          in: query
          description: >-
            Filter based on comma-separated metafieldʼs namespaces. Could be used with vanilla `namespace` query
            parameter.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: direction
          in: query
          description: |
            Sort direction. Acceptable values are: `asc`, `desc`.
          required: false
          schema:
            $ref: '#/components/schemas/CatalogProductsMetafieldsGetParametersDirection'
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CatalogProductsMetafieldsGetParametersIncludeFieldsSchemaItems'
        - name: date_modified:min
          in: query
          description: >
            'Query parameter that lets you filter by the minimum date modified created, for example,
            `2024-05-14T09:34:00` or `2024-05-14`. Returns metafields modified after this date.'
          required: false
          schema:
            type: string
        - name: date_modified:max
          in: query
          description: >
            'Query parameter that lets you filter by the maximum date modified created, for example,
            `2024-05-14T09:34:00` or `2024-05-14`. Returns metafields modified before this date.'
          required: false
          schema:
            type: string
        - name: date_created:min
          in: query
          description: >
            'Query parameter that lets you filter by the minimum date created, ffor example, `2024-05-14T09:34:00` or
            `2024-05-14`. Returns metafields created after this date.'
          required: false
          schema:
            type: string
        - name: date_created:max
          in: query
          description: >
            'Query parameter that lets you filter by the maximum date created, for example, `2024-05-14T09:34:00` or
            `2024-05-14`. Returns metafields created before this date.'
          required: false
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
      responses:
        '200':
          description: |
            List of `Metafield` objects.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionResponse'
    post:
      operationId: createProductsMetafields
      summary: Create Multiple Metafields
      description: Create multiple metafields.
      tags:
        - batchMetafields
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
      responses:
        '200':
          description: |
            List of created `Metafield` objects.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionResponse_POST_PUT'
        '400':
          description: Bad Request. Input is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProductsMetafieldsRequestBadRequestError'
        '422':
          description: |
            Response object for metafields creation with partial success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionResponsePartialSuccess_POST_PUT'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/CatalogProductsMetafieldsPostRequestBodyContentApplicationJsonSchemaItems'
    put:
      operationId: updateProductsMetafields
      summary: Update Multiple Metafields
      description: Update multiple metafields.
      tags:
        - batchMetafields
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
      responses:
        '200':
          description: |
            List of updated `Metafield` objects.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionResponse_POST_PUT'
        '400':
          description: Bad Request. Input is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateProductsMetafieldsRequestBadRequestError'
        '422':
          description: |
            Response object for metafields creation with partial success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionResponsePartialSuccess_POST_PUT'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/CatalogProductsMetafieldsPutRequestBodyContentApplicationJsonSchemaItems'
    delete:
      operationId: deleteProductsMetafields
      summary: Delete Multiple Metafields
      description: Delete all product metafields.
      tags:
        - batchMetafields
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
      responses:
        '200':
          description: |
            Response object for metafields deletion with success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionDeleteResponseSuccess'
        '400':
          description: Bad Request. Input is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteProductsMetafieldsRequestBadRequestError'
        '422':
          description: |
            Response object for metafields deletion with partial success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionResponsePartialSuccess_DELETE'
      requestBody:
        description: List of metafield IDs.
        content:
          application/json:
            schema:
              type: array
              items:
                type: integer
  /stores/{store_hash}/v3/catalog/products/{product_id}/bulk-pricing-rules:
    get:
      operationId: getAllBulkPricingRules
      summary: List Bulk Pricing Rules
      description: Returns all *Bulk Pricing Rules*. Optional parameters can be passed in.
      tags:
        - bulkPricingRules
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CatalogProductsProductIdBulkPricingRulesGetParametersIncludeFieldsSchemaItems'
        - name: exclude_fields
          in: query
          description: >-
            Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID
            cannot be excluded.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bulk pricing rules_getAllBulkPricingRules_Response_200'
    post:
      operationId: createBulkPricingRule
      summary: Create Bulk Pricing Rule
      description: Creates a *Bulk Pricing Rule*.
      tags:
        - bulkPricingRules
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bulk pricing rules_createBulkPricingRule_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulkPricingRule_Full'
  /stores/{store_hash}/v3/catalog/products/{product_id}/bulk-pricing-rules/{bulk_pricing_rule_id}:
    get:
      operationId: getBulkPricingRule
      summary: Get Bulk Pricing Rule
      description: Returns a single *Bulk Pricing Rule*. Optional parameters can be passed in.
      tags:
        - bulkPricingRules
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: bulk_pricing_rule_id
          in: path
          description: |
            The ID of the `BulkPricingRule`.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: >-
                #/components/schemas/CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdGetParametersIncludeFieldsSchemaItems
        - name: exclude_fields
          in: query
          description: >-
            Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID
            cannot be excluded.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bulk pricing rules_getBulkPricingRule_Response_200'
        '404':
          description: |
            The resource or parent resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBulkPricingRuleRequestNotFoundError'
    put:
      operationId: updateBulkPricingRule
      summary: Update Bulk Pricing Rule
      description: |-
        Updates a *Bulk Pricing Rule*.

        **Required Fields**
        * none

        **Read-Only Fields**
        - id
      tags:
        - bulkPricingRules
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: bulk_pricing_rule_id
          in: path
          description: |
            The ID of the `BulkPricingRule`.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bulk pricing rules_updateBulkPricingRule_Response_200'
        '404':
          description: |
            The resource or parent resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateBulkPricingRuleRequestNotFoundError'
        '409':
          description: >
            The `BulkPricingRule` was in conflict with another bulk pricing rule. This is the result of quantity range
            overlapping with existing bulk pricing rules.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateBulkPricingRuleRequestConflictError'
        '422':
          description: >
            The `BulkPricingRule` was not valid. This is the result of missing required fields, or of invalid data. See
            the response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateBulkPricingRuleRequestUnprocessableEntityError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  description: Unique ID of the *Bulk Pricing Rule*. Read-Only.
                quantity_min:
                  type: integer
                  description: >
                    The minimum inclusive quantity of a product to satisfy this rule. Must be greater than or equal to
                    zero. For `fixed` rules, the minimum quantity canʼt be less than two.

                    Required in /POST.
                quantity_max:
                  type: integer
                  description: >-
                    The maximum inclusive quantity of a product to satisfy this rule. Must be greater than the
                    `quantity_min` value – unless this field has a value of 0 (zero), in which case there will be no
                    maximum bound for this rule.

                    Required in /POST.
                type:
                  $ref: >-
                    #/components/schemas/CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdPutRequestBodyContentApplicationJsonSchemaType
                  description: >-
                    The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent`
                    - the adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the
                    product.

                    Required in /POST.
                amount:
                  $ref: >-
                    #/components/schemas/CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdPutRequestBodyContentApplicationJsonSchemaAmount
                  description: >-
                    You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number;
                    the response will return a number for `price` and `fixed` adjustments.

                    Divide the adjustment percentage by 100 and send the result in string format. For example, represent
                    10% as “.10”. The response will return a float value for both `price` and `percentage` adjustments. 

                    Required in /POST.
              required:
                - id
                - quantity_min
                - quantity_max
                - type
                - amount
    delete:
      operationId: deleteBulkPricingRule
      summary: Delete Bulk Pricing Rule
      description: Deletes a *Bulk Pricing Rule*.
      tags:
        - bulkPricingRules
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: bulk_pricing_rule_id
          in: path
          description: |
            The ID of the `BulkPricingRule`.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '404':
          description: |
            The resource or parent resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteBulkPricingRuleRequestNotFoundError'
  /stores/{store_hash}/v3/catalog/products/category-assignments:
    get:
      operationId: getProductsCategoryAssignments
      summary: List Products Category Assignments
      description: Returns a list of products category assignments.
      tags:
        - categoryAssignments
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: |
            Specifies the page number in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
        - name: limit
          in: query
          description: |
            Controls the number of items per page in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
            default: 50
        - name: product_id:in
          in: query
          description: Pass a comma-separated list to filter by one or more product IDs.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: category_id:in
          in: query
          description: Pass a comma-separated list to filter by one or more category IDs.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: Collection of category assignments.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Category assignments_getProductsCategoryAssignments_Response_200'
    put:
      operationId: createProductsCategoryAssignments
      summary: Create Products Category Assignments
      description: Creates products category assignments.
      tags:
        - categoryAssignments
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: Updated
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '422':
          description: Error response for batch PUT of Category Assignments. Includes the errors for each reference id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/beta5ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ProductCategoryAssignment'
    delete:
      operationId: deleteProductsCategoryAssignments
      summary: Delete Products Category Assignments
      description: Deletes products category assignments. A filter must be supplied.
      tags:
        - categoryAssignments
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: product_id:in
          in: query
          description: Pass a comma-separated list to filter by one or more product IDs.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: category_id:in
          in: query
          description: Pass a comma-separated list to filter by one or more category IDs.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: Deleted
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '422':
          description: At least one filter must be provided in order to delete category assignments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/beta5ErrorResponse'
  /stores/{store_hash}/v3/catalog/products/channel-assignments:
    get:
      operationId: getProductsChannelAssignments
      summary: List Products Channel Assignments
      description: Returns a list of products channel assignments.
      tags:
        - channelAssignments
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: |
            Specifies the page number in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
        - name: limit
          in: query
          description: |
            Controls the number of items per page in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
            default: 50
        - name: product_id:in
          in: query
          description: Pass a comma-separated list to filter by one or more product IDs.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: channel_id:in
          in: query
          description: Pass a comma-separated list to filter by one or more channel IDs.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: Collection of channel assignments.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Channel assignments_getProductsChannelAssignments_Response_200'
    put:
      operationId: createProductsChannelAssignments
      summary: Create Products Channel Assignments
      description: |
        Creates products channel assignments.

        Notes:
         * Avoid parallel assignment requests if possible.
         * Do not make parallel assignment requests with the same product IDs.
      tags:
        - channelAssignments
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: Updated
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '422':
          description: Error response for batch PUT of Channel Assignments. Includes the errors for each reference id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/beta5ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/ProductChannelAssignment'
    delete:
      operationId: deleteProductsChannelAssignments
      summary: Delete Products Channel Assignments
      description: Delete products channel assignments. A filter must be supplied.
      tags:
        - channelAssignments
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: product_id:in
          in: query
          description: Pass a comma-separated list to filter by one or more product IDs.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: channel_id:in
          in: query
          description: Pass a comma-separated list to filter by one or more channel IDs.
          required: false
          schema:
            type: array
            items:
              type: integer
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: Deleted
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '422':
          description: At least one filter must be provided in order to delete channel assignments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/beta5ErrorResponse'
  /stores/{store_hash}/v3/catalog/products/{product_id}/complex-rules:
    get:
      operationId: getProductComplexRules
      summary: List Complex Rules
      description: Returns a list of all product *Complex Rules*. Optional parameters may be passed in.
      tags:
        - complexRules
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CatalogProductsProductIdComplexRulesGetParametersIncludeFieldsSchemaItems'
        - name: exclude_fields
          in: query
          description: >-
            Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID
            cannot be excluded.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: page
          in: query
          description: |
            Specifies the page number in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
        - name: limit
          in: query
          description: |
            Controls the number of items per page in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
            default: 50
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Complex rules_getProductComplexRules_Response_200'
    post:
      operationId: createProductComplexRule
      summary: Create Complex Rule
      description: |-
        Creates a product *Complex Rule*.

        **Required Fields**
        - modifier_id
        - modifier_value_id
        - variant_id

        **Read-Only Fields**
        - complex_rule_id
        - conditions_id
        - rule_id
        - combination_id
        - id
      tags:
        - complexRules
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Complex rules_createProductComplexRule_Response_200'
        '409':
          description: |
            The `ComplexRule` was in conflict with another `ComplexRule`. This is the result of duplicate conditions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProductComplexRuleRequestConflictError'
        '422':
          description: >
            The `ComplexRule` was not valid. This is the result of missing required fields, or of invalid data. See the
            response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProductComplexRuleRequestUnprocessableEntityError'
      requestBody:
        description: Common ComplexRule properties.
        content:
          application/json:
            schema:
              type: object
              properties:
                sort_order:
                  type: integer
                  description: |
                    The priority to give this rule when making adjustments to the product properties.
                enabled:
                  type: boolean
                  description: >
                    Flag for determining whether the rule is to be used when adjusting a productʼs price, weight, image,
                    or availabilty.
                stop:
                  type: boolean
                  description: |
                    Flag for determining whether other rules should not be applied after this rule has been applied.
                purchasing_disabled:
                  type: boolean
                  description: >
                    Flag for determining whether the rule should disable purchasing of a product when the conditions are
                    applied.
                purchasing_disabled_message:
                  type: string
                  description: |
                    Message displayed on the storefront when a rule disables the purchasing of a product.
                purchasing_hidden:
                  type: boolean
                  description: >
                    Flag for determining whether the rule should hide purchasing of a product when the conditions are
                    applied.
                image_url:
                  type: string
                  description: >
                    The URL for an image displayed on the storefront when the conditions are applied. Limit of 8MB per
                    file.
                price_adjuster:
                  $ref: >-
                    #/components/schemas/CatalogProductsProductIdComplexRulesPostRequestBodyContentApplicationJsonSchemaPriceAdjuster
                  description: Adjuster for Complex Rules.
                weight_adjuster:
                  $ref: >-
                    #/components/schemas/CatalogProductsProductIdComplexRulesPostRequestBodyContentApplicationJsonSchemaWeightAdjuster
                  description: Adjuster for Complex Rules.
                conditions:
                  $ref: '#/components/schemas/conditionsRequest'
  /stores/{store_hash}/v3/catalog/products/{product_id}/complex-rules/{complex_rule_id}:
    get:
      operationId: getProductComplexRule
      summary: Get Product Complex Rule
      description: Returns a single *Complex Rule*. Optional parameters can be passed in.
      tags:
        - complexRules
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: complex_rule_id
          in: path
          description: |
            The ID of the `ComplexRule`.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: >-
                #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdGetParametersIncludeFieldsSchemaItems
        - name: exclude_fields
          in: query
          description: >-
            Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID
            cannot be excluded.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Complex rules_getProductComplexRule_Response_200'
        '404':
          description: |
            The resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProductComplexRuleRequestNotFoundError'
    put:
      operationId: updateProductComplexRule
      summary: Update Product Complex Rule
      description: |-
        Updates a *Complex Rule*.

        **Required Fields**:
        - none

        **Read-Only Fields**:
        - complex_rule_id
        - conditions_id
        - rule_id
        - combination_id
        - id
      tags:
        - complexRules
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: complex_rule_id
          in: path
          description: |
            The ID of the `ComplexRule`.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Complex rules_updateProductComplexRule_Response_200'
        '409':
          description: |
            The `ComplexRule` was in conflict with another `ComplexRule`. This is the result of duplicate conditions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateProductComplexRuleRequestConflictError'
        '422':
          description: >
            The `ComplexRule` was not valid. This is the result of missing required fields, or of invalid data. See the
            response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateProductComplexRuleRequestUnprocessableEntityError'
      requestBody:
        description: Common ComplexRule properties.
        content:
          application/json:
            schema:
              type: object
              properties:
                sort_order:
                  type: integer
                  description: |
                    The priority to give this rule when making adjustments to the product properties.
                enabled:
                  type: boolean
                  description: >
                    Flag for determining whether the rule is to be used when adjusting a productʼs price, weight, image,
                    or availabilty.
                stop:
                  type: boolean
                  description: |
                    Flag for determining whether other rules should not be applied after this rule has been applied.
                purchasing_disabled:
                  type: boolean
                  description: >
                    Flag for determining whether the rule should disable purchasing of a product when the conditions are
                    applied.
                purchasing_disabled_message:
                  type: string
                  description: |
                    Message displayed on the storefront when a rule disables the purchasing of a product.
                purchasing_hidden:
                  type: boolean
                  description: >
                    Flag for determining whether the rule should hide purchasing of a product when the conditions are
                    applied.
                image_url:
                  type: string
                  description: >
                    The URL for an image displayed on the storefront when the conditions are applied. Limit of 8MB per
                    file.
                price_adjuster:
                  $ref: >-
                    #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdPutRequestBodyContentApplicationJsonSchemaPriceAdjuster
                  description: Adjuster for Complex Rules.
                weight_adjuster:
                  $ref: >-
                    #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdPutRequestBodyContentApplicationJsonSchemaWeightAdjuster
                  description: Adjuster for Complex Rules.
                conditions:
                  type: array
                  items:
                    $ref: >-
                      #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdPutRequestBodyContentApplicationJsonSchemaConditionsItems
    delete:
      operationId: deleteProductComplexRule
      summary: Delete Product Complex Rule
      description: Deletes a product *Complex Rule*.
      tags:
        - complexRules
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: complex_rule_id
          in: path
          description: |
            The ID of the `ComplexRule`.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /stores/{store_hash}/v3/catalog/products/{product_id}/custom-fields:
    get:
      operationId: getProductCustomFields
      summary: List Product Custom Fields
      description: Returns a list of product *Custom Fields*. You can pass in optional parameters.
      tags:
        - customFields
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CatalogProductsProductIdCustomFieldsGetParametersIncludeFieldsSchemaItems'
        - name: exclude_fields
          in: query
          description: >-
            Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID
            cannot be excluded.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CatalogProductsProductIdCustomFieldsGetParametersExcludeFieldsSchemaItems'
        - name: page
          in: query
          description: |
            Specifies the page number in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
        - name: limit
          in: query
          description: |
            Controls the number of items per page in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
            default: 50
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Gets array of Custom fields.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Custom fields_getProductCustomFields_Response_200'
        '403':
          description: General Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorWithErrors'
        '404':
          description: General Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '405':
          description: 405 Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MethodNotAllowedError'
    post:
      operationId: createProductCustomField
      summary: Create Product Custom Field
      description: |-
        Creates a *Custom Field*.

        **Required Fields:**
        - name
        - value

        **Name-Value Pair Uniqueness**
        - Every name-value pair must be unique inside a product.

        **Read-Only:**
        - id

        **Limits**
        - 200 custom fields per product limit.
        - 250 characters per custom field limit.
      tags:
        - customFields
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Gets Custom field.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Custom fields_createProductCustomField_Response_200'
        '403':
          description: General Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorWithErrors'
        '404':
          description: General Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '405':
          description: 405 Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MethodNotAllowedError'
        '422':
          description: General Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/customFieldPost'
  /stores/{store_hash}/v3/catalog/products/{product_id}/custom-fields/{custom_field_id}:
    get:
      operationId: getProductCustomField
      summary: Get Product Custom Field
      description: |
        Returns a *Custom Field*.
      tags:
        - customFields
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: custom_field_id
          in: path
          description: |
            The ID of the `CustomField`.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: >-
                #/components/schemas/CatalogProductsProductIdCustomFieldsCustomFieldIdGetParametersIncludeFieldsSchemaItems
        - name: exclude_fields
          in: query
          description: >-
            Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID
            cannot be excluded.
          required: false
          schema:
            type: array
            items:
              $ref: >-
                #/components/schemas/CatalogProductsProductIdCustomFieldsCustomFieldIdGetParametersExcludeFieldsSchemaItems
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Gets Custom field.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Custom fields_getProductCustomField_Response_200'
        '403':
          description: General Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorWithErrors'
        '404':
          description: General Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '405':
          description: 405 Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MethodNotAllowedError'
    put:
      operationId: updateProductCustomField
      summary: Update Product Custom Field
      description: |-
        Updates a *Custom Field*.

        **Required Fields**
        - none

        **Name-Value Pair Uniqueness**
        - Every name-value pair must be unique inside a product.

        **Read-Only**
        - id

         **Limits**
        - 200 custom fields per product limit.
        - 250 characters per custom field limit.
      tags:
        - customFields
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: custom_field_id
          in: path
          description: |
            The ID of the `CustomField`.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Gets Custom field.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Custom fields_updateProductCustomField_Response_200'
        '403':
          description: General Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorWithErrors'
        '404':
          description: General Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '405':
          description: 405 Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MethodNotAllowedError'
        '422':
          description: General Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/customFieldPut'
    delete:
      operationId: deleteProductCustomField
      summary: Delete Product Custom Field
      description: Deletes a product *Custom Field*.
      tags:
        - customFields
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: custom_field_id
          in: path
          description: |
            The ID of the `CustomField`.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
      responses:
        '204':
          description: 204 No Content
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '403':
          description: General Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorWithErrors'
        '404':
          description: General Error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '405':
          description: 405 Method Not Allowed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MethodNotAllowedError'
  /stores/{store_hash}/v3/catalog/products/{product_id}/images:
    get:
      operationId: getProductImages
      summary: List Product Images
      description: Returns a list of *Product Images*. Optional parameters can be passed in.
      tags:
        - images
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: |
            Specifies the page number in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
        - name: limit
          in: query
          description: |
            Controls the number of items per page in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
            default: 50
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CatalogProductsProductIdImagesGetParametersIncludeFieldsSchemaItems'
        - name: exclude_fields
          in: query
          description: >-
            Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID
            cannot be excluded.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Images_getProductImages_Response_200'
        '404':
          description: |
            The product ID does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProductImagesRequestNotFoundError'
    post:
      operationId: createProductImage
      summary: Create Product Image
      description: >-
        Creates a *Product Image*.

         **Required Fields**
        - `image_file`, or

        - `image_url`


        **Usage Notes**

        - `image_url` - `255` character limit

        - `Content-Type` - For `image_file`, use the `multipart/form-data` media type. For `image_url`, use the
        `application/json` type. See [Adding product
        images](/developer/docs/admin/catalog-and-inventory/products-overview#adding-product-images) for more
        information.

        - You can create only one image at a time. A product can have up to 1000 images.

        - Supported image file types are BMP, GIF, JPEG, PNG, WBMP, XBM, and WEBP.

        - Each image file or image uploaded by URL can be up to 8 MB.
      tags:
        - images
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Images_createProductImage_Response_200'
        '400':
          description: >-
            Bad Request. The requested resource could not be downloaded and may be invalid. Possible reasons include
            malformed request syntax or the file host blocking requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProductImageRequestBadRequestError'
        '404':
          description: |
            The product ID does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProductImageRequestNotFoundError'
        '422':
          description: >-
            Unprocessable Entity. 


            May occur if the `Content-Type` header is set to `multipart/form-data` rather than `application/json` when
            creating a product image using `image_url`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProductImageRequestUnprocessableEntityError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/productImage_Post_Put'
  /stores/{store_hash}/v3/catalog/products/{product_id}/images/{image_id}:
    get:
      operationId: getProductImage
      summary: Get Product Image
      description: Returns a single *Product Image*. Optional parameters can be passed in.
      tags:
        - images
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: image_id
          in: path
          description: |
            The ID of the `Image` that is being operated on.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CatalogProductsProductIdImagesImageIdGetParametersIncludeFieldsSchemaItems'
        - name: exclude_fields
          in: query
          description: >-
            Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID
            cannot be excluded.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Images_getProductImage_Response_200'
        '404':
          description: |
            The resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProductImageRequestNotFoundError'
    put:
      operationId: updateProductImage
      summary: Update Product Image
      description: |-
        Updates a *Product Image*.

        **Usage Notes**
        - `image_url` - `255` character limit
        - Each image file or image uploaded by URL can be up to 8 MB.
        - For file uploads, send a POST request using the `multipart/form-data` media type
      tags:
        - images
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: image_id
          in: path
          description: |
            The ID of the `Image` that is being operated on.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Images_updateProductImage_Response_200'
        '400':
          description: >-
            Bad Request. The requested resource could not be downloaded and may be invalid. Possible reasons include
            malformed request syntax or the file host blocking requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateProductImageRequestBadRequestError'
        '404':
          description: |
            The resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateProductImageRequestNotFoundError'
        '422':
          description: >-
            Product image was not valid. This is the result of missing required fields or invalid data. See the response
            for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse_422'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/productImage_Post_Put'
    delete:
      operationId: deleteProductImage
      summary: Delete Product Image
      description: Deletes a *Product Image*.
      tags:
        - images
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: image_id
          in: path
          description: |
            The ID of the `Image` that is being operated on.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /stores/{store_hash}/v3/catalog/products/{product_id}/metafields:
    get:
      operationId: getProductMetafields
      summary: List Product Metafields
      description: Returns a list of *Product Metafields*. Optional parameters can be passed in.
      tags:
        - metafields
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: |
            Specifies the page number in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
        - name: limit
          in: query
          description: |
            Controls the number of items per page in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
            default: 50
        - name: key
          in: query
          description: Filter based on a metafieldʼs key.
          required: false
          schema:
            type: string
        - name: namespace
          in: query
          description: Filter based on a metafieldʼs namespaces.
          required: false
          schema:
            type: string
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CatalogProductsProductIdMetafieldsGetParametersIncludeFieldsSchemaItems'
        - name: exclude_fields
          in: query
          description: >-
            Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID
            cannot be excluded.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: resource_id:in
          in: query
          description: >-
            A comma-separated list of entity ID values that filter results to metafields that belong to one of the
            matching entities.
          required: false
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metafields_getProductMetafields_Response_200'
    post:
      operationId: createProductMetafield
      summary: Create Product Metafield
      description: >-
        Creates a *Product Metafield*.


        **Required Fields:**

        * permission_set

        * namespace

        * key

        * value


        **Note:** The maxiumum number of metafields allowed on each order, product, category, variant, or brand is 250
        per client ID. For more information, see [Platform
        Limits](https://support.bigcommerce.com/s/article/Platform-Limits) in the Help Center.
      tags:
        - metafields
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metafields_createProductMetafield_Response_200'
        '400':
          description: Bad Request. Input is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProductMetafieldRequestBadRequestError'
        '409':
          description: >
            The `Metafield` was in conflict with another `Metafield`. This can be the result of duplicate unique key
            combinations of the appʼs client ID, namespace, key, resource_type, and resource_id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProductMetafieldRequestConflictError'
        '422':
          description: >
            The `Metafield` was not valid. This is the result of missing required fields, or of invalid data. See the
            response for more details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProductMetafieldRequestUnprocessableEntityError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/metafield_Base'
  /stores/{store_hash}/v3/catalog/products/{product_id}/metafields/{metafield_id}:
    get:
      operationId: getProductMetafield
      summary: Get Product Metafield
      description: Returns a single *Product Metafield*. Optional parameters can be passed in.
      tags:
        - metafields
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: metafield_id
          in: path
          description: |
            The ID of the `Metafield`.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CatalogProductsProductIdMetafieldsMetafieldIdGetParametersIncludeFieldsSchemaItems'
        - name: exclude_fields
          in: query
          description: >-
            Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID
            cannot be excluded.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metafields_getProductMetafield_Response_200'
        '404':
          description: |
            The resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProductMetafieldRequestNotFoundError'
    put:
      operationId: updateProductMetafield
      summary: Update Product Metafield
      description: "Updates a *Product Metafield*.\n\n**Required Fields**\n* none\n\n**Read-Only Fields**\n* id\n* These fields can only be modified using the API account that created the metafield:\n\t* `namespace`\n\t* `key`\n\t* `permission_set`\n\t* `value`\n\n**Usage Notes**\n* Attempting to modify the `namespace`, `key`, `permission_set`, or `value` field using an API account different from the one used to create those metafields will result in a `403` error message. "
      tags:
        - metafields
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: metafield_id
          in: path
          description: |
            The ID of the `Metafield`.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Metafields_updateProductMetafield_Response_200'
        '400':
          description: Bad Request. Input is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateProductMetafieldRequestBadRequestError'
        '404':
          description: |
            The resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateProductMetafieldRequestNotFoundError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/metafield_Base'
    delete:
      operationId: deleteProductMetafield
      summary: Delete Product Metafield
      description: Deletes a *Product Metafield*.
      tags:
        - metafields
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: metafield_id
          in: path
          description: |
            The ID of the `Metafield`.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '404':
          description: |
            The resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteProductMetafieldRequestNotFoundError'
  /stores/{store_hash}/v3/catalog/products/{product_id}/reviews:
    get:
      operationId: getProductReviews
      summary: List Product Reviews
      description: Returns a list of all *Product Reviews*. Optional parameters can be passed in.
      tags:
        - reviews
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CatalogProductsProductIdReviewsGetParametersIncludeFieldsSchemaItems'
        - name: exclude_fields
          in: query
          description: >-
            Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID
            cannot be excluded.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: page
          in: query
          description: |
            Specifies the page number in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
        - name: limit
          in: query
          description: |
            Controls the number of items per page in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
            default: 50
        - name: status
          in: query
          description: Filter items by status. `1` for approved, `0` for pending.
          required: false
          schema:
            $ref: '#/components/schemas/CatalogProductsProductIdReviewsGetParametersStatus'
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Reviews_getProductReviews_Response_200'
        '404':
          description: |
            The product ID does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProductReviewsRequestNotFoundError'
    post:
      operationId: createProductReview
      summary: Create Product Review
      description: |-
        Creates a *Product Review*.

        **Required Fields**
        - title
        - date_reviewed

        **Read-Only Fields**
        * id
      tags:
        - reviews
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Reviews_createProductReview_Response_200'
        '404':
          description: |
            The product ID does not exist.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProductReviewRequestNotFoundError'
      requestBody:
        description: |
          The model for a POST to create a product review.
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: |-
                    The title for the product review.
                    Required in /POST.
                text:
                  type: string
                  description: |
                    The text for the product review.
                status:
                  type: string
                  description: |
                    The status of the product review. Must be one of `approved`, `disapproved` or `pending`.
                rating:
                  type: integer
                  description: The rating of the product review. Must be one of 0, 1, 2, 3, 4, 5.
                email:
                  type: string
                  description: The email of the reviewer. Must be a valid email, or an empty string.
                name:
                  type: string
                  description: The name of the reviewer.
                date_reviewed:
                  type: string
                  format: date-time
                  description: |
                    Date the product was reviewed. Required in /POST.
              required:
                - title
                - date_reviewed
  /stores/{store_hash}/v3/catalog/products/{product_id}/reviews/{review_id}:
    get:
      operationId: getProductReview
      summary: Get Product Review
      description: Returns a single *Product Review*. Optional parameters maybe passed in.
      tags:
        - reviews
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: review_id
          in: path
          description: |
            The ID of the `review` that is being operated on.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CatalogProductsProductIdReviewsReviewIdGetParametersIncludeFieldsSchemaItems'
        - name: exclude_fields
          in: query
          description: >-
            Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID
            cannot be excluded.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Reviews_getProductReview_Response_200'
        '404':
          description: |
            The resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProductReviewRequestNotFoundError'
    put:
      operationId: updateProductReview
      summary: Update Product Review
      description: |-
        Updates a *Product Review*.

        **Required Fields**
        * none

        **Read-Only Fields**
        * id
      tags:
        - reviews
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: review_id
          in: path
          description: |
            The ID of the `review` that is being operated on.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Reviews_updateProductReview_Response_200'
        '404':
          description: |
            The resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateProductReviewRequestNotFoundError'
      requestBody:
        description: |
          A BigCommerce `ProductReview` object.
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: |-
                    The title for the product review.
                    Required in /POST.
                text:
                  type: string
                  description: |
                    The text for the product review.
                status:
                  type: string
                  description: |
                    The status of the product review. Must be one of `approved`, `disapproved` or `pending`.
                rating:
                  type: integer
                  description: The rating of the product review. Must be one of 0, 1, 2, 3, 4, 5.
                email:
                  type: string
                  description: The email of the reviewer. Must be a valid email, or an empty string.
                name:
                  type: string
                  description: The name of the reviewer.
                date_reviewed:
                  type: string
                  format: date-time
                  description: |
                    Date the product was reviewed. Required in /POST.
              required:
                - title
                - date_reviewed
    delete:
      operationId: deleteProductReview
      summary: Delete Product Review
      description: Deletes a *Product Review*.
      tags:
        - reviews
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: review_id
          in: path
          description: |
            The ID of the `review` that is being operated on.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
  /stores/{store_hash}/v3/catalog/summary:
    get:
      operationId: getCatalogSummary
      summary: Get Catalog Summary
      description: |-
        Returns a lightweight inventory summary from the BigCommerce Catalog.

        The inventory summary includes:
        * "inventory_count"
        * "variant_count"
        * "inventory_value"
        * "highest_variant_price"
        * "average_variant_price"
        * "lowest_variant_price"
        * "oldest_variant_date"
        * "newest_variant_date"
        * "primary_category_id"
        * "primary_category_name"
      tags:
        - summary
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Summary_getCatalogSummary_Response_200'
  /stores/{store_hash}/v3/catalog/products/{product_id}/videos:
    get:
      operationId: getProductVideos
      summary: List Product Videos
      description: Returns a list of *Product Videos*. Optional parameters can be passed in.
      tags:
        - videos
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CatalogProductsProductIdVideosGetParametersIncludeFieldsSchemaItems'
        - name: exclude_fields
          in: query
          description: >-
            Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID
            cannot be excluded.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: page
          in: query
          description: |
            Specifies the page number in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
        - name: limit
          in: query
          description: |
            Controls the number of items per page in a limited (paginated) list of products.
          required: false
          schema:
            type: integer
            default: 50
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Videos_getProductVideos_Response_200'
    post:
      operationId: createProductVideo
      summary: Create Product Video
      description: >-
        Creates a *Product Video*.


        **Required Fields**

        * video_id


        **Read-Only Fields**

        * id


        Publicly accessible URLs are valid parameters.


        The Catalog API integrates with third-party YouTube, and you must load videos through YouTube.

        The [YouTube Terms of Service](https://www.youtube.com/t/terms) and [Google Privacy
        Policy](https://policies.google.com/privacy) apply, as indicated in our [Privacy
        Policy](https://www.bigcommerce.com/privacy/) and [Terms of Service](https://www.bigcommerce.com/terms/).
      tags:
        - videos
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Videos_createProductVideo_Response_200'
        '404':
          description: |
            The resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateProductVideoRequestNotFoundError'
      requestBody:
        description: |
          The model for a POST to create a video on a product.
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: |
                    The title for the video. If left blank, this will be filled in according to data on a host site.
                description:
                  type: string
                  description: >
                    The description for the video. If left blank, this will be filled in according to data on a host
                    site.
                sort_order:
                  type: integer
                  description: >
                    The order in which the video will be displayed on the product page. Higher integers give the video a
                    lower priority. When updating, if the video is given a lower priority, all videos with a
                    `sort_order` the same as or greater than the videoʼs new `sort_order` value will have their
                    `sort_order`s reordered.
                type:
                  $ref: '#/components/schemas/CatalogProductsProductIdVideosPostRequestBodyContentApplicationJsonSchemaType'
                  description: |
                    The video type (a short name of a host site).
                video_id:
                  type: string
                  description: |
                    The ID of the video on a host site.
  /stores/{store_hash}/v3/catalog/products/{product_id}/videos/{id}:
    get:
      operationId: getProductVideo
      summary: Get Product Video
      description: Returns a single *Product Video*. Optional parameters can be passed in.
      tags:
        - videos
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: id
          in: path
          description: The BigCommerce ID of the `Video`
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include_fields
          in: query
          description: Fields to include, in a comma-separated list. The ID and the specified fields will be returned.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CatalogProductsProductIdVideosIdGetParametersIncludeFieldsSchemaItems'
        - name: exclude_fields
          in: query
          description: >-
            Fields to exclude, in a comma-separated list. The specified fields will be excluded from a response. The ID
            cannot be excluded.
          required: false
          schema:
            type: array
            items:
              type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Videos_getProductVideo_Response_200'
        '404':
          description: |
            The resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetProductVideoRequestNotFoundError'
    put:
      operationId: updateProductVideo
      summary: Update Product Video
      description: >-
        Updates a *Product Video.


        **Required Fields**

        * none


        **Read-Only Fields**

        * id


        The Catalog API integrates with third-party YouTube, and you must load videos through YouTube.

        The [YouTube Terms of Service](https://www.youtube.com/t/terms) and [Google Privacy
        Policy](https://policies.google.com/privacy) apply, as indicated in our [Privacy
        Policy](https://www.bigcommerce.com/privacy/) and [Terms of Service](https://www.bigcommerce.com/terms/).
      tags:
        - videos
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: id
          in: path
          description: The BigCommerce ID of the `Video`
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Videos_updateProductVideo_Response_200'
        '404':
          description: |
            The resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateProductVideoRequestNotFoundError'
      requestBody:
        description: |
          The model for a PUT to update a video on a product.
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: |
                    The title for the video. If left blank, this will be filled in according to data on a host site.
                description:
                  type: string
                  description: >
                    The description for the video. If left blank, this will be filled in according to data on a host
                    site.
                sort_order:
                  type: integer
                  description: >
                    The order in which the video will be displayed on the product page. Higher integers give the video a
                    lower priority. When updating, if the video is given a lower priority, all videos with a
                    `sort_order` the same as or greater than the videoʼs new `sort_order` value will have their
                    `sort_order`s reordered.
                type:
                  $ref: '#/components/schemas/CatalogProductsProductIdVideosIdPutRequestBodyContentApplicationJsonSchemaType'
                  description: |
                    The video type (a short name of a host site).
                id:
                  type: integer
                  description: |
                    The unique numeric ID of the product video; increments sequentially.
    delete:
      operationId: deleteProductVideo
      summary: Delete Product Video
      description: Deletes a *Product Video*.
      tags:
        - videos
      parameters:
        - name: product_id
          in: path
          description: |
            The ID of the `Product` to which the resource belongs.
          required: true
          schema:
            type: integer
        - name: id
          in: path
          description: The BigCommerce ID of the `Video`
          required: true
          schema:
            type: integer
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

            |:--------|:-----------|:----------|

            |  Products | modify | `store_v2_products` |

            |  Products | read-only | `store_v2_products_read_only` |


            ### Authentication header


            | Header | Argument | Description |

            |:-------|:---------|:------------|

            | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our
            [Guide to API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


            ### Further reading


            For example requests and more information about authenticating BigCommerce APIs, see [Authentication and
            Example
            Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


            For more about BigCommerce OAuth scopes, see our [Guide to API
            Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


            For a list of API status codes, see [API Status
            Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
          required: true
          schema:
            type: string
        - name: Accept
          in: header
          description: >-
            The [MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types) of the response
            body.
          required: true
          schema:
            type: string
            default: application/json
      responses:
        '204':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties: {}
servers:
  - url: https://api.bigcommerce.com
    description: https://api.bigcommerce.com
components:
  schemas:
    IncludeParamBaseItems:
      type: string
      enum:
        - bulk_pricing_rules
        - channels
        - custom_fields
        - images
        - modifiers
        - options
        - parent_relations
        - primary_image
        - reviews
        - variants
        - videos
      title: IncludeParamBaseItems
    IncludeParamBase:
      type: array
      items:
        $ref: '#/components/schemas/IncludeParamBaseItems'
      title: IncludeParamBase
    CatalogProductsGetParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - name
        - type
        - sku
        - description
        - weight
        - width
        - depth
        - height
        - price
        - cost_price
        - retail_price
        - sale_price
        - map_price
        - tax_class_id
        - product_tax_code
        - calculated_price
        - categories
        - brand_id
        - option_set_id
        - option_set_display
        - inventory_level
        - inventory_warning_level
        - inventory_tracking
        - reviews_rating_sum
        - reviews_count
        - total_sold
        - fixed_cost_shipping_price
        - is_free_shipping
        - is_visible
        - is_featured
        - related_products
        - warranty
        - bin_picking_number
        - layout_file
        - upc
        - mpn
        - gtin
        - date_last_imported
        - search_keywords
        - availability
        - availability_description
        - condition
        - is_condition_shown
        - order_quantity_minimum
        - order_quantity_maximum
        - page_title
        - meta_keywords
        - meta_description
        - date_created
        - date_modified
        - view_count
        - preorder_release_date
        - preorder_message
        - is_preorder_only
        - is_price_hidden
        - price_hidden_label
        - custom_url
        - base_variant_id
        - open_graph_type
        - open_graph_title
        - open_graph_description
        - open_graph_use_meta_description
        - open_graph_use_product_name
        - open_graph_use_image
      title: CatalogProductsGetParametersIncludeFieldsSchemaItems
    CatalogProductsGetParametersDirection:
      type: string
      enum:
        - asc
        - desc
      title: CatalogProductsGetParametersDirection
    CatalogProductsGetParametersSort:
      type: string
      enum:
        - id
        - name
        - sku
        - price
        - date_modified
        - date_last_imported
        - inventory_level
        - is_visible
        - total_sold
        - calculated_price
      title: CatalogProductsGetParametersSort
    CatalogProductsGetParametersCondition:
      type: string
      enum:
        - new
        - used
        - refurbished
      title: CatalogProductsGetParametersCondition
    CatalogProductsGetParametersIsFeatured:
      type: string
      enum:
        - '1'
        - '0'
      title: CatalogProductsGetParametersIsFeatured
    CatalogProductsGetParametersType:
      type: string
      enum:
        - digital
        - physical
      title: CatalogProductsGetParametersType
    CatalogProductsGetParametersKeywordContext:
      type: string
      enum:
        - shopper
        - merchant
      title: CatalogProductsGetParametersKeywordContext
    CatalogProductsGetParametersAvailability:
      type: string
      enum:
        - available
        - disabled
        - preorder
      title: CatalogProductsGetParametersAvailability
    CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsType:
      type: string
      enum:
        - physical
        - digital
      description: |
        The product type. One of: `physical` - a physical stock unit, `digital` - a digital download.
      title: CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsType
    CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsInventoryTracking:
      type: string
      enum:
        - none
        - product
        - variant
      description: >
        The type of inventory tracking for the product. Values are: `none` - inventory levels will not be tracked;
        `product` - inventory levels will be tracked using the `inventory_level` and `inventory_warning_level` fields;
        `variant` - inventory levels will be tracked based on variants, which maintain their own warning levels and
        inventory levels.
      title: CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsInventoryTracking
    CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsAvailability:
      type: string
      enum:
        - available
        - disabled
        - preorder
      description: >
        Availability of the product. (Corresponds to the productʼs
        [Purchasability](https://support.bigcommerce.com/s/article/Adding-Products-v3?language=en_US#sections) section
        in the control panel.) Supported values: `available` - the product is available for purchase; `disabled` - the
        product is listed on the storefront, but cannot be purchased; `preorder` - the product is listed for pre-orders.
      title: CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsAvailability
    CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsGiftWrappingOptionsType:
      type: string
      enum:
        - any
        - none
        - list
      description: >
        Type of gift-wrapping options. Values: `any` - allow any gift-wrapping options in the store; `none` - disallow
        gift-wrapping on the product; `list` – provide a list of IDs in the `gift_wrapping_options_list` field.


        Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query
        parameters.
      title: CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsGiftWrappingOptionsType
    CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsCondition:
      type: string
      enum:
        - New
        - Used
        - Refurbished
      description: >
        The product condition. Will be shown on the product page if the `is_condition_shown` fieldʼs value is `true`.
        Possible values: `New`, `Used`, `Refurbished`.
      title: CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsCondition
    customUrl_Full:
      type: object
      properties:
        url:
          type: string
          description: |
            Product URL on the storefront.
        is_customized:
          type: boolean
          description: >
            Returns `true` if the URL has been changed from its default state (the auto-assigned URL that BigCommerce
            provides).
        create_redirect:
          type: boolean
          description: >
            Optional field. This field automatically creates a dynamic 301 redirect when a product URL change occurs
            with a PUT request. Existing dynamic redirects will automatically update to a new URL to avoid a loop.
      description: >-
        The custom URL for the product on the storefront. If not provided in the POST request, the URL will be
        autogenerated from the product name.
      title: customUrl_Full
    CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsOpenGraphType:
      type: string
      enum:
        - product
        - album
        - book
        - drink
        - food
        - game
        - movie
        - song
        - tv_show
      description: |
        Type of product, defaults to `product`.
      title: CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsOpenGraphType
    productCustomField_Put:
      type: object
      properties:
        id:
          type: integer
          description: >-
            The unique numeric ID of the custom field; increments sequentially. Required to update existing custom field
            in /PUT request.

            Read-Only
        name:
          type: string
          description: |
            The name of the field, shown on the storefront, orders, etc. Required for /POST
        value:
          type: string
          description: |
            The name of the field, shown on the storefront, orders, etc. Required for /POST
      required:
        - name
        - value
      description: The model for a PUT to update a custom field on a product.
      title: productCustomField_Put
    CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsBulkPricingRulesItemsType:
      type: string
      enum:
        - price
        - percent
        - fixed
      description: >-
        The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
        adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

        Required in /POST.
      title: CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsBulkPricingRulesItemsType
    CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsBulkPricingRulesItemsAmount:
      oneOf:
        - type: number
          format: double
        - type: string
      description: >-
        You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the response
        will return a number for `price` and `fixed` adjustments.

        Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
        “.10”. The response will return a float value for both `price` and `percentage` adjustments. 

        Required in /POST.
      title: CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsBulkPricingRulesItemsAmount
    CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsBulkPricingRulesItems:
      type: object
      properties:
        id:
          type: integer
          description: Unique ID of the *Bulk Pricing Rule*. Read-Only.
        quantity_min:
          type: integer
          description: >
            The minimum inclusive quantity of a product to satisfy this rule. Must be greater than or equal to zero. For
            `fixed` rules, the minimum quantity canʼt be less than two.

            Required in /POST.
        quantity_max:
          type: integer
          description: >-
            The maximum inclusive quantity of a product to satisfy this rule. Must be greater than the `quantity_min`
            value – unless this field has a value of 0 (zero), in which case there will be no maximum bound for this
            rule.

            Required in /POST.
        type:
          $ref: >-
            #/components/schemas/CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsBulkPricingRulesItemsType
          description: >-
            The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
            adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

            Required in /POST.
        amount:
          $ref: >-
            #/components/schemas/CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsBulkPricingRulesItemsAmount
          description: >-
            You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the
            response will return a number for `price` and `fixed` adjustments.

            Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
            “.10”. The response will return a float value for both `price` and `percentage` adjustments. 

            Required in /POST.
      required:
        - id
        - quantity_min
        - quantity_max
        - type
        - amount
      title: CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsBulkPricingRulesItems
    productImage_Full:
      type: object
      properties:
        is_thumbnail:
          type: boolean
          description: |
            Flag for identifying whether the image is used as the productʼs thumbnail.
        sort_order:
          type: integer
          description: >
            The order in which the image will be displayed on the product page. Higher integers give the image a lower
            priority. When updating, if the image is given a lower priority, all images with a `sort_order` the same as
            or greater than the imageʼs new `sort_order` value will have their `sort_order`s reordered.
        description:
          type: string
          description: |
            The description for the image.
        date_modified:
          type: string
          format: date-time
          description: |
            The date on which the product image was modified.
        id:
          type: integer
          description: |
            The unique numeric ID of the image; increments sequentially.
        product_id:
          type: integer
          description: |
            The unique numeric identifier for the product with which the image is associated.
        image_url:
          type: string
          description: |
            The URL for an image displayed on the storefront when the conditions are applied. Limit of 8MB per file.

            Cannot be used with `image_file`.
        url_zoom:
          type: string
          description: >
            The zoom URL for this image. By default, this is used as the zoom image on product pages when zoom images
            are enabled. You should provide an image smaller than 1280x1280; otherwise, the API returns a resized image.
        url_standard:
          type: string
          description: |
            The standard URL for this image. By default, this is used for product-page images.
        url_thumbnail:
          type: string
          description: >
            The thumbnail URL for this image. By default, this is the image size used on the category page and in side
            panels.
        url_tiny:
          type: string
          description: >
            The tiny URL for this image. By default, this is the image size used for thumbnails beneath the product
            image on a product page.
      description: Common ProductImage properties.
      title: productImage_Full
    primaryImage_Full:
      type: object
      properties:
        id:
          type: integer
          description: |
            The unique numeric ID of the image; increments sequentially.
        product_id:
          type: integer
          description: |
            The unique numeric identifier for the product with which the image is associated.
        is_thumbnail:
          type: boolean
          description: |
            Flag for identifying whether the image is used as the productʼs thumbnail.
        sort_order:
          type: integer
          description: >
            The order in which the image will be displayed on the product page. Higher integers give the image a lower
            priority. When updating, if the image is given a lower priority, all images with a `sort_order` the same as
            or greater than the imageʼs new `sort_order` value will have their `sort_order`s reordered.
        description:
          type: string
          description: |
            The description for the image.
        image_file:
          type: string
          description: |
            The local path to the original image file uploaded to BigCommerce. Use image_url when creating a product.

            Must be sent as a `multipart/form-data` field in the request body. Limit of 8 MB per file.
        url_zoom:
          type: string
          description: >
            The zoom URL for this image. By default, this is used as the zoom image on product pages when zoom images
            are enabled. You should provide an image smaller than 1280x1280; otherwise, the API returns a resized image.
        url_standard:
          type: string
          description: |
            The standard URL for this image. By default, this is used for product-page images.
        url_thumbnail:
          type: string
          description: >
            The thumbnail URL for this image. By default, this is the image size used on the category page and in side
            panels.
        url_tiny:
          type: string
          description: >
            The tiny URL for this image. By default, this is the image size used for thumbnails beneath the product
            image on a product page.
        date_modified:
          type: string
          format: date-time
          description: |
            The date on which the product image was modified.
      description: Common PrimaryImage properties.
      title: primaryImage_Full
    ProductVideoBaseType:
      type: string
      enum:
        - youtube
      description: |
        The video type (a short name of a host site).
      title: ProductVideoBaseType
    productVideo_Full:
      type: object
      properties:
        title:
          type: string
          description: |
            The title for the video. If left blank, this will be filled in according to data on a host site.
        description:
          type: string
          description: |
            The description for the video. If left blank, this will be filled in according to data on a host site.
        sort_order:
          type: integer
          description: >
            The order in which the video will be displayed on the product page. Higher integers give the video a lower
            priority. When updating, if the video is given a lower priority, all videos with a `sort_order` the same as
            or greater than the videoʼs new `sort_order` value will have their `sort_order`s reordered.
        type:
          $ref: '#/components/schemas/ProductVideoBaseType'
          description: |
            The video type (a short name of a host site).
        video_id:
          type: string
          description: The ID of the video on a host site.
        id:
          type: integer
          description: |
            The unique numeric ID of the product video; increments sequentially.
        product_id:
          type: integer
          description: |
            The unique numeric identifier for the product with which the image is associated.
        length:
          type: string
          description: |
            Length of the video. This will be filled in according to data on a host site.
      description: |
        A product video model.
      title: productVideo_Full
    ProductOptionBaseType:
      type: string
      enum:
        - radio_buttons
        - rectangles
        - dropdown
        - product_list
        - product_list_with_images
        - swatch
      description: >
        The type of option, which determines how it will display on the storefront. Acceptable values: `radio_buttons`,
        `rectangles`, `dropdown`, `product_list`, `product_list_with_images`, `swatch`. For reference, the former v2 API
        values are: RB = radio_buttons, RT = rectangles, S = dropdown, P = product_list, PI = product_list_with_images,
        CS = swatch.
      title: ProductOptionBaseType
    ProductOptionConfigFullDateLimitMode:
      type: string
      enum:
        - earliest
        - range
        - latest
      description: |
        (date) The type of limit that is allowed to be entered on a date option.
      title: ProductOptionConfigFullDateLimitMode
    ProductOptionConfigFullFileTypesMode:
      type: string
      enum:
        - specific
        - all
      description: >
        (file) The kind of restriction on the file types that can be uploaded with a file upload option. Values:
        `specific` - restricts uploads to particular file types; `all` - allows all file types.
      title: ProductOptionConfigFullFileTypesMode
    ProductOptionConfigFullNumberLimitMode:
      type: string
      enum:
        - lowest
        - highest
        - range
      description: |
        (numbers_only_text) The type of limit on values entered for a number option.
      title: ProductOptionConfigFullNumberLimitMode
    ProductOptionConfigFullProductListShippingCalc:
      type: string
      enum:
        - none
        - weight
        - package
      description: >
        (product_list, product_list_with_images) How to factor the optional productʼs weight and package dimensions into
        the shipping quote. Values: `none` - donʼt adjust; `weight` - use shipping weight only; `package` - use weight
        and dimensions.
      title: ProductOptionConfigFullProductListShippingCalc
    productOptionConfig_Full:
      type: object
      properties:
        default_value:
          type: string
          description: >
            (date, text, multi_line_text, numbers_only_text) The default value. Shown on a date option as an
            ISO-8601–formatted string, or on a text option as a string.
        checked_by_default:
          type: boolean
          description: |
            (checkbox) Flag for setting the checkbox to be checked by default.
        checkbox_label:
          type: string
          description: |
            (checkbox) Label displayed for the checkbox option.
        date_limited:
          type: boolean
          description: |
            (date) Flag to limit the dates allowed to be entered on a date option.
        date_limit_mode:
          $ref: '#/components/schemas/ProductOptionConfigFullDateLimitMode'
          description: |
            (date) The type of limit that is allowed to be entered on a date option.
        date_earliest_value:
          type: string
          format: date
          description: |
            (date) The earliest date allowed to be entered on the date option, as an ISO-8601 formatted string.
        date_latest_value:
          type: string
          format: date
          description: |
            (date) The latest date allowed to be entered on the date option, as an ISO-8601 formatted string.
        file_types_mode:
          $ref: '#/components/schemas/ProductOptionConfigFullFileTypesMode'
          description: >
            (file) The kind of restriction on the file types that can be uploaded with a file upload option. Values:
            `specific` - restricts uploads to particular file types; `all` - allows all file types.
        file_types_supported:
          type: array
          items:
            type: string
          description: |
            (file) The type of files allowed to be uploaded if the `file_type_option` is set to `specific`. Values:
              `images` - Allows upload of image MIME types (`bmp`, `gif`, `jpg`, `jpeg`, `jpe`, `jif`, `jfif`, `jfi`, `png`, `wbmp`, `xbm`, `tiff`). `documents` - Allows upload of document MIME types (`txt`, `pdf`, `rtf`, `doc`, `docx`, `xls`, `xlsx`, `accdb`, `mdb`, `one`, `pps`, `ppsx`, `ppt`, `pptx`, `pub`, `odt`, `ods`, `odp`, `odg`, `odf`).
              `other` - Allows file types defined in the `file_types_other` array.
        file_types_other:
          type: array
          items:
            type: string
          description: |
            (file) A list of other file types allowed with the file upload option.
        file_max_size:
          type: integer
          description: >
            (file) The maximum size for a file that can be used with the file upload option. This will still be limited
            by the server.
        text_characters_limited:
          type: boolean
          description: |
            (text, multi_line_text) Flag to validate the length of a text or multi-line text input.
        text_min_length:
          type: integer
          description: |
            (text, multi_line_text) The minimum length allowed for a text or multi-line text option.
        text_max_length:
          type: integer
          description: |
            (text, multi_line_text) The maximum length allowed for a text or multi line text option.
        text_lines_limited:
          type: boolean
          description: |
            (multi_line_text) Flag to validate the maximum number of lines allowed on a multi-line text input.
        text_max_lines:
          type: integer
          description: |
            (multi_line_text) The maximum number of lines allowed on a multi-line text input.
        number_limited:
          type: boolean
          description: |
            (numbers_only_text) Flag to limit the value of a number option.
        number_limit_mode:
          $ref: '#/components/schemas/ProductOptionConfigFullNumberLimitMode'
          description: |
            (numbers_only_text) The type of limit on values entered for a number option.
        number_lowest_value:
          type: number
          format: double
          description: |
            (numbers_only_text) The lowest allowed value for a number option if `number_limited` is true.
        number_highest_value:
          type: number
          format: double
          description: |
            (numbers_only_text) The highest allowed value for a number option if `number_limited` is true.
        number_integers_only:
          type: boolean
          description: |
            (numbers_only_text) Flag to limit the input on a number option to whole numbers only.
        product_list_adjusts_inventory:
          type: boolean
          description: >
            (product_list, product_list_with_images) Flag for automatically adjusting inventory on a product included in
            the list.
        product_list_adjusts_pricing:
          type: boolean
          description: >
            (product_list, product_list_with_images) Flag to add the optional productʼs price to the main productʼs
            price.
        product_list_shipping_calc:
          $ref: '#/components/schemas/ProductOptionConfigFullProductListShippingCalc'
          description: >
            (product_list, product_list_with_images) How to factor the optional productʼs weight and package dimensions
            into the shipping quote. Values: `none` - donʼt adjust; `weight` - use shipping weight only; `package` - use
            weight and dimensions.
      description: The values for option config can vary based on the Modifier created.
      title: productOptionConfig_Full
    ProductOptionOptionValueBaseValueData:
      type: object
      properties: {}
      description: >
        Extra data describing the value, based on the type of option or modifier with which the value is associated. The
        `swatch` type option can accept an array of `colors`, with up to three hexidecimal color keys; or an
        `image_url`, which is a full image URL path including protocol. The `product list` type option requires a
        `product_id`. The `checkbox` type option requires a boolean flag, called `checked_value`, to determine which
        value is considered to be the checked state. If no data is available, returns `null`.
      title: ProductOptionOptionValueBaseValueData
    productOptionOptionValue_Full:
      type: object
      properties:
        is_default:
          type: boolean
          description: >
            The flag for preselecting a value as the default on the storefront. This field is not supported for swatch
            options/modifiers.
        label:
          type: string
          description: |
            The text display identifying the value on the storefront. Required in a /POST.
        sort_order:
          type: integer
          description: |
            The order in which the value will be displayed on the product page. Required in a /POST.
        value_data:
          oneOf:
            - $ref: '#/components/schemas/ProductOptionOptionValueBaseValueData'
            - type: 'null'
          description: >
            Extra data describing the value, based on the type of option or modifier with which the value is associated.
            The `swatch` type option can accept an array of `colors`, with up to three hexidecimal color keys; or an
            `image_url`, which is a full image URL path including protocol. The `product list` type option requires a
            `product_id`. The `checkbox` type option requires a boolean flag, called `checked_value`, to determine which
            value is considered to be the checked state. If no data is available, returns `null`.
        id:
          type: integer
          description: |
            The unique numeric ID of the value; increments sequentially.
      required:
        - label
        - sort_order
      description: Product Option `option_value`.
      title: productOptionOptionValue_Full
    productOption_Base:
      type: object
      properties:
        id:
          type:
            - integer
            - 'null'
          description: |
            The unique numerical ID of the option, increments sequentially.
        product_id:
          type: integer
          description: |
            The unique numerical ID of the product to which the option belongs.
        display_name:
          type: string
          description: |
            The name of the option shown on the storefront.
        type:
          $ref: '#/components/schemas/ProductOptionBaseType'
          description: >
            The type of option, which determines how it will display on the storefront. Acceptable values:
            `radio_buttons`, `rectangles`, `dropdown`, `product_list`, `product_list_with_images`, `swatch`. For
            reference, the former v2 API values are: RB = radio_buttons, RT = rectangles, S = dropdown, P =
            product_list, PI = product_list_with_images, CS = swatch.
        config:
          $ref: '#/components/schemas/productOptionConfig_Full'
        sort_order:
          type: integer
          description: 'Order in which the option is displayed on the storefront. '
        option_values:
          type: array
          items:
            $ref: '#/components/schemas/productOptionOptionValue_Full'
      description: Common Option properties.
      title: productOption_Base
    ProductModifierBaseType:
      type: string
      enum:
        - date
        - checkbox
        - file
        - text
        - multi_line_text
        - numbers_only_text
        - radio_buttons
        - rectangles
        - dropdown
        - product_list
        - product_list_with_images
        - swatch
      description: >
        BigCommerce API, which determines how it will display on the storefront. Acceptable values: `date`, `checkbox`,
        `file`, `text`, `multi_line_text`, `numbers_only_text`, `radio_buttons`, `rectangles`, `dropdown`,
        `product_list`, `product_list_with_images`, `swatch`. Required in a /POST.
      title: ProductModifierBaseType
    ConfigFullDateLimitMode:
      type: string
      enum:
        - earliest
        - range
        - latest
      description: |
        (date) The type of limit that is allowed to be entered on a date option.
      title: ConfigFullDateLimitMode
    ConfigFullFileTypesMode:
      type: string
      enum:
        - specific
        - all
      description: >
        (file) The kind of restriction on the file types that can be uploaded with a file upload option. Values:
        `specific` - restricts uploads to particular file types; `all` - allows all file types.
      title: ConfigFullFileTypesMode
    ConfigFullNumberLimitMode:
      type: string
      enum:
        - lowest
        - highest
        - range
      description: |
        (numbers_only_text) The type of limit on values entered for a number option.
      title: ConfigFullNumberLimitMode
    ConfigFullProductListShippingCalc:
      type: string
      enum:
        - none
        - weight
        - package
      description: >
        (product_list, product_list_with_images) How to factor the optional productʼs weight and package dimensions into
        the shipping quote. Values: `none` - donʼt adjust; `weight` - use shipping weight only; `package` - use weight
        and dimensions.
      title: ConfigFullProductListShippingCalc
    config_Full:
      type: object
      properties:
        default_value:
          type: string
          description: >
            (date, text, multi_line_text, numbers_only_text) The default value. Shown on a date option as an
            ISO-8601–formatted string, or on a text option as a string.
        checked_by_default:
          type: boolean
          description: |
            (checkbox) Flag for setting the checkbox to be checked by default.
        checkbox_label:
          type: string
          description: |
            (checkbox) Label displayed for the checkbox option.
        date_limited:
          type: boolean
          description: |
            (date) Flag to limit the dates allowed to be entered on a date option.
        date_limit_mode:
          $ref: '#/components/schemas/ConfigFullDateLimitMode'
          description: |
            (date) The type of limit that is allowed to be entered on a date option.
        date_earliest_value:
          type: string
          format: date
          description: |
            (date) The earliest date allowed to be entered on the date option, as an ISO-8601 formatted string.
        date_latest_value:
          type: string
          format: date
          description: |
            (date) The latest date allowed to be entered on the date option, as an ISO-8601 formatted string.
        file_types_mode:
          $ref: '#/components/schemas/ConfigFullFileTypesMode'
          description: >
            (file) The kind of restriction on the file types that can be uploaded with a file upload option. Values:
            `specific` - restricts uploads to particular file types; `all` - allows all file types.
        file_types_supported:
          type: array
          items:
            type: string
          description: |
            (file) The type of files allowed to be uploaded if the `file_type_option` is set to `specific`. Values:
              `images` - Allows upload of image MIME types (`bmp`, `gif`, `jpg`, `jpeg`, `jpe`, `jif`, `jfif`, `jfi`, `png`, `wbmp`, `xbm`, `tiff`). `documents` - Allows upload of document MIME types (`txt`, `pdf`, `rtf`, `doc`, `docx`, `xls`, `xlsx`, `accdb`, `mdb`, `one`, `pps`, `ppsx`, `ppt`, `pptx`, `pub`, `odt`, `ods`, `odp`, `odg`, `odf`).
              `other` - Allows file types defined in the `file_types_other` array.        
        file_types_other:
          type: array
          items:
            type: string
          description: |
            (file) A list of other file types allowed with the file upload option.
        file_max_size:
          type: integer
          description: >
            (file) The maximum size for a file that can be used with the file upload option. This will still be limited
            by the server.
        text_characters_limited:
          type: boolean
          description: |
            (text, multi_line_text) Flag to validate the length of a text or multi-line text input.
        text_min_length:
          type: integer
          description: |
            (text, multi_line_text) The minimum length allowed for a text or multi-line text option.
        text_max_length:
          type: integer
          description: |
            (text, multi_line_text) The maximum length allowed for a text or multi line text option.
        text_lines_limited:
          type: boolean
          description: |
            (multi_line_text) Flag to validate the maximum number of lines allowed on a multi-line text input.
        text_max_lines:
          type: integer
          description: |
            (multi_line_text) The maximum number of lines allowed on a multi-line text input.
        number_limited:
          type: boolean
          description: |
            (numbers_only_text) Flag to limit the value of a number option.
        number_limit_mode:
          $ref: '#/components/schemas/ConfigFullNumberLimitMode'
          description: |
            (numbers_only_text) The type of limit on values entered for a number option.
        number_lowest_value:
          type: number
          format: double
          description: |
            (numbers_only_text) The lowest allowed value for a number option if `number_limited` is true.
        number_highest_value:
          type: number
          format: double
          description: |
            (numbers_only_text) The highest allowed value for a number option if `number_limited` is true.
        number_integers_only:
          type: boolean
          description: |
            (numbers_only_text) Flag to limit the input on a number option to whole numbers only.
        product_list_adjusts_inventory:
          type: boolean
          description: >
            (product_list, product_list_with_images) Flag for automatically adjusting inventory on a product included in
            the list.
        product_list_adjusts_pricing:
          type: boolean
          description: >
            (product_list, product_list_with_images) Flag to add the optional productʼs price to the main productʼs
            price.
        product_list_shipping_calc:
          $ref: '#/components/schemas/ConfigFullProductListShippingCalc'
          description: >
            (product_list, product_list_with_images) How to factor the optional productʼs weight and package dimensions
            into the shipping quote. Values: `none` - donʼt adjust; `weight` - use shipping weight only; `package` - use
            weight and dimensions.
      description: The values for option config can vary based on the Modifier created.
      title: config_Full
    ProductModifierOptionValueBaseValueData:
      type: object
      properties: {}
      description: >
        Extra data describing the value, based on the type of option or modifier with which the value is associated. The
        `swatch` type option can accept an array of `colors`, with up to three hexidecimal color keys; or an
        `image_url`, which is a full image URL path including protocol. The `product list` type option requires a
        `product_id`. The `checkbox` type option requires a boolean flag, called `checked_value`, to determine which
        value is considered to be the checked state. If no data is available, returns `null`.
      title: ProductModifierOptionValueBaseValueData
    AdjusterFullAdjuster:
      type: string
      enum:
        - relative
        - percentage
      description: >
        The type of adjuster for either the price or the weight of the variant, when the modifier value is selected on
        the storefront.
      title: AdjusterFullAdjuster
    adjuster_Full:
      type: object
      properties:
        adjuster:
          oneOf:
            - $ref: '#/components/schemas/AdjusterFullAdjuster'
            - type: 'null'
          description: >
            The type of adjuster for either the price or the weight of the variant, when the modifier value is selected
            on the storefront.
        adjuster_value:
          type: number
          format: double
          description: >
            The numeric amount by which the adjuster will change either the price or the weight of the variant, when the
            modifier value is selected on the storefront.
      description: Adjuster for Complex Rules.
      title: adjuster_Full
    AdjustersFullPurchasingDisabled:
      type: object
      properties:
        status:
          type: boolean
          description: >
            Flag for whether the modifier value disables purchasing when selected on the storefront. This can be used
            for temporarily disabling a particular modifier value.
        message:
          type: string
          description: |
            The message displayed on the storefront when the purchasing disabled status is `true`.
      title: AdjustersFullPurchasingDisabled
    adjusters_Full:
      type: object
      properties:
        price:
          $ref: '#/components/schemas/adjuster_Full'
        weight:
          $ref: '#/components/schemas/adjuster_Full'
        image_url:
          type: string
          description: |
            The URL for an image displayed on the storefront when the modifier value is selected.Limit of 8MB per file.
        purchasing_disabled:
          $ref: '#/components/schemas/AdjustersFullPurchasingDisabled'
      title: adjusters_Full
    productModifierOptionValue_Full:
      type: object
      properties:
        is_default:
          type: boolean
          description: >
            The flag for preselecting a value as the default on the storefront. This field is not supported for swatch
            options/modifiers.
        label:
          type: string
          description: |
            The text display identifying the value on the storefront. Required in a /POST.
        sort_order:
          type: integer
          description: |
            The order in which the value will be displayed on the product page. Required in a /POST.
        value_data:
          oneOf:
            - $ref: '#/components/schemas/ProductModifierOptionValueBaseValueData'
            - type: 'null'
          description: >
            Extra data describing the value, based on the type of option or modifier with which the value is associated.
            The `swatch` type option can accept an array of `colors`, with up to three hexidecimal color keys; or an
            `image_url`, which is a full image URL path including protocol. The `product list` type option requires a
            `product_id`. The `checkbox` type option requires a boolean flag, called `checked_value`, to determine which
            value is considered to be the checked state. If no data is available, returns `null`.
        adjusters:
          $ref: '#/components/schemas/adjusters_Full'
        id:
          type: integer
          description: |
            The unique numeric ID of the value; increments sequentially.
        option_id:
          type: integer
      required:
        - label
        - sort_order
      description: Product Modifer `option_value`.
      title: productModifierOptionValue_Full
    productModifier_Full:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ProductModifierBaseType'
          description: >
            BigCommerce API, which determines how it will display on the storefront. Acceptable values: `date`,
            `checkbox`, `file`, `text`, `multi_line_text`, `numbers_only_text`, `radio_buttons`, `rectangles`,
            `dropdown`, `product_list`, `product_list_with_images`, `swatch`. Required in a /POST.
        required:
          type: boolean
          description: |
            Whether or not this modifer is required or not at checkout. Required in a /POST.
        sort_order:
          type: integer
          description: The order the modifiers display on the product detail page.
        config:
          $ref: '#/components/schemas/config_Full'
        display_name:
          type: string
          description: The name of the option shown on the storefront.
        id:
          type: integer
          description: |
            The unique numeric ID of the modifier; increments sequentially.
        product_id:
          type: integer
          description: |
            The unique numeric ID of the product to which the option belongs.
        name:
          type: string
          description: |
            The unique option name. Auto-generated from the display name, a timestamp, and the product ID.
        option_values:
          type: array
          items:
            $ref: '#/components/schemas/productModifierOptionValue_Full'
      required:
        - type
        - required
      description: Product Modifier
      title: productModifier_Full
    CatalogProductsGetResponsesContentApplicationJsonSchemaDataItems:
      type: object
      properties:
        id:
          type: integer
          description: ID of the product. Read-Only.
        name:
          type: string
          description: |
            A unique product name.
        type:
          $ref: '#/components/schemas/CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsType'
          description: |
            The product type. One of: `physical` - a physical stock unit, `digital` - a digital download.
        sku:
          type: string
          description: |
            A unique user-defined alphanumeric product code/stock keeping unit (SKU).
        description:
          type: string
          description: |
            The product description, which can include HTML formatting.
        weight:
          type: string
          title: float
          description: >
            Weight of the product, which can be used when calculating shipping costs. This is based on the unit set on
            the store
        width:
          type: string
          title: float
          description: |
            Width of the product, which can be used when calculating shipping costs.
        depth:
          type: string
          title: float
          description: |
            Depth of the product, which can be used when calculating shipping costs.
        height:
          type: string
          title: float
          description: |
            Height of the product, which can be used when calculating shipping costs.
        price:
          type: string
          title: float
          description: |
            The price of the product. The price should include or exclude tax, based on the store settings.
        cost_price:
          type: string
          title: float
          description: |
            The cost price of the product. Stored for reference only; it is not used or displayed anywhere on the store.
        retail_price:
          type: string
          title: float
          description: |
            The retail cost of the product. If entered, the retail cost price will be shown on the product page.
        sale_price:
          type: string
          title: float
          description: >
            If entered, the sale price will be used instead of value in the price field when calculating the productʼs
            cost.
        map_price:
          type: number
          format: double
          description: Minimum Advertised Price.
        tax_class_id:
          type: number
          format: double
          description: |
            The ID of the tax class applied to the product. (NOTE: Value ignored if automatic tax is enabled.)
        product_tax_code:
          type: string
          description: >
            Tax Codes, such as AvaTax System Tax Codes, identify products and services that fall into special sales-tax
            categories. By using these codes, merchants who subscribe to a tax provider integration, such as
            BigCommerceʼs Avalara Premium, can calculate sales taxes more accurately. Stores without a tax provider will
            ignore the code when calculating sales tax. Do not pass more than one code. The codes are case-sensitive.
            For details, please see the tax providerʼs documentation.
        categories:
          type: array
          items:
            type: number
            format: double
          description: >
            An array of IDs for the categories to which this product belongs. When updating a product, if an array of
            categories is supplied, all product categories will be overwritten. Does not accept more than 1,000 ID
            values.
        brand_id:
          type: integer
          description: >
            You can add a product to an existing brand during a product /PUT or /POST use the `brand_id` field. The
            response body can include `brand_id'.
        inventory_level:
          type: integer
          description: >-
            Current inventory level of the product. You must track inventory by _product_ for this to take effect (see
            the `inventory_tracking` field). The Catalog API returns the inventory for only the default location.


            The inventory for a product cannot exceed 2,147,483,647 in the catalog. If you exceed the limit, the store
            sets the inventory level to the limit.


            The Catalog API handles limits in a different way than the Inventory API. For more information, see [Limit
            handling](/developer/docs/admin/catalog-and-inventory/inventory-adjustments#limit-handling-in-inventory-versus-catalog-api).
        inventory_warning_level:
          type: integer
          description: >
            Inventory warning level for the product. When the productʼs inventory level drops below the warning level,
            the store owner will be informed. Simple inventory tracking must be enabled (see the `inventory_tracking`
            field) for this to take any effect.
        inventory_tracking:
          $ref: '#/components/schemas/CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsInventoryTracking'
          description: >
            The type of inventory tracking for the product. Values are: `none` - inventory levels will not be tracked;
            `product` - inventory levels will be tracked using the `inventory_level` and `inventory_warning_level`
            fields; `variant` - inventory levels will be tracked based on variants, which maintain their own warning
            levels and inventory levels.
        fixed_cost_shipping_price:
          type: string
          title: float
          description: >
            A fixed shipping cost for the product. If defined, this value will be used during checkout instead of normal
            shipping-cost calculation.
        is_free_shipping:
          type: boolean
          description: >
            Flag used to indicate whether the product has free shipping. If `true`, the shipping cost for the product
            will be zero.
        is_visible:
          type: boolean
          description: >
            Flag to determine whether the product should be displayed to customers browsing the store. If `true`, the
            product will be displayed. If `false`, the product will be hidden from view.
        is_featured:
          type: boolean
          description: >
            Flag to determine whether the product should be included in the `featured products` panel when viewing the
            store.
        related_products:
          type: array
          items:
            type: integer
          description: |
            An array of IDs for the related products.
        warranty:
          type: string
          description: |
            Warranty information displayed on the product page. Can include HTML formatting.
        bin_picking_number:
          type: string
          description: |
            The BIN picking number for the product.
        layout_file:
          type: string
          description: >
            The layout template file used to render this product. This field applies only to stores with a Blueprint
            theme applied, and the returned value is a template file from the store's Blueprint theme. Custom Stencil
            template associations are not returned in this field. For stores with a Stencil theme applied, see [Custom
            Template Associations](/developer/api-reference/rest/admin/content/custom-template-associations).
        upc:
          type: string
          description: >
            The product UPC code, which is used in feeds for shopping comparison sites and external channel
            integrations.
        search_keywords:
          type: string
          description: |
            A comma-separated list of keywords that can be used to locate the product when searching the store.
        availability_description:
          type: string
          description: >
            Availability text displayed on the checkout page, under the product title. Tells the customer how long it
            will normally take to ship this product, such as: 'Usually ships in 24 hours.'
        availability:
          $ref: '#/components/schemas/CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsAvailability'
          description: >
            Availability of the product. (Corresponds to the productʼs
            [Purchasability](https://support.bigcommerce.com/s/article/Adding-Products-v3?language=en_US#sections)
            section in the control panel.) Supported values: `available` - the product is available for purchase;
            `disabled` - the product is listed on the storefront, but cannot be purchased; `preorder` - the product is
            listed for pre-orders.
        gift_wrapping_options_type:
          $ref: '#/components/schemas/CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsGiftWrappingOptionsType'
          description: >
            Type of gift-wrapping options. Values: `any` - allow any gift-wrapping options in the store; `none` -
            disallow gift-wrapping on the product; `list` – provide a list of IDs in the `gift_wrapping_options_list`
            field.


            Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query
            parameters.
        gift_wrapping_options_list:
          type: array
          items:
            type: integer
          description: >
            A list of gift-wrapping option IDs.


            Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query
            parameters.
        sort_order:
          type: integer
          description: >
            Priority to give this product when included in product lists on category pages and in search results. Lower
            integers will place the product closer to the top of the results.
        condition:
          $ref: '#/components/schemas/CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsCondition'
          description: >
            The product condition. Will be shown on the product page if the `is_condition_shown` fieldʼs value is
            `true`. Possible values: `New`, `Used`, `Refurbished`.
        is_condition_shown:
          type: boolean
          description: |
            Flag used to determine whether the product condition is shown to the customer on the product page.
        order_quantity_minimum:
          type: integer
          description: |
            The minimum quantity an order must contain, to be eligible to purchase this product.
        order_quantity_maximum:
          type: integer
          description: |
            The maximum quantity an order can contain when purchasing the product.
        page_title:
          type: string
          description: |
            Custom title for the product page. If not defined, the product name will be used as the meta title.
        meta_keywords:
          type: array
          items:
            type: string
          description: |
            Custom meta keywords for the product page. If not defined, the storeʼs default keywords will be used.
        meta_description:
          type: string
          description: >
            Custom meta description for the product page. If not defined, the storeʼs default meta description will be
            used.
        view_count:
          type: integer
          description: |
            The number of times the product has been viewed.
        preorder_release_date:
          type:
            - string
            - 'null'
          format: date-time
          description: >
            Pre-order release date. See the `availability` field for details on setting a productʼs availability to
            accept pre-orders.
        preorder_message:
          type: string
          description: >
            Custom expected-date message to display on the product page. If undefined, the message defaults to the
            storewide setting. Can contain the `%%DATE%%` placeholder, which will be substituted for the release date.
        is_preorder_only:
          type: boolean
          description: >
            If set to true then on the preorder release date the preorder status will automatically be removed.

            If set to false, then on the release date the preorder status **will not** be removed. It will need to be
            changed manually either in the

            control panel or using the API. Using the API set `availability` to `available`.
        is_price_hidden:
          type: boolean
          description: >
            False by default, indicating that this productʼs price should be shown on the product page. If set to
            `true`, the price is hidden. (NOTE: To successfully set `is_price_hidden` to `true`, the `availability`
            value must be `disabled`.)
        price_hidden_label:
          type: string
          description: >
            By default, an empty string. If `is_price_hidden` is `true`, the value of `price_hidden_label` is displayed
            instead of the price. (NOTE: To successfully set a non-empty string value with `is_price_hidden` set to
            `true`, the `availability` value must be `disabled`.)
        custom_url:
          $ref: '#/components/schemas/customUrl_Full'
        open_graph_type:
          $ref: '#/components/schemas/CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsOpenGraphType'
          description: |
            Type of product, defaults to `product`.
        open_graph_title:
          type: string
          description: |
            Title of the product, if not specified the product name will be used instead.
        open_graph_description:
          type: string
          description: |
            Description to use for the product, if not specified then the meta_description will be used instead.
        open_graph_use_meta_description:
          type: boolean
          description: |
            Flag to determine if product description or open graph description is used.
        open_graph_use_product_name:
          type: boolean
          description: |
            Flag to determine if product name or open graph name is used.
        open_graph_use_image:
          type: boolean
          description: |
            Flag to determine if product image or open graph image is used.
        gtin:
          type: string
          description: Global Trade Item Number
        mpn:
          type: string
          description: Manufacturer Part Number
        date_last_imported:
          type: string
          description: the date when the Product had been imported
        reviews_rating_sum:
          type: integer
          description: |
            The total (cumulative) rating for the product.
        reviews_count:
          type: integer
          description: |
            The number of times the product has been rated.
        total_sold:
          type: integer
          description: |
            The total quantity of this product sold.
        custom_fields:
          type: array
          items:
            $ref: '#/components/schemas/productCustomField_Put'
          description: 200 maximum custom fields per product. 255 maximum characters per custom field.
        bulk_pricing_rules:
          type: array
          items:
            $ref: '#/components/schemas/CatalogProductsGetResponsesContentApplicationJsonSchemaDataItemsBulkPricingRulesItems'
        images:
          type: array
          items:
            $ref: '#/components/schemas/productImage_Full'
        primary_image:
          $ref: '#/components/schemas/primaryImage_Full'
        videos:
          type: array
          items:
            $ref: '#/components/schemas/productVideo_Full'
          description: >
            The Catalog API integrates with third-party YouTube.

            The [YouTube Terms of Service](https://www.youtube.com/t/terms) and [Google Privacy
            Policy](https://policies.google.com/privacy) apply, as indicated in our [Privacy
            Policy](https://www.bigcommerce.com/privacy/) and [Terms of Service](https://www.bigcommerce.com/terms/).
        date_created:
          type: string
          format: date-time
          description: |
            The date on which the product was created.
        date_modified:
          type: string
          format: date-time
          description: |
            The date on which the product was modified.
        base_variant_id:
          type: integer
          description: >-
            The unique identifier of the base variant associated with a simple product. This value is `null` for complex
            products.
        calculated_price:
          type: string
          title: float
          description: >-
            The calculated_price is derived from the default price and sale price of the product. It is equal to the
            sale price if set or the default price if there is not a sale price present. Depending on your store
            settings and customer group, or channel-specific pricing, this value may or may not be equal to the price
            seen on the storefront.
        options:
          type: array
          items:
            $ref: '#/components/schemas/productOption_Base'
        modifiers:
          type: array
          items:
            $ref: '#/components/schemas/productModifier_Full'
        option_set_id:
          type: integer
          description: Indicates that the product is in an Option Set (legacy V2 concept).
        option_set_display:
          type: string
          description: >-
            Legacy template setting which controls if the option set shows up to the side of or below the product image
            and description.
        channels:
          type: array
          items:
            type: integer
          description: >-
            The channels to which the product is assigned. This field only appears in the response if you include
            `channels` in the `include` query parameter.
      description: Base Product response
      title: CatalogProductsGetResponsesContentApplicationJsonSchemaDataItems
    PaginationFullLinks:
      type: object
      properties:
        previous:
          type: string
          description: |
            Link to the previous page returned in the response.
        current:
          type: string
          description: |
            Link to the current page returned in the response.
        next:
          type: string
          description: |
            Link to the next page returned in the response.
      description: |
        Pagination links for the previous and next parts of the whole collection.
      title: PaginationFullLinks
    pagination_Full:
      type: object
      properties:
        total:
          type: integer
          description: |
            Total number of items in the result set.
        count:
          type: integer
          description: |
            Total number of items in the collection response.
        per_page:
          type: integer
          description: |
            The amount of items returned in the collection per page, controlled by the limit parameter.
        current_page:
          type: integer
          description: |
            The page you are currently on within the collection.
        total_pages:
          type: integer
          description: |
            The total number of pages in the collection.
        links:
          $ref: '#/components/schemas/PaginationFullLinks'
          description: |
            Pagination links for the previous and next parts of the whole collection.
      description: Data about the response, including pagination and collection totals.
      title: pagination_Full
    metaCollection_Full:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/pagination_Full'
      description: Data about the response, including pagination and collection totals.
      title: metaCollection_Full
    Products_getProducts_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CatalogProductsGetResponsesContentApplicationJsonSchemaDataItems'
        meta:
          $ref: '#/components/schemas/metaCollection_Full'
      title: Products_getProducts_Response_200
    CatalogProductsPutParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - name
        - type
        - sku
        - description
        - weight
        - width
        - depth
        - height
        - price
        - cost_price
        - retail_price
        - sale_price
        - map_price
        - tax_class_id
        - product_tax_code
        - calculated_price
        - categories
        - brand_id
        - option_set_id
        - option_set_display
        - inventory_level
        - inventory_warning_level
        - inventory_tracking
        - reviews_rating_sum
        - reviews_count
        - total_sold
        - fixed_cost_shipping_price
        - is_free_shipping
        - is_visible
        - is_featured
        - related_products
        - warranty
        - bin_picking_number
        - layout_file
        - upc
        - mpn
        - gtin
        - date_last_imported
        - search_keywords
        - availability
        - availability_description
        - condition
        - is_condition_shown
        - order_quantity_minimum
        - order_quantity_maximum
        - page_title
        - meta_keywords
        - meta_description
        - date_created
        - date_modified
        - view_count
        - preorder_release_date
        - preorder_message
        - is_preorder_only
        - is_price_hidden
        - price_hidden_label
        - custom_url
        - base_variant_id
        - open_graph_type
        - open_graph_title
        - open_graph_description
        - open_graph_use_meta_description
        - open_graph_use_product_name
        - open_graph_use_image
      title: CatalogProductsPutParametersIncludeFieldsSchemaItems
    ProductPutCollectionItemsType:
      type: string
      enum:
        - physical
        - digital
      description: |
        The product type. One of: `physical` - a physical stock unit, `digital` - a digital download.
      title: ProductPutCollectionItemsType
    ProductPutCollectionItemsInventoryTracking:
      type: string
      enum:
        - none
        - product
        - variant
      description: >
        The type of inventory tracking for the product. Values are: `none` - inventory levels will not be tracked;
        `product` - inventory levels will be tracked using the `inventory_level` and `inventory_warning_level` fields;
        `variant` - inventory levels will be tracked based on variants, which maintain their own warning levels and
        inventory levels.
      title: ProductPutCollectionItemsInventoryTracking
    ProductPutCollectionItemsAvailability:
      type: string
      enum:
        - available
        - disabled
        - preorder
      description: >
        Availability of the product. (Corresponds to the productʼs
        [Purchasability](https://support.bigcommerce.com/s/article/Adding-Products-v3?language=en_US#sections) section
        in the control panel.) Supported values: `available` - the product is available for purchase; `disabled` - the
        product is listed on the storefront, but cannot be purchased; `preorder` - the product is listed for pre-orders.
      title: ProductPutCollectionItemsAvailability
    ProductPutCollectionItemsGiftWrappingOptionsType:
      type: string
      enum:
        - any
        - none
        - list
      description: >
        Type of gift-wrapping options. Values: `any` - allow any gift-wrapping options in the store; `none` - disallow
        gift-wrapping on the product; `list` – provide a list of IDs in the `gift_wrapping_options_list` field.


        Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query
        parameters.
      title: ProductPutCollectionItemsGiftWrappingOptionsType
    ProductPutCollectionItemsCondition:
      type: string
      enum:
        - New
        - Used
        - Refurbished
      description: >
        The product condition. Will be shown on the product page if the `is_condition_shown` fieldʼs value is `true`.
        Possible values: `New`, `Used`, `Refurbished`.
      title: ProductPutCollectionItemsCondition
    ProductPutCollectionItemsOpenGraphType:
      type: string
      enum:
        - product
        - album
        - book
        - drink
        - food
        - game
        - movie
        - song
        - tv_show
      description: |
        Type of product, defaults to `product`.
      title: ProductPutCollectionItemsOpenGraphType
    ProductPutCollectionItemsBulkPricingRulesItemsType:
      type: string
      enum:
        - price
        - percent
        - fixed
      description: >-
        The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
        adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

        Required in /POST.
      title: ProductPutCollectionItemsBulkPricingRulesItemsType
    ProductPutCollectionItemsBulkPricingRulesItemsAmount:
      oneOf:
        - type: number
          format: double
        - type: string
      description: >-
        You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the response
        will return a number for `price` and `fixed` adjustments.

        Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
        “.10”. The response will return a float value for both `price` and `percentage` adjustments. 

        Required in /POST.
      title: ProductPutCollectionItemsBulkPricingRulesItemsAmount
    ProductPutCollectionItemsBulkPricingRulesItems:
      type: object
      properties:
        id:
          type: integer
          description: Unique ID of the *Bulk Pricing Rule*. Read-Only.
        quantity_min:
          type: integer
          description: >
            The minimum inclusive quantity of a product to satisfy this rule. Must be greater than or equal to zero. For
            `fixed` rules, the minimum quantity canʼt be less than two.

            Required in /POST.
        quantity_max:
          type: integer
          description: >-
            The maximum inclusive quantity of a product to satisfy this rule. Must be greater than the `quantity_min`
            value – unless this field has a value of 0 (zero), in which case there will be no maximum bound for this
            rule.

            Required in /POST.
        type:
          $ref: '#/components/schemas/ProductPutCollectionItemsBulkPricingRulesItemsType'
          description: >-
            The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
            adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

            Required in /POST.
        amount:
          $ref: '#/components/schemas/ProductPutCollectionItemsBulkPricingRulesItemsAmount'
          description: >-
            You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the
            response will return a number for `price` and `fixed` adjustments.

            Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
            “.10”. The response will return a float value for both `price` and `percentage` adjustments. 

            Required in /POST.
      required:
        - id
        - quantity_min
        - quantity_max
        - type
        - amount
      title: ProductPutCollectionItemsBulkPricingRulesItems
    ProductPutCollectionItems:
      type: object
      properties:
        id:
          type: integer
          description: Unique ID of the *Product*. Read-Only.
        name:
          type: string
          description: |
            A unique product name.
        type:
          $ref: '#/components/schemas/ProductPutCollectionItemsType'
          description: |
            The product type. One of: `physical` - a physical stock unit, `digital` - a digital download.
        sku:
          type: string
          description: >
            A unique user-defined alphanumeric product code/stock keeping unit (SKU). The SKU is always unique
            regardless of the letter case for both products and variants.
        description:
          type: string
          description: |
            The product description, which can include HTML formatting.
        weight:
          type: string
          title: float
          description: >
            Weight of the product, which can be used when calculating shipping costs. This is based on the unit set on
            the store.
        width:
          type: string
          title: float
          description: |
            Width of the product, which can be used when calculating shipping costs.
        depth:
          type: string
          title: float
          description: |
            Depth of the product, which can be used when calculating shipping costs.
        height:
          type: string
          title: float
          description: |
            Height of the product, which can be used when calculating shipping costs.
        price:
          type: string
          title: float
          description: |
            The price of the product. The price should include or exclude tax, based on the store settings.
        cost_price:
          type: string
          title: float
          description: |
            The cost price of the product. Stored for reference only; it is not used or displayed anywhere on the store.
        retail_price:
          type: string
          title: float
          description: |
            The retail cost of the product. If entered, the retail cost price will be shown on the product page.
        sale_price:
          type: string
          title: float
          description: >
            If entered, the sale price will be used instead of value in the price field when calculating the productʼs
            cost.
        map_price:
          type: number
          format: double
          description: Minimum Advertised Price
        tax_class_id:
          type: number
          format: double
          description: |
            The ID of the tax class applied to the product. (NOTE: Value ignored if automatic tax is enabled.)
        product_tax_code:
          type: string
          description: >
            Tax Codes, such as AvaTax System Tax Codes, identify products and services that fall into special sales-tax
            categories. By using these codes, merchants who subscribe to a tax provider integration, such as
            BigCommerceʼs Avalara Premium, can calculate sales taxes more accurately. Stores without a tax provider will
            ignore the code when calculating sales tax. Do not pass more than one code. The codes are case-sensitive.
            For details, please see the tax providerʼs documentation.
        categories:
          type: array
          items:
            type: number
            format: double
          description: >
            An array of IDs for the categories to which this product belongs. When updating a product, if an array of
            categories is supplied, all product categories will be overwritten. Does not accept more than 1,000 ID
            values.
        brand_id:
          type: integer
          description: >
            You can add a product to an existing brand during a product /PUT or /POST. Use either the `brand_id` or the
            `brand_name` field. The response body can include `brand_id`.
        brand_name:
          type: string
          description: >-
            You can create the brand during a product PUT or POST request. If the brand already exists, the product /PUT
            or /POST request adds the product to the brand. If not, the product /PUT or /POST request creates the brand
            and then adds the product to the brand. Brand name is not case-sensitive; "Common Good" and "Common good"
            are the same. Use either the `brand_id` or the `brand_name` field. The response body does not include
            `brand_name`.
        inventory_level:
          type: integer
          description: >-
            Current inventory level of the product. You must track inventory by _product_ for this to take effect (see
            the `inventory_tracking` field). The Catalog API returns the inventory for only the default location.


            The inventory for a product cannot exceed 2,147,483,647 in the catalog. If you exceed the limit, the store
            sets the inventory level to the limit.


            The Catalog API handles limits in a different way than the Inventory API. For more information, see [Limit
            handling](/developer/docs/admin/catalog-and-inventory/inventory-adjustments#limit-handling-in-inventory-versus-catalog-api). 
        inventory_warning_level:
          type: integer
          description: >
            Inventory warning level for the product. When the productʼs inventory level drops below the warning level,
            the store owner will be informed. Simple inventory tracking must be enabled (see the `inventory_tracking`
            field) for this to take any effect.
        inventory_tracking:
          $ref: '#/components/schemas/ProductPutCollectionItemsInventoryTracking'
          description: >
            The type of inventory tracking for the product. Values are: `none` - inventory levels will not be tracked;
            `product` - inventory levels will be tracked using the `inventory_level` and `inventory_warning_level`
            fields; `variant` - inventory levels will be tracked based on variants, which maintain their own warning
            levels and inventory levels.
        fixed_cost_shipping_price:
          type: string
          title: float
          description: >
            A fixed shipping cost for the product. If defined, this value will be used during checkout instead of normal
            shipping-cost calculation.
        is_free_shipping:
          type: boolean
          description: >
            Flag used to indicate whether the product has free shipping. If `true`, the shipping cost for the product
            will be zero.
        is_visible:
          type: boolean
          description: >
            Flag to determine whether the product should be displayed to customers browsing the store. If `true`, the
            product will be displayed. If `false`, the product will be hidden from view.
        is_featured:
          type: boolean
          description: >
            Flag to determine whether the product should be included in the `featured products` panel when viewing the
            store.
        related_products:
          type: array
          items:
            type: integer
          description: |
            An array of IDs for the related products.
        warranty:
          type: string
          description: |
            Warranty information displayed on the product page. Can include HTML formatting.
        bin_picking_number:
          type: string
          description: |
            The BIN picking number for the product.
        layout_file:
          type: string
          description: >
            The layout template file used to render this product. This field is writable only for stores with a
            Blueprint theme applied, and its value must be a template file from the store's Blueprint theme. For stores
            with a Stencil theme applied, custom templates are managed through [Custom Template
            Associations](/developer/api-reference/rest/admin/content/custom-template-associations).
        upc:
          type: string
          description: >
            The product UPC code, which is used in feeds for shopping comparison sites and external channel
            integrations.
        search_keywords:
          type: string
          description: |
            A comma-separated list of keywords that can be used to locate the product when searching the store.
        availability_description:
          type: string
          description: >
            Availability text displayed on the checkout page, under the product title. Tells the customer how long it
            will normally take to ship this product, such as: 'Usually ships in 24 hours.'
        availability:
          $ref: '#/components/schemas/ProductPutCollectionItemsAvailability'
          description: >
            Availability of the product. (Corresponds to the productʼs
            [Purchasability](https://support.bigcommerce.com/s/article/Adding-Products-v3?language=en_US#sections)
            section in the control panel.) Supported values: `available` - the product is available for purchase;
            `disabled` - the product is listed on the storefront, but cannot be purchased; `preorder` - the product is
            listed for pre-orders.
        gift_wrapping_options_type:
          $ref: '#/components/schemas/ProductPutCollectionItemsGiftWrappingOptionsType'
          description: >
            Type of gift-wrapping options. Values: `any` - allow any gift-wrapping options in the store; `none` -
            disallow gift-wrapping on the product; `list` – provide a list of IDs in the `gift_wrapping_options_list`
            field.


            Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query
            parameters.
        gift_wrapping_options_list:
          type: array
          items:
            type: integer
          description: >
            A list of gift-wrapping option IDs.


            Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query
            parameters.
        sort_order:
          type: integer
          description: >
            Priority to give this product when included in product lists on category pages and in search results. Lower
            integers will place the product closer to the top of the results.
        condition:
          $ref: '#/components/schemas/ProductPutCollectionItemsCondition'
          description: >
            The product condition. Will be shown on the product page if the `is_condition_shown` fieldʼs value is
            `true`. Possible values: `New`, `Used`, `Refurbished`.
        is_condition_shown:
          type: boolean
          description: |
            Flag used to determine whether the product condition is shown to the customer on the product page.
        order_quantity_minimum:
          type: integer
          description: |
            The minimum quantity an order must contain, to be eligible to purchase this product.
        order_quantity_maximum:
          type: integer
          description: |
            The maximum quantity an order can contain when purchasing the product.
        page_title:
          type: string
          description: |
            Custom title for the product page. If not defined, the product name will be used as the meta title.
        meta_keywords:
          type: array
          items:
            type: string
          description: |
            Custom meta keywords for the product page. If not defined, the storeʼs default keywords will be used.
        meta_description:
          type: string
          description: >
            Custom meta description for the product page. If not defined, the storeʼs default meta description will be
            used.
        view_count:
          type: integer
          description: |
            The number of times the product has been viewed.
        preorder_release_date:
          type:
            - string
            - 'null'
          format: date-time
          description: >
            Pre-order release date. See the `availability` field for details on setting a productʼs availability to
            accept pre-orders.
        preorder_message:
          type: string
          description: >
            Custom expected-date message to display on the product page. If undefined, the message defaults to the
            storewide setting. Can contain the `%%DATE%%` placeholder, which will be substituted for the release date.
        is_preorder_only:
          type: boolean
          description: >
            If set to true then on the preorder release date the preorder status will automatically be removed.

            If set to false, then on the release date the preorder status **will not** be removed. It will need to be
            changed manually either in the

            control panel or using the API. Using the API set `availability` to `available`.
        is_price_hidden:
          type: boolean
          description: >
            False by default, indicating that this productʼs price should be shown on the product page. If set to
            `true`, the price is hidden. (NOTE: To successfully set `is_price_hidden` to `true`, the `availability`
            value must be `disabled`.)
        price_hidden_label:
          type: string
          description: >
            By default, an empty string. If `is_price_hidden` is `true`, the value of `price_hidden_label` is displayed
            instead of the price. (NOTE: To successfully set a non-empty string value with `is_price_hidden` set to
            `true`, the `availability` value must be `disabled`.)
        custom_url:
          $ref: '#/components/schemas/customUrl_Full'
        open_graph_type:
          $ref: '#/components/schemas/ProductPutCollectionItemsOpenGraphType'
          description: |
            Type of product, defaults to `product`.
        open_graph_title:
          type: string
          description: |
            Title of the product, if not specified the product name will be used instead.
        open_graph_description:
          type: string
          description: |
            Description to use for the product, if not specified then the meta_description will be used instead.
        open_graph_use_meta_description:
          type: boolean
          description: |
            Flag to determine if product description or open graph description is used.
        open_graph_use_product_name:
          type: boolean
          description: |
            Flag to determine if product name or open graph name is used.
        open_graph_use_image:
          type: boolean
          description: |
            Flag to determine if product image or open graph image is used.
        gtin:
          type: string
          description: Global Trade Item Number
        mpn:
          type: string
          description: Manufacturer Part Number
        date_last_imported:
          type: string
          description: the date when the Product had been imported
        reviews_rating_sum:
          type: integer
          description: |
            The total (cumulative) rating for the product.
        reviews_count:
          type: integer
          description: |
            The number of times the product has been rated.
        total_sold:
          type: integer
          description: |
            The total quantity of this product sold.
        custom_fields:
          type: array
          items:
            $ref: '#/components/schemas/productCustomField_Put'
          description: 200 maximum custom fields per product. 255 maximum characters per custom field.
        bulk_pricing_rules:
          type: array
          items:
            $ref: '#/components/schemas/ProductPutCollectionItemsBulkPricingRulesItems'
        images:
          type: array
          items:
            $ref: '#/components/schemas/productImage_Full'
        videos:
          type: array
          items:
            $ref: '#/components/schemas/productVideo_Full'
          description: >
            The Catalog API integrates with third-party YouTube.

            The [YouTube Terms of Service](https://www.youtube.com/t/terms) and [Google Privacy
            Policy](https://policies.google.com/privacy) apply, as indicated in our [Privacy
            Policy](https://www.bigcommerce.com/privacy/) and [Terms of Service](https://www.bigcommerce.com/terms/).
      required:
        - id
      description: |-
        `Product` properties used in:
        * `PUT`
      title: ProductPutCollectionItems
    product_Put_Collection:
      type: array
      items:
        $ref: '#/components/schemas/ProductPutCollectionItems'
      description: The model for batch updating products.
      title: product_Put_Collection
    ProductBaseResponseType:
      type: string
      enum:
        - physical
        - digital
      description: |
        The product type. One of: `physical` - a physical stock unit, `digital` - a digital download.
      title: ProductBaseResponseType
    ProductBaseResponseInventoryTracking:
      type: string
      enum:
        - none
        - product
        - variant
      description: >
        The type of inventory tracking for the product. Values are: `none` - inventory levels will not be tracked;
        `product` - inventory levels will be tracked using the `inventory_level` and `inventory_warning_level` fields;
        `variant` - inventory levels will be tracked based on variants, which maintain their own warning levels and
        inventory levels.
      title: ProductBaseResponseInventoryTracking
    ProductBaseResponseAvailability:
      type: string
      enum:
        - available
        - disabled
        - preorder
      description: >
        Availability of the product. (Corresponds to the productʼs
        [Purchasability](https://support.bigcommerce.com/s/article/Adding-Products-v3?language=en_US#sections) section
        in the control panel.) Supported values: `available` - the product is available for purchase; `disabled` - the
        product is listed on the storefront, but cannot be purchased; `preorder` - the product is listed for pre-orders.
      title: ProductBaseResponseAvailability
    ProductBaseResponseGiftWrappingOptionsType:
      type: string
      enum:
        - any
        - none
        - list
      description: >
        Type of gift-wrapping options. Values: `any` - allow any gift-wrapping options in the store; `none` - disallow
        gift-wrapping on the product; `list` – provide a list of IDs in the `gift_wrapping_options_list` field.


        Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query
        parameters.
      title: ProductBaseResponseGiftWrappingOptionsType
    ProductBaseResponseCondition:
      type: string
      enum:
        - New
        - Used
        - Refurbished
      description: >
        The product condition. Will be shown on the product page if the `is_condition_shown` fieldʼs value is `true`.
        Possible values: `New`, `Used`, `Refurbished`.
      title: ProductBaseResponseCondition
    ProductBaseResponseOpenGraphType:
      type: string
      enum:
        - product
        - album
        - book
        - drink
        - food
        - game
        - movie
        - song
        - tv_show
      description: |
        Type of product, defaults to `product`.
      title: ProductBaseResponseOpenGraphType
    ProductBaseResponseBulkPricingRulesItemsType:
      type: string
      enum:
        - price
        - percent
        - fixed
      description: >-
        The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
        adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

        Required in /POST.
      title: ProductBaseResponseBulkPricingRulesItemsType
    ProductBaseResponseBulkPricingRulesItemsAmount:
      oneOf:
        - type: number
          format: double
        - type: string
      description: >-
        You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the response
        will return a number for `price` and `fixed` adjustments.

        Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
        “.10”. The response will return a float value for both `price` and `percentage` adjustments. 

        Required in /POST.
      title: ProductBaseResponseBulkPricingRulesItemsAmount
    ProductBaseResponseBulkPricingRulesItems:
      type: object
      properties:
        id:
          type: integer
          description: Unique ID of the *Bulk Pricing Rule*. Read-Only.
        quantity_min:
          type: integer
          description: >
            The minimum inclusive quantity of a product to satisfy this rule. Must be greater than or equal to zero. For
            `fixed` rules, the minimum quantity canʼt be less than two.

            Required in /POST.
        quantity_max:
          type: integer
          description: >-
            The maximum inclusive quantity of a product to satisfy this rule. Must be greater than the `quantity_min`
            value – unless this field has a value of 0 (zero), in which case there will be no maximum bound for this
            rule.

            Required in /POST.
        type:
          $ref: '#/components/schemas/ProductBaseResponseBulkPricingRulesItemsType'
          description: >-
            The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
            adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

            Required in /POST.
        amount:
          $ref: '#/components/schemas/ProductBaseResponseBulkPricingRulesItemsAmount'
          description: >-
            You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the
            response will return a number for `price` and `fixed` adjustments.

            Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
            “.10”. The response will return a float value for both `price` and `percentage` adjustments. 

            Required in /POST.
      required:
        - id
        - quantity_min
        - quantity_max
        - type
        - amount
      title: ProductBaseResponseBulkPricingRulesItems
    product_Full:
      type: object
      properties:
        name:
          type: string
          description: |
            A unique product name.
        type:
          $ref: '#/components/schemas/ProductBaseResponseType'
          description: |
            The product type. One of: `physical` - a physical stock unit, `digital` - a digital download.
        sku:
          type: string
          description: |
            A unique user-defined alphanumeric product code/stock keeping unit (SKU).
        description:
          type: string
          description: |
            The product description, which can include HTML formatting.
        weight:
          type: string
          title: float
          description: >
            Weight of the product, which can be used when calculating shipping costs. This is based on the unit set on
            the store
        width:
          type: string
          title: float
          description: |
            Width of the product, which can be used when calculating shipping costs.
        depth:
          type: string
          title: float
          description: |
            Depth of the product, which can be used when calculating shipping costs.
        height:
          type: string
          title: float
          description: |
            Height of the product, which can be used when calculating shipping costs.
        price:
          type: string
          title: float
          description: |
            The price of the product. The price should include or exclude tax, based on the store settings.
        cost_price:
          type: string
          title: float
          description: |
            The cost price of the product. Stored for reference only; it is not used or displayed anywhere on the store.
        retail_price:
          type: string
          title: float
          description: |
            The retail cost of the product. If entered, the retail cost price will be shown on the product page.
        sale_price:
          type: string
          title: float
          description: >
            If entered, the sale price will be used instead of value in the price field when calculating the productʼs
            cost.
        map_price:
          type: number
          format: double
          description: Minimum Advertised Price.
        tax_class_id:
          type: number
          format: double
          description: |
            The ID of the tax class applied to the product. (NOTE: Value ignored if automatic tax is enabled.)
        product_tax_code:
          type: string
          description: >
            Tax Codes, such as AvaTax System Tax Codes, identify products and services that fall into special sales-tax
            categories. By using these codes, merchants who subscribe to a tax provider integration, such as
            BigCommerceʼs Avalara Premium, can calculate sales taxes more accurately. Stores without a tax provider will
            ignore the code when calculating sales tax. Do not pass more than one code. The codes are case-sensitive.
            For details, please see the tax providerʼs documentation.
        categories:
          type: array
          items:
            type: number
            format: double
          description: >
            An array of IDs for the categories to which this product belongs. When updating a product, if an array of
            categories is supplied, all product categories will be overwritten. Does not accept more than 1,000 ID
            values.
        brand_id:
          type: integer
          description: >
            You can add a product to an existing brand during a product /PUT or /POST use the `brand_id` field. The
            response body can include `brand_id'.
        inventory_level:
          type: integer
          description: >-
            Current inventory level of the product. You must track inventory by _product_ for this to take effect (see
            the `inventory_tracking` field). The Catalog API returns the inventory for only the default location.


            The inventory for a product cannot exceed 2,147,483,647 in the catalog. If you exceed the limit, the store
            sets the inventory level to the limit.


            The Catalog API handles limits in a different way than the Inventory API. For more information, see [Limit
            handling](/developer/docs/admin/catalog-and-inventory/inventory-adjustments#limit-handling-in-inventory-versus-catalog-api).
        inventory_warning_level:
          type: integer
          description: >
            Inventory warning level for the product. When the productʼs inventory level drops below the warning level,
            the store owner will be informed. Simple inventory tracking must be enabled (see the `inventory_tracking`
            field) for this to take any effect.
        inventory_tracking:
          $ref: '#/components/schemas/ProductBaseResponseInventoryTracking'
          description: >
            The type of inventory tracking for the product. Values are: `none` - inventory levels will not be tracked;
            `product` - inventory levels will be tracked using the `inventory_level` and `inventory_warning_level`
            fields; `variant` - inventory levels will be tracked based on variants, which maintain their own warning
            levels and inventory levels.
        fixed_cost_shipping_price:
          type: string
          title: float
          description: >
            A fixed shipping cost for the product. If defined, this value will be used during checkout instead of normal
            shipping-cost calculation.
        is_free_shipping:
          type: boolean
          description: >
            Flag used to indicate whether the product has free shipping. If `true`, the shipping cost for the product
            will be zero.
        is_visible:
          type: boolean
          description: >
            Flag to determine whether the product should be displayed to customers browsing the store. If `true`, the
            product will be displayed. If `false`, the product will be hidden from view.
        is_featured:
          type: boolean
          description: >
            Flag to determine whether the product should be included in the `featured products` panel when viewing the
            store.
        related_products:
          type: array
          items:
            type: integer
          description: |
            An array of IDs for the related products.
        warranty:
          type: string
          description: |
            Warranty information displayed on the product page. Can include HTML formatting.
        bin_picking_number:
          type: string
          description: |
            The BIN picking number for the product.
        layout_file:
          type: string
          description: >
            The layout template file used to render this product. This field applies only to stores with a Blueprint
            theme applied, and the returned value is a template file from the store's Blueprint theme. Custom Stencil
            template associations are not returned in this field. For stores with a Stencil theme applied, see [Custom
            Template Associations](/developer/api-reference/rest/admin/content/custom-template-associations).
        upc:
          type: string
          description: >
            The product UPC code, which is used in feeds for shopping comparison sites and external channel
            integrations.
        search_keywords:
          type: string
          description: |
            A comma-separated list of keywords that can be used to locate the product when searching the store.
        availability_description:
          type: string
          description: >
            Availability text displayed on the checkout page, under the product title. Tells the customer how long it
            will normally take to ship this product, such as: 'Usually ships in 24 hours.'
        availability:
          $ref: '#/components/schemas/ProductBaseResponseAvailability'
          description: >
            Availability of the product. (Corresponds to the productʼs
            [Purchasability](https://support.bigcommerce.com/s/article/Adding-Products-v3?language=en_US#sections)
            section in the control panel.) Supported values: `available` - the product is available for purchase;
            `disabled` - the product is listed on the storefront, but cannot be purchased; `preorder` - the product is
            listed for pre-orders.
        gift_wrapping_options_type:
          $ref: '#/components/schemas/ProductBaseResponseGiftWrappingOptionsType'
          description: >
            Type of gift-wrapping options. Values: `any` - allow any gift-wrapping options in the store; `none` -
            disallow gift-wrapping on the product; `list` – provide a list of IDs in the `gift_wrapping_options_list`
            field.


            Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query
            parameters.
        gift_wrapping_options_list:
          type: array
          items:
            type: integer
          description: >
            A list of gift-wrapping option IDs.


            Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query
            parameters.
        sort_order:
          type: integer
          description: >
            Priority to give this product when included in product lists on category pages and in search results. Lower
            integers will place the product closer to the top of the results.
        condition:
          $ref: '#/components/schemas/ProductBaseResponseCondition'
          description: >
            The product condition. Will be shown on the product page if the `is_condition_shown` fieldʼs value is
            `true`. Possible values: `New`, `Used`, `Refurbished`.
        is_condition_shown:
          type: boolean
          description: |
            Flag used to determine whether the product condition is shown to the customer on the product page.
        order_quantity_minimum:
          type: integer
          description: |
            The minimum quantity an order must contain, to be eligible to purchase this product.
        order_quantity_maximum:
          type: integer
          description: |
            The maximum quantity an order can contain when purchasing the product.
        page_title:
          type: string
          description: |
            Custom title for the product page. If not defined, the product name will be used as the meta title.
        meta_keywords:
          type: array
          items:
            type: string
          description: |
            Custom meta keywords for the product page. If not defined, the storeʼs default keywords will be used.
        meta_description:
          type: string
          description: >
            Custom meta description for the product page. If not defined, the storeʼs default meta description will be
            used.
        view_count:
          type: integer
          description: |
            The number of times the product has been viewed.
        preorder_release_date:
          type:
            - string
            - 'null'
          format: date-time
          description: >
            Pre-order release date. See the `availability` field for details on setting a productʼs availability to
            accept pre-orders.
        preorder_message:
          type: string
          description: >
            Custom expected-date message to display on the product page. If undefined, the message defaults to the
            storewide setting. Can contain the `%%DATE%%` placeholder, which will be substituted for the release date.
        is_preorder_only:
          type: boolean
          description: >
            If set to true then on the preorder release date the preorder status will automatically be removed.

            If set to false, then on the release date the preorder status **will not** be removed. It will need to be
            changed manually either in the

            control panel or using the API. Using the API set `availability` to `available`.
        is_price_hidden:
          type: boolean
          description: >
            False by default, indicating that this productʼs price should be shown on the product page. If set to
            `true`, the price is hidden. (NOTE: To successfully set `is_price_hidden` to `true`, the `availability`
            value must be `disabled`.)
        price_hidden_label:
          type: string
          description: >
            By default, an empty string. If `is_price_hidden` is `true`, the value of `price_hidden_label` is displayed
            instead of the price. (NOTE: To successfully set a non-empty string value with `is_price_hidden` set to
            `true`, the `availability` value must be `disabled`.)
        custom_url:
          $ref: '#/components/schemas/customUrl_Full'
        open_graph_type:
          $ref: '#/components/schemas/ProductBaseResponseOpenGraphType'
          description: |
            Type of product, defaults to `product`.
        open_graph_title:
          type: string
          description: |
            Title of the product, if not specified the product name will be used instead.
        open_graph_description:
          type: string
          description: |
            Description to use for the product, if not specified then the meta_description will be used instead.
        open_graph_use_meta_description:
          type: boolean
          description: |
            Flag to determine if product description or open graph description is used.
        open_graph_use_product_name:
          type: boolean
          description: |
            Flag to determine if product name or open graph name is used.
        open_graph_use_image:
          type: boolean
          description: |
            Flag to determine if product image or open graph image is used.
        gtin:
          type: string
          description: Global Trade Item Number
        mpn:
          type: string
          description: Manufacturer Part Number
        date_last_imported:
          type: string
          description: the date when the Product had been imported
        reviews_rating_sum:
          type: integer
          description: |
            The total (cumulative) rating for the product.
        reviews_count:
          type: integer
          description: |
            The number of times the product has been rated.
        total_sold:
          type: integer
          description: |
            The total quantity of this product sold.
        custom_fields:
          type: array
          items:
            $ref: '#/components/schemas/productCustomField_Put'
          description: 200 maximum custom fields per product. 255 maximum characters per custom field.
        bulk_pricing_rules:
          type: array
          items:
            $ref: '#/components/schemas/ProductBaseResponseBulkPricingRulesItems'
        images:
          type: array
          items:
            $ref: '#/components/schemas/productImage_Full'
        primary_image:
          $ref: '#/components/schemas/primaryImage_Full'
        videos:
          type: array
          items:
            $ref: '#/components/schemas/productVideo_Full'
          description: >
            The Catalog API integrates with third-party YouTube.

            The [YouTube Terms of Service](https://www.youtube.com/t/terms) and [Google Privacy
            Policy](https://policies.google.com/privacy) apply, as indicated in our [Privacy
            Policy](https://www.bigcommerce.com/privacy/) and [Terms of Service](https://www.bigcommerce.com/terms/).
        id:
          type: integer
          description: ID of the product. Read-Only.
        date_created:
          type: string
          format: date-time
          description: |
            The date on which the product was created.
        date_modified:
          type: string
          format: date-time
          description: |
            The date on which the product was modified.
        base_variant_id:
          type: integer
          description: >-
            The unique identifier of the base variant associated with a simple product. This value is `null` for complex
            products.
        calculated_price:
          type: string
          title: float
          description: >-
            The calculated_price is derived from the default price and sale price of the product. It is equal to the
            sale price if set or the default price if there is not a sale price present. Depending on your store
            settings and customer group, or channel-specific pricing, this value may or may not be equal to the price
            seen on the storefront.
        options:
          type: array
          items:
            $ref: '#/components/schemas/productOption_Base'
        modifiers:
          type: array
          items:
            $ref: '#/components/schemas/productModifier_Full'
        option_set_id:
          type: integer
          description: Indicates that the product is in an Option Set (legacy V2 concept).
        option_set_display:
          type: string
          description: >-
            Legacy template setting which controls if the option set shows up to the side of or below the product image
            and description.
      title: product_Full
    Products_updateProducts_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/product_Full'
        meta:
          description: Any type
      title: Products_updateProducts_Response_200
    UpdateProductsRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: UpdateProductsRequestNotFoundError
    DetailedErrors:
      type: object
      properties: {}
      description: Each key-value pair describes a failure or partial success case.
      title: DetailedErrors
    errorResponse_409:
      type: object
      properties:
        code:
          type: integer
        status:
          type: integer
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        errors:
          $ref: '#/components/schemas/DetailedErrors'
      title: errorResponse_409
    error_Base:
      type: object
      properties:
        status:
          type: integer
          description: |
            The HTTP status code.
        title:
          type: string
          description: |
            The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: |
        Error payload for the BigCommerce API.
      title: error_Base
    errorResponse_422:
      type: object
      properties:
        code:
          type: integer
        status:
          type: integer
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        errors:
          $ref: '#/components/schemas/DetailedErrors'
      title: errorResponse_422
    CatalogProductsPostParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - name
        - type
        - sku
        - description
        - weight
        - width
        - depth
        - height
        - price
        - cost_price
        - retail_price
        - sale_price
        - map_price
        - tax_class_id
        - product_tax_code
        - calculated_price
        - categories
        - brand_id
        - option_set_id
        - option_set_display
        - inventory_level
        - inventory_warning_level
        - inventory_tracking
        - reviews_rating_sum
        - reviews_count
        - total_sold
        - fixed_cost_shipping_price
        - is_free_shipping
        - is_visible
        - is_featured
        - related_products
        - warranty
        - bin_picking_number
        - layout_file
        - upc
        - mpn
        - gtin
        - date_last_imported
        - search_keywords
        - availability
        - availability_description
        - condition
        - is_condition_shown
        - order_quantity_minimum
        - order_quantity_maximum
        - page_title
        - meta_keywords
        - meta_description
        - date_created
        - date_modified
        - view_count
        - preorder_release_date
        - preorder_message
        - is_preorder_only
        - is_price_hidden
        - price_hidden_label
        - custom_url
        - base_variant_id
        - open_graph_type
        - open_graph_title
        - open_graph_description
        - open_graph_use_meta_description
        - open_graph_use_product_name
        - open_graph_use_image
      title: CatalogProductsPostParametersIncludeFieldsSchemaItems
    ProductBasePostType:
      type: string
      enum:
        - physical
        - digital
      description: |
        The product type. One of: `physical` - a physical stock unit, `digital` - a digital download.
      title: ProductBasePostType
    ProductBasePostInventoryTracking:
      type: string
      enum:
        - none
        - product
        - variant
      description: >
        The type of inventory tracking for the product. Values are: `none` - inventory levels will not be tracked;
        `product` - inventory levels will be tracked using the `inventory_level` and `inventory_warning_level` fields;
        `variant` - inventory levels will be tracked based on variants, which maintain their own warning levels and
        inventory levels.
      title: ProductBasePostInventoryTracking
    ProductBasePostAvailability:
      type: string
      enum:
        - available
        - disabled
        - preorder
      description: >
        Availability of the product. (Corresponds to the productʼs
        [Purchasability](https://support.bigcommerce.com/s/article/Adding-Products-v3?language=en_US#sections) section
        in the control panel.) Supported values: `available` - the product is available for purchase; `disabled` - the
        product is listed on the storefront, but cannot be purchased; `preorder` - the product is listed for pre-orders.
      title: ProductBasePostAvailability
    ProductBasePostGiftWrappingOptionsType:
      type: string
      enum:
        - any
        - none
        - list
      description: >
        Type of gift-wrapping options. Values: `any` - allow any gift-wrapping options in the store; `none` - disallow
        gift-wrapping on the product; `list` – provide a list of IDs in the `gift_wrapping_options_list` field.


        Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query
        parameters.
      title: ProductBasePostGiftWrappingOptionsType
    ProductBasePostCondition:
      type: string
      enum:
        - New
        - Used
        - Refurbished
      description: >
        The product condition. Will be shown on the product page if the `is_condition_shown` fieldʼs value is `true`.
        Possible values: `New`, `Used`, `Refurbished`.
      title: ProductBasePostCondition
    ProductBasePostOpenGraphType:
      type: string
      enum:
        - product
        - album
        - book
        - drink
        - food
        - game
        - movie
        - song
        - tv_show
      description: |
        Type of product, defaults to `product`.
      title: ProductBasePostOpenGraphType
    ProductBasePostBulkPricingRulesItemsType:
      type: string
      enum:
        - price
        - percent
        - fixed
      description: >-
        The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
        adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

        Required in /POST.
      title: ProductBasePostBulkPricingRulesItemsType
    ProductBasePostBulkPricingRulesItemsAmount:
      oneOf:
        - type: number
          format: double
        - type: string
      description: >-
        You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the response
        will return a number for `price` and `fixed` adjustments.

        Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
        “.10”. The response will return a float value for both `price` and `percentage` adjustments. 

        Required in /POST.
      title: ProductBasePostBulkPricingRulesItemsAmount
    ProductBasePostBulkPricingRulesItems:
      type: object
      properties:
        id:
          type: integer
          description: Unique ID of the *Bulk Pricing Rule*. Read-Only.
        quantity_min:
          type: integer
          description: >
            The minimum inclusive quantity of a product to satisfy this rule. Must be greater than or equal to zero. For
            `fixed` rules, the minimum quantity canʼt be less than two.

            Required in /POST.
        quantity_max:
          type: integer
          description: >-
            The maximum inclusive quantity of a product to satisfy this rule. Must be greater than the `quantity_min`
            value – unless this field has a value of 0 (zero), in which case there will be no maximum bound for this
            rule.

            Required in /POST.
        type:
          $ref: '#/components/schemas/ProductBasePostBulkPricingRulesItemsType'
          description: >-
            The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
            adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

            Required in /POST.
        amount:
          $ref: '#/components/schemas/ProductBasePostBulkPricingRulesItemsAmount'
          description: >-
            You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the
            response will return a number for `price` and `fixed` adjustments.

            Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
            “.10”. The response will return a float value for both `price` and `percentage` adjustments. 

            Required in /POST.
      required:
        - id
        - quantity_min
        - quantity_max
        - type
        - amount
      title: ProductBasePostBulkPricingRulesItems
    productVariantOptionValue_Full:
      type: object
      properties:
        id:
          type: integer
          description: The option_value ID.
        label:
          type: string
          description: |
            The label of the option value.
        option_id:
          type: integer
          description: The option ID.
        option_display_name:
          type: string
          description: |
            The name of the option.
      required:
        - label
        - option_display_name
      title: productVariantOptionValue_Full
    productVariant_Full:
      type: object
      properties:
        cost_price:
          type:
            - number
            - 'null'
          format: double
          description: The cost price of the variant. Not affected by Price List prices.
        price:
          type:
            - number
            - 'null'
          format: double
          description: >-
            This variant’s base price on the storefront. If a Price List ID is used, the Price List value will be used.
            If a Price List ID is not used, and this value is `null`, the product’s default price (set in the Product
            resource’s `price` field) will be used as the base price.
        sale_price:
          type:
            - number
            - 'null'
          format: double
          description: >-
            This variant’s sale price on the storefront. If a Price List ID is used, the Price List value will be used.
            If a Price List ID is not used, and this value is null, the product’s sale price (set in the Product
            resource’s `price` field) will be used as the sale price.
        retail_price:
          type:
            - number
            - 'null'
          format: double
          description: >-
            This variant’s retail price on the storefront. If a Price List ID is used, the Price List value will be
            used. If a Price List ID is not used, and this value is null, the product’s retail price (set in the Product
            resource’s `price` field) will be used as the retail price.
        map_price:
          type: number
          format: double
          description: Minimum Advertised Price.
        weight:
          type:
            - number
            - 'null'
          format: double
          description: >-
            This variant’s base weight on the storefront. If this value is null, the product’s default weight (set in
            the Product resource’s weight field) will be used as the base weight.
        width:
          type:
            - number
            - 'null'
          format: double
          description: >
            Width of the variant, which can be used when calculating shipping costs. If this value is `null`, the
            productʼs default width (set in the Product resourceʼs `width` field) will be used as the base width.
        height:
          type:
            - number
            - 'null'
          format: double
          description: >
            Height of the variant, which can be used when calculating shipping costs. If this value is `null`, the
            productʼs default height (set in the Product resourceʼs `height` field) will be used as the base height.
        depth:
          type:
            - number
            - 'null'
          format: double
          description: >
            Depth of the variant, which can be used when calculating shipping costs. If this value is `null`, the
            productʼs default depth (set in the Product resourceʼs `depth` field) will be used as the base depth.
        is_free_shipping:
          type: boolean
          description: >
            Flag used to indicate whether the variant has free shipping. If `true`, the shipping cost for the variant
            will be zero.
        fixed_cost_shipping_price:
          type:
            - number
            - 'null'
          format: double
          description: >
            A fixed shipping cost for the variant. If defined, this value will be used during checkout instead of normal
            shipping-cost calculation.
        purchasing_disabled:
          type: boolean
          description: If `true`, this variant will not be purchasable on the storefront.
        purchasing_disabled_message:
          type: string
          description: If `purchasing_disabled` is `true`, this message should show on the storefront when the variant is selected.
        image_url:
          type: string
          description: |
            The URL for an image displayed on the storefront when the conditions are applied. Limit of 8MB per file.
        upc:
          type: string
          description: The UPC code used in feeds for shopping comparison sites and external channel integrations.
        inventory_level:
          type:
            - integer
            - 'null'
          description: >-
            Inventory level for the variant, which is used when the product’s inventory_tracking is set to `variant`.
            The Catalog API returns the inventory for only the default location.
                                
            The inventory for a variant cannot exceed 2,147,483,647 in the catalog. The sum of the variant inventories,
            or the total inventory for a product, cannot exceed 2,147,483,647. 
                                
            If you exceed the limit, the store sets the variant inventory to the limit if no other variant inventories
            are set. If other variant inventories are set, the store does not save the variant inventory rather than
            setting the variant inventory to the remaining limit.


            The Catalog API handles limits in a different way than the Inventory API. For more information, see [Limit
            handling](/developer/docs/admin/catalog-and-inventory/inventory-adjustments#limit-handling-in-inventory-versus-catalog-api). 
        inventory_warning_level:
          type:
            - integer
            - 'null'
          description: When the variant hits this inventory level, it is considered low stock.
        bin_picking_number:
          type:
            - string
            - 'null'
          description: Identifies where in a warehouse the variant is located.
        mpn:
          type: string
          description: The Manufacturer Part Number (MPN) for the variant.
        gtin:
          type: string
        product_id:
          type: integer
          description: Product ID
        id:
          type: integer
          description: Variant ID
        sku:
          type: string
          description: >-
            A unique user-defined alphanumeric product code/stock keeping unit (SKU). The SKU is always unique
            regardless of the letter case for both products and variants.
        sku_id:
          type: integer
        option_values:
          type: array
          items:
            $ref: '#/components/schemas/productVariantOptionValue_Full'
          description: >-
            Array of option and option values IDs that make up this variant. Will be empty if the variant is the
            productʼs base variant.
        calculated_price:
          type: number
          format: double
          description: >
            The price of the variant as seen on the storefront. This price takes into account `sale_price` and any price
            adjustment rules that are applicable to this variant.
        calculated_weight:
          type: number
          format: double
      required:
        - product_id
        - id
        - sku
      title: productVariant_Full
    product_Base_POST:
      type: object
      properties:
        name:
          type: string
          description: |
            A unique product name.
        type:
          $ref: '#/components/schemas/ProductBasePostType'
          description: |
            The product type. One of: `physical` - a physical stock unit, `digital` - a digital download.
        sku:
          type: string
          description: >
            A unique user-defined alphanumeric product code/stock keeping unit (SKU). The SKU is always unique
            regardless of the letter case for both products and variants.
        description:
          type: string
          description: |
            The product description, which can include HTML formatting.
        weight:
          type: string
          title: float
          description: >
            Weight of the product, which can be used when calculating shipping costs. This is based on the unit set on
            the store
        width:
          type: string
          title: float
          description: |
            Width of the product, which can be used when calculating shipping costs.
        depth:
          type: string
          title: float
          description: |
            Depth of the product, which can be used when calculating shipping costs.
        height:
          type: string
          title: float
          description: |
            Height of the product, which can be used when calculating shipping costs.
        price:
          type: string
          title: float
          description: |
            The price of the product. The price should include or exclude tax, based on the store settings.
        cost_price:
          type: string
          title: float
          description: |
            The cost price of the product. Stored for reference only; it is not used or displayed anywhere on the store.
        retail_price:
          type: string
          title: float
          description: |
            The retail cost of the product. If entered, the retail cost price will be shown on the product page.
        sale_price:
          type: string
          title: float
          description: >
            If entered, the sale price will be used instead of value in the price field when calculating the productʼs
            cost.
        map_price:
          type: number
          format: double
          description: Minimum Advertised Price
        tax_class_id:
          type: number
          format: double
          description: |
            The ID of the tax class applied to the product. (NOTE: Value ignored if automatic tax is enabled.)
        product_tax_code:
          type: string
          description: >
            Tax Codes, such as AvaTax System Tax Codes, identify products and services that fall into special sales-tax
            categories. By using these codes, merchants who subscribe to a tax provider integration, such as
            BigCommerceʼs Avalara Premium, can calculate sales taxes more accurately. Stores without a tax provider will
            ignore the code when calculating sales tax. Do not pass more than one code. The codes are case-sensitive.
            For details, please see the tax providerʼs documentation.
        categories:
          type: array
          items:
            type: number
            format: double
          description: >
            An array of IDs for the categories to which this product belongs. You will overwrite all product categories
            when updating a product and supplying an array of categories. The limit is 1,000 ID values. When you enable
            the catalog V2 product experience in the control panel, you must include the categories array in the request
            body.
        brand_id:
          type: integer
          description: >
            You can add a product to an existing brand during a product /PUT or /POST. Use either the `brand_id` or the
            `brand_name` field. The response body can include `brand_id`.
        brand_name:
          type: string
          description: >-
            You can create the brand during a product PUT or POST request. If the brand already exists, the product /PUT
            or /POST request adds the product to the brand. If not, the product /PUT or /POST request creates the brand
            and then adds the product to the brand. Brand name is not case-sensitive; "Common Good" and "Common good"
            are the same. Use either the `brand_id` or the `brand_name` field. The response body does not include
            `brand_name`.
        inventory_level:
          type: integer
          description: >-
            Current inventory level of the product. You must track inventory by _product_ for this to take effect (see
            the `inventory_tracking` field). The Catalog API returns the inventory for only the default location.


            The inventory for a product cannot exceed 2,147,483,647 in the catalog. If you exceed the limit, the store
            sets the inventory level to the limit.


            The Catalog API handles limits in a different way than the Inventory API. For more information, see [Limit
            handling](/developer/docs/admin/catalog-and-inventory/inventory-adjustments#limit-handling-in-inventory-versus-catalog-api). 
        inventory_warning_level:
          type: integer
          description: >
            Inventory warning level for the product. When the productʼs inventory level drops below the warning level,
            the store owner will be informed. Simple inventory tracking must be enabled (see the `inventory_tracking`
            field) for this to take any effect.
        inventory_tracking:
          $ref: '#/components/schemas/ProductBasePostInventoryTracking'
          description: >
            The type of inventory tracking for the product. Values are: `none` - inventory levels will not be tracked;
            `product` - inventory levels will be tracked using the `inventory_level` and `inventory_warning_level`
            fields; `variant` - inventory levels will be tracked based on variants, which maintain their own warning
            levels and inventory levels.
        fixed_cost_shipping_price:
          type: string
          title: float
          description: >
            A fixed shipping cost for the product. If defined, this value will be used during checkout instead of normal
            shipping-cost calculation.
        is_free_shipping:
          type: boolean
          description: >
            Flag used to indicate whether the product has free shipping. If `true`, the shipping cost for the product
            will be zero.
        is_visible:
          type: boolean
          description: >
            Flag to determine whether the product should be displayed to customers browsing the store. If `true`, the
            product will be displayed. If `false`, the product will be hidden from view.
        is_featured:
          type: boolean
          description: >
            Flag to determine whether the product should be included in the `featured products` panel when viewing the
            store.
        related_products:
          type: array
          items:
            type: integer
          description: |
            An array of IDs for the related products.
        warranty:
          type: string
          description: |
            Warranty information displayed on the product page. Can include HTML formatting.
        bin_picking_number:
          type: string
          description: |
            The BIN picking number for the product.
        layout_file:
          type: string
          description: >
            The layout template file used to render this product. This field is writable only for stores with a
            Blueprint theme applied, and its value must be a template file from the store's Blueprint theme. For stores
            with a Stencil theme applied, custom templates are managed through [Custom Template
            Associations](/developer/api-reference/rest/admin/content/custom-template-associations).
        upc:
          type: string
          description: >
            The product UPC code, which is used in feeds for shopping comparison sites and external channel
            integrations.
        search_keywords:
          type: string
          description: |
            A comma-separated list of keywords that can be used to locate the product when searching the store.
        availability_description:
          type: string
          description: >
            Availability text displayed on the checkout page, under the product title. Tells the customer how long it
            will normally take to ship this product, such as: 'Usually ships in 24 hours.'
        availability:
          $ref: '#/components/schemas/ProductBasePostAvailability'
          description: >
            Availability of the product. (Corresponds to the productʼs
            [Purchasability](https://support.bigcommerce.com/s/article/Adding-Products-v3?language=en_US#sections)
            section in the control panel.) Supported values: `available` - the product is available for purchase;
            `disabled` - the product is listed on the storefront, but cannot be purchased; `preorder` - the product is
            listed for pre-orders.
        gift_wrapping_options_type:
          $ref: '#/components/schemas/ProductBasePostGiftWrappingOptionsType'
          description: >
            Type of gift-wrapping options. Values: `any` - allow any gift-wrapping options in the store; `none` -
            disallow gift-wrapping on the product; `list` – provide a list of IDs in the `gift_wrapping_options_list`
            field.


            Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query
            parameters.
        gift_wrapping_options_list:
          type: array
          items:
            type: integer
          description: >
            A list of gift-wrapping option IDs.


            Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query
            parameters.
        sort_order:
          type: integer
          description: >
            Priority to give this product when included in product lists on category pages and in search results. Lower
            integers will place the product closer to the top of the results.
        condition:
          $ref: '#/components/schemas/ProductBasePostCondition'
          description: >
            The product condition. Will be shown on the product page if the `is_condition_shown` fieldʼs value is
            `true`. Possible values: `New`, `Used`, `Refurbished`.
        is_condition_shown:
          type: boolean
          description: |
            Flag used to determine whether the product condition is shown to the customer on the product page.
        order_quantity_minimum:
          type: integer
          description: |
            The minimum quantity an order must contain, to be eligible to purchase this product.
        order_quantity_maximum:
          type: integer
          description: |
            The maximum quantity an order can contain when purchasing the product.
        page_title:
          type: string
          description: |
            Custom title for the product page. If not defined, the product name will be used as the meta title.
        meta_keywords:
          type: array
          items:
            type: string
          description: |
            Custom meta keywords for the product page. If not defined, the storeʼs default keywords will be used.
        meta_description:
          type: string
          description: >
            Custom meta description for the product page. If not defined, the storeʼs default meta description will be
            used.
        view_count:
          type: integer
          description: |
            The number of times the product has been viewed.
        preorder_release_date:
          type:
            - string
            - 'null'
          format: date-time
          description: >
            Pre-order release date. See the `availability` field for details on setting a productʼs availability to
            accept pre-orders.
        preorder_message:
          type: string
          description: >
            Custom expected-date message to display on the product page. If undefined, the message defaults to the
            storewide setting. Can contain the `%%DATE%%` placeholder, which will be substituted for the release date.
        is_preorder_only:
          type: boolean
          description: >
            If set to true then on the preorder release date the preorder status will automatically be removed.

            If set to false, then on the release date the preorder status **will not** be removed. It will need to be
            changed manually either in the

            control panel or using the API. Using the API set `availability` to `available`.
        is_price_hidden:
          type: boolean
          description: >
            False by default, indicating that this productʼs price should be shown on the product page. If set to
            `true`, the price is hidden. (NOTE: To successfully set `is_price_hidden` to `true`, the `availability`
            value must be `disabled`.)
        price_hidden_label:
          type: string
          description: >
            By default, an empty string. If `is_price_hidden` is `true`, the value of `price_hidden_label` is displayed
            instead of the price. (NOTE: To successfully set a non-empty string value with `is_price_hidden` set to
            `true`, the `availability` value must be `disabled`.)
        custom_url:
          $ref: '#/components/schemas/customUrl_Full'
        open_graph_type:
          $ref: '#/components/schemas/ProductBasePostOpenGraphType'
          description: |
            Type of product, defaults to `product`.
        open_graph_title:
          type: string
          description: |
            Title of the product, if not specified the product name will be used instead.
        open_graph_description:
          type: string
          description: |
            Description to use for the product, if not specified then the meta_description will be used instead.
        open_graph_use_meta_description:
          type: boolean
          description: |
            Flag to determine if product description or open graph description is used.
        open_graph_use_product_name:
          type: boolean
          description: |
            Flag to determine if product name or open graph name is used.
        open_graph_use_image:
          type: boolean
          description: |
            Flag to determine if product image or open graph image is used.
        gtin:
          type: string
          description: Global Trade Item Number
        mpn:
          type: string
          description: Manufacturer Part Number
        date_last_imported:
          type: string
          description: the date when the Product had been imported
        reviews_rating_sum:
          type: integer
          description: |
            The total (cumulative) rating for the product.
        reviews_count:
          type: integer
          description: |
            The number of times the product has been rated.
        total_sold:
          type: integer
          description: |
            The total quantity of this product sold.
        custom_fields:
          type: array
          items:
            $ref: '#/components/schemas/productCustomField_Put'
          description: 200 maximum custom fields per product. 255 maximum characters per custom field.
        bulk_pricing_rules:
          type: array
          items:
            $ref: '#/components/schemas/ProductBasePostBulkPricingRulesItems'
        images:
          type: array
          items:
            $ref: '#/components/schemas/productImage_Full'
        videos:
          type: array
          items:
            $ref: '#/components/schemas/productVideo_Full'
          description: >
            The Catalog API integrates with third-party YouTube.

            The [YouTube Terms of Service](https://www.youtube.com/t/terms) and [Google Privacy
            Policy](https://policies.google.com/privacy) apply, as indicated in our [Privacy
            Policy](https://www.bigcommerce.com/privacy/) and [Terms of Service](https://www.bigcommerce.com/terms/).
        variants:
          type: array
          items:
            $ref: '#/components/schemas/productVariant_Full'
      required:
        - name
        - type
        - weight
        - price
      description: |-
        `Product` properties used in:
        * `POST`
      title: product_Base_POST
    metaEmpty_Full:
      type: object
      properties: {}
      description: Response metadata.
      title: metaEmpty_Full
    Products_createProduct_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/product_Full'
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      title: Products_createProduct_Response_200
    CatalogProductsPostResponsesContentApplicationJsonSchemaErrors:
      type: object
      properties: {}
      title: CatalogProductsPostResponsesContentApplicationJsonSchemaErrors
    CreateProductRequestConflictError:
      type: object
      properties:
        errors:
          $ref: '#/components/schemas/CatalogProductsPostResponsesContentApplicationJsonSchemaErrors'
        instance:
          type: string
        status:
          type: integer
          description: |
            The HTTP status code.
        title:
          type: string
          description: |
            The error title describing the particular error.
        type:
          type: string
      title: CreateProductRequestConflictError
    CreateProductRequestUnprocessableEntityError:
      type: object
      properties:
        errors:
          $ref: '#/components/schemas/CatalogProductsPostResponsesContentApplicationJsonSchemaErrors'
        instance:
          type: string
        status:
          type: integer
          description: |
            The HTTP status code.
        title:
          type: string
          description: |
            The error title describing the particular error.
        type:
          type: string
      title: CreateProductRequestUnprocessableEntityError
    CatalogProductsDeleteParametersCondition:
      type: string
      enum:
        - new
        - used
        - refurbished
      title: CatalogProductsDeleteParametersCondition
    CatalogProductsDeleteParametersIsFeatured:
      type: string
      enum:
        - '1'
        - '0'
      title: CatalogProductsDeleteParametersIsFeatured
    CatalogProductsDeleteParametersType:
      type: string
      enum:
        - digital
        - physical
      title: CatalogProductsDeleteParametersType
    CatalogProductsProductIdGetParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - name
        - type
        - sku
        - description
        - weight
        - width
        - depth
        - height
        - price
        - cost_price
        - retail_price
        - sale_price
        - map_price
        - tax_class_id
        - product_tax_code
        - calculated_price
        - categories
        - brand_id
        - option_set_id
        - option_set_display
        - inventory_level
        - inventory_warning_level
        - inventory_tracking
        - reviews_rating_sum
        - reviews_count
        - total_sold
        - fixed_cost_shipping_price
        - is_free_shipping
        - is_visible
        - is_featured
        - related_products
        - warranty
        - bin_picking_number
        - layout_file
        - upc
        - mpn
        - gtin
        - date_last_imported
        - search_keywords
        - availability
        - availability_description
        - condition
        - is_condition_shown
        - order_quantity_minimum
        - order_quantity_maximum
        - page_title
        - meta_keywords
        - meta_description
        - date_created
        - date_modified
        - view_count
        - preorder_release_date
        - preorder_message
        - is_preorder_only
        - is_price_hidden
        - price_hidden_label
        - custom_url
        - base_variant_id
        - open_graph_type
        - open_graph_title
        - open_graph_description
        - open_graph_use_meta_description
        - open_graph_use_product_name
        - open_graph_use_image
      title: CatalogProductsProductIdGetParametersIncludeFieldsSchemaItems
    CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataType:
      type: string
      enum:
        - physical
        - digital
      description: |
        The product type. One of: `physical` - a physical stock unit, `digital` - a digital download.
      title: CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataType
    CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataInventoryTracking:
      type: string
      enum:
        - none
        - product
        - variant
      description: >
        The type of inventory tracking for the product. Values are: `none` - inventory levels will not be tracked;
        `product` - inventory levels will be tracked using the `inventory_level` and `inventory_warning_level` fields;
        `variant` - inventory levels will be tracked based on variants, which maintain their own warning levels and
        inventory levels.
      title: CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataInventoryTracking
    CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataAvailability:
      type: string
      enum:
        - available
        - disabled
        - preorder
      description: >
        Availability of the product. (Corresponds to the productʼs
        [Purchasability](https://support.bigcommerce.com/s/article/Adding-Products-v3?language=en_US#sections) section
        in the control panel.) Supported values: `available` - the product is available for purchase; `disabled` - the
        product is listed on the storefront, but cannot be purchased; `preorder` - the product is listed for pre-orders.
      title: CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataAvailability
    CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataGiftWrappingOptionsType:
      type: string
      enum:
        - any
        - none
        - list
      description: >
        Type of gift-wrapping options. Values: `any` - allow any gift-wrapping options in the store; `none` - disallow
        gift-wrapping on the product; `list` – provide a list of IDs in the `gift_wrapping_options_list` field.


        Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query
        parameters.
      title: CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataGiftWrappingOptionsType
    CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataCondition:
      type: string
      enum:
        - New
        - Used
        - Refurbished
      description: >
        The product condition. Will be shown on the product page if the `is_condition_shown` fieldʼs value is `true`.
        Possible values: `New`, `Used`, `Refurbished`.
      title: CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataCondition
    CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataOpenGraphType:
      type: string
      enum:
        - product
        - album
        - book
        - drink
        - food
        - game
        - movie
        - song
        - tv_show
      description: |
        Type of product, defaults to `product`.
      title: CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataOpenGraphType
    CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataBulkPricingRulesItemsType:
      type: string
      enum:
        - price
        - percent
        - fixed
      description: >-
        The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
        adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

        Required in /POST.
      title: CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataBulkPricingRulesItemsType
    CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataBulkPricingRulesItemsAmount:
      oneOf:
        - type: number
          format: double
        - type: string
      description: >-
        You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the response
        will return a number for `price` and `fixed` adjustments.

        Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
        “.10”. The response will return a float value for both `price` and `percentage` adjustments. 

        Required in /POST.
      title: CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataBulkPricingRulesItemsAmount
    CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataBulkPricingRulesItems:
      type: object
      properties:
        id:
          type: integer
          description: Unique ID of the *Bulk Pricing Rule*. Read-Only.
        quantity_min:
          type: integer
          description: >
            The minimum inclusive quantity of a product to satisfy this rule. Must be greater than or equal to zero. For
            `fixed` rules, the minimum quantity canʼt be less than two.

            Required in /POST.
        quantity_max:
          type: integer
          description: >-
            The maximum inclusive quantity of a product to satisfy this rule. Must be greater than the `quantity_min`
            value – unless this field has a value of 0 (zero), in which case there will be no maximum bound for this
            rule.

            Required in /POST.
        type:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataBulkPricingRulesItemsType
          description: >-
            The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
            adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

            Required in /POST.
        amount:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataBulkPricingRulesItemsAmount
          description: >-
            You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the
            response will return a number for `price` and `fixed` adjustments.

            Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
            “.10”. The response will return a float value for both `price` and `percentage` adjustments. 

            Required in /POST.
      required:
        - id
        - quantity_min
        - quantity_max
        - type
        - amount
      title: CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataBulkPricingRulesItems
    CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaData:
      type: object
      properties:
        id:
          type: integer
          description: ID of the product. Read-Only.
        name:
          type: string
          description: |
            A unique product name.
        type:
          $ref: '#/components/schemas/CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataType'
          description: |
            The product type. One of: `physical` - a physical stock unit, `digital` - a digital download.
        sku:
          type: string
          description: |
            A unique user-defined alphanumeric product code/stock keeping unit (SKU).
        description:
          type: string
          description: |
            The product description, which can include HTML formatting.
        weight:
          type: string
          title: float
          description: >
            Weight of the product, which can be used when calculating shipping costs. This is based on the unit set on
            the store
        width:
          type: string
          title: float
          description: |
            Width of the product, which can be used when calculating shipping costs.
        depth:
          type: string
          title: float
          description: |
            Depth of the product, which can be used when calculating shipping costs.
        height:
          type: string
          title: float
          description: |
            Height of the product, which can be used when calculating shipping costs.
        price:
          type: string
          title: float
          description: |
            The price of the product. The price should include or exclude tax, based on the store settings.
        cost_price:
          type: string
          title: float
          description: |
            The cost price of the product. Stored for reference only; it is not used or displayed anywhere on the store.
        retail_price:
          type: string
          title: float
          description: |
            The retail cost of the product. If entered, the retail cost price will be shown on the product page.
        sale_price:
          type: string
          title: float
          description: >
            If entered, the sale price will be used instead of value in the price field when calculating the productʼs
            cost.
        map_price:
          type: number
          format: double
          description: Minimum Advertised Price.
        tax_class_id:
          type: number
          format: double
          description: |
            The ID of the tax class applied to the product. (NOTE: Value ignored if automatic tax is enabled.)
        product_tax_code:
          type: string
          description: >
            Tax Codes, such as AvaTax System Tax Codes, identify products and services that fall into special sales-tax
            categories. By using these codes, merchants who subscribe to a tax provider integration, such as
            BigCommerceʼs Avalara Premium, can calculate sales taxes more accurately. Stores without a tax provider will
            ignore the code when calculating sales tax. Do not pass more than one code. The codes are case-sensitive.
            For details, please see the tax providerʼs documentation.
        categories:
          type: array
          items:
            type: number
            format: double
          description: >
            An array of IDs for the categories to which this product belongs. When updating a product, if an array of
            categories is supplied, all product categories will be overwritten. Does not accept more than 1,000 ID
            values.
        brand_id:
          type: integer
          description: >
            You can add a product to an existing brand during a product /PUT or /POST use the `brand_id` field. The
            response body can include `brand_id'.
        inventory_level:
          type: integer
          description: >-
            Current inventory level of the product. You must track inventory by _product_ for this to take effect (see
            the `inventory_tracking` field). The Catalog API returns the inventory for only the default location.


            The inventory for a product cannot exceed 2,147,483,647 in the catalog. If you exceed the limit, the store
            sets the inventory level to the limit.


            The Catalog API handles limits in a different way than the Inventory API. For more information, see [Limit
            handling](/developer/docs/admin/catalog-and-inventory/inventory-adjustments#limit-handling-in-inventory-versus-catalog-api).
        inventory_warning_level:
          type: integer
          description: >
            Inventory warning level for the product. When the productʼs inventory level drops below the warning level,
            the store owner will be informed. Simple inventory tracking must be enabled (see the `inventory_tracking`
            field) for this to take any effect.
        inventory_tracking:
          $ref: '#/components/schemas/CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataInventoryTracking'
          description: >
            The type of inventory tracking for the product. Values are: `none` - inventory levels will not be tracked;
            `product` - inventory levels will be tracked using the `inventory_level` and `inventory_warning_level`
            fields; `variant` - inventory levels will be tracked based on variants, which maintain their own warning
            levels and inventory levels.
        fixed_cost_shipping_price:
          type: string
          title: float
          description: >
            A fixed shipping cost for the product. If defined, this value will be used during checkout instead of normal
            shipping-cost calculation.
        is_free_shipping:
          type: boolean
          description: >
            Flag used to indicate whether the product has free shipping. If `true`, the shipping cost for the product
            will be zero.
        is_visible:
          type: boolean
          description: >
            Flag to determine whether the product should be displayed to customers browsing the store. If `true`, the
            product will be displayed. If `false`, the product will be hidden from view.
        is_featured:
          type: boolean
          description: >
            Flag to determine whether the product should be included in the `featured products` panel when viewing the
            store.
        related_products:
          type: array
          items:
            type: integer
          description: |
            An array of IDs for the related products.
        warranty:
          type: string
          description: |
            Warranty information displayed on the product page. Can include HTML formatting.
        bin_picking_number:
          type: string
          description: |
            The BIN picking number for the product.
        layout_file:
          type: string
          description: >
            The layout template file used to render this product. This field applies only to stores with a Blueprint
            theme applied, and the returned value is a template file from the store's Blueprint theme. Custom Stencil
            template associations are not returned in this field. For stores with a Stencil theme applied, see [Custom
            Template Associations](/developer/api-reference/rest/admin/content/custom-template-associations).
        upc:
          type: string
          description: >
            The product UPC code, which is used in feeds for shopping comparison sites and external channel
            integrations.
        search_keywords:
          type: string
          description: |
            A comma-separated list of keywords that can be used to locate the product when searching the store.
        availability_description:
          type: string
          description: >
            Availability text displayed on the checkout page, under the product title. Tells the customer how long it
            will normally take to ship this product, such as: 'Usually ships in 24 hours.'
        availability:
          $ref: '#/components/schemas/CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataAvailability'
          description: >
            Availability of the product. (Corresponds to the productʼs
            [Purchasability](https://support.bigcommerce.com/s/article/Adding-Products-v3?language=en_US#sections)
            section in the control panel.) Supported values: `available` - the product is available for purchase;
            `disabled` - the product is listed on the storefront, but cannot be purchased; `preorder` - the product is
            listed for pre-orders.
        gift_wrapping_options_type:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataGiftWrappingOptionsType
          description: >
            Type of gift-wrapping options. Values: `any` - allow any gift-wrapping options in the store; `none` -
            disallow gift-wrapping on the product; `list` – provide a list of IDs in the `gift_wrapping_options_list`
            field.


            Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query
            parameters.
        gift_wrapping_options_list:
          type: array
          items:
            type: integer
          description: >
            A list of gift-wrapping option IDs.


            Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query
            parameters.
        sort_order:
          type: integer
          description: >
            Priority to give this product when included in product lists on category pages and in search results. Lower
            integers will place the product closer to the top of the results.
        condition:
          $ref: '#/components/schemas/CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataCondition'
          description: >
            The product condition. Will be shown on the product page if the `is_condition_shown` fieldʼs value is
            `true`. Possible values: `New`, `Used`, `Refurbished`.
        is_condition_shown:
          type: boolean
          description: |
            Flag used to determine whether the product condition is shown to the customer on the product page.
        order_quantity_minimum:
          type: integer
          description: |
            The minimum quantity an order must contain, to be eligible to purchase this product.
        order_quantity_maximum:
          type: integer
          description: |
            The maximum quantity an order can contain when purchasing the product.
        page_title:
          type: string
          description: |
            Custom title for the product page. If not defined, the product name will be used as the meta title.
        meta_keywords:
          type: array
          items:
            type: string
          description: |
            Custom meta keywords for the product page. If not defined, the storeʼs default keywords will be used.
        meta_description:
          type: string
          description: >
            Custom meta description for the product page. If not defined, the storeʼs default meta description will be
            used.
        view_count:
          type: integer
          description: |
            The number of times the product has been viewed.
        preorder_release_date:
          type:
            - string
            - 'null'
          format: date-time
          description: >
            Pre-order release date. See the `availability` field for details on setting a productʼs availability to
            accept pre-orders.
        preorder_message:
          type: string
          description: >
            Custom expected-date message to display on the product page. If undefined, the message defaults to the
            storewide setting. Can contain the `%%DATE%%` placeholder, which will be substituted for the release date.
        is_preorder_only:
          type: boolean
          description: >
            If set to true then on the preorder release date the preorder status will automatically be removed.

            If set to false, then on the release date the preorder status **will not** be removed. It will need to be
            changed manually either in the

            control panel or using the API. Using the API set `availability` to `available`.
        is_price_hidden:
          type: boolean
          description: >
            False by default, indicating that this productʼs price should be shown on the product page. If set to
            `true`, the price is hidden. (NOTE: To successfully set `is_price_hidden` to `true`, the `availability`
            value must be `disabled`.)
        price_hidden_label:
          type: string
          description: >
            By default, an empty string. If `is_price_hidden` is `true`, the value of `price_hidden_label` is displayed
            instead of the price. (NOTE: To successfully set a non-empty string value with `is_price_hidden` set to
            `true`, the `availability` value must be `disabled`.)
        custom_url:
          $ref: '#/components/schemas/customUrl_Full'
        open_graph_type:
          $ref: '#/components/schemas/CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataOpenGraphType'
          description: |
            Type of product, defaults to `product`.
        open_graph_title:
          type: string
          description: |
            Title of the product, if not specified the product name will be used instead.
        open_graph_description:
          type: string
          description: |
            Description to use for the product, if not specified then the meta_description will be used instead.
        open_graph_use_meta_description:
          type: boolean
          description: |
            Flag to determine if product description or open graph description is used.
        open_graph_use_product_name:
          type: boolean
          description: |
            Flag to determine if product name or open graph name is used.
        open_graph_use_image:
          type: boolean
          description: |
            Flag to determine if product image or open graph image is used.
        gtin:
          type: string
          description: Global Trade Item Number
        mpn:
          type: string
          description: Manufacturer Part Number
        date_last_imported:
          type: string
          description: the date when the Product had been imported
        reviews_rating_sum:
          type: integer
          description: |
            The total (cumulative) rating for the product.
        reviews_count:
          type: integer
          description: |
            The number of times the product has been rated.
        total_sold:
          type: integer
          description: |
            The total quantity of this product sold.
        custom_fields:
          type: array
          items:
            $ref: '#/components/schemas/productCustomField_Put'
          description: 200 maximum custom fields per product. 255 maximum characters per custom field.
        bulk_pricing_rules:
          type: array
          items:
            $ref: >-
              #/components/schemas/CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaDataBulkPricingRulesItems
        images:
          type: array
          items:
            $ref: '#/components/schemas/productImage_Full'
        primary_image:
          $ref: '#/components/schemas/primaryImage_Full'
        videos:
          type: array
          items:
            $ref: '#/components/schemas/productVideo_Full'
          description: >
            The Catalog API integrates with third-party YouTube.

            The [YouTube Terms of Service](https://www.youtube.com/t/terms) and [Google Privacy
            Policy](https://policies.google.com/privacy) apply, as indicated in our [Privacy
            Policy](https://www.bigcommerce.com/privacy/) and [Terms of Service](https://www.bigcommerce.com/terms/).
        date_created:
          type: string
          format: date-time
          description: |
            The date on which the product was created.
        date_modified:
          type: string
          format: date-time
          description: |
            The date on which the product was modified.
        base_variant_id:
          type: integer
          description: >-
            The unique identifier of the base variant associated with a simple product. This value is `null` for complex
            products.
        calculated_price:
          type: string
          title: float
          description: >-
            The calculated_price is derived from the default price and sale price of the product. It is equal to the
            sale price if set or the default price if there is not a sale price present. Depending on your store
            settings and customer group, or channel-specific pricing, this value may or may not be equal to the price
            seen on the storefront.
        options:
          type: array
          items:
            $ref: '#/components/schemas/productOption_Base'
        modifiers:
          type: array
          items:
            $ref: '#/components/schemas/productModifier_Full'
        option_set_id:
          type: integer
          description: Indicates that the product is in an Option Set (legacy V2 concept).
        option_set_display:
          type: string
          description: >-
            Legacy template setting which controls if the option set shows up to the side of or below the product image
            and description.
        channels:
          type: array
          items:
            type: integer
          description: >-
            The channels to which the product is assigned. This field only appears in the response if you include
            `channels` in the `include` query parameter.
      description: Base Product response
      title: CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaData
    Products_getProduct_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CatalogProductsProductIdGetResponsesContentApplicationJsonSchemaData'
          description: Base Product response
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      title: Products_getProduct_Response_200
    GetProductRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: GetProductRequestNotFoundError
    CatalogProductsProductIdPutParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - name
        - type
        - sku
        - description
        - weight
        - width
        - depth
        - height
        - price
        - cost_price
        - retail_price
        - sale_price
        - map_price
        - tax_class_id
        - product_tax_code
        - calculated_price
        - categories
        - brand_id
        - option_set_id
        - option_set_display
        - inventory_level
        - inventory_warning_level
        - inventory_tracking
        - reviews_rating_sum
        - reviews_count
        - total_sold
        - fixed_cost_shipping_price
        - is_free_shipping
        - is_visible
        - is_featured
        - related_products
        - warranty
        - bin_picking_number
        - layout_file
        - upc
        - mpn
        - gtin
        - date_last_imported
        - search_keywords
        - availability
        - availability_description
        - condition
        - is_condition_shown
        - order_quantity_minimum
        - order_quantity_maximum
        - page_title
        - meta_keywords
        - meta_description
        - date_created
        - date_modified
        - view_count
        - preorder_release_date
        - preorder_message
        - is_preorder_only
        - is_price_hidden
        - price_hidden_label
        - custom_url
        - base_variant_id
        - open_graph_type
        - open_graph_title
        - open_graph_description
        - open_graph_use_meta_description
        - open_graph_use_product_name
        - open_graph_use_image
      title: CatalogProductsProductIdPutParametersIncludeFieldsSchemaItems
    ProductBasePutType:
      type: string
      enum:
        - physical
        - digital
      description: |
        The product type. One of: `physical` - a physical stock unit, `digital` - a digital download.
      title: ProductBasePutType
    ProductBasePutInventoryTracking:
      type: string
      enum:
        - none
        - product
        - variant
      description: >
        The type of inventory tracking for the product. Values are: `none` - inventory levels will not be tracked;
        `product` - inventory levels will be tracked using the `inventory_level` and `inventory_warning_level` fields;
        `variant` - inventory levels will be tracked based on variants, which maintain their own warning levels and
        inventory levels.
      title: ProductBasePutInventoryTracking
    ProductBasePutAvailability:
      type: string
      enum:
        - available
        - disabled
        - preorder
      description: >
        Availability of the product. (Corresponds to the productʼs
        [Purchasability](https://support.bigcommerce.com/s/article/Adding-Products-v3?language=en_US#sections) section
        in the control panel.) Supported values: `available` - the product is available for purchase; `disabled` - the
        product is listed on the storefront, but cannot be purchased; `preorder` - the product is listed for pre-orders.
      title: ProductBasePutAvailability
    ProductBasePutGiftWrappingOptionsType:
      type: string
      enum:
        - any
        - none
        - list
      description: >
        Type of gift-wrapping options. Values: `any` - allow any gift-wrapping options in the store; `none` - disallow
        gift-wrapping on the product; `list` – provide a list of IDs in the `gift_wrapping_options_list` field.


        Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query
        parameters.
      title: ProductBasePutGiftWrappingOptionsType
    ProductBasePutCondition:
      type: string
      enum:
        - New
        - Used
        - Refurbished
      description: >
        The product condition. Will be shown on the product page if the `is_condition_shown` fieldʼs value is `true`.
        Possible values: `New`, `Used`, `Refurbished`.
      title: ProductBasePutCondition
    ProductBasePutOpenGraphType:
      type: string
      enum:
        - product
        - album
        - book
        - drink
        - food
        - game
        - movie
        - song
        - tv_show
      description: |
        Type of product, defaults to `product`.
      title: ProductBasePutOpenGraphType
    ProductBasePutBulkPricingRulesItemsType:
      type: string
      enum:
        - price
        - percent
        - fixed
      description: >-
        The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
        adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

        Required in /POST.
      title: ProductBasePutBulkPricingRulesItemsType
    ProductBasePutBulkPricingRulesItemsAmount:
      oneOf:
        - type: number
          format: double
        - type: string
      description: >-
        You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the response
        will return a number for `price` and `fixed` adjustments.

        Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
        “.10”. The response will return a float value for both `price` and `percentage` adjustments. 

        Required in /POST.
      title: ProductBasePutBulkPricingRulesItemsAmount
    ProductBasePutBulkPricingRulesItems:
      type: object
      properties:
        id:
          type: integer
          description: Unique ID of the *Bulk Pricing Rule*. Read-Only.
        quantity_min:
          type: integer
          description: >
            The minimum inclusive quantity of a product to satisfy this rule. Must be greater than or equal to zero. For
            `fixed` rules, the minimum quantity canʼt be less than two.

            Required in /POST.
        quantity_max:
          type: integer
          description: >-
            The maximum inclusive quantity of a product to satisfy this rule. Must be greater than the `quantity_min`
            value – unless this field has a value of 0 (zero), in which case there will be no maximum bound for this
            rule.

            Required in /POST.
        type:
          $ref: '#/components/schemas/ProductBasePutBulkPricingRulesItemsType'
          description: >-
            The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
            adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

            Required in /POST.
        amount:
          $ref: '#/components/schemas/ProductBasePutBulkPricingRulesItemsAmount'
          description: >-
            You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the
            response will return a number for `price` and `fixed` adjustments.

            Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
            “.10”. The response will return a float value for both `price` and `percentage` adjustments. 

            Required in /POST.
      required:
        - id
        - quantity_min
        - quantity_max
        - type
        - amount
      title: ProductBasePutBulkPricingRulesItems
    product_Put:
      type: object
      properties:
        name:
          type: string
          description: |
            A unique product name.
        type:
          $ref: '#/components/schemas/ProductBasePutType'
          description: |
            The product type. One of: `physical` - a physical stock unit, `digital` - a digital download.
        sku:
          type: string
          description: >
            A unique user-defined alphanumeric product code/stock keeping unit (SKU). The SKU is always unique
            regardless of the letter case for both products and variants.
        description:
          type: string
          description: |
            The product description, which can include HTML formatting.
        weight:
          type: string
          title: float
          description: >
            Weight of the product, which can be used when calculating shipping costs. This is based on the unit set on
            the store.
        width:
          type: string
          title: float
          description: |
            Width of the product, which can be used when calculating shipping costs.
        depth:
          type: string
          title: float
          description: |
            Depth of the product, which can be used when calculating shipping costs.
        height:
          type: string
          title: float
          description: |
            Height of the product, which can be used when calculating shipping costs.
        price:
          type: string
          title: float
          description: |
            The price of the product. The price should include or exclude tax, based on the store settings.
        cost_price:
          type: string
          title: float
          description: |
            The cost price of the product. Stored for reference only; it is not used or displayed anywhere on the store.
        retail_price:
          type: string
          title: float
          description: |
            The retail cost of the product. If entered, the retail cost price will be shown on the product page.
        sale_price:
          type: string
          title: float
          description: >
            If entered, the sale price will be used instead of value in the price field when calculating the productʼs
            cost.
        map_price:
          type: number
          format: double
          description: Minimum Advertised Price
        tax_class_id:
          type: number
          format: double
          description: |
            The ID of the tax class applied to the product. (NOTE: Value ignored if automatic tax is enabled.)
        product_tax_code:
          type: string
          description: >
            Tax Codes, such as AvaTax System Tax Codes, identify products and services that fall into special sales-tax
            categories. By using these codes, merchants who subscribe to a tax provider integration, such as
            BigCommerceʼs Avalara Premium, can calculate sales taxes more accurately. Stores without a tax provider will
            ignore the code when calculating sales tax. Do not pass more than one code. The codes are case-sensitive.
            For details, please see the tax providerʼs documentation.
        categories:
          type: array
          items:
            type: number
            format: double
          description: >
            An array of IDs for the categories to which this product belongs. When updating a product, if an array of
            categories is supplied, all product categories will be overwritten. Does not accept more than 1,000 ID
            values.
        brand_id:
          type: integer
          description: >
            You can add a product to an existing brand during a product /PUT or /POST. Use either the `brand_id` or the
            `brand_name` field. The response body can include `brand_id`.
        brand_name:
          type: string
          description: >-
            You can create the brand during a product PUT or POST request. If the brand already exists, the product /PUT
            or /POST request adds the product to the brand. If not, the product /PUT or /POST request creates the brand
            and then adds the product to the brand. Brand name is not case-sensitive; "Common Good" and "Common good"
            are the same. Use either the `brand_id` or the `brand_name` field. The response body does not include
            `brand_name`.
        inventory_level:
          type: integer
          description: >-
            Current inventory level of the product. You must track inventory by _product_ for this to take effect (see
            the `inventory_tracking` field). The Catalog API returns the inventory for only the default location.


            The inventory for a product cannot exceed 2,147,483,647 in the catalog. If you exceed the limit, the store
            sets the inventory level to the limit.


            The Catalog API handles limits in a different way than the Inventory API. For more information, see [Limit
            handling](/developer/docs/admin/catalog-and-inventory/inventory-adjustments#limit-handling-in-inventory-versus-catalog-api). 
        inventory_warning_level:
          type: integer
          description: >
            Inventory warning level for the product. When the productʼs inventory level drops below the warning level,
            the store owner will be informed. Simple inventory tracking must be enabled (see the `inventory_tracking`
            field) for this to take any effect.
        inventory_tracking:
          $ref: '#/components/schemas/ProductBasePutInventoryTracking'
          description: >
            The type of inventory tracking for the product. Values are: `none` - inventory levels will not be tracked;
            `product` - inventory levels will be tracked using the `inventory_level` and `inventory_warning_level`
            fields; `variant` - inventory levels will be tracked based on variants, which maintain their own warning
            levels and inventory levels.
        fixed_cost_shipping_price:
          type: string
          title: float
          description: >
            A fixed shipping cost for the product. If defined, this value will be used during checkout instead of normal
            shipping-cost calculation.
        is_free_shipping:
          type: boolean
          description: >
            Flag used to indicate whether the product has free shipping. If `true`, the shipping cost for the product
            will be zero.
        is_visible:
          type: boolean
          description: >
            Flag to determine whether the product should be displayed to customers browsing the store. If `true`, the
            product will be displayed. If `false`, the product will be hidden from view.
        is_featured:
          type: boolean
          description: >
            Flag to determine whether the product should be included in the `featured products` panel when viewing the
            store.
        related_products:
          type: array
          items:
            type: integer
          description: |
            An array of IDs for the related products.
        warranty:
          type: string
          description: |
            Warranty information displayed on the product page. Can include HTML formatting.
        bin_picking_number:
          type: string
          description: |
            The BIN picking number for the product.
        layout_file:
          type: string
          description: >
            The layout template file used to render this product. This field is writable only for stores with a
            Blueprint theme applied, and its value must be a template file from the store's Blueprint theme. For stores
            with a Stencil theme applied, custom templates are managed through [Custom Template
            Associations](/developer/api-reference/rest/admin/content/custom-template-associations).
        upc:
          type: string
          description: >
            The product UPC code, which is used in feeds for shopping comparison sites and external channel
            integrations.
        search_keywords:
          type: string
          description: |
            A comma-separated list of keywords that can be used to locate the product when searching the store.
        availability_description:
          type: string
          description: >
            Availability text displayed on the checkout page, under the product title. Tells the customer how long it
            will normally take to ship this product, such as: 'Usually ships in 24 hours.'
        availability:
          $ref: '#/components/schemas/ProductBasePutAvailability'
          description: >
            Availability of the product. (Corresponds to the productʼs
            [Purchasability](https://support.bigcommerce.com/s/article/Adding-Products-v3?language=en_US#sections)
            section in the control panel.) Supported values: `available` - the product is available for purchase;
            `disabled` - the product is listed on the storefront, but cannot be purchased; `preorder` - the product is
            listed for pre-orders.
        gift_wrapping_options_type:
          $ref: '#/components/schemas/ProductBasePutGiftWrappingOptionsType'
          description: >
            Type of gift-wrapping options. Values: `any` - allow any gift-wrapping options in the store; `none` -
            disallow gift-wrapping on the product; `list` – provide a list of IDs in the `gift_wrapping_options_list`
            field.


            Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query
            parameters.
        gift_wrapping_options_list:
          type: array
          items:
            type: integer
          description: >
            A list of gift-wrapping option IDs.


            Always included in the response body; not applicable for the `include_fields` and `exclude_fields` query
            parameters.
        sort_order:
          type: integer
          description: >
            Priority to give this product when included in product lists on category pages and in search results. Lower
            integers will place the product closer to the top of the results.
        condition:
          $ref: '#/components/schemas/ProductBasePutCondition'
          description: >
            The product condition. Will be shown on the product page if the `is_condition_shown` fieldʼs value is
            `true`. Possible values: `New`, `Used`, `Refurbished`.
        is_condition_shown:
          type: boolean
          description: |
            Flag used to determine whether the product condition is shown to the customer on the product page.
        order_quantity_minimum:
          type: integer
          description: |
            The minimum quantity an order must contain, to be eligible to purchase this product.
        order_quantity_maximum:
          type: integer
          description: |
            The maximum quantity an order can contain when purchasing the product.
        page_title:
          type: string
          description: |
            Custom title for the product page. If not defined, the product name will be used as the meta title.
        meta_keywords:
          type: array
          items:
            type: string
          description: |
            Custom meta keywords for the product page. If not defined, the storeʼs default keywords will be used.
        meta_description:
          type: string
          description: >
            Custom meta description for the product page. If not defined, the storeʼs default meta description will be
            used.
        view_count:
          type: integer
          description: |
            The number of times the product has been viewed.
        preorder_release_date:
          type:
            - string
            - 'null'
          format: date-time
          description: >
            Pre-order release date. See the `availability` field for details on setting a productʼs availability to
            accept pre-orders.
        preorder_message:
          type: string
          description: >
            Custom expected-date message to display on the product page. If undefined, the message defaults to the
            storewide setting. Can contain the `%%DATE%%` placeholder, which will be substituted for the release date.
        is_preorder_only:
          type: boolean
          description: >
            If set to true then on the preorder release date the preorder status will automatically be removed.

            If set to false, then on the release date the preorder status **will not** be removed. It will need to be
            changed manually either in the

            control panel or using the API. Using the API set `availability` to `available`.
        is_price_hidden:
          type: boolean
          description: >
            False by default, indicating that this productʼs price should be shown on the product page. If set to
            `true`, the price is hidden. (NOTE: To successfully set `is_price_hidden` to `true`, the `availability`
            value must be `disabled`.)
        price_hidden_label:
          type: string
          description: >
            By default, an empty string. If `is_price_hidden` is `true`, the value of `price_hidden_label` is displayed
            instead of the price. (NOTE: To successfully set a non-empty string value with `is_price_hidden` set to
            `true`, the `availability` value must be `disabled`.)
        custom_url:
          $ref: '#/components/schemas/customUrl_Full'
        open_graph_type:
          $ref: '#/components/schemas/ProductBasePutOpenGraphType'
          description: |
            Type of product, defaults to `product`.
        open_graph_title:
          type: string
          description: |
            Title of the product, if not specified the product name will be used instead.
        open_graph_description:
          type: string
          description: |
            Description to use for the product, if not specified then the meta_description will be used instead.
        open_graph_use_meta_description:
          type: boolean
          description: |
            Flag to determine if product description or open graph description is used.
        open_graph_use_product_name:
          type: boolean
          description: |
            Flag to determine if product name or open graph name is used.
        open_graph_use_image:
          type: boolean
          description: |
            Flag to determine if product image or open graph image is used.
        gtin:
          type: string
          description: Global Trade Item Number
        mpn:
          type: string
          description: Manufacturer Part Number
        date_last_imported:
          type: string
          description: the date when the Product had been imported
        reviews_rating_sum:
          type: integer
          description: |
            The total (cumulative) rating for the product.
        reviews_count:
          type: integer
          description: |
            The number of times the product has been rated.
        total_sold:
          type: integer
          description: |
            The total quantity of this product sold.
        custom_fields:
          type: array
          items:
            $ref: '#/components/schemas/productCustomField_Put'
          description: 200 maximum custom fields per product. 255 maximum characters per custom field.
        bulk_pricing_rules:
          type: array
          items:
            $ref: '#/components/schemas/ProductBasePutBulkPricingRulesItems'
        images:
          type: array
          items:
            $ref: '#/components/schemas/productImage_Full'
        videos:
          type: array
          items:
            $ref: '#/components/schemas/productVideo_Full'
          description: >
            The Catalog API integrates with third-party YouTube.

            The [YouTube Terms of Service](https://www.youtube.com/t/terms) and [Google Privacy
            Policy](https://policies.google.com/privacy) apply, as indicated in our [Privacy
            Policy](https://www.bigcommerce.com/privacy/) and [Terms of Service](https://www.bigcommerce.com/terms/).
      description: The model for a PUT to update a product.
      title: product_Put
    Products_updateProduct_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/product_Full'
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      title: Products_updateProduct_Response_200
    UpdateProductRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: UpdateProductRequestNotFoundError
    CatalogProductsProductIdPutResponsesContentApplicationJsonSchemaErrors:
      type: object
      properties: {}
      title: CatalogProductsProductIdPutResponsesContentApplicationJsonSchemaErrors
    UpdateProductRequestConflictError:
      type: object
      properties:
        errors:
          $ref: '#/components/schemas/CatalogProductsProductIdPutResponsesContentApplicationJsonSchemaErrors'
        instance:
          type: string
        status:
          type: integer
          description: |
            The HTTP status code.
        title:
          type: string
          description: |
            The error title describing the particular error.
        type:
          type: string
      title: UpdateProductRequestConflictError
    UpdateProductRequestUnprocessableEntityError:
      type: object
      properties:
        errors:
          $ref: '#/components/schemas/CatalogProductsProductIdPutResponsesContentApplicationJsonSchemaErrors'
        instance:
          type: string
        status:
          type: integer
          description: |
            The HTTP status code.
        title:
          type: string
          description: |
            The error title describing the particular error.
        type:
          type: string
      title: UpdateProductRequestUnprocessableEntityError
    CatalogProductsMetafieldsGetParametersDirection:
      type: string
      enum:
        - asc
        - desc
      title: CatalogProductsMetafieldsGetParametersDirection
    CatalogProductsMetafieldsGetParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - resource_id
        - resource_id:in
        - key
        - value
        - namespace
        - permission_set
        - resource_type
        - description
        - owner_client_id
        - date_created
        - date_modified
      title: CatalogProductsMetafieldsGetParametersIncludeFieldsSchemaItems
    MetafieldPermissionSet:
      type: string
      enum:
        - app_only
        - read
        - write
        - read_and_sf_access
        - write_and_sf_access
      description: |
        Determines the visibility and writeability of the field by other API consumers.
        | Value | Description |
        | :--- | :--- |
        | `app_only` | Private to the app that owns the field. |
        | `read` | Visible to other API consumers. |
        | `write` | Open for reading and writing by other API consumers. |
        | `read_and_sf_access` | Visible to other API consumers, including on the storefront. |
        | `write_and_sf_access` | Open for reading and writing by other API consumers, including on the storefront. |
      title: MetafieldPermissionSet
    MetafieldResourceType:
      type: string
      enum:
        - brand
        - product
        - variant
        - category
        - cart
        - channel
        - location
        - order
        - customer
      description: |
        The type of resource with which the metafield is associated.
      title: MetafieldResourceType
    Metafield:
      type: object
      properties:
        permission_set:
          $ref: '#/components/schemas/MetafieldPermissionSet'
          description: >
            Determines the visibility and writeability of the field by other API consumers.

            | Value | Description |

            | :--- | :--- |

            | `app_only` | Private to the app that owns the field. |

            | `read` | Visible to other API consumers. |

            | `write` | Open for reading and writing by other API consumers. |

            | `read_and_sf_access` | Visible to other API consumers, including on the storefront. |

            | `write_and_sf_access` | Open for reading and writing by other API consumers, including on the storefront.
            |
        namespace:
          type: string
          description: |
            Namespace for the metafield, for organizational purposes.
        key:
          type: string
          description: |
            The name of the field, for example: `location_id`, `color`.
        value:
          type: string
          description: |
            The value of the field, for example: `1`, `blue`.
        description:
          type: string
          description: |
            Description for the metafields.
        resource_type:
          $ref: '#/components/schemas/MetafieldResourceType'
          description: |
            The type of resource with which the metafield is associated.
        resource_id:
          type: integer
          description: |
            The unique identifier for the resource with which the metafield is associated.
        id:
          type: integer
          description: The unique identifier for the metafield.
        date_created:
          type: string
          format: date-time
          description: Date and time of the metafieldʼs creation.
        date_modified:
          type: string
          format: date-time
          description: Date and time when the metafield was last updated.
        owner_client_id:
          type: string
          description: Client ID for the metafieldʼs creator.
      required:
        - permission_set
        - namespace
        - key
        - value
        - description
        - resource_type
        - resource_id
        - id
        - date_created
        - date_modified
      description: |
        Common Metafield properties.
      title: Metafield
    CollectionMetaPaginationLinks:
      type: object
      properties:
        previous:
          type: string
          description: |
            Link to the previous page returned in the response.
        current:
          type: string
          description: |
            Link to the current page returned in the response.
        next:
          type: string
          description: |
            Link to the next page returned in the response.
      description: |
        Pagination links for the previous and next parts of the whole collection.
      title: CollectionMetaPaginationLinks
    CollectionMetaPagination:
      type: object
      properties:
        total:
          type: integer
          description: |
            Total number of items in the result set.
        count:
          type: integer
          description: |
            Total number of items in the collection response.
        per_page:
          type: integer
          description: |
            The amount of items returned in the collection per page, controlled by the limit parameter.
        current_page:
          type: integer
          description: |
            The page you are currently on within the collection.
        total_pages:
          type: integer
          description: |
            The total number of pages in the collection.
        links:
          $ref: '#/components/schemas/CollectionMetaPaginationLinks'
          description: |
            Pagination links for the previous and next parts of the whole collection.
      description: Data about the response, including pagination and collection totals.
      title: CollectionMetaPagination
    CollectionMeta:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/CollectionMetaPagination'
          description: Data about the response, including pagination and collection totals.
      description: Data about the response, including pagination and collection totals.
      title: CollectionMeta
    MetaFieldCollectionResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Metafield'
        meta:
          $ref: '#/components/schemas/CollectionMeta'
      description: |
        Response payload for the BigCommerce API.
      title: MetaFieldCollectionResponse
    CatalogProductsMetafieldsPostRequestBodyContentApplicationJsonSchemaItemsPermissionSet:
      type: string
      enum:
        - app_only
        - read
        - write
        - read_and_sf_access
        - write_and_sf_access
      description: |
        Determines the visibility and writeability of the field by other API consumers.
        | Value | Description |
        | :--- | :--- |
        | `app_only` | Private to the app that owns the field. |
        | `read` | Visible to other API consumers. |
        | `write` | Open for reading and writing by other API consumers. |
        | `read_and_sf_access` | Visible to other API consumers, including on the storefront. |
        | `write_and_sf_access` | Open for reading and writing by other API consumers, including on the storefront. |
      title: CatalogProductsMetafieldsPostRequestBodyContentApplicationJsonSchemaItemsPermissionSet
    CatalogProductsMetafieldsPostRequestBodyContentApplicationJsonSchemaItems:
      type: object
      properties:
        permission_set:
          $ref: '#/components/schemas/CatalogProductsMetafieldsPostRequestBodyContentApplicationJsonSchemaItemsPermissionSet'
          description: >
            Determines the visibility and writeability of the field by other API consumers.

            | Value | Description |

            | :--- | :--- |

            | `app_only` | Private to the app that owns the field. |

            | `read` | Visible to other API consumers. |

            | `write` | Open for reading and writing by other API consumers. |

            | `read_and_sf_access` | Visible to other API consumers, including on the storefront. |

            | `write_and_sf_access` | Open for reading and writing by other API consumers, including on the storefront.
            |
        namespace:
          type: string
          description: |
            Namespace for the metafield, for organizational purposes.
        key:
          type: string
          description: |
            The name of the field, for example: `location_id`, `color`.
        value:
          type: string
          description: |
            The value of the field, for example: `1`, `blue`.
        description:
          type: string
          description: |
            Description for the metafields.
        resource_id:
          type: integer
          description: |
            The ID for the product with which the metafield is associated.
      required:
        - permission_set
        - namespace
        - key
        - value
        - resource_id
      description: |
        Common Metafield properties.
      title: CatalogProductsMetafieldsPostRequestBodyContentApplicationJsonSchemaItems
    WriteCollectionSuccessMeta:
      type: object
      properties:
        total:
          type: integer
          description: |
            Total number of items in the result set.
        success:
          type: integer
          description: |
            Total number of items that were successfully deleted.
        failed:
          type: integer
          description: |
            Total number of items that failed to be deleted.
      description: Additional data about the response.
      title: WriteCollectionSuccessMeta
    MetaFieldCollectionResponse_POST_PUT:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Metafield'
        errors:
          type: array
          items:
            description: Any type
          description: Empty for 200 responses.
        meta:
          $ref: '#/components/schemas/WriteCollectionSuccessMeta'
      description: |
        Response payload for the BigCommerce API.
      title: MetaFieldCollectionResponse_POST_PUT
    CreateProductsMetafieldsRequestBadRequestError:
      type: object
      properties:
        status:
          type: number
          format: double
        title:
          type: string
        type:
          type: string
        detail:
          type: string
      title: CreateProductsMetafieldsRequestBadRequestError
    ErrorDetail:
      type: object
      properties: {}
      description: |
        Error detail response payload for the BigCommerce API.
      title: ErrorDetail
    Error:
      type: object
      properties:
        status:
          type: integer
          description: |
            The HTTP status code for the error.
        title:
          type: string
          description: |
            The error title.
        type:
          type: string
          description: |
            The error type.
        errors:
          $ref: '#/components/schemas/ErrorDetail'
      description: |
        Error response payload for the BigCommerce API.
      title: Error
    WriteCollectionPartialSuccessMeta:
      type: object
      properties:
        total:
          type: integer
          description: |
            Total number of items in the result set.
        success:
          type: integer
          description: |
            Total number of items that were successfully deleted.
        failed:
          type: integer
          description: |
            Total number of items that failed to be deleted.
      description: Additional data about the response.
      title: WriteCollectionPartialSuccessMeta
    MetaFieldCollectionResponsePartialSuccess_POST_PUT:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Metafield'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
        meta:
          $ref: '#/components/schemas/WriteCollectionPartialSuccessMeta'
      description: |
        Response payload for the BigCommerce API.
      title: MetaFieldCollectionResponsePartialSuccess_POST_PUT
    CatalogProductsMetafieldsPutRequestBodyContentApplicationJsonSchemaItemsPermissionSet:
      type: string
      enum:
        - app_only
        - read
        - write
        - read_and_sf_access
        - write_and_sf_access
      description: |
        Determines the visibility and writeability of the field by other API consumers.
        | Value | Description |
        | :--- | :--- |
        | `app_only` | Private to the app that owns the field. |
        | `read` | Visible to other API consumers. |
        | `write` | Open for reading and writing by other API consumers. |
        | `read_and_sf_access` | Visible to other API consumers, including on the storefront. |
        | `write_and_sf_access` | Open for reading and writing by other API consumers, including on the storefront. |
      title: CatalogProductsMetafieldsPutRequestBodyContentApplicationJsonSchemaItemsPermissionSet
    CatalogProductsMetafieldsPutRequestBodyContentApplicationJsonSchemaItems:
      type: object
      properties:
        permission_set:
          $ref: '#/components/schemas/CatalogProductsMetafieldsPutRequestBodyContentApplicationJsonSchemaItemsPermissionSet'
          description: >
            Determines the visibility and writeability of the field by other API consumers.

            | Value | Description |

            | :--- | :--- |

            | `app_only` | Private to the app that owns the field. |

            | `read` | Visible to other API consumers. |

            | `write` | Open for reading and writing by other API consumers. |

            | `read_and_sf_access` | Visible to other API consumers, including on the storefront. |

            | `write_and_sf_access` | Open for reading and writing by other API consumers, including on the storefront.
            |
        namespace:
          type: string
          description: |
            Namespace for the metafield, for organizational purposes.
        key:
          type: string
          description: |
            The name of the field, for example: `location_id`, `color`.
        value:
          type: string
          description: |
            The value of the field, for example: `1`, `blue`.
        description:
          type: string
          description: |
            Description for the metafields.
        id:
          type: integer
          description: |
            The ID of metafield to update.
      required:
        - id
      description: |
        Common Metafield properties.
      title: CatalogProductsMetafieldsPutRequestBodyContentApplicationJsonSchemaItems
    UpdateProductsMetafieldsRequestBadRequestError:
      type: object
      properties:
        status:
          type: number
          format: double
        title:
          type: string
        type:
          type: string
        detail:
          type: string
      title: UpdateProductsMetafieldsRequestBadRequestError
    MetaFieldCollectionDeleteResponseSuccess:
      type: object
      properties:
        data:
          type: array
          items:
            type: integer
        errors:
          type: array
          items:
            description: Any type
          description: Empty for 200 responses.
        meta:
          $ref: '#/components/schemas/WriteCollectionSuccessMeta'
      description: |
        Response payload for the BigCommerce API.
      title: MetaFieldCollectionDeleteResponseSuccess
    DeleteProductsMetafieldsRequestBadRequestError:
      type: object
      properties:
        status:
          type: number
          format: double
        title:
          type: string
        type:
          type: string
        detail:
          type: string
      title: DeleteProductsMetafieldsRequestBadRequestError
    MetaFieldCollectionResponsePartialSuccess_DELETE:
      type: object
      properties:
        data:
          type: array
          items:
            type: integer
        errors:
          type: array
          items:
            $ref: '#/components/schemas/Error'
        meta:
          $ref: '#/components/schemas/WriteCollectionPartialSuccessMeta'
      description: |
        Response payload for the BigCommerce API.
      title: MetaFieldCollectionResponsePartialSuccess_DELETE
    CatalogProductsProductIdBulkPricingRulesGetParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - quantity_min
        - quantity_max
        - type
        - amount
      title: CatalogProductsProductIdBulkPricingRulesGetParametersIncludeFieldsSchemaItems
    CatalogProductsProductIdBulkPricingRulesGetResponsesContentApplicationJsonSchemaDataType:
      type: string
      enum:
        - price
        - percent
        - fixed
      description: >-
        The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
        adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

        Required in /POST.
      title: CatalogProductsProductIdBulkPricingRulesGetResponsesContentApplicationJsonSchemaDataType
    CatalogProductsProductIdBulkPricingRulesGetResponsesContentApplicationJsonSchemaDataAmount:
      oneOf:
        - type: number
          format: double
        - type: string
      description: >-
        You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the response
        will return a number for `price` and `fixed` adjustments.

        Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
        “.10”. The response will return a float value for both `price` and `percentage` adjustments. 
      title: CatalogProductsProductIdBulkPricingRulesGetResponsesContentApplicationJsonSchemaDataAmount
    CatalogProductsProductIdBulkPricingRulesGetResponsesContentApplicationJsonSchemaData:
      type: object
      properties:
        id:
          type: integer
          description: Unique ID of the *Bulk Pricing Rule*. Read-Only.
        quantity_min:
          type: integer
          description: >
            The minimum inclusive quantity of a product to satisfy this rule. Must be greater than or equal to zero. For
            `fixed` rules, the minimum quantity canʼt be less than two.

            Required in /POST.
        quantity_max:
          type: integer
          description: >-
            The maximum inclusive quantity of a product to satisfy this rule. Must be greater than the `quantity_min`
            value – unless this field has a value of 0 (zero), in which case there will be no maximum bound for this
            rule.

            Required in /POST.
        type:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdBulkPricingRulesGetResponsesContentApplicationJsonSchemaDataType
          description: >-
            The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
            adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

            Required in /POST.
        amount:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdBulkPricingRulesGetResponsesContentApplicationJsonSchemaDataAmount
          description: >-
            You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the
            response will return a number for `price` and `fixed` adjustments.

            Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
            “.10”. The response will return a float value for both `price` and `percentage` adjustments. 
      title: CatalogProductsProductIdBulkPricingRulesGetResponsesContentApplicationJsonSchemaData
    Bulk pricing rules_getAllBulkPricingRules_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CatalogProductsProductIdBulkPricingRulesGetResponsesContentApplicationJsonSchemaData'
        meta:
          $ref: '#/components/schemas/metaCollection_Full'
      title: Bulk pricing rules_getAllBulkPricingRules_Response_200
    BulkPricingRuleFullType:
      type: string
      enum:
        - price
        - percent
        - fixed
      description: >-
        The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
        adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

        Required in /POST.
      title: BulkPricingRuleFullType
    BulkPricingRuleFullAmount:
      oneOf:
        - type: number
          format: double
        - type: string
      description: >-
        You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the response
        will return a number for `price` and `fixed` adjustments.

        Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
        “.10”. The response will return a float value for both `price` and `percentage` adjustments. 

        Required in /POST.
      title: BulkPricingRuleFullAmount
    bulkPricingRule_Full:
      type: object
      properties:
        quantity_min:
          type: integer
          description: >
            The minimum inclusive quantity of a product to satisfy this rule. Must be greater than or equal to zero. For
            `fixed` rules, the minimum quantity canʼt be less than two.

            Required in /POST.
        quantity_max:
          type: integer
          description: >-
            The maximum inclusive quantity of a product to satisfy this rule. Must be greater than the `quantity_min`
            value – unless this field has a value of 0 (zero), in which case there will be no maximum bound for this
            rule.

            Required in /POST.
        type:
          $ref: '#/components/schemas/BulkPricingRuleFullType'
          description: >-
            The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
            adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

            Required in /POST.
        amount:
          $ref: '#/components/schemas/BulkPricingRuleFullAmount'
          description: >-
            You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the
            response will return a number for `price` and `fixed` adjustments.

            Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
            “.10”. The response will return a float value for both `price` and `percentage` adjustments. 

            Required in /POST.
      required:
        - quantity_min
        - quantity_max
        - type
        - amount
      title: bulkPricingRule_Full
    CatalogProductsProductIdBulkPricingRulesPostResponsesContentApplicationJsonSchemaDataType:
      type: string
      enum:
        - price
        - percent
        - fixed
      description: >-
        The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
        adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

        Required in /POST.
      title: CatalogProductsProductIdBulkPricingRulesPostResponsesContentApplicationJsonSchemaDataType
    CatalogProductsProductIdBulkPricingRulesPostResponsesContentApplicationJsonSchemaDataAmount:
      oneOf:
        - type: number
          format: double
        - type: string
      description: >-
        You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the response
        will return a number for `price` and `fixed` adjustments.

        Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
        “.10”. The response will return a float value for both `price` and `percentage` adjustments. 
      title: CatalogProductsProductIdBulkPricingRulesPostResponsesContentApplicationJsonSchemaDataAmount
    CatalogProductsProductIdBulkPricingRulesPostResponsesContentApplicationJsonSchemaData:
      type: object
      properties:
        id:
          type: integer
          description: Unique ID of the *Bulk Pricing Rule*. Read-Only.
        quantity_min:
          type: integer
          description: >
            The minimum inclusive quantity of a product to satisfy this rule. Must be greater than or equal to zero. For
            `fixed` rules, the minimum quantity canʼt be less than two.

            Required in /POST.
        quantity_max:
          type: integer
          description: >-
            The maximum inclusive quantity of a product to satisfy this rule. Must be greater than the `quantity_min`
            value – unless this field has a value of 0 (zero), in which case there will be no maximum bound for this
            rule.

            Required in /POST.
        type:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdBulkPricingRulesPostResponsesContentApplicationJsonSchemaDataType
          description: >-
            The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
            adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

            Required in /POST.
        amount:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdBulkPricingRulesPostResponsesContentApplicationJsonSchemaDataAmount
          description: >-
            You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the
            response will return a number for `price` and `fixed` adjustments.

            Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
            “.10”. The response will return a float value for both `price` and `percentage` adjustments. 
      title: CatalogProductsProductIdBulkPricingRulesPostResponsesContentApplicationJsonSchemaData
    Bulk pricing rules_createBulkPricingRule_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CatalogProductsProductIdBulkPricingRulesPostResponsesContentApplicationJsonSchemaData'
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      title: Bulk pricing rules_createBulkPricingRule_Response_200
    CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdGetParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - quantity_min
        - quantity_max
        - type
        - amount
      title: CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdGetParametersIncludeFieldsSchemaItems
    CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdGetResponsesContentApplicationJsonSchemaDataType:
      type: string
      enum:
        - price
        - percent
        - fixed
      description: >-
        The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
        adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

        Required in /POST.
      title: CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdGetResponsesContentApplicationJsonSchemaDataType
    CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdGetResponsesContentApplicationJsonSchemaDataAmount:
      oneOf:
        - type: number
          format: double
        - type: string
      description: >-
        You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the response
        will return a number for `price` and `fixed` adjustments.

        Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
        “.10”. The response will return a float value for both `price` and `percentage` adjustments. 
      title: CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdGetResponsesContentApplicationJsonSchemaDataAmount
    CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdGetResponsesContentApplicationJsonSchemaData:
      type: object
      properties:
        id:
          type: integer
          description: Unique ID of the *Bulk Pricing Rule*. Read-Only.
        quantity_min:
          type: integer
          description: >
            The minimum inclusive quantity of a product to satisfy this rule. Must be greater than or equal to zero. For
            `fixed` rules, the minimum quantity canʼt be less than two.

            Required in /POST.
        quantity_max:
          type: integer
          description: >-
            The maximum inclusive quantity of a product to satisfy this rule. Must be greater than the `quantity_min`
            value – unless this field has a value of 0 (zero), in which case there will be no maximum bound for this
            rule.

            Required in /POST.
        type:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdGetResponsesContentApplicationJsonSchemaDataType
          description: >-
            The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
            adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

            Required in /POST.
        amount:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdGetResponsesContentApplicationJsonSchemaDataAmount
          description: >-
            You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the
            response will return a number for `price` and `fixed` adjustments.

            Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
            “.10”. The response will return a float value for both `price` and `percentage` adjustments. 
      required:
        - id
      title: CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdGetResponsesContentApplicationJsonSchemaData
    Bulk pricing rules_getBulkPricingRule_Response_200:
      type: object
      properties:
        data:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdGetResponsesContentApplicationJsonSchemaData
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      title: Bulk pricing rules_getBulkPricingRule_Response_200
    GetBulkPricingRuleRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: GetBulkPricingRuleRequestNotFoundError
    CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdPutRequestBodyContentApplicationJsonSchemaType:
      type: string
      enum:
        - price
        - percent
        - fixed
      description: >-
        The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
        adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

        Required in /POST.
      title: CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdPutRequestBodyContentApplicationJsonSchemaType
    CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdPutRequestBodyContentApplicationJsonSchemaAmount:
      oneOf:
        - type: number
          format: double
        - type: string
      description: >-
        You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the response
        will return a number for `price` and `fixed` adjustments.

        Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
        “.10”. The response will return a float value for both `price` and `percentage` adjustments. 

        Required in /POST.
      title: CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdPutRequestBodyContentApplicationJsonSchemaAmount
    CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdPutResponsesContentApplicationJsonSchemaDataType:
      type: string
      enum:
        - price
        - percent
        - fixed
      description: >-
        The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
        adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

        Required in /POST.
      title: CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdPutResponsesContentApplicationJsonSchemaDataType
    CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdPutResponsesContentApplicationJsonSchemaDataAmount:
      oneOf:
        - type: number
          format: double
        - type: string
      description: >-
        You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the response
        will return a number for `price` and `fixed` adjustments.

        Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
        “.10”. The response will return a float value for both `price` and `percentage` adjustments. 
      title: CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdPutResponsesContentApplicationJsonSchemaDataAmount
    CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdPutResponsesContentApplicationJsonSchemaData:
      type: object
      properties:
        id:
          type: integer
          description: Unique ID of the *Bulk Pricing Rule*. Read-Only.
        quantity_min:
          type: integer
          description: >
            The minimum inclusive quantity of a product to satisfy this rule. Must be greater than or equal to zero. For
            `fixed` rules, the minimum quantity canʼt be less than two.

            Required in /POST.
        quantity_max:
          type: integer
          description: >-
            The maximum inclusive quantity of a product to satisfy this rule. Must be greater than the `quantity_min`
            value – unless this field has a value of 0 (zero), in which case there will be no maximum bound for this
            rule.

            Required in /POST.
        type:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdPutResponsesContentApplicationJsonSchemaDataType
          description: >-
            The type of adjustment that is made. Values: `price` - the adjustment amount per product; `percent` - the
            adjustment as a percentage of the original price; `fixed` - the adjusted absolute price of the product.

            Required in /POST.
        amount:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdPutResponsesContentApplicationJsonSchemaDataAmount
          description: >-
            You can express the adjustment type as either a fixed dollar amount or a percentage. Send a number; the
            response will return a number for `price` and `fixed` adjustments.

            Divide the adjustment percentage by 100 and send the result in string format. For example, represent 10% as
            “.10”. The response will return a float value for both `price` and `percentage` adjustments. 
      title: CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdPutResponsesContentApplicationJsonSchemaData
    Bulk pricing rules_updateBulkPricingRule_Response_200:
      type: object
      properties:
        data:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdPutResponsesContentApplicationJsonSchemaData
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      title: Bulk pricing rules_updateBulkPricingRule_Response_200
    UpdateBulkPricingRuleRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: UpdateBulkPricingRuleRequestNotFoundError
    CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdPutResponsesContentApplicationJsonSchemaErrors:
      type: object
      properties: {}
      title: CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdPutResponsesContentApplicationJsonSchemaErrors
    UpdateBulkPricingRuleRequestConflictError:
      type: object
      properties:
        errors:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdPutResponsesContentApplicationJsonSchemaErrors
        instance:
          type: string
        status:
          type: integer
          description: |
            The HTTP status code.
        title:
          type: string
          description: |
            The error title describing the particular error.
        type:
          type: string
      title: UpdateBulkPricingRuleRequestConflictError
    UpdateBulkPricingRuleRequestUnprocessableEntityError:
      type: object
      properties:
        errors:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdBulkPricingRulesBulkPricingRuleIdPutResponsesContentApplicationJsonSchemaErrors
        instance:
          type: string
        status:
          type: integer
          description: |
            The HTTP status code.
        title:
          type: string
          description: |
            The error title describing the particular error.
        type:
          type: string
      title: UpdateBulkPricingRuleRequestUnprocessableEntityError
    DeleteBulkPricingRuleRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: DeleteBulkPricingRuleRequestNotFoundError
    ProductCategoryAssignment:
      type: object
      properties:
        product_id:
          type: integer
        category_id:
          type: integer
      title: ProductCategoryAssignment
    MetaPaginationObjectPaginationLinks:
      type: object
      properties:
        previous:
          type: string
        current:
          type: string
        next:
          type: string
      title: MetaPaginationObjectPaginationLinks
    MetaPaginationObjectPagination:
      type: object
      properties:
        total:
          type: integer
        count:
          type: integer
        per_page:
          type: integer
        current_page:
          type: integer
        total_pages:
          type: integer
        links:
          $ref: '#/components/schemas/MetaPaginationObjectPaginationLinks'
      title: MetaPaginationObjectPagination
    MetaPaginationObject:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/MetaPaginationObjectPagination'
      title: MetaPaginationObject
    Category assignments_getProductsCategoryAssignments_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ProductCategoryAssignment'
        meta:
          $ref: '#/components/schemas/MetaPaginationObject'
      title: Category assignments_getProductsCategoryAssignments_Response_200
    beta5DetailedErrors:
      type: object
      properties: {}
      title: beta5DetailedErrors
    beta5ErrorResponse:
      type: object
      properties:
        status:
          type: integer
          description: |
            The HTTP status code.
        title:
          type: string
          description: |
            The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
        errors:
          $ref: '#/components/schemas/beta5DetailedErrors'
      description: |
        Error payload for the BigCommerce API.
      title: beta5ErrorResponse
    ProductChannelAssignment:
      type: object
      properties:
        product_id:
          type: integer
        channel_id:
          type: integer
      title: ProductChannelAssignment
    Channel assignments_getProductsChannelAssignments_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ProductChannelAssignment'
        meta:
          $ref: '#/components/schemas/MetaPaginationObject'
      title: Channel assignments_getProductsChannelAssignments_Response_200
    CatalogProductsProductIdComplexRulesGetParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - name
        - type
        - sku
        - description
        - weight
        - width
        - depth
        - height
        - price
        - cost_price
        - retail_price
        - sale_price
        - map_price
        - tax_class_id
        - product_tax_code
        - calculated_price
        - categories
        - brand_id
        - option_set_id
        - option_set_display
        - inventory_level
        - inventory_warning_level
        - inventory_tracking
        - reviews_rating_sum
        - reviews_count
        - total_sold
        - fixed_cost_shipping_price
        - is_free_shipping
        - is_visible
        - is_featured
        - related_products
        - warranty
        - bin_picking_number
        - layout_file
        - upc
        - mpn
        - gtin
        - date_last_imported
        - search_keywords
        - availability
        - availability_description
        - condition
        - is_condition_shown
        - order_quantity_minimum
        - order_quantity_maximum
        - page_title
        - meta_keywords
        - meta_description
        - date_created
        - date_modified
        - view_count
        - preorder_release_date
        - preorder_message
        - is_preorder_only
        - is_price_hidden
        - price_hidden_label
        - custom_url
        - base_variant_id
        - open_graph_type
        - open_graph_title
        - open_graph_description
        - open_graph_use_meta_description
        - open_graph_use_product_name
        - open_graph_use_image
      title: CatalogProductsProductIdComplexRulesGetParametersIncludeFieldsSchemaItems
    complexRuleConditionBase:
      type: object
      properties:
        id:
          type:
            - integer
            - 'null'
          description: |
            The unique numeric ID of the rule condition; increments sequentially. Read-Only
        rule_id:
          type:
            - integer
            - 'null'
          description: |-
            The unique numeric ID of the rule with which the condition is associated.
            Read-Only
        modifier_id:
          type:
            - integer
            - 'null'
          description: |-
            The unique numeric ID of the modifier with which the rule condition is associated.
            Required in /POST.
        modifier_value_id:
          type:
            - integer
            - 'null'
          description: |-
            The unique numeric ID of the modifier value with which the rule condition is associated.
            Required in /POST.
        variant_id:
          type:
            - integer
            - 'null'
          description: |-
            The unique numeric ID of the variant with which the rule condition is associated.
            Required in /POST.
        combination_id:
          type: integer
          description: >
            (READ-ONLY:) The unique numeric ID of the SKU (v2 API), or Combination, with which the rule condition is
            associated. This is to maintain cross-compatibility between v2 and v3.
      required:
        - modifier_id
        - modifier_value_id
        - variant_id
      description: >-
        Complex rules may return with conditions that apply to one or more variants, or with a single modifier value (if
        the rules were created using the v2 API or the control panel). Complex rules created or updated in the v3 API
        must have conditions that either reference multiple `modifier_value_id`’s, or else reference a
        `modifier_value_id` and a `variant_id`.
      title: complexRuleConditionBase
    complexRule_Base:
      type: object
      properties:
        id:
          type: integer
          description: |-
            The unique numeric ID of the rule; increments sequentially.
            Read-Only
        product_id:
          type:
            - integer
            - 'null'
          description: |
            The unique numeric ID of the product with which the rule is associated; increments sequentially.
        sort_order:
          type: integer
          description: |
            The priority to give this rule when making adjustments to the product properties.
        enabled:
          type: boolean
          description: >
            Flag for determining whether the rule is to be used when adjusting a productʼs price, weight, image, or
            availabilty.
        stop:
          type: boolean
          description: |
            Flag for determining whether other rules should not be applied after this rule has been applied.
        purchasing_disabled:
          type: boolean
          description: >
            Flag for determining whether the rule should disable purchasing of a product when the conditions are
            applied.
        purchasing_disabled_message:
          type: string
          description: |
            Message displayed on the storefront when a rule disables the purchasing of a product.
        purchasing_hidden:
          type: boolean
          description: |
            Flag for determining whether the rule should hide purchasing of a product when the conditions are applied.
        image_url:
          type: string
          description: |
            The URL for an image displayed on the storefront when the conditions are applied. Limit of 8MB per file.
        price_adjuster:
          $ref: '#/components/schemas/adjuster_Full'
        weight_adjuster:
          $ref: '#/components/schemas/adjuster_Full'
        conditions:
          type: array
          items:
            $ref: '#/components/schemas/complexRuleConditionBase'
      description: Common ComplexRule properties.
      title: complexRule_Base
    Complex rules_getProductComplexRules_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/complexRule_Base'
        meta:
          $ref: '#/components/schemas/metaCollection_Full'
      description: Complex Rule Response
      title: Complex rules_getProductComplexRules_Response_200
    CatalogProductsProductIdComplexRulesPostRequestBodyContentApplicationJsonSchemaPriceAdjusterAdjuster:
      type: string
      enum:
        - relative
        - percentage
      description: >
        The type of adjuster for either the price or the weight of the variant, when the modifier value is selected on
        the storefront.
      title: CatalogProductsProductIdComplexRulesPostRequestBodyContentApplicationJsonSchemaPriceAdjusterAdjuster
    CatalogProductsProductIdComplexRulesPostRequestBodyContentApplicationJsonSchemaPriceAdjuster:
      type: object
      properties:
        adjuster:
          oneOf:
            - $ref: >-
                #/components/schemas/CatalogProductsProductIdComplexRulesPostRequestBodyContentApplicationJsonSchemaPriceAdjusterAdjuster
            - type: 'null'
          description: >
            The type of adjuster for either the price or the weight of the variant, when the modifier value is selected
            on the storefront.
        adjuster_value:
          type: number
          format: double
          description: >
            The numeric amount by which the adjuster will change either the price or the weight of the variant, when the
            modifier value is selected on the storefront.
      description: Adjuster for Complex Rules.
      title: CatalogProductsProductIdComplexRulesPostRequestBodyContentApplicationJsonSchemaPriceAdjuster
    CatalogProductsProductIdComplexRulesPostRequestBodyContentApplicationJsonSchemaWeightAdjusterAdjuster:
      type: string
      enum:
        - relative
        - percentage
      description: >
        The type of adjuster for either the price or the weight of the variant, when the modifier value is selected on
        the storefront.
      title: CatalogProductsProductIdComplexRulesPostRequestBodyContentApplicationJsonSchemaWeightAdjusterAdjuster
    CatalogProductsProductIdComplexRulesPostRequestBodyContentApplicationJsonSchemaWeightAdjuster:
      type: object
      properties:
        adjuster:
          oneOf:
            - $ref: >-
                #/components/schemas/CatalogProductsProductIdComplexRulesPostRequestBodyContentApplicationJsonSchemaWeightAdjusterAdjuster
            - type: 'null'
          description: >
            The type of adjuster for either the price or the weight of the variant, when the modifier value is selected
            on the storefront.
        adjuster_value:
          type: number
          format: double
          description: >
            The numeric amount by which the adjuster will change either the price or the weight of the variant, when the
            modifier value is selected on the storefront.
      description: Adjuster for Complex Rules.
      title: CatalogProductsProductIdComplexRulesPostRequestBodyContentApplicationJsonSchemaWeightAdjuster
    modifierCondition:
      type: object
      properties:
        modifier_id:
          type: integer
          description: >-
            Use the [get all product
            modifiers](/developer/api-reference/rest/admin/catalog/product-modifiers/get-product-modifiers) endpoint to
            determine the `option_values` `id`. The `option_values` `id` is the `modifier_value_id`.
        modifier_value_id:
          type: integer
          description: >-
            Use the [get all product
            modifiers](/developer/api-reference/rest/admin/catalog/product-modifiers/get-product-modifiers) endpoint to
            determine the `option_values` `option_id`. The `option_values` `option_id` is the same as the `modifier_id`.
      title: modifierCondition
    variantCondition:
      type: object
      properties:
        variant_id:
          type: integer
          description: >-
            Use the [get all product
            variants](/developer/api-reference/rest/admin/catalog/product-variants/get-product-variants) endpoint to
            determine the variant `id`.
      title: variantCondition
    ConditionsRequestItems:
      oneOf:
        - $ref: '#/components/schemas/modifierCondition'
        - $ref: '#/components/schemas/variantCondition'
      title: ConditionsRequestItems
    conditionsRequest:
      type: array
      items:
        $ref: '#/components/schemas/ConditionsRequestItems'
      title: conditionsRequest
    CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaDataPriceAdjusterAdjuster:
      type: string
      enum:
        - relative
        - percentage
      description: >
        The type of adjuster for either the price or the weight of the variant, when the modifier value is selected on
        the storefront.
      title: CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaDataPriceAdjusterAdjuster
    CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaDataPriceAdjuster:
      type: object
      properties:
        adjuster:
          oneOf:
            - $ref: >-
                #/components/schemas/CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaDataPriceAdjusterAdjuster
            - type: 'null'
          description: >
            The type of adjuster for either the price or the weight of the variant, when the modifier value is selected
            on the storefront.
        adjuster_value:
          type: number
          format: double
          description: >
            The numeric amount by which the adjuster will change either the price or the weight of the variant, when the
            modifier value is selected on the storefront.
      description: Adjuster for Complex Rules.
      title: CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaDataPriceAdjuster
    CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaDataWeightAdjusterAdjuster:
      type: string
      enum:
        - relative
        - percentage
      description: >
        The type of adjuster for either the price or the weight of the variant, when the modifier value is selected on
        the storefront.
      title: CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaDataWeightAdjusterAdjuster
    CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaDataWeightAdjuster:
      type: object
      properties:
        adjuster:
          oneOf:
            - $ref: >-
                #/components/schemas/CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaDataWeightAdjusterAdjuster
            - type: 'null'
          description: >
            The type of adjuster for either the price or the weight of the variant, when the modifier value is selected
            on the storefront.
        adjuster_value:
          type: number
          format: double
          description: >
            The numeric amount by which the adjuster will change either the price or the weight of the variant, when the
            modifier value is selected on the storefront.
      description: Adjuster for Complex Rules.
      title: CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaDataWeightAdjuster
    CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaDataConditionsItems:
      type: object
      properties:
        id:
          type:
            - integer
            - 'null'
          description: |
            The unique numeric ID of the rule condition; increments sequentially. Read-Only
        rule_id:
          type:
            - integer
            - 'null'
          description: |-
            The unique numeric ID of the rule with which the condition is associated.
            Read-Only
        modifier_id:
          type:
            - integer
            - 'null'
          description: |-
            The unique numeric ID of the modifier with which the rule condition is associated.
            Required in /POST.
        modifier_value_id:
          type:
            - integer
            - 'null'
          description: |-
            The unique numeric ID of the modifier value with which the rule condition is associated.
            Required in /POST.
        variant_id:
          type:
            - integer
            - 'null'
          description: |-
            The unique numeric ID of the variant with which the rule condition is associated.
            Required in /POST.
        combination_id:
          type: integer
          description: >
            (READ-ONLY:) The unique numeric ID of the SKU (v2 API), or Combination, with which the rule condition is
            associated. This is to maintain cross-compatibility between v2 and v3.
      required:
        - modifier_id
        - modifier_value_id
        - variant_id
      description: >-
        Complex rules may return with conditions that apply to one or more variants, or with a single modifier value (if
        the rules were created using the v2 API or the control panel). Complex rules created or updated in the v3 API
        must have conditions that either reference multiple `modifier_value_id`’s, or else reference a
        `modifier_value_id` and a `variant_id`.
      title: CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaDataConditionsItems
    CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaData:
      type: object
      properties:
        id:
          type: integer
          description: |-
            The unique numeric ID of the rule; increments sequentially.
            Read-Only
        product_id:
          type:
            - integer
            - 'null'
          description: |
            The unique numeric ID of the product with which the rule is associated; increments sequentially.
        sort_order:
          type: integer
          description: |
            The priority to give this rule when making adjustments to the product properties.
        enabled:
          type: boolean
          description: >
            Flag for determining whether the rule is to be used when adjusting a productʼs price, weight, image, or
            availabilty.
        stop:
          type: boolean
          description: |
            Flag for determining whether other rules should not be applied after this rule has been applied.
        purchasing_disabled:
          type: boolean
          description: >
            Flag for determining whether the rule should disable purchasing of a product when the conditions are
            applied.
        purchasing_disabled_message:
          type: string
          description: |
            Message displayed on the storefront when a rule disables the purchasing of a product.
        purchasing_hidden:
          type: boolean
          description: |
            Flag for determining whether the rule should hide purchasing of a product when the conditions are applied.
        image_url:
          type: string
          description: |
            The URL for an image displayed on the storefront when the conditions are applied. Limit of 8MB per file.
        price_adjuster:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaDataPriceAdjuster
          description: Adjuster for Complex Rules.
        weight_adjuster:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaDataWeightAdjuster
          description: Adjuster for Complex Rules.
        conditions:
          type: array
          items:
            $ref: >-
              #/components/schemas/CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaDataConditionsItems
      description: Common ComplexRule properties.
      title: CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaData
    Complex rules_createProductComplexRule_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaData'
          description: Common ComplexRule properties.
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      title: Complex rules_createProductComplexRule_Response_200
    CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaErrors:
      type: object
      properties: {}
      title: CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaErrors
    CreateProductComplexRuleRequestConflictError:
      type: object
      properties:
        errors:
          $ref: '#/components/schemas/CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaErrors'
        instance:
          type: string
        status:
          type: integer
          description: |
            The HTTP status code.
        title:
          type: string
          description: |
            The error title describing the particular error.
        type:
          type: string
      title: CreateProductComplexRuleRequestConflictError
    CreateProductComplexRuleRequestUnprocessableEntityError:
      type: object
      properties:
        errors:
          $ref: '#/components/schemas/CatalogProductsProductIdComplexRulesPostResponsesContentApplicationJsonSchemaErrors'
        instance:
          type: string
        status:
          type: integer
          description: |
            The HTTP status code.
        title:
          type: string
          description: |
            The error title describing the particular error.
        type:
          type: string
      title: CreateProductComplexRuleRequestUnprocessableEntityError
    CatalogProductsProductIdComplexRulesComplexRuleIdGetParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - name
        - type
        - sku
        - description
        - weight
        - width
        - depth
        - height
        - price
        - cost_price
        - retail_price
        - sale_price
        - map_price
        - tax_class_id
        - product_tax_code
        - calculated_price
        - categories
        - brand_id
        - option_set_id
        - option_set_display
        - inventory_level
        - inventory_warning_level
        - inventory_tracking
        - reviews_rating_sum
        - reviews_count
        - total_sold
        - fixed_cost_shipping_price
        - is_free_shipping
        - is_visible
        - is_featured
        - related_products
        - warranty
        - bin_picking_number
        - layout_file
        - upc
        - mpn
        - gtin
        - date_last_imported
        - search_keywords
        - availability
        - availability_description
        - condition
        - is_condition_shown
        - order_quantity_minimum
        - order_quantity_maximum
        - page_title
        - meta_keywords
        - meta_description
        - date_created
        - date_modified
        - view_count
        - preorder_release_date
        - preorder_message
        - is_preorder_only
        - is_price_hidden
        - price_hidden_label
        - custom_url
        - base_variant_id
        - open_graph_type
        - open_graph_title
        - open_graph_description
        - open_graph_use_meta_description
        - open_graph_use_product_name
        - open_graph_use_image
      title: CatalogProductsProductIdComplexRulesComplexRuleIdGetParametersIncludeFieldsSchemaItems
    CatalogProductsProductIdComplexRulesComplexRuleIdGetResponsesContentApplicationJsonSchemaDataPriceAdjusterAdjuster:
      type: string
      enum:
        - relative
        - percentage
      description: >
        The type of adjuster for either the price or the weight of the variant, when the modifier value is selected on
        the storefront.
      title: >-
        CatalogProductsProductIdComplexRulesComplexRuleIdGetResponsesContentApplicationJsonSchemaDataPriceAdjusterAdjuster
    CatalogProductsProductIdComplexRulesComplexRuleIdGetResponsesContentApplicationJsonSchemaDataPriceAdjuster:
      type: object
      properties:
        adjuster:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdGetResponsesContentApplicationJsonSchemaDataPriceAdjusterAdjuster
          description: >
            The type of adjuster for either the price or the weight of the variant, when the modifier value is selected
            on the storefront.
        adjuster_value:
          type: number
          format: double
          description: >
            The numeric amount by which the adjuster will change either the price or the weight of the variant, when the
            modifier value is selected on the storefront.
      description: Adjuster for Complex Rules.
      title: CatalogProductsProductIdComplexRulesComplexRuleIdGetResponsesContentApplicationJsonSchemaDataPriceAdjuster
    CatalogProductsProductIdComplexRulesComplexRuleIdGetResponsesContentApplicationJsonSchemaDataWeightAdjusterAdjuster:
      type: string
      enum:
        - relative
        - percentage
      description: >
        The type of adjuster for either the price or the weight of the variant, when the modifier value is selected on
        the storefront.
      title: >-
        CatalogProductsProductIdComplexRulesComplexRuleIdGetResponsesContentApplicationJsonSchemaDataWeightAdjusterAdjuster
    CatalogProductsProductIdComplexRulesComplexRuleIdGetResponsesContentApplicationJsonSchemaDataWeightAdjuster:
      type: object
      properties:
        adjuster:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdGetResponsesContentApplicationJsonSchemaDataWeightAdjusterAdjuster
          description: >
            The type of adjuster for either the price or the weight of the variant, when the modifier value is selected
            on the storefront.
        adjuster_value:
          type: number
          format: double
          description: >
            The numeric amount by which the adjuster will change either the price or the weight of the variant, when the
            modifier value is selected on the storefront.
      description: Adjuster for Complex Rules.
      title: CatalogProductsProductIdComplexRulesComplexRuleIdGetResponsesContentApplicationJsonSchemaDataWeightAdjuster
    CatalogProductsProductIdComplexRulesComplexRuleIdGetResponsesContentApplicationJsonSchemaDataConditionsItems:
      type: object
      properties:
        id:
          type: integer
          description: |
            The unique numeric ID of the rule condition; increments sequentially. Read-Only
        rule_id:
          type: integer
          description: |-
            The unique numeric ID of the rule with which the condition is associated.
            Read-Only
        modifier_id:
          type: integer
          description: |-
            The unique numeric ID of the modifier with which the rule condition is associated.
            Required in /POST.
        modifier_value_id:
          type: integer
          description: |-
            The unique numeric ID of the modifier value with which the rule condition is associated.
            Required in /POST.
        variant_id:
          type: integer
          description: |-
            The unique numeric ID of the variant with which the rule condition is associated.
            Required in /POST.
        combination_id:
          type: integer
          description: >
            (READ-ONLY:) The unique numeric ID of the SKU (v2 API), or Combination, with which the rule condition is
            associated. This is to maintain cross-compatibility between v2 and v3.
      required:
        - modifier_id
        - modifier_value_id
        - variant_id
      description: >-
        Complex rules may return with conditions that apply to one or more variants, or with a single modifier value (if
        the rules were created using the v2 API or the control panel). Complex rules created or updated in the v3 API
        must have conditions that either reference multiple `modifier_value_id`’s, or else reference a
        `modifier_value_id` and a `variant_id`.
      title: CatalogProductsProductIdComplexRulesComplexRuleIdGetResponsesContentApplicationJsonSchemaDataConditionsItems
    CatalogProductsProductIdComplexRulesComplexRuleIdGetResponsesContentApplicationJsonSchemaData:
      type: object
      properties:
        id:
          type: integer
          description: |-
            The unique numeric ID of the rule; increments sequentially.
            Read-Only
        product_id:
          type: integer
          description: |
            The unique numeric ID of the product with which the rule is associated; increments sequentially.
        sort_order:
          type: integer
          description: |
            The priority to give this rule when making adjustments to the product properties.
        enabled:
          type: boolean
          description: >
            Flag for determining whether the rule is to be used when adjusting a productʼs price, weight, image, or
            availabilty.
        stop:
          type: boolean
          description: |
            Flag for determining whether other rules should not be applied after this rule has been applied.
        purchasing_disabled:
          type: boolean
          description: >
            Flag for determining whether the rule should disable purchasing of a product when the conditions are
            applied.
        purchasing_disabled_message:
          type: string
          description: |
            Message displayed on the storefront when a rule disables the purchasing of a product.
        purchasing_hidden:
          type: boolean
          description: |
            Flag for determining whether the rule should hide purchasing of a product when the conditions are applied.
        image_url:
          type: string
          description: |
            The URL for an image displayed on the storefront when the conditions are applied. Limit of 8MB per file.
        price_adjuster:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdGetResponsesContentApplicationJsonSchemaDataPriceAdjuster
          description: Adjuster for Complex Rules.
        weight_adjuster:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdGetResponsesContentApplicationJsonSchemaDataWeightAdjuster
          description: Adjuster for Complex Rules.
        conditions:
          type: array
          items:
            $ref: >-
              #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdGetResponsesContentApplicationJsonSchemaDataConditionsItems
      description: Common ComplexRule properties.
      title: CatalogProductsProductIdComplexRulesComplexRuleIdGetResponsesContentApplicationJsonSchemaData
    Complex rules_getProductComplexRule_Response_200:
      type: object
      properties:
        data:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdGetResponsesContentApplicationJsonSchemaData
          description: Common ComplexRule properties.
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      title: Complex rules_getProductComplexRule_Response_200
    GetProductComplexRuleRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: GetProductComplexRuleRequestNotFoundError
    CatalogProductsProductIdComplexRulesComplexRuleIdPutRequestBodyContentApplicationJsonSchemaPriceAdjusterAdjuster:
      type: string
      enum:
        - relative
        - percentage
      description: >
        The type of adjuster for either the price or the weight of the variant, when the modifier value is selected on
        the storefront.
      title: CatalogProductsProductIdComplexRulesComplexRuleIdPutRequestBodyContentApplicationJsonSchemaPriceAdjusterAdjuster
    CatalogProductsProductIdComplexRulesComplexRuleIdPutRequestBodyContentApplicationJsonSchemaPriceAdjuster:
      type: object
      properties:
        adjuster:
          oneOf:
            - $ref: >-
                #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdPutRequestBodyContentApplicationJsonSchemaPriceAdjusterAdjuster
            - type: 'null'
          description: >
            The type of adjuster for either the price or the weight of the variant, when the modifier value is selected
            on the storefront.
        adjuster_value:
          type: number
          format: double
          description: >
            The numeric amount by which the adjuster will change either the price or the weight of the variant, when the
            modifier value is selected on the storefront.
      description: Adjuster for Complex Rules.
      title: CatalogProductsProductIdComplexRulesComplexRuleIdPutRequestBodyContentApplicationJsonSchemaPriceAdjuster
    CatalogProductsProductIdComplexRulesComplexRuleIdPutRequestBodyContentApplicationJsonSchemaWeightAdjusterAdjuster:
      type: string
      enum:
        - relative
        - percentage
      description: >
        The type of adjuster for either the price or the weight of the variant, when the modifier value is selected on
        the storefront.
      title: >-
        CatalogProductsProductIdComplexRulesComplexRuleIdPutRequestBodyContentApplicationJsonSchemaWeightAdjusterAdjuster
    CatalogProductsProductIdComplexRulesComplexRuleIdPutRequestBodyContentApplicationJsonSchemaWeightAdjuster:
      type: object
      properties:
        adjuster:
          oneOf:
            - $ref: >-
                #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdPutRequestBodyContentApplicationJsonSchemaWeightAdjusterAdjuster
            - type: 'null'
          description: >
            The type of adjuster for either the price or the weight of the variant, when the modifier value is selected
            on the storefront.
        adjuster_value:
          type: number
          format: double
          description: >
            The numeric amount by which the adjuster will change either the price or the weight of the variant, when the
            modifier value is selected on the storefront.
      description: Adjuster for Complex Rules.
      title: CatalogProductsProductIdComplexRulesComplexRuleIdPutRequestBodyContentApplicationJsonSchemaWeightAdjuster
    CatalogProductsProductIdComplexRulesComplexRuleIdPutRequestBodyContentApplicationJsonSchemaConditionsItems:
      type: object
      properties:
        modifier_id:
          type:
            - integer
            - 'null'
          description: |-
            The unique numeric ID of the modifier with which the rule condition is associated.
            Required in /POST.
        modifier_value_id:
          type:
            - integer
            - 'null'
          description: |-
            The unique numeric ID of the modifier value with which the rule condition is associated.
            Required in /POST.
        variant_id:
          type:
            - integer
            - 'null'
          description: |-
            The unique numeric ID of the variant with which the rule condition is associated.
            Required in /POST.
      required:
        - modifier_id
        - modifier_value_id
        - variant_id
      title: CatalogProductsProductIdComplexRulesComplexRuleIdPutRequestBodyContentApplicationJsonSchemaConditionsItems
    CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaDataPriceAdjusterAdjuster:
      type: string
      enum:
        - relative
        - percentage
      description: >
        The type of adjuster for either the price or the weight of the variant, when the modifier value is selected on
        the storefront.
      title: >-
        CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaDataPriceAdjusterAdjuster
    CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaDataPriceAdjuster:
      type: object
      properties:
        adjuster:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaDataPriceAdjusterAdjuster
          description: >
            The type of adjuster for either the price or the weight of the variant, when the modifier value is selected
            on the storefront.
        adjuster_value:
          type: number
          format: double
          description: >
            The numeric amount by which the adjuster will change either the price or the weight of the variant, when the
            modifier value is selected on the storefront.
      description: Adjuster for Complex Rules.
      title: CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaDataPriceAdjuster
    CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaDataWeightAdjusterAdjuster:
      type: string
      enum:
        - relative
        - percentage
      description: >
        The type of adjuster for either the price or the weight of the variant, when the modifier value is selected on
        the storefront.
      title: >-
        CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaDataWeightAdjusterAdjuster
    CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaDataWeightAdjuster:
      type: object
      properties:
        adjuster:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaDataWeightAdjusterAdjuster
          description: >
            The type of adjuster for either the price or the weight of the variant, when the modifier value is selected
            on the storefront.
        adjuster_value:
          type: number
          format: double
          description: >
            The numeric amount by which the adjuster will change either the price or the weight of the variant, when the
            modifier value is selected on the storefront.
      description: Adjuster for Complex Rules.
      title: CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaDataWeightAdjuster
    CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaDataConditionsItems:
      type: object
      properties:
        id:
          type: integer
          description: |
            The unique numeric ID of the rule condition; increments sequentially. Read-Only
        rule_id:
          type: integer
          description: |-
            The unique numeric ID of the rule with which the condition is associated.
            Read-Only
        modifier_id:
          type: integer
          description: |-
            The unique numeric ID of the modifier with which the rule condition is associated.
            Required in /POST.
        modifier_value_id:
          type: integer
          description: |-
            The unique numeric ID of the modifier value with which the rule condition is associated.
            Required in /POST.
        variant_id:
          type: integer
          description: |-
            The unique numeric ID of the variant with which the rule condition is associated.
            Required in /POST.
        combination_id:
          type: integer
          description: >
            (READ-ONLY:) The unique numeric ID of the SKU (v2 API), or Combination, with which the rule condition is
            associated. This is to maintain cross-compatibility between v2 and v3.
      required:
        - modifier_id
        - modifier_value_id
        - variant_id
      description: >-
        Complex rules may return with conditions that apply to one or more variants, or with a single modifier value (if
        the rules were created using the v2 API or the control panel). Complex rules created or updated in the v3 API
        must have conditions that either reference multiple `modifier_value_id`’s, or else reference a
        `modifier_value_id` and a `variant_id`.
      title: CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaDataConditionsItems
    CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaData:
      type: object
      properties:
        id:
          type: integer
          description: |-
            The unique numeric ID of the rule; increments sequentially.
            Read-Only
        product_id:
          type: integer
          description: |
            The unique numeric ID of the product with which the rule is associated; increments sequentially.
        sort_order:
          type: integer
          description: |
            The priority to give this rule when making adjustments to the product properties.
        enabled:
          type: boolean
          description: >
            Flag for determining whether the rule is to be used when adjusting a productʼs price, weight, image, or
            availabilty.
        stop:
          type: boolean
          description: |
            Flag for determining whether other rules should not be applied after this rule has been applied.
        purchasing_disabled:
          type: boolean
          description: >
            Flag for determining whether the rule should disable purchasing of a product when the conditions are
            applied.
        purchasing_disabled_message:
          type: string
          description: |
            Message displayed on the storefront when a rule disables the purchasing of a product.
        purchasing_hidden:
          type: boolean
          description: |
            Flag for determining whether the rule should hide purchasing of a product when the conditions are applied.
        image_url:
          type: string
          description: |
            The URL for an image displayed on the storefront when the conditions are applied. Limit of 8MB per file.
        price_adjuster:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaDataPriceAdjuster
          description: Adjuster for Complex Rules.
        weight_adjuster:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaDataWeightAdjuster
          description: Adjuster for Complex Rules.
        conditions:
          type: array
          items:
            $ref: >-
              #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaDataConditionsItems
      description: Common ComplexRule properties.
      title: CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaData
    Complex rules_updateProductComplexRule_Response_200:
      type: object
      properties:
        data:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaData
          description: Common ComplexRule properties.
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      title: Complex rules_updateProductComplexRule_Response_200
    CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaErrors:
      type: object
      properties: {}
      title: CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaErrors
    UpdateProductComplexRuleRequestConflictError:
      type: object
      properties:
        errors:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaErrors
        instance:
          type: string
        status:
          type: integer
          description: |
            The HTTP status code.
        title:
          type: string
          description: |
            The error title describing the particular error.
        type:
          type: string
      title: UpdateProductComplexRuleRequestConflictError
    UpdateProductComplexRuleRequestUnprocessableEntityError:
      type: object
      properties:
        errors:
          $ref: >-
            #/components/schemas/CatalogProductsProductIdComplexRulesComplexRuleIdPutResponsesContentApplicationJsonSchemaErrors
        instance:
          type: string
        status:
          type: integer
          description: |
            The HTTP status code.
        title:
          type: string
          description: |
            The error title describing the particular error.
        type:
          type: string
      title: UpdateProductComplexRuleRequestUnprocessableEntityError
    CatalogProductsProductIdCustomFieldsGetParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - name
        - value
      title: CatalogProductsProductIdCustomFieldsGetParametersIncludeFieldsSchemaItems
    CatalogProductsProductIdCustomFieldsGetParametersExcludeFieldsSchemaItems:
      type: string
      enum:
        - name
        - value
      title: CatalogProductsProductIdCustomFieldsGetParametersExcludeFieldsSchemaItems
    customFieldData:
      type: object
      properties:
        id:
          type: integer
          description: The unique numeric ID of the custom field increments sequentially. Read-Only.
        name:
          type: string
          description: |
            The name of the field, shown on the storefront, orders, etc. This field is a requirement for /POST requests.
        value:
          type: string
          description: >
            The value of the field, shown on the storefront, orders, etc. This field is a requirement for /POST
            requests.
      description: >-
        Gets custom fields associated with a product. These allow you to specify additional information that will appear
        on the product’s page, such as a book’s ISBN or a DVD’s release date.
      title: customFieldData
    MetaCollectionFullPaginationLinks:
      type: object
      properties:
        previous:
          type: string
          description: |
            Link to the previous page returned in the response.
        current:
          type: string
          description: |
            Link to the current page returned in the response.
        next:
          type: string
          description: |
            Link to the next page returned in the response.
      description: |
        Pagination links for the previous and next parts of the whole collection.
      title: MetaCollectionFullPaginationLinks
    MetaCollectionFullPagination:
      type: object
      properties:
        total:
          type: integer
          description: |
            Total number of items in the result set.
        count:
          type: integer
          description: |
            Total number of items in the collection response.
        per_page:
          type: integer
          description: |
            The amount of items returned in the collection per page, controlled by the limit parameter.
        current_page:
          type: integer
          description: |
            The page you are currently on within the collection.
        total_pages:
          type: integer
          description: |
            The total number of pages in the collection.
        links:
          $ref: '#/components/schemas/MetaCollectionFullPaginationLinks'
          description: |
            Pagination links for the previous and next parts of the whole collection.
      description: Data about the response, including pagination and collection totals.
      title: MetaCollectionFullPagination
    metaCollectionFull:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/MetaCollectionFullPagination'
          description: Data about the response, including pagination and collection totals.
      description: Data about the response, including pagination and collection totals.
      title: metaCollectionFull
    Custom fields_getProductCustomFields_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/customFieldData'
        meta:
          $ref: '#/components/schemas/metaCollectionFull'
      title: Custom fields_getProductCustomFields_Response_200
    GeneralErrorWithErrorsErrors:
      type: object
      properties: {}
      title: GeneralErrorWithErrorsErrors
    GeneralErrorWithErrors:
      type: object
      properties:
        status:
          type: integer
          description: The HTTP status code.
        title:
          type: string
          description: The error title describes the particular error.
        type:
          type: string
        errors:
          $ref: '#/components/schemas/GeneralErrorWithErrorsErrors'
      required:
        - status
        - title
        - type
        - errors
      title: GeneralErrorWithErrors
    GeneralError:
      type: object
      properties:
        status:
          type: integer
          description: The HTTP status code.
        title:
          type: string
          description: The error title describes the particular error.
        type:
          type: string
        code:
          type: integer
          description: The custom code of the error.
      required:
        - status
        - title
        - type
      title: GeneralError
    MethodNotAllowedError:
      type: object
      properties:
        status:
          type: integer
          description: The HTTP status code.
        title:
          type: string
          description: The error title describes the particular error.
        type:
          type: string
        detail:
          type: string
          description: The detailed title describes the particular error.
      required:
        - status
        - title
        - type
        - detail
      title: MethodNotAllowedError
    customFieldPost:
      type: object
      properties:
        name:
          type: string
          description: |
            The name of the field, shown on the storefront, orders, etc. This field is a requirement for /POST requests.
        value:
          type: string
          description: >
            The value of the field, shown on the storefront, orders, etc. This field is a requirement for /POST
            requests.
      required:
        - name
        - value
      description: Payload for POST request to create custom fields associated with a product.
      title: customFieldPost
    metaEmptyFull:
      type: object
      properties: {}
      description: Response metadata.
      title: metaEmptyFull
    Custom fields_createProductCustomField_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/customFieldData'
        meta:
          $ref: '#/components/schemas/metaEmptyFull'
      title: Custom fields_createProductCustomField_Response_200
    CatalogProductsProductIdCustomFieldsCustomFieldIdGetParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - name
        - value
      title: CatalogProductsProductIdCustomFieldsCustomFieldIdGetParametersIncludeFieldsSchemaItems
    CatalogProductsProductIdCustomFieldsCustomFieldIdGetParametersExcludeFieldsSchemaItems:
      type: string
      enum:
        - name
        - value
      title: CatalogProductsProductIdCustomFieldsCustomFieldIdGetParametersExcludeFieldsSchemaItems
    Custom fields_getProductCustomField_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/customFieldData'
        meta:
          $ref: '#/components/schemas/metaEmptyFull'
      title: Custom fields_getProductCustomField_Response_200
    customFieldPut:
      type: object
      properties:
        name:
          type: string
          description: >
            The value of the field, shown on the storefront, orders, etc. This field is a requirement for /POST
            requests.
        value:
          type: string
          description: >
            The value of the field, shown on the storefront, orders, etc. This field is a requirement for /POST
            requests.
      description: Payload for PUT request to update custom fields associated with a product.
      title: customFieldPut
    Custom fields_updateProductCustomField_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/customFieldData'
        meta:
          $ref: '#/components/schemas/metaEmptyFull'
      title: Custom fields_updateProductCustomField_Response_200
    CatalogProductsProductIdImagesGetParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - name
        - type
        - sku
        - description
        - weight
        - width
        - depth
        - height
        - price
        - cost_price
        - retail_price
        - sale_price
        - map_price
        - tax_class_id
        - product_tax_code
        - calculated_price
        - categories
        - brand_id
        - option_set_id
        - option_set_display
        - inventory_level
        - inventory_warning_level
        - inventory_tracking
        - reviews_rating_sum
        - reviews_count
        - total_sold
        - fixed_cost_shipping_price
        - is_free_shipping
        - is_visible
        - is_featured
        - related_products
        - warranty
        - bin_picking_number
        - layout_file
        - upc
        - mpn
        - gtin
        - date_last_imported
        - search_keywords
        - availability
        - availability_description
        - condition
        - is_condition_shown
        - order_quantity_minimum
        - order_quantity_maximum
        - page_title
        - meta_keywords
        - meta_description
        - date_created
        - date_modified
        - view_count
        - preorder_release_date
        - preorder_message
        - is_preorder_only
        - is_price_hidden
        - price_hidden_label
        - custom_url
        - base_variant_id
        - open_graph_type
        - open_graph_title
        - open_graph_description
        - open_graph_use_meta_description
        - open_graph_use_product_name
        - open_graph_use_image
      title: CatalogProductsProductIdImagesGetParametersIncludeFieldsSchemaItems
    Images_getProductImages_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/productImage_Full'
        meta:
          $ref: '#/components/schemas/metaCollection_Full'
      description: |
        Response payload for the BigCommerce API.
      title: Images_getProductImages_Response_200
    GetProductImagesRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: GetProductImagesRequestNotFoundError
    productImage_Post_Put:
      type: object
      properties:
        is_thumbnail:
          type: boolean
          description: |
            Flag for identifying whether the image is used as the productʼs thumbnail.
        sort_order:
          type: integer
          description: >
            The order in which the image will be displayed on the product page. Higher integers give the image a lower
            priority. When updating, if the image is given a lower priority, all images with a `sort_order` the same as
            or greater than the imageʼs new `sort_order` value will have their `sort_order`s reordered.
        description:
          type: string
          description: |
            The description for the image.
        date_modified:
          type: string
          format: date-time
          description: |
            The date on which the product image was modified.
        product_id:
          type: integer
          description: |
            The unique numeric identifier for the product with which the image is associated.
        image_url:
          type: string
          description: |
            The URL for an image displayed on the storefront when the conditions are applied. Limit of 8MB per file.

            Cannot be used with `image_file`.
      description: The model for a POST or PUT to create  or update applicable Product Image fields.
      title: productImage_Post_Put
    CatalogProductsProductIdImagesPostResponsesContentApplicationJsonSchemaData0:
      type: object
      properties:
        id:
          type: integer
          description: |
            The unique numeric ID of the image; increments sequentially.
        product_id:
          type: integer
          description: |
            The unique numeric identifier for the product with which the image is associated.
        url_zoom:
          type: string
          description: >
            The zoom URL for this image. By default, this is used as the zoom image on product pages when zoom images
            are enabled. You should provide an image smaller than 1280x1280; otherwise, the API returns a resized image.
        url_standard:
          type: string
          description: |
            The standard URL for this image. By default, this is used for product-page images.
        url_thumbnail:
          type: string
          description: >
            The thumbnail URL for this image. By default, this is the image size used on the category page and in side
            panels.
        url_tiny:
          type: string
          description: >
            The tiny URL for this image. By default, this is the image size used for thumbnails beneath the product
            image on a product page.
        date_modified:
          type: string
          format: date-time
          description: |
            The date on which the product image was modified.
        is_thumbnail:
          type: boolean
          description: |
            Flag for identifying whether the image is used as the productʼs thumbnail.
        sort_order:
          type: integer
          description: >
            The order in which the image will be displayed on the product page. Higher integers give the image a lower
            priority. When updating, if the image is given a lower priority, all images with a `sort_order` the same as
            or greater than the imageʼs new `sort_order` value will have their `sort_order`s reordered.
        description:
          type: string
          description: |
            The description for the image.
        image_url:
          type: string
          description: |
            Must be a fully qualified URL path, including protocol. Limit of 8MB per file.
      description: Common ProductImage properties.
      title: CatalogProductsProductIdImagesPostResponsesContentApplicationJsonSchemaData0
    CatalogProductsProductIdImagesPostResponsesContentApplicationJsonSchemaData1:
      type: object
      properties:
        id:
          type: integer
          description: |
            The unique numeric ID of the image; increments sequentially.
        product_id:
          type: integer
          description: |
            The unique numeric identifier for the product with which the image is associated.
        image_file:
          type: string
          description: |-
            The local path to the original image file uploaded to BigCommerce. Use image_url when creating a product.
            A `multipart/form-data` media type.

            Must be sent as a multipart/form-data field in the request body. Limit of 8 MB per file.
        url_zoom:
          type: string
          description: >
            The zoom URL for this image. By default, this is used as the zoom image on product pages when zoom images
            are enabled. You should provide an image smaller than 1280x1280; otherwise, the API returns a resized image.
        url_standard:
          type: string
          description: |
            The standard URL for this image. By default, this is used for product-page images.
        url_thumbnail:
          type: string
          description: >
            The thumbnail URL for this image. By default, this is the image size used on the category page and in side
            panels.
        url_tiny:
          type: string
          description: >
            The tiny URL for this image. By default, this is the image size used for thumbnails beneath the product
            image on a product page.
        date_modified:
          type: string
          format: date-time
          description: |
            The date on which the product image was modified.
        is_thumbnail:
          type: boolean
          description: |
            Flag for identifying whether the image is used as the productʼs thumbnail.
        sort_order:
          type: integer
          description: >
            The order in which the image will be displayed on the product page. Higher integers give the image a lower
            priority. When updating, if the image is given a lower priority, all images with a `sort_order` the same as
            or greater than the imageʼs new `sort_order` value will have their `sort_order`s reordered.
        description:
          type: string
          description: |
            The description for the image.                 
      title: CatalogProductsProductIdImagesPostResponsesContentApplicationJsonSchemaData1
    CatalogProductsProductIdImagesPostResponsesContentApplicationJsonSchemaData:
      oneOf:
        - $ref: '#/components/schemas/CatalogProductsProductIdImagesPostResponsesContentApplicationJsonSchemaData0'
        - $ref: '#/components/schemas/CatalogProductsProductIdImagesPostResponsesContentApplicationJsonSchemaData1'
      title: CatalogProductsProductIdImagesPostResponsesContentApplicationJsonSchemaData
    Images_createProductImage_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CatalogProductsProductIdImagesPostResponsesContentApplicationJsonSchemaData'
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      description: |
        Response payload for the BigCommerce API.
      title: Images_createProductImage_Response_200
    CreateProductImageRequestBadRequestError:
      type: object
      properties: {}
      title: CreateProductImageRequestBadRequestError
    CreateProductImageRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: CreateProductImageRequestNotFoundError
    CreateProductImageRequestUnprocessableEntityError:
      type: object
      properties:
        status:
          type: number
          format: double
        title:
          type: string
        type:
          type: string
      required:
        - status
        - title
        - type
      title: CreateProductImageRequestUnprocessableEntityError
    CatalogProductsProductIdImagesImageIdGetParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - name
        - type
        - sku
        - description
        - weight
        - width
        - depth
        - height
        - price
        - cost_price
        - retail_price
        - sale_price
        - map_price
        - tax_class_id
        - product_tax_code
        - calculated_price
        - categories
        - brand_id
        - option_set_id
        - option_set_display
        - inventory_level
        - inventory_warning_level
        - inventory_tracking
        - reviews_rating_sum
        - reviews_count
        - total_sold
        - fixed_cost_shipping_price
        - is_free_shipping
        - is_visible
        - is_featured
        - related_products
        - warranty
        - bin_picking_number
        - layout_file
        - upc
        - mpn
        - gtin
        - date_last_imported
        - search_keywords
        - availability
        - availability_description
        - condition
        - is_condition_shown
        - order_quantity_minimum
        - order_quantity_maximum
        - page_title
        - meta_keywords
        - meta_description
        - date_created
        - date_modified
        - view_count
        - preorder_release_date
        - preorder_message
        - is_preorder_only
        - is_price_hidden
        - price_hidden_label
        - custom_url
        - base_variant_id
        - open_graph_type
        - open_graph_title
        - open_graph_description
        - open_graph_use_meta_description
        - open_graph_use_product_name
        - open_graph_use_image
      title: CatalogProductsProductIdImagesImageIdGetParametersIncludeFieldsSchemaItems
    Images_getProductImage_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/productImage_Full'
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      description: |
        Response payload for the BigCommerce API.
      title: Images_getProductImage_Response_200
    GetProductImageRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: GetProductImageRequestNotFoundError
    CatalogProductsProductIdImagesImageIdPutResponsesContentApplicationJsonSchemaData0:
      type: object
      properties:
        id:
          type: integer
          description: |
            The unique numeric ID of the image; increments sequentially.
        product_id:
          type: integer
          description: |
            The unique numeric identifier for the product with which the image is associated.
        url_zoom:
          type: string
          description: >
            The zoom URL for this image. By default, this is used as the zoom image on product pages when zoom images
            are enabled. You should provide an image smaller than 1280x1280; otherwise, the API returns a resized image.
        url_standard:
          type: string
          description: |
            The standard URL for this image. By default, this is used for product-page images.
        url_thumbnail:
          type: string
          description: >
            The thumbnail URL for this image. By default, this is the image size used on the category page and in side
            panels.
        url_tiny:
          type: string
          description: >
            The tiny URL for this image. By default, this is the image size used for thumbnails beneath the product
            image on a product page.
        date_modified:
          type: string
          format: date-time
          description: |
            The date on which the product image was modified.
        is_thumbnail:
          type: boolean
          description: |
            Flag for identifying whether the image is used as the productʼs thumbnail.
        sort_order:
          type: integer
          description: >
            The order in which the image will be displayed on the product page. Higher integers give the image a lower
            priority. When updating, if the image is given a lower priority, all images with a `sort_order` the same as
            or greater than the imageʼs new `sort_order` value will have their `sort_order`s reordered.
        description:
          type: string
          description: |
            The description for the image.
        image_url:
          type: string
          description: |
            Must be a fully qualified URL path, including protocol. Limit of 8MB per file.
      description: Common ProductImage properties.
      title: CatalogProductsProductIdImagesImageIdPutResponsesContentApplicationJsonSchemaData0
    CatalogProductsProductIdImagesImageIdPutResponsesContentApplicationJsonSchemaData1:
      type: object
      properties:
        id:
          type: integer
          description: |
            The unique numeric ID of the image; increments sequentially.
        product_id:
          type: integer
          description: |
            The unique numeric identifier for the product with which the image is associated.
        image_file:
          type: string
          description: |-
            The local path to the original image file uploaded to BigCommerce. Use image_url when creating a product.
            A `multipart/form-data` media type.

            Must be sent as a multipart/form-data field in the request body. Limit of 8 MB per file.
        url_zoom:
          type: string
          description: >
            The zoom URL for this image. By default, this is used as the zoom image on product pages when zoom images
            are enabled. You should provide an image smaller than 1280x1280; otherwise, the API returns a resized image.
        url_standard:
          type: string
          description: |
            The standard URL for this image. By default, this is used for product-page images.
        url_thumbnail:
          type: string
          description: >
            The thumbnail URL for this image. By default, this is the image size used on the category page and in side
            panels.
        url_tiny:
          type: string
          description: >
            The tiny URL for this image. By default, this is the image size used for thumbnails beneath the product
            image on a product page.
        date_modified:
          type: string
          format: date-time
          description: |
            The date on which the product image was modified.
        is_thumbnail:
          type: boolean
          description: |
            Flag for identifying whether the image is used as the productʼs thumbnail.
        sort_order:
          type: integer
          description: >
            The order in which the image will be displayed on the product page. Higher integers give the image a lower
            priority. When updating, if the image is given a lower priority, all images with a `sort_order` the same as
            or greater than the imageʼs new `sort_order` value will have their `sort_order`s reordered.
        description:
          type: string
          description: |
            The description for the image.                 
      title: CatalogProductsProductIdImagesImageIdPutResponsesContentApplicationJsonSchemaData1
    CatalogProductsProductIdImagesImageIdPutResponsesContentApplicationJsonSchemaData:
      oneOf:
        - $ref: '#/components/schemas/CatalogProductsProductIdImagesImageIdPutResponsesContentApplicationJsonSchemaData0'
        - $ref: '#/components/schemas/CatalogProductsProductIdImagesImageIdPutResponsesContentApplicationJsonSchemaData1'
      title: CatalogProductsProductIdImagesImageIdPutResponsesContentApplicationJsonSchemaData
    Images_updateProductImage_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CatalogProductsProductIdImagesImageIdPutResponsesContentApplicationJsonSchemaData'
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      description: |
        Response payload for the BigCommerce API.
      title: Images_updateProductImage_Response_200
    UpdateProductImageRequestBadRequestError:
      type: object
      properties: {}
      title: UpdateProductImageRequestBadRequestError
    UpdateProductImageRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: UpdateProductImageRequestNotFoundError
    CatalogProductsProductIdMetafieldsGetParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - name
        - type
        - sku
        - description
        - weight
        - width
        - depth
        - height
        - price
        - cost_price
        - retail_price
        - sale_price
        - map_price
        - tax_class_id
        - product_tax_code
        - calculated_price
        - categories
        - brand_id
        - option_set_id
        - option_set_display
        - inventory_level
        - inventory_warning_level
        - inventory_tracking
        - reviews_rating_sum
        - reviews_count
        - total_sold
        - fixed_cost_shipping_price
        - is_free_shipping
        - is_visible
        - is_featured
        - related_products
        - warranty
        - bin_picking_number
        - layout_file
        - upc
        - mpn
        - gtin
        - date_last_imported
        - search_keywords
        - availability
        - availability_description
        - condition
        - is_condition_shown
        - order_quantity_minimum
        - order_quantity_maximum
        - page_title
        - meta_keywords
        - meta_description
        - date_created
        - date_modified
        - view_count
        - preorder_release_date
        - preorder_message
        - is_preorder_only
        - is_price_hidden
        - price_hidden_label
        - custom_url
        - base_variant_id
        - open_graph_type
        - open_graph_title
        - open_graph_description
        - open_graph_use_meta_description
        - open_graph_use_product_name
        - open_graph_use_image
      title: CatalogProductsProductIdMetafieldsGetParametersIncludeFieldsSchemaItems
    MetafieldBasePermissionSet:
      type: string
      enum:
        - app_only
        - read
        - write
        - read_and_sf_access
        - write_and_sf_access
      description: |-
        Determines the visibility and writeability of the field by other API consumers.

        |Value|Description
        |-|-|
        |`app_only`|Private to the app that owns the field|
        |`read`|Visible to other API consumers|
        |`write`|Open for reading and writing by other API consumers|
        |`read_and_sf_access`|Visible to other API consumers, including on storefront|
        |`write_and_sf_access`|Open for reading and writing by other API consumers, including on storefront|
      title: MetafieldBasePermissionSet
    MetafieldFullResourceType:
      type: string
      enum:
        - category
        - brand
        - product
        - variant
      description: |
        The type of resource with which the metafield is associated.
      title: MetafieldFullResourceType
    metafield_Full:
      type: object
      properties:
        key:
          type: string
          description: |
            The name of the field, for example: `location_id`, `color`. Required for POST.
        value:
          type: string
          description: >
            The value of the field, for example: `1`, `blue`. You must enter a JSON formatted string for
            [ShipperHQ](/developer/docs/admin/store-configuration/shipping/shipper-hq#shipperhq-object-properties)
            metafields. Required for POST.
        namespace:
          type: string
          description: |
            Namespace for the metafield, for organizational purposes. This is set by the developer. Required for POST.
        permission_set:
          $ref: '#/components/schemas/MetafieldBasePermissionSet'
          description: |-
            Determines the visibility and writeability of the field by other API consumers.

            |Value|Description
            |-|-|
            |`app_only`|Private to the app that owns the field|
            |`read`|Visible to other API consumers|
            |`write`|Open for reading and writing by other API consumers|
            |`read_and_sf_access`|Visible to other API consumers, including on storefront|
            |`write_and_sf_access`|Open for reading and writing by other API consumers, including on storefront|
        description:
          type: string
          description: |
            Description for the metafields.
        id:
          type: integer
          description: Unique ID of the *Metafield*. Read-Only.
        resource_type:
          $ref: '#/components/schemas/MetafieldFullResourceType'
          description: |
            The type of resource with which the metafield is associated.
        resource_id:
          type: integer
          description: |
            The ID of the resource with which the metafield is associated.
        date_created:
          type: string
          format: date-time
          description: |
            Date and time of the metafieldʼs creation. Read-Only.
        date_modified:
          type: string
          format: date-time
          description: |
            Date and time when the metafield was last updated. Read-Only.
        owner_client_id:
          type: string
          description: ID of metafield's creator
      required:
        - key
        - value
        - namespace
        - permission_set
      title: metafield_Full
    Metafields_getProductMetafields_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/metafield_Full'
        meta:
          $ref: '#/components/schemas/metaCollection_Full'
      title: Metafields_getProductMetafields_Response_200
    metafield_Base:
      type: object
      properties:
        key:
          type: string
          description: |
            The name of the field, for example: `location_id`, `color`. Required for POST.
        value:
          type: string
          description: >
            The value of the field, for example: `1`, `blue`. You must enter a JSON formatted string for
            [ShipperHQ](/developer/docs/admin/store-configuration/shipping/shipper-hq#shipperhq-object-properties)
            metafields. Required for POST.
        namespace:
          type: string
          description: |
            Namespace for the metafield, for organizational purposes. This is set by the developer. Required for POST.
        permission_set:
          $ref: '#/components/schemas/MetafieldBasePermissionSet'
          description: |-
            Determines the visibility and writeability of the field by other API consumers.

            |Value|Description
            |-|-|
            |`app_only`|Private to the app that owns the field|
            |`read`|Visible to other API consumers|
            |`write`|Open for reading and writing by other API consumers|
            |`read_and_sf_access`|Visible to other API consumers, including on storefront|
            |`write_and_sf_access`|Open for reading and writing by other API consumers, including on storefront|
        description:
          type: string
          description: |
            Description for the metafields.
      required:
        - key
        - value
        - namespace
        - permission_set
      description: >-
        Metafield for products, categories, variants, and brands; the max number of metafields allowed on each is 250.
        For more information, see [Platform Limits](https://support.bigcommerce.com/s/article/Platform-Limits) in the
        Help Center.
      title: metafield_Base
    Metafields_createProductMetafield_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/metafield_Full'
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      title: Metafields_createProductMetafield_Response_200
    CreateProductMetafieldRequestBadRequestError:
      type: object
      properties:
        status:
          type: number
          format: double
        title:
          type: string
        type:
          type: string
        detail:
          type: string
      title: CreateProductMetafieldRequestBadRequestError
    CatalogProductsProductIdMetafieldsPostResponsesContentApplicationJsonSchemaErrors:
      type: object
      properties: {}
      title: CatalogProductsProductIdMetafieldsPostResponsesContentApplicationJsonSchemaErrors
    CreateProductMetafieldRequestConflictError:
      type: object
      properties:
        errors:
          $ref: '#/components/schemas/CatalogProductsProductIdMetafieldsPostResponsesContentApplicationJsonSchemaErrors'
        instance:
          type: string
        status:
          type: integer
          description: The HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
      title: CreateProductMetafieldRequestConflictError
    CreateProductMetafieldRequestUnprocessableEntityError:
      type: object
      properties:
        errors:
          $ref: '#/components/schemas/CatalogProductsProductIdMetafieldsPostResponsesContentApplicationJsonSchemaErrors'
        instance:
          type: string
        status:
          type: integer
          description: |
            The HTTP status code.
        title:
          type: string
          description: |
            The error title describing the particular error.
        type:
          type: string
      title: CreateProductMetafieldRequestUnprocessableEntityError
    CatalogProductsProductIdMetafieldsMetafieldIdGetParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - name
        - type
        - sku
        - description
        - weight
        - width
        - depth
        - height
        - price
        - cost_price
        - retail_price
        - sale_price
        - map_price
        - tax_class_id
        - product_tax_code
        - calculated_price
        - categories
        - brand_id
        - option_set_id
        - option_set_display
        - inventory_level
        - inventory_warning_level
        - inventory_tracking
        - reviews_rating_sum
        - reviews_count
        - total_sold
        - fixed_cost_shipping_price
        - is_free_shipping
        - is_visible
        - is_featured
        - related_products
        - warranty
        - bin_picking_number
        - layout_file
        - upc
        - mpn
        - gtin
        - date_last_imported
        - search_keywords
        - availability
        - availability_description
        - condition
        - is_condition_shown
        - order_quantity_minimum
        - order_quantity_maximum
        - page_title
        - meta_keywords
        - meta_description
        - date_created
        - date_modified
        - view_count
        - preorder_release_date
        - preorder_message
        - is_preorder_only
        - is_price_hidden
        - price_hidden_label
        - custom_url
        - base_variant_id
        - open_graph_type
        - open_graph_title
        - open_graph_description
        - open_graph_use_meta_description
        - open_graph_use_product_name
        - open_graph_use_image
      title: CatalogProductsProductIdMetafieldsMetafieldIdGetParametersIncludeFieldsSchemaItems
    Metafields_getProductMetafield_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/metafield_Full'
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      title: Metafields_getProductMetafield_Response_200
    GetProductMetafieldRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: GetProductMetafieldRequestNotFoundError
    Metafields_updateProductMetafield_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/metafield_Full'
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      title: Metafields_updateProductMetafield_Response_200
    UpdateProductMetafieldRequestBadRequestError:
      type: object
      properties:
        status:
          type: number
          format: double
        title:
          type: string
        type:
          type: string
        detail:
          type: string
      title: UpdateProductMetafieldRequestBadRequestError
    UpdateProductMetafieldRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: UpdateProductMetafieldRequestNotFoundError
    DeleteProductMetafieldRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: DeleteProductMetafieldRequestNotFoundError
    CatalogProductsProductIdReviewsGetParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - name
        - type
        - sku
        - description
        - weight
        - width
        - depth
        - height
        - price
        - cost_price
        - retail_price
        - sale_price
        - map_price
        - tax_class_id
        - product_tax_code
        - calculated_price
        - categories
        - brand_id
        - option_set_id
        - option_set_display
        - inventory_level
        - inventory_warning_level
        - inventory_tracking
        - reviews_rating_sum
        - reviews_count
        - total_sold
        - fixed_cost_shipping_price
        - is_free_shipping
        - is_visible
        - is_featured
        - related_products
        - warranty
        - bin_picking_number
        - layout_file
        - upc
        - mpn
        - gtin
        - date_last_imported
        - search_keywords
        - availability
        - availability_description
        - condition
        - is_condition_shown
        - order_quantity_minimum
        - order_quantity_maximum
        - page_title
        - meta_keywords
        - meta_description
        - date_created
        - date_modified
        - view_count
        - preorder_release_date
        - preorder_message
        - is_preorder_only
        - is_price_hidden
        - price_hidden_label
        - custom_url
        - base_variant_id
        - open_graph_type
        - open_graph_title
        - open_graph_description
        - open_graph_use_meta_description
        - open_graph_use_product_name
        - open_graph_use_image
      title: CatalogProductsProductIdReviewsGetParametersIncludeFieldsSchemaItems
    CatalogProductsProductIdReviewsGetParametersStatus:
      type: string
      enum:
        - '0'
        - '1'
      title: CatalogProductsProductIdReviewsGetParametersStatus
    CatalogProductsProductIdReviewsGetResponsesContentApplicationJsonSchemaDataItems:
      type: object
      properties:
        title:
          type: string
          description: |-
            The title for the product review.
            Required in /POST.
        text:
          type: string
          description: |
            The text for the product review.
        status:
          type: string
          description: |
            The status of the product review. Must be one of `approved`, `disapproved` or `pending`.
        rating:
          type: integer
          description: The rating of the product review. Must be one of 0, 1, 2, 3, 4, 5.
        email:
          type: string
          description: The email of the reviewer. Must be a valid email, or an empty string.
        name:
          type: string
          description: The name of the reviewer.
        date_reviewed:
          type: string
          format: date-time
          description: |
            Date the product was reviewed. Required in /POST.
        id:
          type: integer
          description: |
            The unique numeric ID of the product review; increments sequentially.
        date_created:
          type: string
          format: date-time
          description: |
            Date the product review was created.
        date_modified:
          type: string
          format: date-time
          description: |
            Date the product review was modified.
      required:
        - title
        - date_reviewed
      description: |
        A product review model.
      title: CatalogProductsProductIdReviewsGetResponsesContentApplicationJsonSchemaDataItems
    Reviews_getProductReviews_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/CatalogProductsProductIdReviewsGetResponsesContentApplicationJsonSchemaDataItems'
        meta:
          $ref: '#/components/schemas/metaCollection_Full'
      title: Reviews_getProductReviews_Response_200
    GetProductReviewsRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: GetProductReviewsRequestNotFoundError
    CatalogProductsProductIdReviewsPostResponsesContentApplicationJsonSchemaData:
      type: object
      properties:
        title:
          type: string
          description: |-
            The title for the product review.
            Required in /POST.
        text:
          type: string
          description: |
            The text for the product review.
        status:
          type: string
          description: |
            The status of the product review. Must be one of `approved`, `disapproved` or `pending`.
        rating:
          type: integer
          description: The rating of the product review. Must be one of 0, 1, 2, 3, 4, 5.
        email:
          type: string
          description: The email of the reviewer. Must be a valid email, or an empty string.
        name:
          type: string
          description: The name of the reviewer.
        date_reviewed:
          type: string
          format: date-time
          description: |
            Date the product was reviewed. Required in /POST.
        id:
          type: integer
          description: |
            The unique numeric ID of the product review; increments sequentially.
        date_created:
          type: string
          format: date-time
          description: |
            Date the product review was created.
        date_modified:
          type: string
          format: date-time
          description: |
            Date the product review was modified.
      required:
        - title
        - date_reviewed
      description: |
        A product review model.
      title: CatalogProductsProductIdReviewsPostResponsesContentApplicationJsonSchemaData
    Reviews_createProductReview_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CatalogProductsProductIdReviewsPostResponsesContentApplicationJsonSchemaData'
          description: |
            A product review model.
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      description: |
        Response payload for the BigCommerce API.
      title: Reviews_createProductReview_Response_200
    CreateProductReviewRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: CreateProductReviewRequestNotFoundError
    CatalogProductsProductIdReviewsReviewIdGetParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - name
        - type
        - sku
        - description
        - weight
        - width
        - depth
        - height
        - price
        - cost_price
        - retail_price
        - sale_price
        - map_price
        - tax_class_id
        - product_tax_code
        - calculated_price
        - categories
        - brand_id
        - option_set_id
        - option_set_display
        - inventory_level
        - inventory_warning_level
        - inventory_tracking
        - reviews_rating_sum
        - reviews_count
        - total_sold
        - fixed_cost_shipping_price
        - is_free_shipping
        - is_visible
        - is_featured
        - related_products
        - warranty
        - bin_picking_number
        - layout_file
        - upc
        - mpn
        - gtin
        - date_last_imported
        - search_keywords
        - availability
        - availability_description
        - condition
        - is_condition_shown
        - order_quantity_minimum
        - order_quantity_maximum
        - page_title
        - meta_keywords
        - meta_description
        - date_created
        - date_modified
        - view_count
        - preorder_release_date
        - preorder_message
        - is_preorder_only
        - is_price_hidden
        - price_hidden_label
        - custom_url
        - base_variant_id
        - open_graph_type
        - open_graph_title
        - open_graph_description
        - open_graph_use_meta_description
        - open_graph_use_product_name
        - open_graph_use_image
      title: CatalogProductsProductIdReviewsReviewIdGetParametersIncludeFieldsSchemaItems
    CatalogProductsProductIdReviewsReviewIdGetResponsesContentApplicationJsonSchemaData:
      type: object
      properties:
        title:
          type: string
          description: |-
            The title for the product review.
            Required in /POST.
        text:
          type: string
          description: |
            The text for the product review.
        status:
          type: string
          description: |
            The status of the product review. Must be one of `approved`, `disapproved` or `pending`.
        rating:
          type: integer
          description: The rating of the product review. Must be one of 0, 1, 2, 3, 4, 5.
        email:
          type: string
          description: The email of the reviewer. Must be a valid email, or an empty string.
        name:
          type: string
          description: The name of the reviewer.
        date_reviewed:
          type: string
          format: date-time
          description: |
            Date the product was reviewed. Required in /POST.
        id:
          type: integer
          description: |
            The unique numeric ID of the product review; increments sequentially.
        date_created:
          type: string
          format: date-time
          description: |
            Date the product review was created.
        date_modified:
          type: string
          format: date-time
          description: |
            Date the product review was modified.
      required:
        - title
        - date_reviewed
      description: |
        A product review model.
      title: CatalogProductsProductIdReviewsReviewIdGetResponsesContentApplicationJsonSchemaData
    Reviews_getProductReview_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CatalogProductsProductIdReviewsReviewIdGetResponsesContentApplicationJsonSchemaData'
          description: |
            A product review model.
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      description: |
        Response payload for the BigCommerce API.
      title: Reviews_getProductReview_Response_200
    GetProductReviewRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: GetProductReviewRequestNotFoundError
    CatalogProductsProductIdReviewsReviewIdPutResponsesContentApplicationJsonSchemaData:
      type: object
      properties:
        title:
          type: string
          description: |-
            The title for the product review.
            Required in /POST.
        text:
          type: string
          description: |
            The text for the product review.
        status:
          type: string
          description: |
            The status of the product review. Must be one of `approved`, `disapproved` or `pending`.
        rating:
          type: integer
          description: The rating of the product review. Must be one of 0, 1, 2, 3, 4, 5.
        email:
          type: string
          description: The email of the reviewer. Must be a valid email, or an empty string.
        name:
          type: string
          description: The name of the reviewer.
        date_reviewed:
          type: string
          format: date-time
          description: |
            Date the product was reviewed. Required in /POST.
        id:
          type: integer
          description: |
            The unique numeric ID of the product review; increments sequentially.
        date_created:
          type: string
          format: date-time
          description: |
            Date the product review was created.
        date_modified:
          type: string
          format: date-time
          description: |
            Date the product review was modified.
      required:
        - title
        - date_reviewed
      description: |
        A product review model.
      title: CatalogProductsProductIdReviewsReviewIdPutResponsesContentApplicationJsonSchemaData
    Reviews_updateProductReview_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CatalogProductsProductIdReviewsReviewIdPutResponsesContentApplicationJsonSchemaData'
          description: |
            A product review model.
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      description: |
        Response payload for the BigCommerce API.
      title: Reviews_updateProductReview_Response_200
    UpdateProductReviewRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: UpdateProductReviewRequestNotFoundError
    CatalogSummaryGetResponsesContentApplicationJsonSchemaData:
      type: object
      properties:
        inventory_count:
          type: integer
          description: |
            A count of all inventory items in the catalog.
        inventory_value:
          type: number
          format: double
          description: |
            Total value of storeʼs inventory.
        primary_category_id:
          type: integer
          description: |
            ID of the category containing the most products.
        primary_category_name:
          type: string
          description: |
            Name of the category containing the most products.
        variant_count:
          type: integer
          description: Total number of variants
        highest_variant_price:
          type: number
          format: double
          description: Highest priced variant
        average_variant_price:
          type: number
          format: double
          description: Average price of all variants
        lowest_variant_price:
          type: string
          description: Lowest priced variant in the store
        oldest_variant_date:
          type: string
        newest_variant_date:
          type: string
      description: Catalog Summary object describes a lightweight summary of the catalog.
      title: CatalogSummaryGetResponsesContentApplicationJsonSchemaData
    Summary_getCatalogSummary_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CatalogSummaryGetResponsesContentApplicationJsonSchemaData'
          description: Catalog Summary object describes a lightweight summary of the catalog.
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      title: Summary_getCatalogSummary_Response_200
    CatalogProductsProductIdVideosGetParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - name
        - type
        - sku
        - description
        - weight
        - width
        - depth
        - height
        - price
        - cost_price
        - retail_price
        - sale_price
        - map_price
        - tax_class_id
        - product_tax_code
        - calculated_price
        - categories
        - brand_id
        - option_set_id
        - option_set_display
        - inventory_level
        - inventory_warning_level
        - inventory_tracking
        - reviews_rating_sum
        - reviews_count
        - total_sold
        - fixed_cost_shipping_price
        - is_free_shipping
        - is_visible
        - is_featured
        - related_products
        - warranty
        - bin_picking_number
        - layout_file
        - upc
        - mpn
        - gtin
        - date_last_imported
        - search_keywords
        - availability
        - availability_description
        - condition
        - is_condition_shown
        - order_quantity_minimum
        - order_quantity_maximum
        - page_title
        - meta_keywords
        - meta_description
        - date_created
        - date_modified
        - view_count
        - preorder_release_date
        - preorder_message
        - is_preorder_only
        - is_price_hidden
        - price_hidden_label
        - custom_url
        - base_variant_id
        - open_graph_type
        - open_graph_title
        - open_graph_description
        - open_graph_use_meta_description
        - open_graph_use_product_name
        - open_graph_use_image
      title: CatalogProductsProductIdVideosGetParametersIncludeFieldsSchemaItems
    Videos_getProductVideos_Response_200:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/productVideo_Full'
        meta:
          $ref: '#/components/schemas/metaCollection_Full'
      title: Videos_getProductVideos_Response_200
    CatalogProductsProductIdVideosPostRequestBodyContentApplicationJsonSchemaType:
      type: string
      enum:
        - youtube
      description: |
        The video type (a short name of a host site).
      title: CatalogProductsProductIdVideosPostRequestBodyContentApplicationJsonSchemaType
    CatalogProductsProductIdVideosPostResponsesContentApplicationJsonSchemaDataType:
      type: string
      enum:
        - youtube
      description: |
        The video type (a short name of a host site).
      title: CatalogProductsProductIdVideosPostResponsesContentApplicationJsonSchemaDataType
    CatalogProductsProductIdVideosPostResponsesContentApplicationJsonSchemaData:
      type: object
      properties:
        title:
          type: string
          description: |
            The title for the video. If left blank, this will be filled in according to data on a host site.
        description:
          type: string
          description: |
            The description for the video. If left blank, this will be filled in according to data on a host site.
        sort_order:
          type: integer
          description: >
            The order in which the video will be displayed on the product page. Higher integers give the video a lower
            priority. When updating, if the video is given a lower priority, all videos with a `sort_order` the same as
            or greater than the videoʼs new `sort_order` value will have their `sort_order`s reordered.
        type:
          $ref: '#/components/schemas/CatalogProductsProductIdVideosPostResponsesContentApplicationJsonSchemaDataType'
          description: |
            The video type (a short name of a host site).
        id:
          type: integer
          description: |
            The unique numeric ID of the product video; increments sequentially.
        video_id:
          type: string
          description: |
            The ID of the video on a host site.
        product_id:
          type: integer
          description: |
            The unique numeric identifier for the product with which the image is associated.
        length:
          type: string
          description: |
            Length of the video. This will be filled in according to data on a host site.
      description: |
        A product video model.
      title: CatalogProductsProductIdVideosPostResponsesContentApplicationJsonSchemaData
    Videos_createProductVideo_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CatalogProductsProductIdVideosPostResponsesContentApplicationJsonSchemaData'
          description: |
            A product video model.
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      description: |
        Response payload for the BigCommerce API.
      title: Videos_createProductVideo_Response_200
    CreateProductVideoRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: CreateProductVideoRequestNotFoundError
    CatalogProductsProductIdVideosIdGetParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - name
        - type
        - sku
        - description
        - weight
        - width
        - depth
        - height
        - price
        - cost_price
        - retail_price
        - sale_price
        - map_price
        - tax_class_id
        - product_tax_code
        - calculated_price
        - categories
        - brand_id
        - option_set_id
        - option_set_display
        - inventory_level
        - inventory_warning_level
        - inventory_tracking
        - reviews_rating_sum
        - reviews_count
        - total_sold
        - fixed_cost_shipping_price
        - is_free_shipping
        - is_visible
        - is_featured
        - related_products
        - warranty
        - bin_picking_number
        - layout_file
        - upc
        - mpn
        - gtin
        - date_last_imported
        - search_keywords
        - availability
        - availability_description
        - condition
        - is_condition_shown
        - order_quantity_minimum
        - order_quantity_maximum
        - page_title
        - meta_keywords
        - meta_description
        - date_created
        - date_modified
        - view_count
        - preorder_release_date
        - preorder_message
        - is_preorder_only
        - is_price_hidden
        - price_hidden_label
        - custom_url
        - base_variant_id
        - open_graph_type
        - open_graph_title
        - open_graph_description
        - open_graph_use_meta_description
        - open_graph_use_product_name
        - open_graph_use_image
      title: CatalogProductsProductIdVideosIdGetParametersIncludeFieldsSchemaItems
    Videos_getProductVideo_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/productVideo_Full'
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      description: |
        Response payload for the BigCommerce API.
      title: Videos_getProductVideo_Response_200
    GetProductVideoRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: GetProductVideoRequestNotFoundError
    CatalogProductsProductIdVideosIdPutRequestBodyContentApplicationJsonSchemaType:
      type: string
      enum:
        - youtube
      description: |
        The video type (a short name of a host site).
      title: CatalogProductsProductIdVideosIdPutRequestBodyContentApplicationJsonSchemaType
    CatalogProductsProductIdVideosIdPutResponsesContentApplicationJsonSchemaDataType:
      type: string
      enum:
        - youtube
      description: |
        The video type (a short name of a host site).
      title: CatalogProductsProductIdVideosIdPutResponsesContentApplicationJsonSchemaDataType
    CatalogProductsProductIdVideosIdPutResponsesContentApplicationJsonSchemaData:
      type: object
      properties:
        title:
          type: string
          description: |
            The title for the video. If left blank, this will be filled in according to data on a host site.
        description:
          type: string
          description: |
            The description for the video. If left blank, this will be filled in according to data on a host site.
        sort_order:
          type: integer
          description: >
            The order in which the video will be displayed on the product page. Higher integers give the video a lower
            priority. When updating, if the video is given a lower priority, all videos with a `sort_order` the same as
            or greater than the videoʼs new `sort_order` value will have their `sort_order`s reordered.
        type:
          $ref: '#/components/schemas/CatalogProductsProductIdVideosIdPutResponsesContentApplicationJsonSchemaDataType'
          description: |
            The video type (a short name of a host site).
        id:
          type: integer
          description: |
            The unique numeric ID of the product video; increments sequentially.
        video_id:
          type: string
          description: |
            The ID of the video on a host site.
        product_id:
          type: integer
          description: |
            The unique numeric identifier for the product with which the image is associated.
        length:
          type: string
          description: |
            Length of the video. This will be filled in according to data on a host site.
      description: |
        A product video model.
      title: CatalogProductsProductIdVideosIdPutResponsesContentApplicationJsonSchemaData
    Videos_updateProductVideo_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CatalogProductsProductIdVideosIdPutResponsesContentApplicationJsonSchemaData'
          description: |
            A product video model.
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
      description: |
        Response payload for the BigCommerce API.
      title: Videos_updateProductVideo_Response_200
    UpdateProductVideoRequestNotFoundError:
      type: object
      properties:
        status:
          type: integer
          description: |
            404 HTTP status code.
        title:
          type: string
          description: The error title describing the particular error.
        type:
          type: string
        instance:
          type: string
      description: Error payload for the BigCommerce API.
      title: UpdateProductVideoRequestNotFoundError
  securitySchemes:
    X-Auth-Token:
      type: apiKey
      in: header
      name: X-Auth-Token
      description: >-
        ### OAuth scopes


        | UI Name | Permission | Parameter |

        |:--------|:-----------|:----------|

        |  Products | modify | `store_v2_products` |

        |  Products | read-only | `store_v2_products_read_only` |


        ### Authentication header


        | Header | Argument | Description |

        |:-------|:---------|:------------|

        | `X-Auth-Token` | `access_token` | For more about API accounts that generate `access_token`s, see our [Guide to
        API Accounts](/developer/docs/overview/api-fundamentals/api-accounts#api-accounts). |


        ### Further reading


        For example requests and more information about authenticating BigCommerce APIs, see [Authentication and Example
        Requests](/developer/docs/overview/api-fundamentals/api-accounts#x-auth-token-header-example-requests).


        For more about BigCommerce OAuth scopes, see our [Guide to API
        Accounts](/developer/docs/overview/api-fundamentals/api-accounts#oauth-scopes).


        For a list of API status codes, see [API Status
        Codes](/developer/api-reference/rest/overview#rest-http-status-codes).
