openapi: 3.1.0
info:
  title: 'Admin Management: Carts'
  version: 1.0.0
paths:
  /stores/{store_hash}/v3/carts/metafields:
    get:
      operationId: getCartsMetafields
      summary: List Cart Metafields
      description: Get all cart 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
        - 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/CartsMetafieldsGetParametersDirection'
        - 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/CartsMetafieldsGetParametersIncludeFieldsSchemaItems'
        - 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, for 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 |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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_Batch'
    post:
      operationId: createCartsMetafields
      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 |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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_Batch_POST_PUT'
        '400':
          description: Bad Request. Input is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCartsMetafieldsRequestBadRequestError'
        '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/CartsMetafieldsPostRequestBodyContentApplicationJsonSchemaItems'
    put:
      operationId: updateCartsMetafields
      summary: Update 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 |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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_Batch_POST_PUT'
        '400':
          description: Bad Request. Input is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateCartsMetafieldsRequestBadRequestError'
        '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/CartsMetafieldsPutRequestBodyContentApplicationJsonSchemaItems'
    delete:
      operationId: deleteCartsMetafields
      summary: Delete Multiple Metafields
      description: Delete all cart 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 |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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/DeleteCartsMetafieldsRequestBadRequestError'
        '422':
          description: |
            Response object for metafields deletion with partial success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionResponsePartialSuccess_DELETE'
      requestBody:
        description: List of metafield `id`s.
        content:
          application/json:
            schema:
              type: array
              items:
                type: integer
  /stores/{store_hash}/v3/carts:
    post:
      operationId: createCart
      summary: Create Cart
      description: >-
        Creates a **Cart**. 


        **Required Fields**


        |Field|Details|

        |-|-|

        |`line_item`|Specifies a line item.| 

        |`custom_items`|Specifies a custom item. Only required if adding a custom item to the cart.|

        |`gift_certificates`|Specifies a gift certificate. Only required if adding a gift certificate to the cart.|


        **Usage Notes**


        * A **cart** `id` (UUID) is returned in the response.

        * A **cart** `id` is the same as a **checkout** `id`.

        * A cart can be created by adding an existing **catalog item** or a **custom item**.

        * Images are not supported for custom items. The `image_url` field is accepted but does not render on the
        storefront.

        * Carts are valid for **30 days** from the **last modification** (this includes creating the cart or editing the
        cart).

        * If a product has modifiers, use the `option_selections` array to describe the **modifier** selection(s).

        * The format and data type of a cart’s `option_value` are defined by the `value_data` object of a product’s
        [variant option value](/developer/api-reference/rest/admin/catalog/product-variant-options/values), [modifier
        value](/developer/api-reference/rest/admin/catalog/product-modifiers/values), or a combination of both.

        * Redirect URLs can only be generated from carts that were created using the **REST Management API**. 

        * To get cart `redirect_urls` in the response, append the following query parameter to the request URL:
        `include=redirect_urls`. Redirect URLs point to either a shared checkout domain or a channel-specific domain,
        depending on the storefront configuration.

        * To restore a cart that was created by a shopper or through a Storefront API, first recreate the cart using the
        **REST Management API**.

        * To get cart `promotions` in the response, append the following query parameter to the request URL:
        `include=promotions.banners`.


        **Overridable fields**


        When creating a cart, you can override the following catalog values on each line item:


        | Field | Description |

        |-|-|

        | `list_price` | Override the product's price. By default, overriding a product's `list_price` makes it
        ineligible for V3 product-level promotions. In **Store Settings** under **Promotions and Coupons** in the
        control panel, you can change this behavior to allow promotions on overridden prices. |

        | `name` | Override the product name. Useful for locale-specific product names. |

        | `option_selections.name` | Override the name of an option or modifier selection. Useful for locale-specific
        option labels. |

        | `option_selections.value` | Override the value of an option or modifier selection. Useful for locale-specific
        option values. |
      tags:
        - cartsSingle
      parameters:
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include
          in: query
          description: >-
            * `redirect_urls`: Create a direct link to a cart. This can be used for the /POST request for carts.

            * `line_items.physical_items.options`: The cart returns an abbreviated result. Use this to return physical
            items product options. To return the extended cart object, use in a /POST request.

            * `line_items.digital_items.options`: The cart returns an abbreviated result. Use this to return digital
            items product options. To return the extended cart object, use in a /POST request.

            * `promotions.banners`: Returns a list of eligible banners.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CartsPostParametersIncludeSchemaItems'
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Carts (Single)_createCart_Response_201'
      requestBody:
        description: >-
          **Examples:**


          1. Creating a cart by adding a simple product (a product without option selections).

          2. Creating a cart with a variant. This works when a product can be specified purely by a variant, without any
          other required options.

          3. Creating a cart using a date option. The API supports timestamps, “option_value”: 1743570000, and dates as
          an object literal, “option_value”: {“day”:”01”, “month”:”02”, “year”:”2020”}.

          4. Creating a cart with a variant, a checkbox, and a picklist modifier added.

          5. Creating a cart using a custom item.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CartCreatePostData'
  /stores/{store_hash}/v3/carts/{cartId}:
    get:
      operationId: getCart
      summary: Get Cart
      description: Returns a storeʼs *Cart*.
      tags:
        - cartsSingle
      parameters:
        - name: cartId
          in: path
          description: The identifier of a specific cart.
          required: true
          schema:
            type: string
            format: UUID
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include
          in: query
          description: >-
            * `redirect_urls`: Create a direct link to a cart. This can be used for the /POST request for carts.

            * `line_items.physical_items.options`: The cart returns an abbreviated result. Use this to return physical
            items product options. To return the extended cart object, use in a /POST request.

            * `line_items.digital_items.options`: The cart returns an abbreviated result. Use this to return digital
            items product options. To return the extended cart object, use in a /POST request.

            * `promotions.banners`: Returns a list of eligible banners.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CartsCartIdGetParametersIncludeSchemaItems'
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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/Carts (Single)_getCart_Response_200'
        '404':
          description: Cart not found.
          content:
            application/json:
              schema:
                description: Any type
    put:
      operationId: updateCart
      summary: Update Customer ID
      description: >-
        Updates a *Cartʼs* `customer_id`.


        **Notes**


        Changing the *Cart* `customer_id` will remove any promotions or shipping calculations on the *Cart*. These are
        tied to the customer depending on cart conditions and any customer groups. 


        To prevent lost updates due to concurrent requests overriding changes made by others, it is recommended to
        enable optimistic concurrency control by including the `version` field in the request payload. If the provided
        version does not match the version on the server, a conflict error will be returned, which the client can handle
        accordingly.
      tags:
        - cartsSingle
      parameters:
        - name: cartId
          in: path
          description: The identifier of a specific cart.
          required: true
          schema:
            type: string
            format: UUID
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include
          in: query
          description: >-
            * `redirect_urls`: Create a direct link to a cart. This can be used for the /POST request for carts.

            * `line_items.physical_items.options`: The cart returns an abbreviated result. Use this to return physical
            items product options. To return the extended cart object, use in a /POST request.

            * `line_items.digital_items.options`: The cart returns an abbreviated result. Use this to return digital
            items product options. To return the extended cart object, use in a /POST request.

            * `promotions.banners`: Returns a list of eligible banners.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CartsCartIdPutParametersIncludeSchemaItems'
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Carts (Single)_updateCart_Response_201'
        '409':
          description: Cart conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CartUpdatePutRequestData'
    delete:
      operationId: deleteCart
      summary: Delete Cart
      description: Deletes a *Cart*. Once a *Cart* has been deleted it can’t be recovered.
      tags:
        - cartsSingle
      parameters:
        - name: cartId
          in: path
          description: The identifier of a specific cart.
          required: true
          schema:
            type: string
            format: UUID
        - 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 |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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/carts/{cartId}/items:
    post:
      operationId: addCartLineItems
      summary: Add Cart Line Items
      description: >-
        Adds line item to the *Cart*.


        **Usage Notes**


        To add a custom item use `custom_items`. Note that images are not supported for custom items; the `image_url`
        field is accepted but does not render on the storefront.


        If a product has modifiers, omit the `variant_id` and instead use the `option_selections` array to describe both
        the **variant** and the **modifier** selections.


        To prevent lost updates due to concurrent requests overriding changes made by others, it is recommended to
        enable optimistic concurrency control by including the `version` field in the request payload. If the provided
        version does not match the version on the server, a conflict error will be returned, which the client can handle
        accordingly.


        **Overridable fields**


        When adding a line item, you can override the following catalog values:


        | Field | Description |

        |-|-|

        | `list_price` | Override the product's price. By default, overriding a product's `list_price` makes it
        ineligible for V3 product-level promotions. In **Store Settings** under **Promotions and Coupons** in the
        control panel, you can change this behavior to allow promotions on overridden prices. |

        | `name` | Override the product name. Useful for locale-specific product names. |

        | `option_selections.name` | Override the name of an option or modifier selection. Useful for locale-specific
        option labels. |

        | `option_selections.value` | Override the value of an option or modifier selection. Useful for locale-specific
        option values. |
      tags:
        - items
      parameters:
        - name: cartId
          in: path
          description: The identifier of a specific cart.
          required: true
          schema:
            type: string
            format: UUID
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include
          in: query
          description: >-
            * `redirect_urls`: Create a direct link to a cart. This can be used for the /POST request for carts.

            * `line_items.physical_items.options`: The cart returns an abbreviated result. Use this to return physical
            items product options. To return the extended cart object, use in a /POST request.

            * `line_items.digital_items.options`: The cart returns an abbreviated result. Use this to return digital
            items product options. To return the extended cart object, use in a /POST request.

            * `promotions.banners`: Returns a list of eligible banners.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CartsCartIdItemsPostParametersIncludeSchemaItems'
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Items_addCartLineItems_Response_201'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Cart_Line_Item_Update_Post'
  /stores/{store_hash}/v3/carts/{cartId}/items/{itemId}:
    put:
      operationId: updateCartLineItem
      summary: Update Cart Line Item
      description: >-
        Updates an existing, single line item in the *Cart*. 


        **Notes**


        Currently, only updating `list_price` and `quantity` are supported. By default, overriding a product's
        list_price makes it ineligible for V3 product-level promotions. In **Store Settings** under **Promotions and
        Coupons** in the control panel, you can change this behavior to allow promotions on overridden prices.


        If the product has modifiers, omit the `variant_id` and instead use the `option_selections` array to describe
        both the **variant** and the **modifier** selections.


        If a variant needs to be changed or updated, the product will need to be removed and re-added to the cart with
        the correct variants using the **Add Cart Line Items** endpoint.


        `custom_items` cannot be updated via the API at this time. To update your cart, add a new updated custom item
        and delete the outdated one. If your cart contains only one line item, perform the add operation before the
        delete operation.


        Deleting all line items from the cart will invalidate the cart. 


        To prevent lost updates due to concurrent requests overriding changes made by others, it is recommended to
        enable optimistic concurrency control by including the `version` field in the request payload. If the provided
        version does not match the version on the server, a conflict error will be returned, which the client can handle
        accordingly.
      tags:
        - items
      parameters:
        - name: cartId
          in: path
          description: The identifier of a specific cart.
          required: true
          schema:
            type: string
            format: UUID
        - name: itemId
          in: path
          required: true
          schema:
            type: string
            format: number
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include
          in: query
          description: >-
            * `redirect_urls`: Create a direct link to a cart. This can be used for the /POST request for carts.

            * `line_items.physical_items.options`: The cart returns an abbreviated result. Use this to return physical
            items product options. To return the extended cart object, use in a /POST request.

            * `line_items.digital_items.options`: The cart returns an abbreviated result. Use this to return digital
            items product options. To return the extended cart object, use in a /POST request.

            * `promotions.banners`: Returns a list of eligible banners.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CartsCartIdItemsItemIdPutParametersIncludeSchemaItems'
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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/Items_updateCartLineItem_Response_200'
        '409':
          description: Cart conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Cart_Line_Item_Update_Put'
    delete:
      operationId: deleteCartLineItem
      summary: Delete Cart Line Item
      description: >-
        Deletes a *Cart* line item. 


        **Notes**


        Removing the last `line_item` in the *Cart* deletes the *Cart*.


        To prevent lost updates due to concurrent requests overriding changes made by others, it is recommended to
        enable optimistic concurrency control by including the `version` field in the request payload. If the provided
        version does not match the version on the server, a conflict error will be returned, which the client can handle
        accordingly.
      tags:
        - items
      parameters:
        - name: cartId
          in: path
          description: The identifier of a specific cart.
          required: true
          schema:
            type: string
            format: UUID
        - name: itemId
          in: path
          required: true
          schema:
            type: string
            format: number
        - name: store_hash
          in: path
          description: Permanent ID of the BigCommerce store.
          required: true
          schema:
            type: string
        - name: include
          in: query
          description: >-
            * `redirect_urls`: Create a direct link to a cart. This can be used for the /POST request for carts.

            * `line_items.physical_items.options`: The cart returns an abbreviated result. Use this to return physical
            items product options. To return the extended cart object, use in a /POST request.

            * `line_items.digital_items.options`: The cart returns an abbreviated result. Use this to return digital
            items product options. To return the extended cart object, use in a /POST request.

            * `promotions.banners`: Returns a list of eligible banners.
          required: false
          schema:
            type: array
            items:
              $ref: '#/components/schemas/CartsCartIdItemsItemIdDeleteParametersIncludeSchemaItems'
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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: >-
            NOTE: Discounted line items are re-evaluated on cart actions and may be automatically added back to your
            cart with a new line item ID to satisfy promotional requirements.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Cart_Full'
        '409':
          description: Cart conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CartLineItemDelete'
  /stores/{store_hash}/v3/carts/{cart_id}/metafields:
    get:
      operationId: getCartMetafields
      summary: List Cart Metafields
      description: Get a cart's metafields.
      tags:
        - metafields
      parameters:
        - name: cart_id
          in: path
          description: The ID of the `Cart` to which the transactions belong.
          required: true
          schema:
            type: string
            format: UUID
        - 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
        - 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: direction
          in: query
          description: |
            Sort direction. Acceptable values are: `asc`, `desc`.
          required: false
          schema:
            $ref: '#/components/schemas/CartsCartIdMetafieldsGetParametersDirection'
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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: |
            An array of metafields and metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetafieldResponse'
    post:
      operationId: createCartMetafield
      summary: Create Cart Metafield
      description: >
        Create a cart `Metafield`. 


        If you create an order from a Cart, you can continue referencing the Cart Metafields even if you delete the
        original Cart. Use the `cart_id` field on the Order to construct the Cart Metafield endpoint.
      tags:
        - metafields
      parameters:
        - name: cart_id
          in: path
          description: The ID of the `Cart` to which the transactions belong.
          required: true
          schema:
            type: string
            format: UUID
        - 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 |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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: |
            A `Metafield` object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionResponse'
        '400':
          description: Bad Request. Input is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCartMetafieldRequestBadRequestError'
        '409':
          description: >
            The `Metafield` conflicts with another `Metafield`. This can result from duplicate unique key combinations
            of the appʼs client id, namespace, key, resource_type, and resource_id.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '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/ErrorResponse'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetafieldBase_Post'
  /stores/{store_hash}/v3/carts/{cart_id}/metafields/{metafield_id}:
    get:
      operationId: getCartMetafield
      summary: Get Cart Metafield
      description: Gets a cart metafield.
      tags:
        - metafields
      parameters:
        - name: cart_id
          in: path
          description: The ID of the `Cart` to which the transactions belong.
          required: true
          schema:
            type: string
            format: UUID
        - name: metafield_id
          in: path
          description: The unique ID of the subject `Metafield`.
          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
        - 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: direction
          in: query
          description: |
            Sort direction. Acceptable values are: `asc`, `desc`.
          required: false
          schema:
            $ref: '#/components/schemas/CartsCartIdMetafieldsMetafieldIdGetParametersDirection'
        - name: X-Auth-Token
          in: header
          description: >-
            ### OAuth scopes


            | UI Name | Permission | Parameter |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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: |
            A `Metafield` object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetafieldResponse'
        '404':
          description: |
            Not found (A metafield was not found with this query).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
    put:
      operationId: updateCartMetafield
      summary: Update Cart Metafield
      description: |
        Update a `Metafield`, by `cart_id`.
      tags:
        - metafields
      parameters:
        - name: cart_id
          in: path
          description: The ID of the `Cart` to which the transactions belong.
          required: true
          schema:
            type: string
            format: UUID
        - name: metafield_id
          in: path
          description: The unique ID of the subject `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 |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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: |
            A `Metafield` and metadata.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionResponse'
        '400':
          description: Bad Request. Metafield is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateCartMetafieldRequestBadRequestError'
        '422':
          description: |
            Response object for metafields creation with partial success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaFieldCollectionResponsePartialSuccess_POST_PUT'
      requestBody:
        description: |
          A `Metafield` object.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MetafieldBase_Post'
    delete:
      operationId: deleteCartMetafield
      summary: Delete Metafield
      description: |
        Deletes a `Metafield`.
      tags:
        - metafields
      parameters:
        - name: cart_id
          in: path
          description: The ID of the `Cart` to which the transactions belong.
          required: true
          schema:
            type: string
            format: UUID
        - name: metafield_id
          in: path
          description: The unique ID of the subject `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 |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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: |
            An empty response.
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '404':
          description: |
            Not found (A metafield was not found with this query)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
  /stores/{store_hash}/v3/carts/{cartId}/redirect_urls:
    post:
      operationId: createCartRedirectURL
      summary: Create Cart Redirect URL
      description: >-
        Creates a **Cart** redirect URL for redirecting a shopper to an already created cart using the `cartId`.


        **Usage Notes**


        * To use redirect URLs, first create the cart using the REST Management API or GraphQL Storefront API.

        * Redirect URLs can also be created with **Create a Cart** requests by appending `include=redirect_urls`.

        * A **Carts** redirect URL is valid for 30 days and may only be used once.

        * Redirect URLs point to either a shared checkout domain or a channel-specific domain, depending on the
        storefront configuration.

        * Once a redirect URL has been visited, it will be invalidated and cannot be used again. 

        * If your application requires URLs to be visited more than once, consider generating a fresh one each time you
        need to restore a cart, and redirecting to the URL from your own application.

        * To restore a cart that was created on the storefront, either by a shopper or a Storefront API, first recreate
        the cart using the **REST Management API**.

        * When redirecting the shopper, you can add a set of `query_params` to the URL. The `query_params` feature
        allows passing additional information to the redirect URL.
      tags:
        - redirects
      parameters:
        - name: cartId
          in: path
          description: The identifier of a specific cart.
          required: true
          schema:
            type: string
            format: UUID
        - 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 |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Redirects_createCartRedirectURL_Response_201'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Redirect_urls_Post'
  /stores/{store_hash}/v3/carts/settings:
    get:
      operationId: getGlobalCartSettings
      summary: Get Global Cart Settings
      description: |-
        Returns the global cart settings of a store.

          ### OAuth scopes

          | UI Name | Permission | Parameter |
          |:--------|:-----------|:----------|
          |Information & Settings | modify | `store_v2_information`|
          |Information & Settings | read-only| `store_v2_information`|
      tags:
        - settings
      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 |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalCartSettingsResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    put:
      operationId: updateGlobalCartSettings
      summary: Update Global Cart Settings
      description: |-
        Update the global cart settings of a store.
          *Authentication*
          ### OAuth scopes

          | UI Name | Permission | Parameter |
          |:--------|:-----------|:----------|
          |Information & Settings | modify | `store_v2_information`|
          |Information & Settings | read-only| `store_v2_information`|
      tags:
        - settings
      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 |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalCartSettingsResponse'
        '400':
          description: Bad Request. Input is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateGlobalCartSettingsRequestBadRequestError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GlobalCartSettingsRequest'
  /stores/{store_hash}/v3/carts/settings/channels/{channel_id}:
    get:
      operationId: getChannelCartSettings
      summary: Get Channel Cart Settings
      description: |-
        Returns the per-channel overrides for the cart settings of a store.

          ### OAuth scopes

          | UI Name | Permission | Parameter |
          |:--------|:-----------|:----------|
          |Information & Settings | modify | `store_v2_information`|
          |Information & Settings | read-only| `store_v2_information`|
      tags:
        - settings
      parameters:
        - name: channel_id
          in: path
          description: |-
            The channel ID of the settings overrides.

            ### OAuth scopes

            | UI Name | Permission | Parameter |
            |:--------|:-----------|:----------|
            |Information & Settings | modify | `store_v2_information`|
            |Information & Settings | read-only| `store_v2_information`|
          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 |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelCartSettingsResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    put:
      operationId: updateChannelCartSettings
      summary: Update Channel Cart Settings
      description: |-
        Update the per-channel overrides for the cart settings of a store.

        ### OAuth scopes

        | UI Name | Permission | Parameter |
        |:--------|:-----------|:----------|
        |Information & Settings | modify | `store_v2_information`|
        |Information & Settings | read-only| `store_v2_information`|
      tags:
        - settings
      parameters:
        - name: channel_id
          in: path
          description: |-
            The channel ID of the settings overrides.

            ### OAuth scopes

            | UI Name | Permission | Parameter |
            |:--------|:-----------|:----------|
            |Information & Settings | modify | `store_v2_information`|
            |Information & Settings | read-only| `store_v2_information`|
          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 |

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

            |Carts|modify|`store_cart`|

            |Carts |read-only|`store_cart_read_only`|

            |Information & Settings | modify | `store_v2_information`|

            |Information & Settings | read-only| `store_v2_information`|


            ### 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: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChannelCartSettingsResponse'
        '400':
          description: Bad Request. Input is invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateChannelCartSettingsRequestBadRequestError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChannelCartSettingsRequest'
servers:
  - url: https://api.bigcommerce.com
    description: https://api.bigcommerce.com
components:
  schemas:
    CartsMetafieldsGetParametersDirection:
      type: string
      enum:
        - asc
        - desc
      title: CartsMetafieldsGetParametersDirection
    CartsMetafieldsGetParametersIncludeFieldsSchemaItems:
      type: string
      enum:
        - resource_id
        - key
        - value
        - namespace
        - permission_set
        - resource_type
        - description
        - owner_client_id
        - date_created
        - date_modified
      title: CartsMetafieldsGetParametersIncludeFieldsSchemaItems
    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 the storefront. |
        | `write_and_sf_access` | Open for reading and writing by other API consumers, including on the storefront. |
      title: MetafieldBasePermissionSet
    MetafieldBaseResourceType:
      type: string
      enum:
        - brand
        - product
        - variant
        - category
        - cart
      description: |
        The type of resource with which the metafield is associated.
      title: MetafieldBaseResourceType
    Metafield:
      type: object
      properties:
        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 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/MetafieldBaseResourceType'
          description: |
            The type of resource with which the metafield is associated.
        resource_id:
          type: string
          description: |
            The unique identifier for the resource with which the metafield is associated.
        id:
          type: string
          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.
      description: |
        Allows app partners to write custom data to various resources in the API.
      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_Batch:
      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_Batch
    CartsMetafieldsPostRequestBodyContentApplicationJsonSchemaItemsPermissionSet:
      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: CartsMetafieldsPostRequestBodyContentApplicationJsonSchemaItemsPermissionSet
    CartsMetafieldsPostRequestBodyContentApplicationJsonSchemaItems:
      type: object
      properties:
        permission_set:
          $ref: '#/components/schemas/CartsMetafieldsPostRequestBodyContentApplicationJsonSchemaItemsPermissionSet'
          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: string
          description: |
            The ID for the cart with which the metafield is associated.
      required:
        - permission_set
        - namespace
        - key
        - value
        - resource_id
      description: |
        Common Metafield properties.
      title: CartsMetafieldsPostRequestBodyContentApplicationJsonSchemaItems
    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
    MetaFieldCollectionResponse_Batch_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/WriteCollectionPartialSuccessMeta'
      description: |
        Response payload for the BigCommerce API.
      title: MetaFieldCollectionResponse_Batch_POST_PUT
    CreateCartsMetafieldsRequestBadRequestError:
      type: object
      properties:
        status:
          type: number
          format: double
        title:
          type: string
        type:
          type: string
        detail:
          type: string
      title: CreateCartsMetafieldsRequestBadRequestError
    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
    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
    CartsMetafieldsPutRequestBodyContentApplicationJsonSchemaItemsPermissionSet:
      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: CartsMetafieldsPutRequestBodyContentApplicationJsonSchemaItemsPermissionSet
    CartsMetafieldsPutRequestBodyContentApplicationJsonSchemaItems:
      type: object
      properties:
        permission_set:
          $ref: '#/components/schemas/CartsMetafieldsPutRequestBodyContentApplicationJsonSchemaItemsPermissionSet'
          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: string
          description: |
            The ID of metafield to update.
      required:
        - permission_set
        - namespace
        - key
        - value
        - id
      description: |
        Common Metafield properties.
      title: CartsMetafieldsPutRequestBodyContentApplicationJsonSchemaItems
    UpdateCartsMetafieldsRequestBadRequestError:
      type: object
      properties:
        status:
          type: number
          format: double
        title:
          type: string
        type:
          type: string
        detail:
          type: string
      title: UpdateCartsMetafieldsRequestBadRequestError
    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
    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
    DeleteCartsMetafieldsRequestBadRequestError:
      type: object
      properties:
        status:
          type: number
          format: double
        title:
          type: string
        type:
          type: string
        detail:
          type: string
      title: DeleteCartsMetafieldsRequestBadRequestError
    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
    CartsPostParametersIncludeSchemaItems:
      type: string
      enum:
        - redirect_urls
        - line_items.physical_items.options
        - line_items.digital_items.options
        - promotions.banners
      title: CartsPostParametersIncludeSchemaItems
    CartPostVariantGiftWrappingWrapDetailsItems:
      type: object
      properties:
        id:
          type: number
          format: double
          description: Identifier of the gift wrapping option selected.
        message:
          type: string
          description: Custom gift message.
      title: CartPostVariantGiftWrappingWrapDetailsItems
    CartPostVariantGiftWrapping:
      type: object
      properties:
        wrap_together:
          type: boolean
          description: Boolean value that specifies whether items whether items should be wrapped together or wrapped individually.
        wrap_details:
          type: array
          items:
            $ref: '#/components/schemas/CartPostVariantGiftWrappingWrapDetailsItems'
          description: Details for the gift wrapping option selected. This can be specified for each line item.
      title: CartPostVariantGiftWrapping
    cart_PostVariant:
      type: object
      properties:
        quantity:
          type: number
          format: double
        product_id:
          type: number
          format: double
        list_price:
          type: number
          format: double
          description: Optional price override.
        variant_id:
          type: number
          format: double
          description: Variant ID. Exists only in Catalog V3.
        name:
          type: string
          description: Optionally, provide a value to override the product name.
        gift_wrapping:
          $ref: '#/components/schemas/CartPostVariantGiftWrapping'
      description: Product with a variant.
      title: cart_PostVariant
    CartPostModifierOptionSelectionsItems:
      type: object
      properties:
        option_id:
          type: integer
        option_value:
          type: integer
        name:
          type: string
          description: Override for the selected option or modifier name.
        value:
          type: string
          description: Override for the selected option value.
        nameId:
          type: integer
        valueId:
          type: integer
      title: CartPostModifierOptionSelectionsItems
    cart_PostModifier:
      type: object
      properties:
        quantity:
          type: number
          format: double
        product_id:
          type: number
          format: double
        list_price:
          type: number
          format: double
          description: Optional price override.
        name:
          type: string
          description: Optionally, provide a value to override the product name.
        option_selections:
          type: array
          items:
            $ref: '#/components/schemas/CartPostModifierOptionSelectionsItems'
          description: Needed for Catalog V2.
      required:
        - quantity
        - product_id
      description: Product with a modifier.
      title: cart_PostModifier
    CartCreatePostDataLineItemsItems:
      oneOf:
        - $ref: '#/components/schemas/cart_PostVariant'
        - $ref: '#/components/schemas/cart_PostModifier'
      title: CartCreatePostDataLineItemsItems
    CartPostCustomItemItems:
      type: object
      properties:
        sku:
          type: string
        name:
          type: string
        quantity:
          type: number
          format: double
        list_price:
          type: number
          format: double
        image_url:
          type: string
          format: uri
          description: >-
            Not supported for custom items. Although the API accepts this field, the image does not display on the
            storefront.
      required:
        - sku
        - name
        - quantity
        - list_price
      title: CartPostCustomItemItems
    cart_PostCustomItem:
      type: array
      items:
        $ref: '#/components/schemas/CartPostCustomItemItems'
      title: cart_PostCustomItem
    CartCreatePostDataGiftCertificatesItemsTheme:
      type: string
      enum:
        - Birthday
        - Boy
        - Celebration
        - Christmas
        - General
        - Girl
      description: The theme of the gift certificate.
      title: CartCreatePostDataGiftCertificatesItemsTheme
    CartCreatePostDataGiftCertificatesItemsSender:
      type: object
      properties:
        name:
          type: string
        email:
          type: string
      title: CartCreatePostDataGiftCertificatesItemsSender
    CartCreatePostDataGiftCertificatesItemsRecipient:
      type: object
      properties:
        name:
          type: string
        email:
          type: string
      title: CartCreatePostDataGiftCertificatesItemsRecipient
    CartCreatePostDataGiftCertificatesItems:
      type: object
      properties:
        name:
          type: string
          description: Given name for the gift certificate line item.
        theme:
          $ref: '#/components/schemas/CartCreatePostDataGiftCertificatesItemsTheme'
          description: The theme of the gift certificate.
        amount:
          type: number
          format: double
        quantity:
          type: integer
        sender:
          $ref: '#/components/schemas/CartCreatePostDataGiftCertificatesItemsSender'
        recipient:
          $ref: '#/components/schemas/CartCreatePostDataGiftCertificatesItemsRecipient'
        message:
          type: string
          description: Message shown to recipient, as provided by sender.
      required:
        - name
        - theme
        - amount
        - quantity
        - sender
        - recipient
      title: CartCreatePostDataGiftCertificatesItems
    CartCreatePostDataCurrency:
      type: object
      properties:
        code:
          type: string
          format: ISO-4217
          description: >-
            The [transactional currency](/developer/api-reference/rest/admin/management/currencies#definitions) code for
            the cart, formatted as an [ISO-4217](https://www.iso.org/iso-4217-currency-codes.html) string. This code is
            required when multi-currency is enabled. Passing a non-transactional display currency will result in a `400`
            error.
      title: CartCreatePostDataCurrency
    CartCreatePostData:
      type: object
      properties:
        customer_id:
          type: integer
        line_items:
          type: array
          items:
            $ref: '#/components/schemas/CartCreatePostDataLineItemsItems'
        custom_items:
          $ref: '#/components/schemas/cart_PostCustomItem'
        gift_certificates:
          type: array
          items:
            $ref: '#/components/schemas/CartCreatePostDataGiftCertificatesItems'
        channel_id:
          type: integer
          description: The Channel ID. If no channel is specified, defaults to 1.
        currency:
          $ref: '#/components/schemas/CartCreatePostDataCurrency'
        locale:
          type: string
          format: ISO-639
          description: >-
            The locale of the cart. Accepts strings of format `xx` or `xx-YY`. Uses the [ISO-639
            standard](https://www.iso.org/iso-639-language-codes.html) format.
      title: CartCreatePostData
    CartFullCurrency:
      type: object
      properties:
        code:
          type: string
          format: ISO-4217
          description: >-
            The [transactional currency](/developer/api-reference/rest/admin/management/currencies#definitions) code for
            the cart, formatted as an [ISO-4217](https://www.iso.org/iso-4217-currency-codes.html) string.
      description: The currency. This is the same for both the cart and its subsequent checkout.
      title: CartFullCurrency
    AppliedCouponCouponType:
      type: string
      enum:
        - '0'
        - '1'
        - '2'
        - '3'
        - '4'
        - '5'
      description: |-
        Key name to identify the type of coupon.

        type 0: per_item_discount
        type 1: percentage_discount
        type 2: per_total_discount
        type 3: shipping_discount
        type 4: free_shipping
        type 5: promotion
      title: AppliedCouponCouponType
    AppliedCoupon:
      type: object
      properties:
        code:
          type: string
          description: The coupon code.
        id:
          type: string
          description: The coupon ID. (read-only)
        coupon_type:
          $ref: '#/components/schemas/AppliedCouponCouponType'
          description: |-
            Key name to identify the type of coupon.

            type 0: per_item_discount
            type 1: percentage_discount
            type 2: per_total_discount
            type 3: shipping_discount
            type 4: free_shipping
            type 5: promotion
        discounted_amount:
          type: number
          format: double
          description: The discounted amount applied within a given context.
        display_name:
          type: string
          description: Display name of the coupon.
      required:
        - code
      description: |-
        |Type `int`|Type Name|
        |-|-|
        |`0`|`per_item_discount`|
        |`1`|`percentage_discount`|
        |`2`|`per_total_discount`|
        |`3`|`shipping_discount`|
        |`4`|`free_shipping`|
        |`5`|`promotion`|
      title: AppliedCoupon
    CartFullDiscountsItems:
      type: object
      properties:
        id:
          type: string
          description: ID of the applied discount.
        discounted_amount:
          type: number
          format: double
          description: The discounted amount.
      description: |-
        Example as part of a cart response:

        ```
          "discounts": [
            {
              "id": 2,
              "discounted_amount": 2
            },
            {
              "id": "coupon",
              "discounted_amount": 0.42
            }
          ]
        ```
      title: CartFullDiscountsItems
    ItemPhysicalGetDiscountsItemsId:
      oneOf:
        - type: string
        - type: number
          format: double
      title: ItemPhysicalGetDiscountsItemsId
    ItemPhysicalGetDiscountsItems:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/ItemPhysicalGetDiscountsItemsId'
        discounted_amount:
          type: number
          format: double
          description: The discounted amount.
      description: |-
        Example as part of a cart response:

        ```
          "discounts": [
            {
              "id": 2,
              "discounted_amount": 2
            },
            {
              "id": "coupon",
              "discounted_amount": 0.42
            }
          ]
        ```
      title: ItemPhysicalGetDiscountsItems
    ItemPhysicalGetCouponsOneOf1ItemsDiscountType:
      type: string
      enum:
        - '0'
        - '1'
        - '2'
        - '3'
        - '4'
      description: |-
        The discount type.
        - type 0: per_item_discount
        - type 1: percentage_discount
        - type 2: per_total_discount
        - type 3: shipping_discount
        - type 4: free_shipping
      title: ItemPhysicalGetCouponsOneOf1ItemsDiscountType
    ItemPhysicalGetCouponsOneOf1Items:
      type: object
      properties:
        id:
          type: integer
          description: ID of the coupon.
        code:
          type: string
          description: The coupon code. Required in a /POST request.
        name:
          type: string
          description: Name given to the coupon in the control panel.
        discountType:
          $ref: '#/components/schemas/ItemPhysicalGetCouponsOneOf1ItemsDiscountType'
          description: |-
            The discount type.
            - type 0: per_item_discount
            - type 1: percentage_discount
            - type 2: per_total_discount
            - type 3: shipping_discount
            - type 4: free_shipping
        discountAmount:
          type: integer
          description: The amount of the discount based on the coupon. For example, 3 percent off will show a 3.
        expiresDate:
          type: integer
          description: Returns 0 if no expiration date has been set.
        totalDiscount:
          type: number
          format: double
          description: The total amount of all discounts applied to the cart.
      required:
        - code
      title: ItemPhysicalGetCouponsOneOf1Items
    ItemPhysicalGetCoupons1:
      type: array
      items:
        $ref: '#/components/schemas/ItemPhysicalGetCouponsOneOf1Items'
      title: ItemPhysicalGetCoupons1
    ItemPhysicalGetCoupons:
      oneOf:
        - type: number
          format: double
        - $ref: '#/components/schemas/ItemPhysicalGetCoupons1'
      title: ItemPhysicalGetCoupons
    ItemPhysicalGetGiftWrapping:
      type: object
      properties:
        name:
          type: string
        message:
          type: string
        amount:
          type: string
          title: float
      description: The gift wrapping details for this item.
      title: ItemPhysicalGetGiftWrapping
    ItemPhysicalGet:
      type: object
      properties:
        id:
          type: string
          description: The line-item ID.
        parent_id:
          type: string
          description: Bundled items will have the ID of their parent item.
        variant_id:
          type: number
          format: double
          description: The ID of the variant. Required in the /PUT or /POST request if the product has variants.
        product_id:
          type: number
          format: double
          description: The ID of the product. Required in a /POST request.
        sku:
          type: string
          description: SKU of the variant.
        name:
          type: string
          description: The item’s product name.
        url:
          type: string
          format: uri
          description: The product URL.
        quantity:
          type: number
          format: double
          description: Quantity of this item in the cart.
        taxable:
          type: boolean
          description: Boolean value that specifies whether the item is taxable.
        image_url:
          type: string
          format: uri
          description: Image of the product or variant.
        discounts:
          type: array
          items:
            $ref: '#/components/schemas/ItemPhysicalGetDiscountsItems'
        coupons:
          $ref: '#/components/schemas/ItemPhysicalGetCoupons'
        discount_amount:
          type: number
          format: double
          description: The total value of all discounts applied to this item. This includes coupons and cart-level discounts.
        coupon_amount:
          type: number
          format: double
          description: The total value of all coupons applied to this item.
        original_price:
          type: number
          format: double
          description: An item’s original price is the same as the product default price in the admin panel.
        list_price:
          type: number
          format: double
          description: >-
            The net item price before discounts and coupons are applied. BigCommerce derives an item’s list price from
            the product default price or, if applicable, the sale price configured in the admin panel. To enable v3
            promotions at the product level, you must update the
            [promotion](https://support.bigcommerce.com/s/article/Store-Settings?language=en_US#promotion) settings in
            the control panel.
        sale_price:
          type: number
          format: double
          description: Price of the item after all discounts are applied. (The final price before tax calculation.)
        extended_list_price:
          type: number
          format: double
          description: List price of the item multiplied by the quantity.
        extended_sale_price:
          type: number
          format: double
          description: Sale price of the item multiplied by the quantity.
        is_require_shipping:
          type: boolean
          description: Whether or not a physical product requires shipping.
        is_mutable:
          type: boolean
          description: >-
            Whether or not you can change or remove the item from the cart. Items that are immutable include those added
            automatically by promotions.
        added_by_promotion:
          type: boolean
          description: Whether or not a promotion added an additional item.
        is_custom_price:
          type: boolean
          description: Whether or not the item's price was overridden with a custom value using the `list_price` field.
        gift_wrapping:
          $ref: '#/components/schemas/ItemPhysicalGetGiftWrapping'
          description: The gift wrapping details for this item.
      required:
        - variant_id
        - product_id
        - quantity
      title: ItemPhysicalGet
    ItemDigitalGetDiscountsItemsId:
      oneOf:
        - type: string
        - type: number
          format: double
      title: ItemDigitalGetDiscountsItemsId
    ItemDigitalGetDiscountsItems:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/ItemDigitalGetDiscountsItemsId'
        discounted_amount:
          type: number
          format: double
          description: The discounted amount.
      description: |-
        Example as part of a cart response:

        ```
          "discounts": [
            {
              "id": 2,
              "discounted_amount": 2
            },
            {
              "id": "coupon",
              "discounted_amount": 0.42
            }
          ]
        ```
      title: ItemDigitalGetDiscountsItems
    ItemDigitalGetCouponsOneOf1ItemsDiscountType:
      type: string
      enum:
        - '0'
        - '1'
        - '2'
        - '3'
        - '4'
      description: |
        The discount type.
        - type 0: per_item_discount
        - type 1: percentage_discount
        - type 2: per_total_discount
        - type 3: shipping_discount
        - type 4: free_shipping
      title: ItemDigitalGetCouponsOneOf1ItemsDiscountType
    ItemDigitalGetCouponsOneOf1Items:
      type: object
      properties:
        id:
          type: integer
          description: ID of the coupon.
        code:
          type: string
          description: The coupon code. Required in a /POST request.
        name:
          type: string
          description: Name given to the coupon in the control panel.
        discountType:
          $ref: '#/components/schemas/ItemDigitalGetCouponsOneOf1ItemsDiscountType'
          description: |
            The discount type.
            - type 0: per_item_discount
            - type 1: percentage_discount
            - type 2: per_total_discount
            - type 3: shipping_discount
            - type 4: free_shipping
        discountAmount:
          type: integer
          description: The amount of the discount based on the coupon. For example, 3 percent off will show a 3.
        expiresDate:
          type: integer
          description: Returns 0 if no expiration date has been set.
        totalDiscount:
          type: number
          format: double
          description: The total amount of all discounts applied to the cart.
      required:
        - code
      title: ItemDigitalGetCouponsOneOf1Items
    ItemDigitalGetCoupons1:
      type: array
      items:
        $ref: '#/components/schemas/ItemDigitalGetCouponsOneOf1Items'
      title: ItemDigitalGetCoupons1
    ItemDigitalGetCoupons:
      oneOf:
        - type: number
          format: double
        - $ref: '#/components/schemas/ItemDigitalGetCoupons1'
      title: ItemDigitalGetCoupons
    ItemDigitalGet:
      type: object
      properties:
        id:
          type: string
          description: The line-item ID.
        parent_id:
          type: string
          description: Bundled items will have the ID of their parent item.
        variant_id:
          type: number
          format: double
          description: The ID of the variant. Required in the /PUT or /POST request if the product has variants.
        product_id:
          type: number
          format: double
          description: The ID of the product. Required in a /POST request.
        sku:
          type: string
          description: SKU of the variant.
        name:
          type: string
          description: The item’s product name.
        url:
          type: string
          format: uri
          description: The product URL.
        quantity:
          type: number
          format: double
          description: Quantity of this item in the cart.
        taxable:
          type: boolean
          description: Boolean value that specifies whether the item is taxable.
        image_url:
          type: string
          format: uri
          description: Image of the product or variant.
        discounts:
          type: array
          items:
            $ref: '#/components/schemas/ItemDigitalGetDiscountsItems'
        coupons:
          $ref: '#/components/schemas/ItemDigitalGetCoupons'
        discount_amount:
          type: number
          format: double
          description: The total value of all discounts applied to this item. This includes coupons and cart-level discounts.
        coupon_amount:
          type: number
          format: double
          description: The total value of all coupons applied to this item.
        original_price:
          type: number
          format: double
          description: An item’s original price is the same as the product default price in the admin panel.
        list_price:
          type: number
          format: double
          description: >-
            The net item price before discounts and coupons. BigCommerce derives an item’s list price from the product
            default price or, if applicable, the sale price configured in the admin panel.
        sale_price:
          type: number
          format: double
          description: Item’s price after all discounts are applied. (The final price before tax calculation.)
        extended_list_price:
          type: number
          format: double
          description: List price of the item multiplied by the quantity.
        extended_sale_price:
          type: number
          format: double
          description: Sale price of the item multiplied by the quantity.
        is_require_shipping:
          type: boolean
          description: Whether or not a physical product requires shipping.
        is_mutable:
          type: boolean
          description: >-
            Whether or not you can change or remove the item from the cart. Items that are immutable include those added
            automatically by promotions.
        added_by_promotion:
          type: boolean
          description: Whether or not a promotion added an additional item.
        is_custom_price:
          type: boolean
          description: Whether or not the item's price was overridden with a custom value using the `list_price` field.
        download_file_urls:
          type: array
          items:
            type: string
            format: url
          description: URLs to download all product files.
        download_page_url:
          type: string
          format: url
          description: The URL for the combined downloads page.
        download_size:
          type: string
          description: Specifies the combined download size of all files in human-readable style; for example, `30MB`.
      title: ItemDigitalGet
    ItemGiftCertificateGetSender:
      type: object
      properties:
        name:
          type: string
        email:
          type: string
      title: ItemGiftCertificateGetSender
    ItemGiftCertificateGetRecipient:
      type: object
      properties:
        name:
          type: string
        email:
          type: string
      title: ItemGiftCertificateGetRecipient
    ItemGiftCertificateGet:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
          description: Name provided for the gift certificate that will appear in the control panel.
        theme:
          type: string
          description: >-
            The theme of the gift certificate. The following options are available:`Birthday`, `Boy`, `Celebration`,
            `Christmas`, `General`, and `Girl`.
        amount:
          type: number
          format: double
          description: Value must be between 1.00 and 1,000.00 in the store’s default currency.
        taxable:
          type: boolean
        sender:
          $ref: '#/components/schemas/ItemGiftCertificateGetSender'
        recipient:
          $ref: '#/components/schemas/ItemGiftCertificateGetRecipient'
        message:
          type: string
          description: The message included in the gift certificate is limited to 200 characters.
      title: ItemGiftCertificateGet
    ItemCustomGet:
      type: object
      properties:
        id:
          type: string
          description: ID of the custom item.
        sku:
          type: string
          description: SKU of the custom item.
        name:
          type: string
          description: Name of the item.
        quantity:
          type: string
        list_price:
          type: string
          description: Specifies the price of the item. This value can include or exclude tax, depending on the store setup.
        extended_list_price:
          type: number
          format: double
          description: List price of the item multiplied by the quantity.
        image_url:
          type: string
          format: uri
          description: >-
            Not rendered on the storefront. Although the API accepts and returns this field for custom items, the image
            does not display in the cart or at checkout.
      description: |-
        Add a custom item to the shopperʼs cart.

        * Custom items are not added to the catalog.
        * The price should be set to match the store settings for taxes.
        * Images are not supported for custom items. The `image_url` field is not rendered on the storefront.
      title: ItemCustomGet
    LineItemsGet:
      type: object
      properties:
        physical_items:
          type: array
          items:
            $ref: '#/components/schemas/ItemPhysicalGet'
        digital_items:
          type: array
          items:
            $ref: '#/components/schemas/ItemDigitalGet'
        gift_certificates:
          type: array
          items:
            $ref: '#/components/schemas/ItemGiftCertificateGet'
        custom_items:
          type: array
          items:
            $ref: '#/components/schemas/ItemCustomGet'
      description: '`GET`'
      title: LineItemsGet
    CartFullPromotionsBanners:
      type: object
      properties:
        id:
          type: string
          description: ID of the promotion.
        type:
          type: string
          description: Type of the banner.
        page:
          type: array
          items:
            type: string
          description: An array of the locations where the banner will display.
        text:
          type: string
          description: Text of the banner.
      title: CartFullPromotionsBanners
    CartFullPromotions:
      type: object
      properties:
        banners:
          $ref: '#/components/schemas/CartFullPromotionsBanners'
      description: This is available only when "include=promotions.banners" is presented in the URL.
      title: CartFullPromotions
    Cart_Full:
      type: object
      properties:
        id:
          type: string
          format: UUID
          description: Cart ID, provided after creating a cart with a POST request.
        customer_id:
          type: integer
          description: ID of the customer to which the cart belongs.
        channel_id:
          type: integer
          description: The channel ID. If no channel is specified, defaults to 1.
        email:
          type: string
          description: The cart’s email. This is the same email that is used in the billing address.
        currency:
          $ref: '#/components/schemas/CartFullCurrency'
          description: The currency. This is the same for both the cart and its subsequent checkout.
        tax_included:
          type: boolean
        base_amount:
          type: number
          format: double
          description: Sum of cart line-item amounts before cart-level discounts, coupons, or taxes.
        discount_amount:
          type: number
          format: double
          description: Order-based discounted amount only - Excludes coupon discounts and product-based discounts.
        manual_discount_amount:
          type: number
          format: double
          description: The entered value represents the order level manual discount.
        cart_amount:
          type: number
          format: double
          description: >-
            Sum of cart line-item amounts minus cart-level discounts and coupons. This amount includes taxes (where
            applicable).
        coupons:
          type: array
          items:
            $ref: '#/components/schemas/AppliedCoupon'
        discounts:
          type: array
          items:
            $ref: '#/components/schemas/CartFullDiscountsItems'
        line_items:
          $ref: '#/components/schemas/LineItemsGet'
        created_time:
          type: string
          format: ISO-8601
          description: Time when the cart was created.
        updated_time:
          type: string
          format: ISO-8601
          description: Time when the cart was last updated.
        locale:
          type: string
          format: ISO-639
          description: >-
            Locale of the cart. Accepts strings of format `xx` or `xx-YY`. Uses the [ISO-639
            standard](https://www.iso.org/iso-639-language-codes.html) format.
        promotions:
          $ref: '#/components/schemas/CartFullPromotions'
          description: This is available only when "include=promotions.banners" is presented in the URL.
        version:
          type: integer
          description: >-
            The current version of the cart increments with each successful update. You can use it to enable optimistic
            concurrency control for subsequent updates.
      description: A cart contains a collection of items, prices, discounts, etc. It does not contain customer-related data.
      title: Cart_Full
    metaCollection_open:
      type: object
      properties: {}
      description: Response metadata.
      title: metaCollection_open
    Carts (Single)_createCart_Response_201:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Cart_Full'
        meta:
          $ref: '#/components/schemas/metaCollection_open'
      title: Carts (Single)_createCart_Response_201
    CartsCartIdGetParametersIncludeSchemaItems:
      type: string
      enum:
        - redirect_urls
        - line_items.physical_items.options
        - line_items.digital_items.options
        - promotions.banners
      title: CartsCartIdGetParametersIncludeSchemaItems
    Carts (Single)_getCart_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Cart_Full'
        meta:
          $ref: '#/components/schemas/metaCollection_open'
      title: Carts (Single)_getCart_Response_200
    CartsCartIdPutParametersIncludeSchemaItems:
      type: string
      enum:
        - redirect_urls
        - line_items.physical_items.options
        - line_items.digital_items.options
        - promotions.banners
      title: CartsCartIdPutParametersIncludeSchemaItems
    CartUpdatePutRequestData:
      type: object
      properties:
        customer_id:
          type: integer
        version:
          type: integer
          description: >-
            The cart version that you expect to apply the updates. If the provided version doesn't match the current
            cart version, you will receive a conflict error. This field is optional; if not provided, optimistic
            concurrency control will not apply.
      title: CartUpdatePutRequestData
    Carts (Single)_updateCart_Response_201:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Cart_Full'
        meta:
          $ref: '#/components/schemas/metaCollection_open'
      title: Carts (Single)_updateCart_Response_201
    ErrorResponseErrors:
      type: object
      properties: {}
      title: ErrorResponseErrors
    ErrorResponse:
      type: object
      properties:
        status:
          type: integer
        title:
          type: string
        type:
          type: string
        instance:
          type: string
        errors:
          $ref: '#/components/schemas/ErrorResponseErrors'
      title: ErrorResponse
    CartsCartIdItemsPostParametersIncludeSchemaItems:
      type: string
      enum:
        - redirect_urls
        - line_items.physical_items.options
        - line_items.digital_items.options
        - promotions.banners
      title: CartsCartIdItemsPostParametersIncludeSchemaItems
    CartLineItemUpdatePostLineItems0:
      type: array
      items:
        $ref: '#/components/schemas/cart_PostVariant'
      title: CartLineItemUpdatePostLineItems0
    CartLineItemUpdatePostLineItems1:
      type: array
      items:
        $ref: '#/components/schemas/cart_PostModifier'
      title: CartLineItemUpdatePostLineItems1
    CartLineItemUpdatePostLineItems:
      oneOf:
        - $ref: '#/components/schemas/CartLineItemUpdatePostLineItems0'
        - $ref: '#/components/schemas/CartLineItemUpdatePostLineItems1'
      title: CartLineItemUpdatePostLineItems
    CartLineItemUpdatePostGiftCertificatesItemsTheme:
      type: string
      enum:
        - Birthday
        - Boy
        - Celebration
        - Christmas
        - General
        - Girl
      description: The theme of the gift certificate.
      title: CartLineItemUpdatePostGiftCertificatesItemsTheme
    CartLineItemUpdatePostGiftCertificatesItemsSender:
      type: object
      properties:
        name:
          type: string
        email:
          type: string
      title: CartLineItemUpdatePostGiftCertificatesItemsSender
    CartLineItemUpdatePostGiftCertificatesItemsRecipient:
      type: object
      properties:
        name:
          type: string
        email:
          type: string
      title: CartLineItemUpdatePostGiftCertificatesItemsRecipient
    CartLineItemUpdatePostGiftCertificatesItems:
      type: object
      properties:
        name:
          type: string
          description: Given name for gift certificate line item.
        theme:
          $ref: '#/components/schemas/CartLineItemUpdatePostGiftCertificatesItemsTheme'
          description: The theme of the gift certificate.
        amount:
          type: number
          format: double
        quantity:
          type: integer
        sender:
          $ref: '#/components/schemas/CartLineItemUpdatePostGiftCertificatesItemsSender'
        recipient:
          $ref: '#/components/schemas/CartLineItemUpdatePostGiftCertificatesItemsRecipient'
        message:
          type: string
          description: Message shown to recipient, as provided by sender.
      required:
        - name
        - theme
        - amount
        - quantity
        - sender
        - recipient
      title: CartLineItemUpdatePostGiftCertificatesItems
    Cart_Line_Item_Update_Post:
      type: object
      properties:
        line_items:
          $ref: '#/components/schemas/CartLineItemUpdatePostLineItems'
        gift_certificates:
          type: array
          items:
            $ref: '#/components/schemas/CartLineItemUpdatePostGiftCertificatesItems'
        custom_items:
          $ref: '#/components/schemas/cart_PostCustomItem'
        version:
          type: integer
          description: >-
            The cart version that you expect to apply the updates. If the provided version doesn't match the current
            cart version, you will receive a conflict error. This field is optional; if not provided, optimistic
            concurrency control will not apply.
      title: Cart_Line_Item_Update_Post
    Items_addCartLineItems_Response_201:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Cart_Full'
        meta:
          $ref: '#/components/schemas/metaCollection_open'
      title: Items_addCartLineItems_Response_201
    CartsCartIdItemsItemIdPutParametersIncludeSchemaItems:
      type: string
      enum:
        - redirect_urls
        - line_items.physical_items.options
        - line_items.digital_items.options
        - promotions.banners
      title: CartsCartIdItemsItemIdPutParametersIncludeSchemaItems
    CartLineItemUpdatePutLineItem:
      oneOf:
        - $ref: '#/components/schemas/cart_PostVariant'
        - $ref: '#/components/schemas/cart_PostModifier'
      title: CartLineItemUpdatePutLineItem
    CartLineItemUpdatePutGiftCertificatesItemsTheme:
      type: string
      enum:
        - Birthday
        - Boy
        - Celebration
        - Christmas
        - General
        - Girl
      description: The theme of the gift certificate.
      title: CartLineItemUpdatePutGiftCertificatesItemsTheme
    CartLineItemUpdatePutGiftCertificatesItemsSender:
      type: object
      properties:
        name:
          type: string
        email:
          type: string
      title: CartLineItemUpdatePutGiftCertificatesItemsSender
    CartLineItemUpdatePutGiftCertificatesItemsRecipient:
      type: object
      properties:
        name:
          type: string
        email:
          type: string
      title: CartLineItemUpdatePutGiftCertificatesItemsRecipient
    CartLineItemUpdatePutGiftCertificatesItems:
      type: object
      properties:
        name:
          type: string
          description: Given name for a gift certificate line item.
        theme:
          $ref: '#/components/schemas/CartLineItemUpdatePutGiftCertificatesItemsTheme'
          description: The theme of the gift certificate.
        amount:
          type: number
          format: double
        quantity:
          type: integer
        sender:
          $ref: '#/components/schemas/CartLineItemUpdatePutGiftCertificatesItemsSender'
        recipient:
          $ref: '#/components/schemas/CartLineItemUpdatePutGiftCertificatesItemsRecipient'
        message:
          type: string
          description: Message shown to recipient, as provided by sender.
      required:
        - name
        - theme
        - amount
        - quantity
        - sender
        - recipient
      title: CartLineItemUpdatePutGiftCertificatesItems
    Cart_Line_Item_Update_Put:
      type: object
      properties:
        line_item:
          $ref: '#/components/schemas/CartLineItemUpdatePutLineItem'
        gift_certificates:
          type: array
          items:
            $ref: '#/components/schemas/CartLineItemUpdatePutGiftCertificatesItems'
        custom_items:
          $ref: '#/components/schemas/cart_PostCustomItem'
        version:
          type: integer
          description: >-
            The cart version that you expect to apply the updates. If the provided version doesn't match the current
            cart version, you will receive a conflict error. This field is optional; if not provided, optimistic
            concurrency control will not apply.
      title: Cart_Line_Item_Update_Put
    Items_updateCartLineItem_Response_200:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Cart_Full'
        meta:
          $ref: '#/components/schemas/metaCollection_open'
      title: Items_updateCartLineItem_Response_200
    CartsCartIdItemsItemIdDeleteParametersIncludeSchemaItems:
      type: string
      enum:
        - redirect_urls
        - line_items.physical_items.options
        - line_items.digital_items.options
        - promotions.banners
      title: CartsCartIdItemsItemIdDeleteParametersIncludeSchemaItems
    CartLineItemDelete:
      type: object
      properties:
        version:
          type: integer
          description: >-
            The cart version that you expect to apply the updates. If the provided version doesn't match the current
            cart version, you will receive a conflict error. This field is optional; if not provided, optimistic
            concurrency control will not apply.
      title: CartLineItemDelete
    CartsCartIdMetafieldsGetParametersDirection:
      type: string
      enum:
        - asc
        - desc
      title: CartsCartIdMetafieldsGetParametersDirection
    MetafieldResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Metafield'
      description: |
        Response payload for the BigCommerce API.
      title: MetafieldResponse
    MetafieldBasePostPermissionSet:
      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: MetafieldBasePostPermissionSet
    MetafieldBase_Post:
      type: object
      properties:
        permission_set:
          $ref: '#/components/schemas/MetafieldBasePostPermissionSet'
          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.
      required:
        - permission_set
        - namespace
        - key
        - value
      description: |
        Common Metafield properties.
      title: MetafieldBase_Post
    MetaFieldCollectionResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Metafield'
        meta:
          $ref: '#/components/schemas/metaCollection_open'
      description: |
        Response payload for the BigCommerce API.
      title: MetaFieldCollectionResponse
    CreateCartMetafieldRequestBadRequestError:
      type: object
      properties:
        status:
          type: number
          format: double
        title:
          type: string
        type:
          type: string
        detail:
          type: string
      title: CreateCartMetafieldRequestBadRequestError
    CartsCartIdMetafieldsMetafieldIdGetParametersDirection:
      type: string
      enum:
        - asc
        - desc
      title: CartsCartIdMetafieldsMetafieldIdGetParametersDirection
    NotFound:
      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: NotFound
    UpdateCartMetafieldRequestBadRequestError:
      type: object
      properties:
        status:
          type: number
          format: double
        title:
          type: string
        type:
          type: string
        detail:
          type: string
      title: UpdateCartMetafieldRequestBadRequestError
    RedirectUrlsPostQueryParams:
      type: object
      properties:
        key:
          type: string
        value:
          type: string
      title: RedirectUrlsPostQueryParams
    Redirect_urls_Post:
      type: object
      properties:
        query_params:
          $ref: '#/components/schemas/RedirectUrlsPostQueryParams'
      title: Redirect_urls_Post
    CartsCartIdRedirectUrlsPostResponsesContentApplicationJsonSchemaData:
      type: object
      properties:
        cart_url:
          type: string
          format: url
        checkout_url:
          type: string
          format: Url
        embedded_checkout_url:
          type: string
          format: url
      title: CartsCartIdRedirectUrlsPostResponsesContentApplicationJsonSchemaData
    Redirects_createCartRedirectURL_Response_201:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CartsCartIdRedirectUrlsPostResponsesContentApplicationJsonSchemaData'
        meta:
          $ref: '#/components/schemas/metaCollection_open'
      title: Redirects_createCartRedirectURL_Response_201
    CartSettings:
      type: object
      properties:
        allow_purchasing:
          type: boolean
      description: Represents all settings related to the shopping cart functionality of a store.
      title: CartSettings
    GlobalCartSettingsResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CartSettings'
        meta:
          $ref: '#/components/schemas/metaCollection_open'
      description: The response object of cart settings at the global level.
      title: GlobalCartSettingsResponse
    GlobalCartSettingsRequest:
      type: object
      properties:
        allow_purchasing:
          type: boolean
      required:
        - allow_purchasing
      description: The request object for updating the cart settings of a store at the global level.
      title: GlobalCartSettingsRequest
    UpdateGlobalCartSettingsRequestBadRequestError:
      type: object
      properties:
        status:
          type: number
          format: double
        title:
          type: string
        type:
          type: string
        detail:
          type: string
      title: UpdateGlobalCartSettingsRequestBadRequestError
    ChannelCartSettings:
      type: object
      properties:
        allow_purchasing:
          type:
            - boolean
            - 'null'
      description: Represents all settings overrides related to the shopping cart functionality of a store for a channel.
      title: ChannelCartSettings
    ChannelCartSettingsResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ChannelCartSettings'
        meta:
          $ref: '#/components/schemas/metaCollection_open'
      description: The response object of cart settings overrides for a channel.
      title: ChannelCartSettingsResponse
    ChannelCartSettingsRequest:
      type: object
      properties:
        allow_purchasing:
          type:
            - boolean
            - 'null'
      description: The request object for updating the cart settings overrides of a store for a channel.
      title: ChannelCartSettingsRequest
    UpdateChannelCartSettingsRequestBadRequestError:
      type: object
      properties:
        status:
          type: number
          format: double
        title:
          type: string
        type:
          type: string
        detail:
          type: string
      title: UpdateChannelCartSettingsRequestBadRequestError
  securitySchemes:
    X-Auth-Token:
      type: apiKey
      in: header
      name: X-Auth-Token
      description: >-
        ### OAuth scopes


        | UI Name | Permission | Parameter |

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

        |Carts|modify|`store_cart`|

        |Carts |read-only|`store_cart_read_only`|

        |Information & Settings | modify | `store_v2_information`|

        |Information & Settings | read-only| `store_v2_information`|


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