openapi: 3.0.0
info:
  version: 2.0.0
  title: Medusa Storefront API
  license:
    name: MIT
    url: https://github.com/medusajs/medusa/blob/master/LICENSE
servers:
  - url: http://localhost:9000
  - url: https://api.medusajs.com
tags:
  - name: Auth
    description: |
      Auth API routes allow you to manage a customer's authentication.
  - name: Carts
    description: |
      A cart is a virtual shopping bag that customers can use to add items they want to purchase.

      A cart is then used to checkout and place an order.

      These API routes allow customers to create and manage their cart, and place an order.
    externalDocs:
      description: How to implement cart functionality in a storefront.
      url: https://docs.medusajs.com/resources/storefront-development/cart
    x-associatedSchema:
      $ref: '#/components/schemas/StoreCart'
  - name: Collections
    description: |
      A product collection organizes products into a collection for marketing purposes. For example, a summer collection.

      These API routes allow customers to browse collections and their products.
    externalDocs:
      description: How to list product collections in a storefront.
      url: https://docs.medusajs.com/resources/storefront-development/products/collections/list
    x-associatedSchema:
      $ref: '#/components/schemas/StoreCollection'
  - name: Currencies
    description: |
      A store has multiple currencies, and product prices can be different for each currency.

      When retrieving product variant prices, you specify either the ID of a region or a currency that the customer selected.

      These API routes allow customers to browse currencies.
    externalDocs:
      description: How to retrieve product variant prices in a storefront.
      url: https://docs.medusajs.com/resources/storefront-development/products/price
    x-associatedSchema:
      $ref: '#/components/schemas/StoreCurrency'
  - name: Customers
    description: |
      Customers can place orders as guest customers or register.

      When a customer registers, they can manage their profile, save addresses for later usage, and more.

      These API routes allow customers to create and manage their accounts.
    externalDocs:
      description: How to implement customer account functionalities in a storefront.
      url: https://docs.medusajs.com/resources/storefront-development/customers
    x-associatedSchema:
      $ref: '#/components/schemas/StoreCustomer'
  - name: Gift Cards
    description: |
      A gift card is a prepaid card that customers can use to purchase products in the store.
      Customers can purchase gift cards for themselves or others, and then use them to pay for their orders.
      These API routes allow logged-in customers to create and manage their gift cards.
      <Note>
      Gift Cards are only available for Cloud users using the [Loyalty Plugin](https://docs.medusajs.com/cloud/loyalty-plugin).
      </Note>
    x-associatedSchema:
      $ref: '#/components/schemas/StoreGiftCard'
  - name: Locales
    description: |
      A locale is a language that content is translated into for customers to view in a storefront.
      Medusa installs locales by default. These API routes allow you to retrieve supported locales in the store.
    externalDocs:
      description: Learn more about locales and translations.
      url: https://docs.medusajs.com/resources/commerce-modules/translation/concepts
    x-associatedSchema:
      $ref: '#/components/schemas/StoreLocale'
  - name: Orders
    description: |
      Guest and registered customers can view orders they placed.

      These API routes allow customers to view their orders.
    x-associatedSchema:
      $ref: '#/components/schemas/StoreOrder'
  - name: Payment Collections
    description: |
      A cart must have a payment collection with an authorized payment session.

      Use these API routes during checkout to set the cart's payment provider and authorize its payment session.
    externalDocs:
      description: How to implement payment during checkout.
      url: https://docs.medusajs.com/resources/storefront-development/checkout/payment
    x-associatedSchema:
      $ref: '#/components/schemas/StorePaymentCollection'
  - name: Payment Providers
    description: |
      Each region has a set of payment providers enabled.

      During checkout, you retrieve the available payment providers in the customer's region to show them to the customer. Customers then choose their preferred provider to authorize their payment and place their order.

      These API routes allow customers to view available payment providers in their region.
    externalDocs:
      description: How to implement payment during checkout.
      url: https://docs.medusajs.com/resources/storefront-development/checkout/payment
    x-associatedSchema:
      $ref: '#/components/schemas/StorePaymentProvider'
  - name: Product Categories
    description: |
      Products can be categorized into categories.

      These API routes allow customers to browse categories and their products.
    externalDocs:
      description: How to list product categories in a storefront.
      url: https://docs.medusajs.com/resources/storefront-development/products/categories/list
    x-associatedSchema:
      $ref: '#/components/schemas/StoreProductCategory'
  - name: Product Tags
    x-associatedSchema:
      $ref: '#/components/schemas/StoreProductTag'
  - name: Product Types
    x-associatedSchema:
      $ref: '#/components/schemas/StoreProductType'
  - name: Products
    description: |
      Customers browse products for their purchase.

      A product has variants for different option values. The customer chooses from these variants before adding it to the cart.

      These API routes allow customers to browse products.
    externalDocs:
      description: How to list products, get their prices, and more in a storefront.
      url: https://docs.medusajs.com/resources/storefront-development/products
    x-associatedSchema:
      $ref: '#/components/schemas/StoreProduct'
  - name: Regions
    description: |
      Regions are different countries or geographical regions that the commerce store serves customers in.

      Customers can choose what region they're in to view prices of that region's currency.

      Use these API routes to retrieve available regions in the store.
    externalDocs:
      description: How to retrieve and store selected region in a storefront.
      url: https://docs.medusajs.com/resources/storefront-development/regions
    x-associatedSchema:
      $ref: '#/components/schemas/StoreRegion'
  - name: Return Reasons
    description: |
      A return reason is a possible reason a customer wants to return an item.

      Use these API routes when implementing return creation flow in your storefront to allow customers to select their return reason.
    x-associatedSchema:
      $ref: '#/components/schemas/StoreReturnReason'
  - name: Returns
    description: |
      Customers can request to return items in their order. The admin user then receives and handles the return.

      These API routes allows customers to create a return.
    x-associatedSchema:
      $ref: '#/components/schemas/StoreReturn'
  - name: Shipping Options
    description: |
      A shipping option is a way of shipping an item to or from the customer.

      During the checkout flow, the customer selects their preferred shipping option to receive their order.

      These API routes allow customers to retrieve available shipping options for their context.
    externalDocs:
      description: How to implement shipping during checkout.
      url: https://docs.medusajs.com/resources/storefront-development/checkout/shipping
    x-associatedSchema:
      $ref: '#/components/schemas/StoreShippingOption'
  - name: Store Credit Accounts
    x-associatedSchema:
      description: |
        A store credit account is a way for customers to manage their store credit balance. Customers can use their store credit to pay for orders, and view their store credit balance.
        These API routes allow customers to view their store credit accounts.
        <Note>
        Store Credit Accounts are only available for Cloud users using the [Loyalty Plugin](https://docs.medusajs.com/cloud/loyalty-plugin).
        </Note>
      $ref: '#/components/schemas/StoreStoreCreditAccount'
paths:
  /auth/customer/{auth_provider}:
    post:
      operationId: PostActor_typeAuth_provider
      summary: Authenticate Customer
      description: |
        Authenticate a customer and receive the JWT token to be used in the header of subsequent requests.

        When used with a third-party provider, such as Google, the request returns a `location` property. You redirect to the specified URL in your storefront to continue authentication with the third-party service.
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/customers/login#1-using-a-jwt-token
        description: 'Storefront development: How to login as a customer'
      x-authenticated: false
      parameters:
        - name: auth_provider
          in: path
          description: The provider used for authentication.
          required: true
          schema:
            type: string
            example: emailpass
      requestBody:
        content:
          application/json:
            schema:
              type: object
              title: input
              description: |
                The input data necessary for authentication. 
                For example, for email-pass authentication, pass `email` and `password` properties. 
                For the Google and GitHub authentication providers, you can pass `callback_url` to indicate the URL in the frontend that the customer should be redirected to after completing their authentication. This will override the provider's `callbackUrl` configurations in `medusa-config.ts`.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            const result = await sdk.auth.login(
              "customer",
              "emailpass",
              {
                email: "customer@gmail.com",
                password: "supersecret"
              }
            )

            if (typeof result !== "string") {
              alert("Authentication requires additional steps")
              // replace with the redirect logic of your application
              window.location.href = result.location
              return
            }

            // customer is now authenticated
            // all subsequent requests will use the token in the header
            const { customer } = await sdk.store.customer.retrieve()
        - lang: Bash
          label: Google Provider
          source: curl -X POST '{backend_url}/auth/customer/google'
      tags:
        - Auth
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/AuthResponse'
                  - $ref: '#/components/schemas/AuthCallbackResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /auth/customer/{auth_provider}/callback:
    post:
      operationId: PostActor_typeAuth_providerCallback
      summary: Validate Authentication Callback
      description: |
        This API route is used by your storefront or frontend application when a third-party provider redirects to it after authentication. It validates the authentication with the third-party provider and, if successful, returns an authentication token. All query parameters received from the third-party provider, such as `code`, `state`, and `error`, must be passed as query parameters to this route.
        You can decode the JWT token using libraries like [react-jwt](https://www.npmjs.com/package/react-jwt) in the storefront. If the decoded data doesn't  have an `actor_id` property, then you must register the customer using the Create Customer API route passing the token in the request's Authorization header.
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/customers/third-party-login
        description: 'Storefront development: Implement third-party (social) login.'
      x-authenticated: false
      parameters:
        - name: auth_provider
          in: path
          description: The provider used for authentication.
          required: true
          schema:
            type: string
            example: google
      x-codeSamples:
        - lang: JavaScript
          label: Google Provider
          source: |-
            import Medusa from "@medusajs/js-sdk"
            import { decodeToken } from "react-jwt"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            const token = await sdk.auth.callback(
              "customer",
              "google",
              {
                code: "123",
                state: "456"
              }
            )
            // all subsequent requests will use the token in the header

            const decodedToken = decodeToken(token) as { actor_id: string, user_metadata: Record<string, unknown> }

            const shouldCreateCustomer = decodedToken.actor_id === ""

            if (shouldCreateCustomer) {
              const { customer } = await sdk.store.customer.create({
                email: decodedToken.user_metadata.email as string,
              })

              // refresh auth token
              await sdk.auth.refresh()
              // all subsequent requests will use the new token in the header
            } else {
              // Customer already exists and is authenticated
            }
        - lang: TypeScript
          label: GitHub Provider
          source: |-
            import Medusa from "@medusajs/js-sdk"
            import { decodeToken } from "react-jwt"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            const token = await sdk.auth.callback(
              "customer",
              "github",
              {
                code: "123",
                state: "456"
              }
            )
            // all subsequent requests will use the token in the header

            const decodedToken = decodeToken(token) as { actor_id: string, user_metadata: Record<string, unknown> }

            const shouldCreateCustomer = decodedToken.actor_id === ""

            if (shouldCreateCustomer) {
              const { customer } = await sdk.store.customer.create({
                email: decodedToken.user_metadata.email as string,
              })

              // refresh auth token
              await sdk.auth.refresh()
              // all subsequent requests will use the new token in the header
            } else {
              // Customer already exists and is authenticated
            }
      tags:
        - Auth
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /auth/customer/{auth_provider}/register:
    post:
      operationId: PostActor_typeAuth_provider_register
      summary: Retrieve Registration JWT Token
      description: This API route retrieves a registration JWT token of a customer that hasn't been registered yet. The token is used in the header of requests that create a customer.
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/customers/register
        description: 'Storefront development: How to register a customer'
      x-authenticated: false
      parameters:
        - name: auth_provider
          in: path
          description: The provider used for authentication.
          required: true
          schema:
            type: string
            example: emailpass
      requestBody:
        content:
          application/json:
            schema:
              type: object
              title: input
              description: The input data necessary for authentication. For example, for email-pass authentication, pass `email` and `password` properties.
              example:
                email: customer@gmail.com
                password: supersecret
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            await sdk.auth.register(
              "customer",
              "emailpass",
              {
                email: "customer@gmail.com",
                password: "supersecret"
              }
            )

            // all subsequent requests will use the token in the header
            const { customer } = await sdk.store.customer.create({
              email: "customer@gmail.com",
              password: "supersecret"
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/auth/customer/emailpass/register' \
            -H 'Content-Type: application/json' \
            --data-raw '{
              "email": "customer@gmail.com",
              "password": "supersecret"
            }'
      tags:
        - Auth
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /auth/customer/{auth_provider}/reset-password:
    post:
      operationId: PostActor_typeAuth_providerResetPassword
      summary: Generate Reset Password Token for Customer
      x-sidebar-summary: Generate Reset Password Token
      description: |
        Generate a reset password token for a customer. This API route doesn't reset the customer password or send them the reset instructions in a notification.

        Instead, This API route emits the `auth.password_reset` event, passing it the token as a payload. You can listen to that event in a subscriber as explained in [this guide](https://docs.medusajs.com/resources/commerce-modules/auth/reset-password), then send the customer a notification. The notification is sent using a [Notification Module Provider](https://docs.medusajs.com/resources/infrastructure-modules/notification), and it should have a URL that accepts a `token` query parameter, allowing the customer to reset their password from the storefront.


         Use the generated token to update the customer's password using the [Reset Password API route](https://docs.medusajs.com/api/store#auth_postactor_typeauth_providerupdate).
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/customers/reset-password#1-request-reset-password-page
        description: 'Storefront development: How to create the request reset password page.'
      x-authenticated: false
      parameters:
        - name: auth_provider
          in: path
          description: The provider used for authentication.
          required: true
          schema:
            type: string
            example: emailpass
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: The input data necessary to generate a reset password token.
              required:
                - identifier
              properties:
                identifier:
                  type: string
                  description: The customer's identifier for the selected auth provider. For example, for the `emailpass` auth provider, the value is the customer's email.
                  example: customer@gmail.com
                metadata:
                  type: object
                  description: Optional metadata to include with the reset password token generation request.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.auth.resetPassword(
              "customer",
              "emailpass",
              {
                identifier: "customer@gmail.com"
              }
            )
            .then(() => {
              // user receives token
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/auth/customer/emailpass/reset-password' \
            -H 'Content-Type: application/json' \
            --data-raw '{
              "identifier": "customer@gmail.com"
            }'
      tags:
        - Auth
      responses:
        '201':
          description: OK
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: generateResetPasswordTokenWorkflow
      x-events:
        - name: auth.password_reset
          payload: |-
            ```ts
            {
              entity_id, // The identifier of the user or customer. For example, an email address.
              actor_type, // The type of actor. For example, "customer", "user", or custom.
              token, // The generated token.
              metadata, // Optional custom metadata passed from the request.
            }
            ```
          description: |-
            Emitted when a reset password token is generated. You can listen to this event
            to send a reset password email to the user or customer, for example.
          deprecated: false
  /auth/customer/{auth_provider}/update:
    post:
      operationId: PostActor_typeAuth_providerUpdate
      summary: Reset a Customer's Password
      x-sidebar-summary: Reset Password
      description: Reset a customer's password using a reset-password token generated with the [Generate Reset Password Token API route](https://docs.medusajs.com/api/store#auth_postactor_typeauth_providerresetpassword). You pass the token as a bearer token in the request's Authorization header.
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/customers/reset-password#2-reset-password-page
        description: 'Storefront development: How to create the reset password page.'
      x-authenticated: true
      parameters:
        - name: auth_provider
          in: path
          description: The provider used for authentication.
          required: true
          schema:
            type: string
            example: emailpass
      requestBody:
        content:
          application/json:
            schema:
              type: object
              title: input
              description: The input data necessary for authentication with the specified auth provider. For example, for email-pass authentication, pass `email` and `password` properties.
              example:
                email: customer@gmail.com
                password: supersecret
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.auth.updateProvider(
              "customer",
              "emailpass",
              {
                password: "supersecret"
              },
              token
            )
            .then(() => {
              // password updated
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/auth/customer/emailpass/update' \
            -H 'Content-Type: application/json' \
            -H 'Authorization: Bearer {token}' \
            --data-raw '{
              "email": "customer@gmail.com",
              "password": "supersecret"
            }'
      security:
        - reset_password: []
      tags:
        - Auth
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - success
                description: Details on the reset password's status.
                properties:
                  success:
                    type: boolean
                    title: success
                    description: Whether the password was reset successfully.
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /auth/session:
    post:
      operationId: PostSession
      summary: Set Authentication Session
      description: Set the cookie session ID of a customer. The customer must be previously authenticated with the `/auth/customer/{provider}` API route first, as the JWT token is required in the header of the request.
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/customers/login#2-using-a-cookie-session
        description: 'Storefront development: How to login as a customer'
      x-authenticated: true
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/auth/session' \
            -H 'Authorization: Bearer {jwt_token}'
      tags:
        - Auth
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthStoreSessionResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
    delete:
      operationId: DeleteSession
      summary: Delete Authentication Session
      description: Deletes the cookie session ID previously set for authentication.
      x-authenticated: true
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            await sdk.auth.logout()

            // customer is now logged out
            // you can't send any requests that require authentication
        - lang: Shell
          label: cURL
          source: |-
            curl -X DELETE '{backend_url}/auth/session' \
            -H 'Cookie: connect.sid={sid}'
      tags:
        - Auth
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                description: The deletion's details.
                required:
                  - success
                properties:
                  success:
                    type: boolean
                    title: success
                    description: Whether the session was deleted successfully.
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /auth/token/refresh:
    post:
      operationId: PostAdminAuthTokenRefresh
      summary: Refresh Authentication Token
      description: Refresh the authentication token of a customer. This is useful after authenticating a customer with a third-party service to ensure the token holds the new user's details, or when you don't want customers to re-login every day.
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/customers/third-party-login
        description: 'Storefront development: Implement third-party (social) login.'
      x-authenticated: true
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            const token = await sdk.auth.refresh()

            // all subsequent requests will use the token in the header
            const { customer } = await sdk.store.customer.retrieve()
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/auth/token/refresh' \
            -H 'Authorization: Bearer {token}'
      tags:
        - Auth
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AuthResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /store/carts:
    post:
      operationId: PostCarts
      summary: Create Cart
      description: Create a cart.
      x-authenticated: false
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/StoreCreateCart'
                - type: object
                  description: The cart's details.
                  properties:
                    additional_data:
                      type: object
                      description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter.
              description: The cart's details.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.cart.create({
              region_id: "reg_123"
            })
            .then(({ cart }) => {
              console.log(cart)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/carts' \
            -H 'Content-Type: application/json' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            --data-raw '{
              "region_id": "reg_123"
            }'
      tags:
        - Carts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCartResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: createCartWorkflow
      x-events:
        - name: cart.created
          payload: |-
            ```ts
            {
              id, // The ID of the cart
            }
            ```
          description: Emitted when a cart is created.
          deprecated: false
  /store/carts/{id}:
    get:
      operationId: GetCartsId
      summary: Get a Cart
      description: Retrieve a cart by its ID. You can expand the cart's relations or select the fields that should be returned.
      x-authenticated: false
      parameters:
        - name: id
          in: path
          description: The cart's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.cart.retrieve("cart_123")
            .then(({ cart }) => {
              console.log(cart)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/carts/{id}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Carts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCartResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
    post:
      operationId: PostCartsId
      summary: Update a Cart
      description: Update a cart's details. This unsets the payment methods chosen before, and the customer would have to choose them again. Also, if the customer has chosen a shipping method whose option isn't valid for the cart's shipping address anymore, the shipping method will be unset. For example, if the shipping option is valid only in the US geo zone, and the shipping address's country code is `DE`, the shipping method will be unset.
      x-authenticated: false
      parameters:
        - name: id
          in: path
          description: The cart's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/UpdateCartData'
                - type: object
                  description: The properties to update in the cart item.
                  properties:
                    additional_data:
                      type: object
                      description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter.
              description: The properties to update in the cart item.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.cart.update("cart_123", {
              region_id: "reg_123"
            })
            .then(({ cart }) => {
              console.log(cart)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/carts/{id}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Carts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                description: The updated cart's details.
                required:
                  - cart
                properties:
                  cart:
                    $ref: '#/components/schemas/StoreCart'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: updateCartWorkflow
      x-events:
        - name: cart.updated
          payload: |-
            ```ts
            {
              id, // The ID of the cart
            }
            ```
          description: Emitted when a cart's details are updated.
          deprecated: false
        - name: cart.region_updated
          payload: |-
            ```ts
            {
              id, // The ID of the cart
            }
            ```
          description: |-
            Emitted when the cart's region is updated. This
            event is emitted alongside the `cart.updated` event.
          deprecated: false
  /store/carts/{id}/complete:
    post:
      operationId: PostCartsIdComplete
      summary: Complete Cart
      description: Complete a cart and place an order.
      x-authenticated: false
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/checkout/complete-cart
        description: 'Storefront guide: How to implement cart completion during checkout.'
      parameters:
        - name: id
          in: path
          description: The cart's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.cart.complete("cart_123")
            .then((data) => {
              if(data.type === "cart") {
                // an error occurred
                console.log(data.error, data.cart)
              } else {
                // order placed successfully
                console.log(data.order)
              }
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/carts/{id}/complete' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Carts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    description: The created order's details.
                    required:
                      - type
                      - order
                    properties:
                      type:
                        type: string
                        title: type
                        description: The type of the returned object. In this case, the order is returned because the cart was completed successfully.
                        default: order
                      order:
                        $ref: '#/components/schemas/StoreOrder'
                  - type: object
                    description: The details of why the cart completion failed.
                    required:
                      - type
                      - cart
                      - error
                    properties:
                      type:
                        type: string
                        title: type
                        description: The type of the returned object. In this case, the cart is returned because an error has occurred.
                        default: cart
                      cart:
                        $ref: '#/components/schemas/StoreCart'
                      error:
                        type: object
                        description: The error's details.
                        required:
                          - message
                          - name
                          - type
                        properties:
                          message:
                            type: string
                            title: message
                            description: The error's message.
                          name:
                            type: string
                            title: name
                            description: The error's name.
                          type:
                            type: string
                            title: type
                            description: |
                              The error's type. Can be a [MedusaError type](https://docs.medusajs.com/learn/fundamentals/api-routes/errors#medusaerror-types) or `payment_authorization_error` or `payment_requires_more_error` for payment-related errors.
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: completeCartWorkflow
      x-events:
        - name: order.placed
          payload: |-
            ```ts
            {
              id, // The ID of the order
            }
            ```
          description: |-
            Emitted when an order is placed, or when a draft order is converted to an
            order.
          deprecated: false
  /store/carts/{id}/customer:
    post:
      operationId: PostCartsIdCustomer
      summary: Change Cart's Customer to Logged-in Customer
      x-sidebar-summary: Change Customer
      description: Change the cart's customer to the currently logged-in customer. This is useful when you create the cart for a guest customer, then they log in with their account.
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/cart/update#set-carts-customer
        description: 'Storefront guide: How to set the cart''s customer.'
      x-authenticated: true
      parameters:
        - name: id
          in: path
          description: The cart's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: |-
            Comma-separated fields that should be included in the returned data.
            if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.
            without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      security:
        - cookie_auth: []
        - jwt_token: []
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: Optional additional data to pass to the underlying workflow.
              properties:
                additional_data:
                  type: object
                  description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            // TODO must be authenticated as the customer to set the cart's customer
            sdk.store.cart.transferCart("cart_123")
            .then(({ cart }) => {
              console.log(cart)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/carts/{id}/customer' \
            -H 'Authorization: Bearer {jwt_token}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Carts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCartResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: transferCartCustomerWorkflow
      x-events:
        - name: cart.customer_transferred
          payload: |-
            ```ts
            {
              id, // The ID of the cart
              customer_id, // The ID of the customer
            }
            ```
          description: Emitted when the customer in the cart is transferred.
          deprecated: false
          since: 2.8.0
  /store/carts/{id}/gift-cards:
    post:
      operationId: PostCartsIdGiftCards
      summary: Add Gift Card to Cart
      x-sidebar-summary: Add Gift Card
      description: Add a Gift Card to a cart
      x-authenticated: false
      x-ignoreCleanup: true
      parameters:
        - name: id
          in: path
          description: The cart's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreAddGiftCardToCart'
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/carts/{id}/gift-cards' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            -H 'Content-Type: application/json' \
            --data-raw '{
              "code": "{value}"
            }'
      tags:
        - Carts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCartResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-badges:
        - text: Cloud
          description: |
            This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).
    delete:
      operationId: DeleteCartsIdGiftCards
      summary: Remove Gift Card from Cart
      x-sidebar-summary: Remove Gift Card
      description: Remove a Gift Card from a cart.
      x-authenticated: false
      x-ignoreCleanup: true
      parameters:
        - name: id
          in: path
          description: The cart's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreRemoveGiftCardFromCart'
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl -X DELETE '{backend_url}/store/carts/{id}/gift-cards' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            -H 'Content-Type: application/json' \
            --data-raw '{
              "code": "{value}"
            }'
      tags:
        - Carts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCartResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-badges:
        - text: Cloud
          description: |
            This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).
  /store/carts/{id}/line-items:
    post:
      operationId: PostCartsIdLineItems
      summary: Add Line Item to Cart
      x-sidebar-summary: Add Line Item
      description: Add a product variant as a line item in the cart.
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/cart/manage-items#add-product-variant-to-cart
        description: 'Storefront guide: How to add a product variant to the cart.'
      x-authenticated: false
      parameters:
        - name: id
          in: path
          description: The cart's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  description: The details of the line item to add.
                  required:
                    - variant_id
                    - quantity
                  properties:
                    variant_id:
                      type: string
                      title: variant_id
                      description: The ID of the product variant to add as a line item.
                    quantity:
                      type: number
                      title: quantity
                      description: The item's quantity.
                    metadata:
                      type: object
                      description: The item's metadata, can hold custom key-value pairs.
                - type: object
                  description: The details of the line item to add.
                  properties:
                    additional_data:
                      type: object
                      description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter.
              description: The details of the line item to add.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.cart.createLineItem("cart_123", {
              variant_id: "variant_123",
              quantity: 1
            })
            .then(({ cart }) => {
              console.log(cart)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/carts/{id}/line-items' \
            -H 'Content-Type: application/json' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            --data-raw '{
              "variant_id": "{value}",
              "quantity": 3360689747918848,
              "metadata": {}
            }'
      tags:
        - Carts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCartResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: addToCartWorkflow
      x-events:
        - name: cart.updated
          payload: |-
            ```ts
            {
              id, // The ID of the cart
            }
            ```
          description: Emitted when a cart's details are updated.
          deprecated: false
  /store/carts/{id}/line-items/{line_id}:
    post:
      operationId: PostCartsIdLineItemsLine_id
      summary: Update a Line Item in a Cart
      x-sidebar-summary: Update Line Item
      description: Update a line item's details in the cart.
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/cart/manage-items#update-line-item-in-cart
        description: 'Storefront guide: How to update a cart''s line item.'
      x-authenticated: false
      parameters:
        - name: id
          in: path
          description: The cart's ID.
          required: true
          schema:
            type: string
        - name: line_id
          in: path
          description: The line item's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  description: The details to update in the line item.
                  required:
                    - quantity
                  properties:
                    quantity:
                      type: number
                      title: quantity
                      description: The item's quantity.
                    metadata:
                      type: object
                      description: The item's metadata, can hold custom key-value pairs.
                - type: object
                  description: The details to update in the line item.
                  properties:
                    additional_data:
                      type: object
                      description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter.
              description: The details to update in the line item.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.cart.updateLineItem(
              "cart_123",
              "li_123",
              {
                quantity: 1
              }
            )
            .then(({ cart }) => {
              console.log(cart)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/carts/{id}/line-items/{line_id}' \
            -H 'Content-Type: application/json' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            --data-raw '{
              "quantity": 8980402259623936,
              "metadata": {}
            }'
      tags:
        - Carts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCartResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: updateLineItemInCartWorkflow
      x-events:
        - name: cart.updated
          payload: |-
            ```ts
            {
              id, // The ID of the cart
            }
            ```
          description: Emitted when a cart's details are updated.
          deprecated: false
    delete:
      operationId: DeleteCartsIdLineItemsLine_id
      summary: Remove Line Item from Cart
      x-sidebar-summary: Remove Line Item
      description: Remove a line item from a cart.
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/cart/manage-items#remove-line-item-from-cart
        description: 'Storefront guide: How to remove line item from cart.'
      x-authenticated: false
      parameters:
        - name: id
          in: path
          description: The cart's ID.
          required: true
          schema:
            type: string
        - name: line_id
          in: path
          description: The line item's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.cart.deleteLineItem(
              "cart_123",
              "li_123"
            )
            .then(({ deleted, parent: cart }) => {
              console.log(deleted, cart)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X DELETE '{backend_url}/store/carts/{id}/line-items/{line_id}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Carts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    description: The deletion's details.
                    required:
                      - id
                      - object
                      - deleted
                    properties:
                      id:
                        type: string
                        title: id
                        description: The ID of the deleted line item.
                      object:
                        type: string
                        title: object
                        description: The name of the deleted object.
                        default: line-item
                      deleted:
                        type: boolean
                        title: deleted
                        description: Whether the item was deleted.
                  - type: object
                    description: The deletion's details.
                    properties:
                      parent:
                        $ref: '#/components/schemas/StoreCart'
                        description: The cart that the item belonged to.
                description: The deletion's details.
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: deleteLineItemsWorkflow
      x-events:
        - name: cart.updated
          payload: |-
            ```ts
            {
              id, // The ID of the cart
            }
            ```
          description: Emitted when a cart's details are updated.
          deprecated: false
  /store/carts/{id}/promotions:
    post:
      operationId: PostCartsIdPromotions
      summary: Add Promotions to Cart
      x-sidebar-summary: Add Promotions
      description: Add a list of promotions to a cart.
      x-authenticated: false
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/cart/manage-promotions#add-promotion-to-cart
        description: 'Storefront guide: How to add a promotion to cart.'
      parameters:
        - name: id
          in: path
          description: The cart's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreCartAddPromotion'
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/carts/{id}/promotions' \
            -H 'Content-Type: application/json' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            --data-raw '{
              "promo_codes": [
                "{value}"
              ]
            }'
      tags:
        - Carts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCartResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: updateCartPromotionsWorkflow
      x-events: []
    delete:
      operationId: DeleteCartsIdPromotions
      summary: Remove Promotions from Cart
      description: Remove a list of promotions from a cart.
      x-authenticated: false
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/cart/manage-promotions#remove-promotion-from-cart
        description: 'Storefront guide: How to remove a promotion from cart.'
      parameters:
        - name: id
          in: path
          description: The cart's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl -X DELETE '{backend_url}/store/carts/{id}/promotions' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            -H 'Content-Type: application/json' \
            --data-raw '{
              "promo_codes": ["{value}"]
            }'
      tags:
        - Carts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                description: The cart's details.
                required:
                  - cart
                properties:
                  cart:
                    $ref: '#/components/schemas/StoreCart'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: updateCartPromotionsWorkflow
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreCartRemovePromotion'
      x-events: []
  /store/carts/{id}/shipping-methods:
    post:
      operationId: PostCartsIdShippingMethods
      summary: Add Shipping Method to Cart
      x-sidebar-summary: Add Shipping Method
      description: Add a shipping method to a cart. Use this API route when the customer chooses their preferred shipping option.
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/checkout/shipping
        description: 'Storefront guide: How to implement shipping during checkout.'
      x-authenticated: false
      parameters:
        - name: id
          in: path
          description: The cart's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      requestBody:
        content:
          application/json:
            schema:
              allOf:
                - type: object
                  description: The shipping method's details.
                  required:
                    - option_id
                  properties:
                    option_id:
                      type: string
                      title: option_id
                      description: The ID of the shipping option to create the shipping method from.
                    data:
                      type: object
                      description: Any additional data relevant for the third-party fulfillment provider to process the shipment.
                      externalDocs:
                        url: https://docs.medusajs.com/resources/storefront-development/checkout/shipping#data-request-body-parameter
                        description: Learn more about the data parameter.
                - type: object
                  description: The shipping method's details.
                  properties:
                    additional_data:
                      type: object
                      description: Pass additional custom data to the API route. This data is passed to the underlying workflow under the `additional_data` parameter.
              description: The shipping method's details.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.cart.addShippingMethod("cart_123", {
              option_id: "so_123",
              data: {
                // custom data for fulfillment provider.
              }
            })
            .then(({ cart }) => {
              console.log(cart)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/carts/{id}/shipping-methods' \
            -H 'Content-Type: application/json' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            --data-raw '{
              "option_id": "{value}"
            }'
      tags:
        - Carts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCartResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: addShippingMethodToCartWorkflow
      x-events:
        - name: cart.updated
          payload: |-
            ```ts
            {
              id, // The ID of the cart
            }
            ```
          description: Emitted when a cart's details are updated.
          deprecated: false
  /store/carts/{id}/store-credits:
    post:
      operationId: PostCartsIdStoreCredits
      summary: Add Store Credit to Cart
      x-sidebar-summary: Add Store Credit
      description: Add a Store Credit to a cart
      x-authenticated: false
      x-ignoreCleanup: true
      parameters:
        - name: id
          in: path
          description: The cart's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreAddStoreCreditsToCart'
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/carts/{id}/store-credits' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            -H 'Content-Type: application/json' \
            --data-raw '{
              "amount": 48
            }'
      tags:
        - Carts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCartResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-badges:
        - text: Cloud
          description: |
            This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).
  /store/carts/{id}/taxes:
    post:
      operationId: PostCartsIdTaxes
      summary: Calculate Cart Taxes
      x-sidebar-summary: Calculate Taxes
      description: Calculate the cart's tax lines and amounts.
      x-authenticated: false
      parameters:
        - name: id
          in: path
          description: The cart's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/carts/{id}/taxes' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Carts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCartResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: updateTaxLinesWorkflow
      x-events: []
  /store/collections:
    get:
      operationId: GetCollections
      summary: List Collections
      description: Retrieve a list of collections. The collections can be filtered by fields such as `handle`. The collections can also be sorted or paginated.
      x-authenticated: false
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/products/collections/list
        description: 'Storefront guide: How to retrieve a list of collections.'
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: offset
          in: query
          description: The number of items to skip when retrieving a list.
          required: false
          schema:
            type: number
            title: offset
            description: The number of items to skip when retrieving a list.
            externalDocs:
              url: '#pagination'
        - name: limit
          in: query
          description: Limit the number of items returned in the list.
          required: false
          schema:
            type: number
            title: limit
            description: Limit the number of items returned in the list.
            externalDocs:
              url: '#pagination'
        - name: order
          in: query
          description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
          required: false
          schema:
            type: string
            title: order
            description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
        - name: title
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: title
                description: Filter by a collection's title.
              - type: array
                description: Filter by collection titles.
                items:
                  type: string
                  title: title
                  description: A title.
        - name: created_at
          in: query
          description: Filter by the collection's creation date.
          required: false
          schema:
            type: object
            description: Filter by the collection's creation date.
            properties:
              $and:
                type: array
                description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $and
              $or:
                type: array
                description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $or
              $eq:
                oneOf:
                  - type: string
                    title: $eq
                    description: Filter by an exact match.
                  - type: array
                    description: Filter by multiple exact matches.
                    items:
                      type: string
                      title: $eq
                      description: An exact match.
              $ne:
                type: string
                title: $ne
                description: Filter by values not equal to this parameter.
              $in:
                type: array
                description: Filter by values in this array.
                items:
                  type: string
                  title: $in
                  description: The value to match.
              $nin:
                type: array
                description: Filter by values not in this array.
                items:
                  type: string
                  title: $nin
                  description: The value not to match.
              $not:
                oneOf:
                  - type: string
                    title: $not
                    description: Filter by values not matching this parameter.
                  - type: object
                    description: Filter by values not matching the conditions in this parameter.
                    properties:
                      $and:
                        type: array
                        description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $and
                      $or:
                        type: array
                        description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $or
                      $eq:
                        oneOf:
                          - type: string
                            title: $eq
                            description: Filter by an exact match.
                          - type: array
                            description: Filter by multiple exact matches.
                            items:
                              type: string
                              title: $eq
                              description: The value to match.
                      $ne:
                        type: string
                        title: $ne
                        description: Filter by values not matching this parameter.
                      $in:
                        type: array
                        description: Filter by values in this array.
                        items:
                          type: string
                          title: $in
                          description: The value to match.
                      $nin:
                        type: array
                        description: Filter by values not in this array.
                        items:
                          type: string
                          title: $nin
                          description: The value to not match
                      $not:
                        oneOf:
                          - type: string
                            title: $not
                            description: Filter by values not matching this parameter
                          - type: object
                            description: Filter by values not matching the conditions in this parameter.
                          - type: array
                            description: Filter by values not matching the values of this parameter.
                            items:
                              type: string
                              title: $not
                              description: The values to not match.
                      $gt:
                        type: string
                        title: $gt
                        description: Filter by values greater than this parameter. Useful for numbers and dates only.
                      $gte:
                        type: string
                        title: $gte
                        description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
                      $lt:
                        type: string
                        title: $lt
                        description: Filter by values less than this parameter. Useful for numbers and dates only.
                      $lte:
                        type: string
                        title: $lte
                        description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
                      $like:
                        type: string
                        title: $like
                        description: Apply a `like` filter. Useful for strings only.
                      $re:
                        type: string
                        title: $re
                        description: Apply a regex filter. Useful for strings only.
                      $ilike:
                        type: string
                        title: $ilike
                        description: Apply a case-insensitive `like` filter. Useful for strings only.
                      $fulltext:
                        type: string
                        title: $fulltext
                        description: Filter to apply on full-text properties.
                      $overlap:
                        type: array
                        description: Filter arrays that have overlapping values with this parameter.
                        items:
                          type: string
                          title: $overlap
                          description: The value to match.
                      $contains:
                        type: array
                        description: Filter arrays that contain some of the values of this parameter.
                        items:
                          type: string
                          title: $contains
                          description: The values to match.
                      $contained:
                        type: array
                        description: Filter arrays that contain all values of this parameter.
                        items:
                          type: string
                          title: $contained
                          description: The values to match.
                      $exists:
                        type: boolean
                        title: $exists
                        description: Filter by whether a value for this parameter exists (not `null`).
                  - type: array
                    description: Filter by values not matching those in this parameter.
                    items:
                      type: string
                      title: $not
                      description: The values to not match.
              $gt:
                type: string
                title: $gt
                description: Filter by values greater than this parameter. Useful for numbers and dates only.
              $gte:
                type: string
                title: $gte
                description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
              $lt:
                type: string
                title: $lt
                description: Filter by values less than this parameter. Useful for numbers and dates only.
              $lte:
                type: string
                title: $lte
                description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
              $like:
                type: string
                title: $like
                description: Apply a `like` filter. Useful for strings only.
              $re:
                type: string
                title: $re
                description: Apply a regex filter. Useful for strings only.
              $ilike:
                type: string
                title: $ilike
                description: Apply a case-insensitive `like` filter. Useful for strings only.
              $fulltext:
                type: string
                title: $fulltext
                description: Filter to apply on full-text properties.
              $overlap:
                type: array
                description: Filter arrays that have overlapping values with this parameter.
                items:
                  type: string
                  title: $overlap
                  description: The values to match.
              $contains:
                type: array
                description: Filter arrays that contain some of the values of this parameter.
                items:
                  type: string
                  title: $contains
                  description: The values to match.
              $contained:
                type: array
                description: Filter arrays that contain all values of this parameter.
                items:
                  type: string
                  title: $contained
                  description: The values to match.
              $exists:
                type: boolean
                title: $exists
                description: Filter by whether a value for this parameter exists (not `null`).
            title: created_at
        - name: updated_at
          in: query
          description: Filter by the collection's update date.
          required: false
          schema:
            type: object
            description: Filter by the collection's update date.
            properties:
              $and:
                type: array
                description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $and
              $or:
                type: array
                description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $or
              $eq:
                oneOf:
                  - type: string
                    title: $eq
                    description: Filter by an exact match.
                  - type: array
                    description: Filter by multiple exact matches.
                    items:
                      type: string
                      title: $eq
                      description: An exact match.
              $ne:
                type: string
                title: $ne
                description: Filter by values not equal to this parameter.
              $in:
                type: array
                description: Filter by values in this array.
                items:
                  type: string
                  title: $in
                  description: The value to match.
              $nin:
                type: array
                description: Filter by values not in this array.
                items:
                  type: string
                  title: $nin
                  description: The value not to match.
              $not:
                oneOf:
                  - type: string
                    title: $not
                    description: Filter by values not matching this parameter.
                  - type: object
                    description: Filter by values not matching the conditions in this parameter.
                    properties:
                      $and:
                        type: array
                        description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $and
                      $or:
                        type: array
                        description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $or
                      $eq:
                        oneOf:
                          - type: string
                            title: $eq
                            description: Filter by an exact match.
                          - type: array
                            description: Filter by multiple exact matches.
                            items:
                              type: string
                              title: $eq
                              description: The value to match.
                      $ne:
                        type: string
                        title: $ne
                        description: Filter by values not matching this parameter.
                      $in:
                        type: array
                        description: Filter by values in this array.
                        items:
                          type: string
                          title: $in
                          description: The value to match.
                      $nin:
                        type: array
                        description: Filter by values not in this array.
                        items:
                          type: string
                          title: $nin
                          description: The value to not match
                      $not:
                        oneOf:
                          - type: string
                            title: $not
                            description: Filter by values not matching this parameter
                          - type: object
                            description: Filter by values not matching the conditions in this parameter.
                          - type: array
                            description: Filter by values not matching the values of this parameter.
                            items:
                              type: string
                              title: $not
                              description: The values to not match.
                      $gt:
                        type: string
                        title: $gt
                        description: Filter by values greater than this parameter. Useful for numbers and dates only.
                      $gte:
                        type: string
                        title: $gte
                        description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
                      $lt:
                        type: string
                        title: $lt
                        description: Filter by values less than this parameter. Useful for numbers and dates only.
                      $lte:
                        type: string
                        title: $lte
                        description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
                      $like:
                        type: string
                        title: $like
                        description: Apply a `like` filter. Useful for strings only.
                      $re:
                        type: string
                        title: $re
                        description: Apply a regex filter. Useful for strings only.
                      $ilike:
                        type: string
                        title: $ilike
                        description: Apply a case-insensitive `like` filter. Useful for strings only.
                      $fulltext:
                        type: string
                        title: $fulltext
                        description: Filter to apply on full-text properties.
                      $overlap:
                        type: array
                        description: Filter arrays that have overlapping values with this parameter.
                        items:
                          type: string
                          title: $overlap
                          description: The value to match.
                      $contains:
                        type: array
                        description: Filter arrays that contain some of the values of this parameter.
                        items:
                          type: string
                          title: $contains
                          description: The values to match.
                      $contained:
                        type: array
                        description: Filter arrays that contain all values of this parameter.
                        items:
                          type: string
                          title: $contained
                          description: The values to match.
                      $exists:
                        type: boolean
                        title: $exists
                        description: Filter by whether a value for this parameter exists (not `null`).
                  - type: array
                    description: Filter by values not matching those in this parameter.
                    items:
                      type: string
                      title: $not
                      description: The values to not match.
              $gt:
                type: string
                title: $gt
                description: Filter by values greater than this parameter. Useful for numbers and dates only.
              $gte:
                type: string
                title: $gte
                description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
              $lt:
                type: string
                title: $lt
                description: Filter by values less than this parameter. Useful for numbers and dates only.
              $lte:
                type: string
                title: $lte
                description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
              $like:
                type: string
                title: $like
                description: Apply a `like` filter. Useful for strings only.
              $re:
                type: string
                title: $re
                description: Apply a regex filter. Useful for strings only.
              $ilike:
                type: string
                title: $ilike
                description: Apply a case-insensitive `like` filter. Useful for strings only.
              $fulltext:
                type: string
                title: $fulltext
                description: Filter to apply on full-text properties.
              $overlap:
                type: array
                description: Filter arrays that have overlapping values with this parameter.
                items:
                  type: string
                  title: $overlap
                  description: The values to match.
              $contains:
                type: array
                description: Filter arrays that contain some of the values of this parameter.
                items:
                  type: string
                  title: $contains
                  description: The values to match.
              $contained:
                type: array
                description: Filter arrays that contain all values of this parameter.
                items:
                  type: string
                  title: $contained
                  description: The values to match.
              $exists:
                type: boolean
                title: $exists
                description: Filter by whether a value for this parameter exists (not `null`).
            title: updated_at
        - name: handle
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: handle
                description: Filter by a collection's handle.
              - type: array
                description: Filter by collection handles.
                items:
                  type: string
                  title: handle
                  description: A handle.
        - name: q
          in: query
          description: Search term to filter the collection's searchable properties.
          required: false
          schema:
            type: string
            title: q
            description: Search term to filter the collection's searchable properties.
        - name: $and
          in: query
          description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
          required: false
          schema:
            type: array
            description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
            items:
              type: object
            title: $and
        - name: $or
          in: query
          description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
          required: false
          schema:
            type: array
            description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
            items:
              type: object
            title: $or
        - name: with_deleted
          in: query
          description: Whether to include deleted records in the result.
          required: false
          schema:
            type: boolean
            title: with_deleted
            description: Whether to include deleted records in the result.
        - name: id
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: id
                description: Filter by a collection's ID.
              - type: array
                description: Filter by collection IDs.
                items:
                  type: string
                  title: id
                  description: The collection's ID.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.collection.list()
            .then(({ collections, count, limit, offset }) => {
              console.log(collections)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/collections' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Collections
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    description: The paginated list of collections.
                    required:
                      - limit
                      - offset
                      - count
                    properties:
                      limit:
                        type: number
                        title: limit
                        description: The maximum number of items returned.
                      offset:
                        type: number
                        title: offset
                        description: The number of items skipped before retrieving the returned items.
                      count:
                        type: number
                        title: count
                        description: The total number of items.
                  - type: object
                    description: The paginated list of collections.
                    required:
                      - collections
                    properties:
                      collections:
                        type: array
                        description: The collection's collections.
                        items:
                          $ref: '#/components/schemas/StoreCollection'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /store/collections/{id}:
    get:
      operationId: GetCollectionsId
      summary: Get a Collection
      description: Retrieve a collection by its ID. You can expand the collection's relations or select the fields that should be returned.
      x-authenticated: false
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/products/collections/retrieve
        description: 'Storefront guide: How to retrieve a collection.'
      parameters:
        - name: id
          in: path
          description: The collection's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.collection.retrieve("pcol_123")
            .then(({ collection }) => {
              console.log(collection)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/collections/{id}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Collections
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCollectionResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /store/currencies:
    get:
      operationId: GetCurrencies
      summary: List Currencies
      description: Retrieve a list of currencies. The currencies can be filtered by fields such as `code`. The currencies can also be sorted or paginated.
      x-authenticated: false
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: offset
          in: query
          description: The number of items to skip when retrieving a list.
          required: false
          schema:
            type: number
            title: offset
            description: The number of items to skip when retrieving a list.
            externalDocs:
              url: '#pagination'
        - name: limit
          in: query
          description: Limit the number of items returned in the list.
          required: false
          schema:
            type: number
            title: limit
            description: Limit the number of items returned in the list.
            externalDocs:
              url: '#pagination'
        - name: order
          in: query
          description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
          required: false
          schema:
            type: string
            title: order
            description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
        - name: q
          in: query
          description: Search term to filter the currency's searchable properties.
          required: false
          schema:
            type: string
            title: q
            description: Search term to filter the currency's searchable properties.
        - name: code
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: code
                description: Filter by a currency code.
              - type: array
                description: Filter by currency codes.
                items:
                  type: string
                  title: code
                  description: A currency code.
        - name: $and
          in: query
          description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
          required: false
          schema:
            type: array
            description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
            items:
              type: object
            title: $and
        - name: $or
          in: query
          description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
          required: false
          schema:
            type: array
            description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
            items:
              type: object
            title: $or
        - name: with_deleted
          in: query
          description: Whether to include deleted records in the result.
          required: false
          schema:
            type: boolean
            title: with_deleted
            description: Whether to include deleted records in the result.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/currencies' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Currencies
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCurrencyListResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /store/currencies/{code}:
    get:
      operationId: GetCurrenciesCode
      summary: Get a Currency
      description: Retrieve a currency by its code. You can expand the currency's relations or select the fields that should be returned.
      x-authenticated: false
      parameters:
        - name: code
          in: path
          description: The currency's code.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/currencies/{code}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Currencies
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCurrencyResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /store/customers:
    post:
      operationId: PostCustomers
      summary: Register Customer
      description: Register a customer. Use the `/auth/customer/emailpass/register` API route first to retrieve the registration token and pass it in the header of the request.
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/customers/register
        description: 'Storefront guide: How to register a customer.'
      x-authenticated: true
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreCreateCustomer'
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            const token = await sdk.auth.register("customer", "emailpass", {
              "email": "customer@gmail.com",
              "password": "supersecret"
            })

            sdk.store.customer.create(
              {
                "email": "customer@gmail.com"
              },
              {},
              {
                Authorization: `Bearer ${token}`
              }
            )
            .then(({ customer }) => {
              console.log(customer)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/customers' \
            -H 'Authorization: Bearer {token}' \
            -H 'Content-Type: application/json' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            --data-raw '{
              "email": "Monserrate.Leannon88@yahoo.com",
              "company_name": "{value}",
              "first_name": "{value}",
              "last_name": "{value}",
              "phone": "{value}"
            }'
      tags:
        - Customers
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCustomerResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: createCustomerAccountWorkflow
      security:
        - cookie_auth: []
        - jwt_token: []
      x-events:
        - name: customer.created
          payload: |-
            ```ts
            {
              id, // The ID of the customer
            }
            ```
          description: Emitted when a customer is created.
          deprecated: false
  /store/customers/me:
    get:
      operationId: GetCustomersMe
      summary: Get Logged-in Customer
      x-sidebar-summary: Get Customer
      description: Retrieve the logged-in customer. You can expand the customer's relations or select the fields that should be returned.
      x-authenticated: true
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/customers/retrieve
        description: 'Storefront guide: How to retrieve the logged-in customer.'
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      security:
        - cookie_auth: []
        - jwt_token: []
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            // TODO must be authenticated as the customer to retrieve their details
            sdk.store.customer.retrieve()
            .then(({ customer }) => {
              console.log(customer)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/customers/me' \
            -H 'Authorization: Bearer {jwt_token}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Customers
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCustomerResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
    post:
      operationId: PostCustomersMe
      summary: Update Customer
      description: Update the logged-in customer's details.
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/customers/profile
        description: 'Storefront guide: How to edit a customer''s profile.'
      x-authenticated: true
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      security:
        - cookie_auth: []
        - jwt_token: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreUpdateCustomer'
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            // TODO must be authenticated as the customer to update their details
            sdk.store.customer.update({
              first_name: "John"
            })
            .then(({ customer }) => {
              console.log(customer)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/customers/me' \
            -H 'Authorization: Bearer {jwt_token}' \
            -H 'Content-Type: application/json' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            --data-raw '{
              "company_name": "{value}",
              "first_name": "{value}",
              "last_name": "{value}",
              "phone": "{value}"
            }'
      tags:
        - Customers
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCustomerResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: updateCustomersWorkflow
      x-events:
        - name: customer.updated
          payload: |-
            ```ts
            {
              id, // The ID of the customer
            }
            ```
          description: Emitted when a customer is updated.
          deprecated: false
  /store/customers/me/addresses:
    get:
      operationId: GetCustomersMeAddresses
      summary: List Customer's Addresses
      x-sidebary-summary: List Addresses
      description: Retrieve the addresses of the logged-in customer. The addresses can be filtered by fields such as `country_code`. The addresses can also be sorted or paginated.
      x-authenticated: true
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/customers/addresses#list-customer-addresses
        description: 'Storefront guide: How to retrieve the logged-in customer''s addresses.'
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: city
          in: query
          description: Filter by the address's city.
          required: false
          schema:
            oneOf:
              - type: string
                title: city
                description: Filter by a city.
              - type: array
                description: Filter by cities.
                items:
                  type: string
                  title: city
                  description: A city.
        - name: postal_code
          in: query
          description: Filter by the address's postal code.
          required: false
          schema:
            oneOf:
              - type: string
                title: postal_code
                description: Filter by a postal code.
              - type: array
                description: Filter by postal codes.
                items:
                  type: string
                  title: postal_code
                  description: A postal code.
        - name: country_code
          in: query
          description: Filter by the address's country code.
          required: false
          schema:
            oneOf:
              - type: string
                title: country_code
                description: Filter by a country code.
              - type: array
                description: Filter by country codes.
                items:
                  type: string
                  title: country_code
                  description: A country code.
        - name: q
          in: query
          description: Search term to filter the address's searchable properties.
          required: false
          schema:
            type: string
            title: q
            description: Search term to filter the address's searchable properties.
        - name: company
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: company
                description: Filter addresses by company.
              - type: array
                description: Filter addresses by companies.
                items:
                  type: string
                  title: company
                  description: A company.
        - name: province
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: province
                description: Filter addresses by province.
              - type: array
                description: Filter addresses by provinces.
                items:
                  type: string
                  title: province
                  description: A province.
        - name: $and
          in: query
          description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
          required: false
          schema:
            type: array
            description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
            items:
              type: object
            title: $and
        - name: $or
          in: query
          description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
          required: false
          schema:
            type: array
            description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
            items:
              type: object
            title: $or
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      security:
        - cookie_auth: []
        - jwt_token: []
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            // TODO must be authenticated as the customer to list their addresses
            sdk.store.customer.listAddress()
            .then(({ addresses, count, offset, limit }) => {
              console.log(addresses)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/customers/me/addresses' \
            -H 'Authorization: Bearer {jwt_token}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Customers
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCustomerAddressListResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
    post:
      operationId: PostCustomersMeAddresses
      summary: Create Address for Logged-In Customer
      x-sidebar-summary: Create Address
      description: Create an address for the logged-in customer.
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/customers/addresses#add-customer-address
        description: 'Storefront guide: How to create an address for the logged-in customer.'
      x-authenticated: true
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      security:
        - cookie_auth: []
        - jwt_token: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreCreateCustomerAddress'
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            // TODO must be authenticated as the customer to create an address
            sdk.store.customer.createAddress({
              country_code: "us"
            })
            .then(({ customer }) => {
              console.log(customer)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/customers/me/addresses' \
            -H 'Authorization: Bearer {jwt_token}' \
            -H 'Content-Type: application/json' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            --data-raw '{
              "metadata": {},
              "first_name": "{value}",
              "last_name": "{value}",
              "phone": "{value}",
              "company": "{value}",
              "address_1": "{value}",
              "address_2": "{value}",
              "city": "{value}",
              "country_code": "{value}",
              "province": "us-ca",
              "postal_code": "{value}",
              "address_name": "{value}"
            }'
      tags:
        - Customers
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCustomerResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: createCustomerAddressesWorkflow
      x-events: []
  /store/customers/me/addresses/{address_id}:
    get:
      operationId: GetCustomersMeAddressesAddress_id
      summary: Get Customer's Address
      x-sidebar-summary: Get Address
      description: Retrieve an address of the logged-in customer. You can expand the address's relations or select the fields that should be returned.
      x-authenticated: true
      parameters:
        - name: address_id
          in: path
          description: The address's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      security:
        - cookie_auth: []
        - jwt_token: []
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            // TODO must be authenticated as the customer to retrieve their address
            sdk.store.customer.retrieveAddress(
              "caddr_123"
            )
            .then(({ address }) => {
              console.log(address)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/customers/me/addresses/{address_id}' \
            -H 'Authorization: Bearer {jwt_token}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Customers
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCustomerAddressResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
    post:
      operationId: PostCustomersMeAddressesAddress_id
      summary: Update Customer's Address
      x-sidebar-summary: Update Address
      description: Update the logged-in customer's address.
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/customers/addresses#edit-an-address
        description: 'Storefront guide: How to update an address of the logged-in customer.'
      x-authenticated: true
      parameters:
        - name: address_id
          in: path
          description: The address's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      security:
        - cookie_auth: []
        - jwt_token: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreUpdateCustomerAddress'
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            // TODO must be authenticated as the customer to update their address
            sdk.store.customer.updateAddress(
              "caddr_123",
              {
                country_code: "us"
              }
            )
            .then(({ customer }) => {
              console.log(customer)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/customers/me/addresses/{address_id}' \
            -H 'Authorization: Bearer {jwt_token}' \
            -H 'Content-Type: application/json' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            --data-raw '{
              "first_name": "{value}",
            }'
      tags:
        - Customers
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreCustomerResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: updateCustomerAddressesWorkflow
      x-events: []
    delete:
      operationId: DeleteCustomersMeAddressesAddress_id
      summary: Remove Customer's Address
      x-sidebar-summary: Remove Address
      description: Remove an address of the logged-in customer.
      x-authenticated: true
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/customers/addresses#delete-customer-address
        description: 'Storefront guide: How to delete a customer''s address.'
      parameters:
        - name: address_id
          in: path
          description: The address's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields. This API route restricts the fields that can be selected. Learn how to override the retrievable fields in the [Retrieve Custom Links](https://docs.medusajs.com/learn/fundamentals/api-routes/retrieve-custom-links) documentation.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      security:
        - cookie_auth: []
        - jwt_token: []
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            // TODO must be authenticated as the customer to delete their address
            sdk.store.customer.deleteAddress("caddr_123")
            .then(({ deleted, parent: customer }) => {
              console.log(customer)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X DELETE '{backend_url}/store/customers/me/addresses/{address_id}' \
            -H 'Authorization: Bearer {jwt_token}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Customers
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    description: The deletion's details.
                    required:
                      - id
                      - object
                      - deleted
                    properties:
                      id:
                        type: string
                        title: id
                        description: The address's ID.
                      object:
                        type: string
                        title: object
                        description: The name of the deleted object.
                        default: address
                      deleted:
                        type: boolean
                        title: deleted
                        description: Whether the address was deleted.
                  - type: object
                    description: The deletion's details.
                    properties:
                      parent:
                        $ref: '#/components/schemas/StoreCustomer'
                        description: The details of the customer the address belongs to.
                description: The deletion's details.
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: deleteCustomerAddressesWorkflow
      x-events: []
  /store/gift-cards/{idOrCode}:
    get:
      operationId: GetGiftCardsIdorcode
      summary: Get a Gift Card
      x-sidebar-summary: Get Gift Card
      description: Retrieve a gift card by its ID or code. You can expand the gift card's relations or select the fields that should be returned.
      x-authenticated: false
      x-ignoreCleanup: true
      parameters:
        - name: idOrCode
          in: path
          description: The gift card's ID or code.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: |-
            Comma-separated fields that should be included in the returned data.
             if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.
             without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/gift-cards/{idOrCode}' \
            -H 'Authorization: Bearer {jwt_token}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Gift Cards
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-badges:
        - text: Cloud
          description: |
            This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).
  /store/locales:
    get:
      operationId: GetLocales
      summary: List Locales
      description: Retrieve the list of supported locales. You can use this list to allow customers to select their preferred locale in your storefront.
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/localization
        description: Learn how to serve localized content in your storefront.
      x-authenticated: false
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.locale.list()
            .then(({ locales }) => {
              console.log(locales)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/locales' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Locales
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreLocaleListResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-since: 2.12.3
      x-featureFlag: translation
  /store/orders:
    get:
      operationId: GetOrders
      summary: List Logged-in Customer's Orders
      x-sidebar-summary: List Orders
      description: Retrieve the orders of the logged-in customer. The orders can be filtered by fields such as `id`. The orders can also be sorted or paginated.
      x-authenticated: true
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: offset
          in: query
          description: The number of items to skip when retrieving a list.
          required: false
          schema:
            type: number
            title: offset
            description: The number of items to skip when retrieving a list.
            externalDocs:
              url: '#pagination'
        - name: limit
          in: query
          description: Limit the number of items returned in the list.
          required: false
          schema:
            type: number
            title: limit
            description: Limit the number of items returned in the list.
            externalDocs:
              url: '#pagination'
        - name: order
          in: query
          description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
          required: false
          schema:
            type: string
            title: order
            description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
        - name: id
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: id
                description: Filter by an order ID.
              - type: array
                description: Filter by order IDs.
                items:
                  type: string
                  title: id
                  description: An order ID.
        - name: $and
          in: query
          required: false
          schema:
            type: array
            description: The order's $and.
            items:
              type: object
            title: $and
        - name: $or
          in: query
          required: false
          schema:
            type: array
            description: The order's $or.
            items:
              type: object
            title: $or
        - name: status
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: status
                description: The order's status.
              - type: string
                title: status
                description: The order's status.
              - type: string
                title: status
                description: The order's status.
              - type: string
                title: status
                description: The order's status.
              - type: string
                title: status
                description: The order's status.
              - type: string
                title: status
                description: The order's status.
              - type: array
                description: The order's status.
                items:
                  type: string
                  description: The status's details.
                  enum:
                    - canceled
                    - requires_action
                    - pending
                    - completed
                    - draft
                    - archived
        - name: with_deleted
          in: query
          description: Whether to include deleted records in the result.
          required: false
          schema:
            type: boolean
            title: with_deleted
            description: Whether to include deleted records in the result.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            // TODO must be authenticated as the customer to list their orders
            sdk.store.order.list()
            .then(({ orders, count, offset, limit }) => {
              console.log(orders)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/orders' \
            -H 'Authorization: Bearer {jwt_token}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Orders
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    description: The paginated list of orders.
                    required:
                      - limit
                      - offset
                      - count
                    properties:
                      limit:
                        type: number
                        title: limit
                        description: The maximum number of items returned.
                      offset:
                        type: number
                        title: offset
                        description: The number of items skipped before retrieving the returned items.
                      count:
                        type: number
                        title: count
                        description: The total number of items.
                  - type: object
                    description: The paginated list of orders.
                    required:
                      - orders
                    properties:
                      orders:
                        type: array
                        description: The order's orders.
                        items:
                          $ref: '#/components/schemas/StoreOrder'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      security:
        - cookie_auth: []
        - jwt_token: []
      x-workflow: getOrdersListWorkflow
      x-events: []
  /store/orders/{id}:
    get:
      operationId: GetOrdersId
      summary: Get an Order
      description: Retrieve an order by its ID. You can expand the order's relations or select the fields that should be returned.
      x-authenticated: false
      parameters:
        - name: id
          in: path
          description: The order's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.order.retrieve("order_123")
            .then(({ order }) => {
              console.log(order)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/orders/{id}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Orders
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreOrderResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: getOrderDetailWorkflow
      x-events: []
  /store/orders/{id}/transfer/accept:
    post:
      operationId: PostOrdersIdTransferAccept
      summary: Accept Order Transfer
      x-sidebar-summary: Accept Transfer
      description: Accept an order to be transfered to a customer's account, which was specified when the transfer request was created. The transfer is requested previously either by the customer using the [Request Order Transfer Store API route](https://docs.medusajs.com/api/store#orders_postordersidtransferrequest), or by the admin using the [Request Order Transfer Admin API route](https://docs.medusajs.com/api/admin#orders_postordersidtransferrequest).
      x-authenticated: false
      parameters:
        - name: id
          in: path
          description: The order's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: |-
            Comma-separated fields that should be included in the returned data.
            if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.
            without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreAcceptOrderTransfer'
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.order.acceptTransfer(
              "order_123",
              {
                token: "transfer_token"
              },
              {
                Authorization: `Bearer ${token}`
              }
            )
            .then(({ order }) => {
              console.log(order)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/orders/{id}/transfer/accept' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            -H 'Content-Type: application/json' \
            --data-raw '{
              "token": "{value}"
            }'
      tags:
        - Orders
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreOrderResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: acceptOrderTransferWorkflow
      x-events: []
  /store/orders/{id}/transfer/cancel:
    post:
      operationId: PostOrdersIdTransferCancel
      summary: Cancel Order Transfer
      x-sidebar-summary: Cancel Transfer
      description: Cancel an order transfer that the logged-in customer previously requested using the [Request Order Transfer](https://docs.medusajs.com/api/store#orders_postordersidtransferrequest) API route.
      x-authenticated: true
      parameters:
        - name: id
          in: path
          description: The order's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: |-
            Comma-separated fields that should be included in the returned data.
            if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.
            without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            // TODO must be authenticated as the customer to cancel the order transfer
            sdk.store.order.cancelTransfer(
              "order_123",
              {},
              {
                Authorization: `Bearer ${token}`
              }
            )
            .then(({ order }) => {
              console.log(order)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/orders/{id}/transfer/cancel' \
            -H 'Authorization: Bearer {jwt_token}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Orders
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreOrderResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: cancelOrderTransferRequestWorkflow
      security:
        - cookie_auth: []
        - jwt_token: []
      x-events: []
  /store/orders/{id}/transfer/decline:
    post:
      operationId: PostOrdersIdTransferDecline
      summary: Decline Order Transfer
      x-sidebar-summary: Decline Transfer
      description: Decline an order transfer previously requested, typically by the admin user using the [Request Order Transfer Admin API route](https://docs.medusajs.com/api/admin#orders_postordersidtransferrequest).
      x-authenticated: false
      parameters:
        - name: id
          in: path
          description: The order's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: |-
            Comma-separated fields that should be included in the returned data.
            if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.
            without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreDeclineOrderTransfer'
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.order.declineTransfer(
              "order_123",
              {
                token: "transfer_token"
              },
              {
                Authorization: `Bearer ${token}`
              }
            )
            .then(({ order }) => {
              console.log(order)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/orders/{id}/transfer/decline' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            -H 'Content-Type: application/json' \
            --data-raw '{
              "token": "{value}"
            }'
      tags:
        - Orders
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreOrderResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: declineOrderTransferRequestWorkflow
      x-events: []
  /store/orders/{id}/transfer/request:
    post:
      operationId: PostOrdersIdTransferRequest
      summary: Request Order Transfer
      x-sidebar-summery: Request Transfer
      description: Request an order to be transfered to the logged-in customer's account. The transfer is confirmed using the [Accept Order Transfer](https://docs.medusajs.com/api/store#orders_postordersidtransferaccept) API route.
      x-authenticated: true
      parameters:
        - name: id
          in: path
          description: The order's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: |-
            Comma-separated fields that should be included in the returned data.
            if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.
            without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreRequestOrderTransfer'
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            // TODO must be authenticated as the customer to request the order transfer
            sdk.store.order.requestTransfer(
              "order_123",
              {
                description: "I want to transfer this order to my friend."
              },
              {},
              {
                Authorization: `Bearer ${token}`
              }
            )
            .then(({ order }) => {
              console.log(order)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/orders/{id}/transfer/request' \
            -H 'Authorization: Bearer {jwt_token}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Orders
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreOrderResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: getOrderDetailWorkflow
      security:
        - cookie_auth: []
        - jwt_token: []
      x-events: []
  /store/payment-collections:
    post:
      operationId: PostPaymentCollections
      summary: Create Payment Collection
      description: Create a payment collection for a cart. This is used during checkout, where the payment collection holds the cart's payment sessions.
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/checkout/payment
        description: 'Storefront guide: How to implement payment during checkout.'
      x-authenticated: false
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreCreatePaymentCollection'
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.payment.initiatePaymentSession(
              cart, // assuming you already have the cart object.
              {
                provider_id: "pp_stripe_stripe",
                data: {
                  // any data relevant for the provider.
                }
              }
            )
            .then(({ payment_collection }) => {
              console.log(payment_collection)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/payment-collections' \
            -H 'Content-Type: application/json' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            --data-raw '{
              "cart_id": "{value}"
            }'
      tags:
        - Payment Collections
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StorePaymentCollectionResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: createPaymentCollectionForCartWorkflow
      x-events: []
  /store/payment-collections/{id}/payment-sessions:
    post:
      operationId: PostPaymentCollectionsIdPaymentSessions
      summary: Initialize Payment Session of a Payment Collection
      x-sidebar-summary: Initialize Payment Session
      description: |
        Initialize and add a payment session to a payment collection. This is used during checkout, where you create a payment collection for the cart, then initialize a payment session for the payment provider that the customer chooses.
        It's highly recommended to have an amount greater than `0` in the payment collection, as some payment providers, such as Stripe, require a non-zero amount to create a payment session. Otherwise, an error will be thrown on the payment provider's side.
        In cases where you want to create a payment session for a payment collection with an amount of `0`, you can use the Manual System Payment Provider instead of third-party payment providers. The Manual System Payment Provider is built into Medusa and allows you to create payment sessions without interacting with an external payment provider.
        Make sure to configure the Manual System Payment Provider in your store's region. Learn more in the [Manage Region](https://docs.medusajs.com/user-guide/settings/regions#edit-region-details) user guide.
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/checkout/payment
        description: 'Storefront guide: How to implement payment during checkout.'
      x-authenticated: false
      parameters:
        - name: id
          in: path
          description: The payment collection's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreInitializePaymentSession'
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/payment-collections/{id}/payment-sessions' \
            -H 'Content-Type: application/json' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            --data-raw '{
              "provider_id": "{value}"
            }'
      tags:
        - Payment Collections
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StorePaymentCollectionResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: createPaymentSessionsWorkflow
      x-events: []
  /store/payment-providers:
    get:
      operationId: GetPaymentProviders
      summary: List Payment Providers
      description: Retrieve a list of payment providers. You must provide the `region_id` query parameter to retrieve the payment providers enabled in that region.
      x-authenticated: false
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/checkout/payment
        description: 'Storefront guide: How to implement payment during checkout.'
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: offset
          in: query
          description: The number of items to skip when retrieving a list.
          required: false
          schema:
            type: number
            title: offset
            description: The number of items to skip when retrieving a list.
            externalDocs:
              url: '#pagination'
        - name: limit
          in: query
          description: Limit the number of items returned in the list.
          required: false
          schema:
            type: number
            title: limit
            description: Limit the number of items returned in the list.
            externalDocs:
              url: '#pagination'
        - name: order
          in: query
          description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
          required: false
          schema:
            type: string
            title: order
            description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
        - name: region_id
          in: query
          description: Filter by a region ID to get the payment providers enabled in that region.
          required: true
          schema:
            type: string
            title: region_id
            description: Filter by a region ID.
        - name: with_deleted
          in: query
          description: Whether to include deleted records in the result.
          required: false
          schema:
            type: boolean
            title: with_deleted
            description: Whether to include deleted records in the result.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.payment.listPaymentProviders({
              region_id: "reg_123"
            })
            .then(({ payment_providers, count, offset, limit }) => {
              console.log(payment_providers)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/payment-providers' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Payment Providers
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    description: The list of payment providers.
                    required:
                      - limit
                      - offset
                      - count
                    properties:
                      limit:
                        type: number
                        title: limit
                        description: The maximum number of items returned.
                      offset:
                        type: number
                        title: offset
                        description: The number of items skipped before retrieving the returned items.
                      count:
                        type: number
                        title: count
                        description: The total number of items.
                  - type: object
                    description: The list of payment providers.
                    required:
                      - payment_providers
                    properties:
                      payment_providers:
                        type: array
                        description: The list of payment providers.
                        items:
                          $ref: '#/components/schemas/StorePaymentProvider'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /store/product-categories:
    get:
      operationId: GetProductCategories
      summary: List Product Categories
      description: Retrieve a list of product categories. The product categories can be filtered by fields such as `id`. The product categories can also be sorted or paginated.
      x-authenticated: false
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/products/categories/list
        description: 'Storefront guide: How to retrieve a list of product categories.'
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: offset
          in: query
          description: The number of items to skip when retrieving a list.
          required: false
          schema:
            type: number
            title: offset
            description: The number of items to skip when retrieving a list.
            externalDocs:
              url: '#pagination'
        - name: limit
          in: query
          description: Limit the number of items returned in the list.
          required: false
          schema:
            type: number
            title: limit
            description: Limit the number of items returned in the list.
            externalDocs:
              url: '#pagination'
        - name: order
          in: query
          description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
          required: false
          schema:
            type: string
            title: order
            description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
        - name: q
          in: query
          description: Search term to filter the product category's properties.
          required: false
          schema:
            type: string
            title: q
            description: Search term to filter the product category's properties.
        - name: id
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: id
                description: Filter by a product category's ID.
              - type: array
                description: Filter by product category IDs.
                items:
                  type: string
                  title: id
                  description: A product category ID.
        - name: description
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: description
                description: Filter by a description. This only matches categories with the exact description. To search by a term or keyword, use the `q` query parameter instead.
              - type: array
                description: Filter by descriptions. This only matches categories that have one of the provided descriptions. To search by a term or keyword, use the `q` query parameter instead.
                items:
                  type: string
                  title: description
                  description: A description.
        - name: handle
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: handle
                description: Filter by a category's handle.
              - type: array
                description: Filter by category handles.
                items:
                  type: string
                  title: handle
                  description: A handle.
        - name: parent_category_id
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: parent_category_id
                description: The ID of a category to retrieve its child categories.
              - type: array
                description: The ID of categories to retrieve their child categories.
                items:
                  type: string
                  title: parent_category_id
                  description: A product category's ID.
        - name: include_ancestors_tree
          in: query
          description: Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`.
          required: false
          schema:
            type: boolean
            title: include_ancestors_tree
            description: Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`.
        - name: include_descendants_tree
          in: query
          description: Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the child of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`.
          required: false
          schema:
            type: boolean
            title: include_descendants_tree
            description: Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the child of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`.
        - name: created_at
          in: query
          description: Filter by the category's creation date.
          required: false
          schema:
            type: object
            description: Filter by the category's creation date.
            properties:
              $and:
                type: array
                description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $and
              $or:
                type: array
                description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $or
              $eq:
                oneOf:
                  - type: string
                    title: $eq
                    description: Filter by an exact match.
                  - type: array
                    description: Filter by multiple exact matches.
                    items:
                      type: string
                      title: $eq
                      description: An exact match.
              $ne:
                type: string
                title: $ne
                description: Filter by values not equal to this parameter.
              $in:
                type: array
                description: Filter by values in this array.
                items:
                  type: string
                  title: $in
                  description: The value to match.
              $nin:
                type: array
                description: Filter by values not in this array.
                items:
                  type: string
                  title: $nin
                  description: The value not to match.
              $not:
                oneOf:
                  - type: string
                    title: $not
                    description: Filter by values not matching this parameter.
                  - type: object
                    description: Filter by values not matching the conditions in this parameter.
                    properties:
                      $and:
                        type: array
                        description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $and
                      $or:
                        type: array
                        description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $or
                      $eq:
                        oneOf:
                          - type: string
                            title: $eq
                            description: Filter by an exact match.
                          - type: array
                            description: Filter by multiple exact matches.
                            items:
                              type: string
                              title: $eq
                              description: The value to match.
                      $ne:
                        type: string
                        title: $ne
                        description: Filter by values not matching this parameter.
                      $in:
                        type: array
                        description: Filter by values in this array.
                        items:
                          type: string
                          title: $in
                          description: The value to match.
                      $nin:
                        type: array
                        description: Filter by values not in this array.
                        items:
                          type: string
                          title: $nin
                          description: The value to not match
                      $not:
                        oneOf:
                          - type: string
                            title: $not
                            description: Filter by values not matching this parameter
                          - type: object
                            description: Filter by values not matching the conditions in this parameter.
                          - type: array
                            description: Filter by values not matching the values of this parameter.
                            items:
                              type: string
                              title: $not
                              description: The values to not match.
                      $gt:
                        type: string
                        title: $gt
                        description: Filter by values greater than this parameter. Useful for numbers and dates only.
                      $gte:
                        type: string
                        title: $gte
                        description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
                      $lt:
                        type: string
                        title: $lt
                        description: Filter by values less than this parameter. Useful for numbers and dates only.
                      $lte:
                        type: string
                        title: $lte
                        description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
                      $like:
                        type: string
                        title: $like
                        description: Apply a `like` filter. Useful for strings only.
                      $re:
                        type: string
                        title: $re
                        description: Apply a regex filter. Useful for strings only.
                      $ilike:
                        type: string
                        title: $ilike
                        description: Apply a case-insensitive `like` filter. Useful for strings only.
                      $fulltext:
                        type: string
                        title: $fulltext
                        description: Filter to apply on full-text properties.
                      $overlap:
                        type: array
                        description: Filter arrays that have overlapping values with this parameter.
                        items:
                          type: string
                          title: $overlap
                          description: The value to match.
                      $contains:
                        type: array
                        description: Filter arrays that contain some of the values of this parameter.
                        items:
                          type: string
                          title: $contains
                          description: The values to match.
                      $contained:
                        type: array
                        description: Filter arrays that contain all values of this parameter.
                        items:
                          type: string
                          title: $contained
                          description: The values to match.
                      $exists:
                        type: boolean
                        title: $exists
                        description: Filter by whether a value for this parameter exists (not `null`).
                  - type: array
                    description: Filter by values not matching those in this parameter.
                    items:
                      type: string
                      title: $not
                      description: The values to not match.
              $gt:
                type: string
                title: $gt
                description: Filter by values greater than this parameter. Useful for numbers and dates only.
              $gte:
                type: string
                title: $gte
                description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
              $lt:
                type: string
                title: $lt
                description: Filter by values less than this parameter. Useful for numbers and dates only.
              $lte:
                type: string
                title: $lte
                description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
              $like:
                type: string
                title: $like
                description: Apply a `like` filter. Useful for strings only.
              $re:
                type: string
                title: $re
                description: Apply a regex filter. Useful for strings only.
              $ilike:
                type: string
                title: $ilike
                description: Apply a case-insensitive `like` filter. Useful for strings only.
              $fulltext:
                type: string
                title: $fulltext
                description: Filter to apply on full-text properties.
              $overlap:
                type: array
                description: Filter arrays that have overlapping values with this parameter.
                items:
                  type: string
                  title: $overlap
                  description: The values to match.
              $contains:
                type: array
                description: Filter arrays that contain some of the values of this parameter.
                items:
                  type: string
                  title: $contains
                  description: The values to match.
              $contained:
                type: array
                description: Filter arrays that contain all values of this parameter.
                items:
                  type: string
                  title: $contained
                  description: The values to match.
              $exists:
                type: boolean
                title: $exists
                description: Filter by whether a value for this parameter exists (not `null`).
            title: created_at
        - name: updated_at
          in: query
          description: Filter by the category's update date.
          required: false
          schema:
            type: object
            description: Filter by the category's update date.
            properties:
              $and:
                type: array
                description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $and
              $or:
                type: array
                description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $or
              $eq:
                oneOf:
                  - type: string
                    title: $eq
                    description: Filter by an exact match.
                  - type: array
                    description: Filter by multiple exact matches.
                    items:
                      type: string
                      title: $eq
                      description: An exact match.
              $ne:
                type: string
                title: $ne
                description: Filter by values not equal to this parameter.
              $in:
                type: array
                description: Filter by values in this array.
                items:
                  type: string
                  title: $in
                  description: The value to match.
              $nin:
                type: array
                description: Filter by values not in this array.
                items:
                  type: string
                  title: $nin
                  description: The value not to match.
              $not:
                oneOf:
                  - type: string
                    title: $not
                    description: Filter by values not matching this parameter.
                  - type: object
                    description: Filter by values not matching the conditions in this parameter.
                    properties:
                      $and:
                        type: array
                        description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $and
                      $or:
                        type: array
                        description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $or
                      $eq:
                        oneOf:
                          - type: string
                            title: $eq
                            description: Filter by an exact match.
                          - type: array
                            description: Filter by multiple exact matches.
                            items:
                              type: string
                              title: $eq
                              description: The value to match.
                      $ne:
                        type: string
                        title: $ne
                        description: Filter by values not matching this parameter.
                      $in:
                        type: array
                        description: Filter by values in this array.
                        items:
                          type: string
                          title: $in
                          description: The value to match.
                      $nin:
                        type: array
                        description: Filter by values not in this array.
                        items:
                          type: string
                          title: $nin
                          description: The value to not match
                      $not:
                        oneOf:
                          - type: string
                            title: $not
                            description: Filter by values not matching this parameter
                          - type: object
                            description: Filter by values not matching the conditions in this parameter.
                          - type: array
                            description: Filter by values not matching the values of this parameter.
                            items:
                              type: string
                              title: $not
                              description: The values to not match.
                      $gt:
                        type: string
                        title: $gt
                        description: Filter by values greater than this parameter. Useful for numbers and dates only.
                      $gte:
                        type: string
                        title: $gte
                        description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
                      $lt:
                        type: string
                        title: $lt
                        description: Filter by values less than this parameter. Useful for numbers and dates only.
                      $lte:
                        type: string
                        title: $lte
                        description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
                      $like:
                        type: string
                        title: $like
                        description: Apply a `like` filter. Useful for strings only.
                      $re:
                        type: string
                        title: $re
                        description: Apply a regex filter. Useful for strings only.
                      $ilike:
                        type: string
                        title: $ilike
                        description: Apply a case-insensitive `like` filter. Useful for strings only.
                      $fulltext:
                        type: string
                        title: $fulltext
                        description: Filter to apply on full-text properties.
                      $overlap:
                        type: array
                        description: Filter arrays that have overlapping values with this parameter.
                        items:
                          type: string
                          title: $overlap
                          description: The value to match.
                      $contains:
                        type: array
                        description: Filter arrays that contain some of the values of this parameter.
                        items:
                          type: string
                          title: $contains
                          description: The values to match.
                      $contained:
                        type: array
                        description: Filter arrays that contain all values of this parameter.
                        items:
                          type: string
                          title: $contained
                          description: The values to match.
                      $exists:
                        type: boolean
                        title: $exists
                        description: Filter by whether a value for this parameter exists (not `null`).
                  - type: array
                    description: Filter by values not matching those in this parameter.
                    items:
                      type: string
                      title: $not
                      description: The values to not match.
              $gt:
                type: string
                title: $gt
                description: Filter by values greater than this parameter. Useful for numbers and dates only.
              $gte:
                type: string
                title: $gte
                description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
              $lt:
                type: string
                title: $lt
                description: Filter by values less than this parameter. Useful for numbers and dates only.
              $lte:
                type: string
                title: $lte
                description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
              $like:
                type: string
                title: $like
                description: Apply a `like` filter. Useful for strings only.
              $re:
                type: string
                title: $re
                description: Apply a regex filter. Useful for strings only.
              $ilike:
                type: string
                title: $ilike
                description: Apply a case-insensitive `like` filter. Useful for strings only.
              $fulltext:
                type: string
                title: $fulltext
                description: Filter to apply on full-text properties.
              $overlap:
                type: array
                description: Filter arrays that have overlapping values with this parameter.
                items:
                  type: string
                  title: $overlap
                  description: The values to match.
              $contains:
                type: array
                description: Filter arrays that contain some of the values of this parameter.
                items:
                  type: string
                  title: $contains
                  description: The values to match.
              $contained:
                type: array
                description: Filter arrays that contain all values of this parameter.
                items:
                  type: string
                  title: $contained
                  description: The values to match.
              $exists:
                type: boolean
                title: $exists
                description: Filter by whether a value for this parameter exists (not `null`).
            title: updated_at
        - name: $and
          in: query
          required: false
          schema:
            type: array
            description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
            items:
              type: object
            title: $and
        - name: $or
          in: query
          required: false
          schema:
            type: array
            description: The product category's $or.
            items:
              type: object
            title: $or
        - name: name
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: name
                description: Filter by a product category name.
              - type: array
                description: Filter by product category names.
                items:
                  type: string
                  title: name
                  description: A product category name.
        - name: with_deleted
          in: query
          description: Whether to include deleted records in the result.
          required: false
          schema:
            type: boolean
            title: with_deleted
            description: Whether to include deleted records in the result.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.category.list()
            .then(({ product_categories, count, offset, limit }) => {
              console.log(product_categories)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/product-categories' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Product Categories
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreProductCategoryListResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /store/product-categories/{id}:
    get:
      operationId: GetProductCategoriesId
      summary: Get a Product Category
      description: Retrieve a product category by its ID. You can expand the product category's relations or select the fields that should be returned.
      x-authenticated: false
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/products/categories/retrieve
        description: 'Storefront guide: How to retrieve a product category.'
      parameters:
        - name: id
          in: path
          description: The product category's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: include_ancestors_tree
          in: query
          description: Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`.
          required: false
          schema:
            type: boolean
            title: include_ancestors_tree
            description: Whether to retrieve the category's parent. If you enable this, add to the `fields` query parameter `parent_category` to set the parent of a category in this field. You can either pass `*parent_category` to retreieve the fields of all parent categories, or select specific fields to make the response size smaller. For example, `fields=parent_category.id,parent_category.name`.
        - name: include_descendants_tree
          in: query
          description: Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the children of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`.
          required: false
          schema:
            type: boolean
            title: include_descendants_tree
            description: Whether to retrieve a list of child categories. If you enable this, add to the `fields` query parameter `category_children` to set the children of a category in this field. You can either pass `*category_children` to retreieve the fields of all child categories, or select specific fields to make the response size smaller. For example, `fields=category_children.id,category_children.name`.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.category.retrieve("pcat_123")
            .then(({ product_category }) => {
              console.log(product_category)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/product-categories/{id}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Product Categories
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreProductCategoryResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /store/product-tags:
    get:
      operationId: GetProductTags
      summary: List Product Tags
      description: Retrieve a list of product tags. The product tags can be filtered by fields such as `id`. The product tags can also be sorted or paginated.
      x-authenticated: false
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: |-
            Comma-separated fields that should be included in the returned data.
            if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.
            without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: offset
          in: query
          description: The number of items to skip when retrieving a list.
          required: false
          schema:
            type: number
            title: offset
            description: The number of items to skip when retrieving a list.
            externalDocs:
              url: '#pagination'
        - name: limit
          in: query
          description: Limit the number of items returned in the list.
          required: false
          schema:
            type: number
            title: limit
            description: Limit the number of items returned in the list.
            externalDocs:
              url: '#pagination'
        - name: order
          in: query
          description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
          required: false
          schema:
            type: string
            title: order
            description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
            externalDocs:
              url: '#pagination'
        - name: $and
          in: query
          description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
          required: false
          schema:
            type: array
            description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
            items:
              type: object
            title: $and
        - name: $or
          in: query
          description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
          required: false
          schema:
            type: array
            description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
            items:
              type: object
            title: $or
        - name: q
          in: query
          description: Query to search product tag's searchable fields.
          required: false
          schema:
            type: string
            title: q
            description: Query to search product tag's searchable fields.
        - name: id
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: id
                description: Filter by a product tag's ID.
              - type: array
                description: Filter by product tag IDs.
                items:
                  type: string
                  title: id
                  description: A product tag's ID.
        - name: value
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: value
                description: Filter by a product tag's value.
              - type: array
                description: Filter by product tag values.
                items:
                  type: string
                  title: value
                  description: A product tag's value.
        - name: created_at
          in: query
          description: Filter by the tag's creation date.
          required: false
          schema:
            type: object
            description: Filter by the tag's creation date.
            properties:
              $and:
                type: array
                description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $and
              $or:
                type: array
                description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $or
              $eq:
                oneOf:
                  - type: string
                    title: $eq
                    description: Filter by an exact match.
                  - type: array
                    description: Filter by multiple exact matches.
                    items:
                      type: string
                      title: $eq
                      description: An exact match.
              $ne:
                type: string
                title: $ne
                description: Filter by values not equal to this parameter.
              $in:
                type: array
                description: Filter by values in this array.
                items:
                  type: string
                  title: $in
                  description: The value to match.
              $nin:
                type: array
                description: Filter by values not in this array.
                items:
                  type: string
                  title: $nin
                  description: The value not to match.
              $not:
                oneOf:
                  - type: string
                    title: $not
                    description: Filter by values not matching this parameter.
                  - type: object
                    description: Filter by values not matching the conditions in this parameter.
                    properties:
                      $and:
                        type: array
                        description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $and
                      $or:
                        type: array
                        description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $or
                      $eq:
                        oneOf:
                          - type: string
                            title: $eq
                            description: Filter by an exact match.
                          - type: array
                            description: Filter by multiple exact matches.
                            items:
                              type: string
                              title: $eq
                              description: The value to match.
                      $ne:
                        type: string
                        title: $ne
                        description: Filter by values not matching this parameter.
                      $in:
                        type: array
                        description: Filter by values in this array.
                        items:
                          type: string
                          title: $in
                          description: The value to match.
                      $nin:
                        type: array
                        description: Filter by values not in this array.
                        items:
                          type: string
                          title: $nin
                          description: The value to not match
                      $not:
                        oneOf:
                          - type: string
                            title: $not
                            description: Filter by values not matching this parameter
                          - type: object
                            description: Filter by values not matching the conditions in this parameter.
                          - type: array
                            description: Filter by values not matching the values of this parameter.
                            items:
                              type: string
                              title: $not
                              description: The values to not match.
                      $gt:
                        type: string
                        title: $gt
                        description: Filter by values greater than this parameter. Useful for numbers and dates only.
                      $gte:
                        type: string
                        title: $gte
                        description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
                      $lt:
                        type: string
                        title: $lt
                        description: Filter by values less than this parameter. Useful for numbers and dates only.
                      $lte:
                        type: string
                        title: $lte
                        description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
                      $like:
                        type: string
                        title: $like
                        description: Apply a `like` filter. Useful for strings only.
                      $re:
                        type: string
                        title: $re
                        description: Apply a regex filter. Useful for strings only.
                      $ilike:
                        type: string
                        title: $ilike
                        description: Apply a case-insensitive `like` filter. Useful for strings only.
                      $fulltext:
                        type: string
                        title: $fulltext
                        description: Filter to apply on full-text properties.
                      $overlap:
                        type: array
                        description: Filter arrays that have overlapping values with this parameter.
                        items:
                          type: string
                          title: $overlap
                          description: The value to match.
                      $contains:
                        type: array
                        description: Filter arrays that contain some of the values of this parameter.
                        items:
                          type: string
                          title: $contains
                          description: The values to match.
                      $contained:
                        type: array
                        description: Filter arrays that contain all values of this parameter.
                        items:
                          type: string
                          title: $contained
                          description: The values to match.
                      $exists:
                        type: boolean
                        title: $exists
                        description: Filter by whether a value for this parameter exists (not `null`).
                  - type: array
                    description: Filter by values not matching those in this parameter.
                    items:
                      type: string
                      title: $not
                      description: The values to not match.
              $gt:
                type: string
                title: $gt
                description: Filter by values greater than this parameter. Useful for numbers and dates only.
              $gte:
                type: string
                title: $gte
                description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
              $lt:
                type: string
                title: $lt
                description: Filter by values less than this parameter. Useful for numbers and dates only.
              $lte:
                type: string
                title: $lte
                description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
              $like:
                type: string
                title: $like
                description: Apply a `like` filter. Useful for strings only.
              $re:
                type: string
                title: $re
                description: Apply a regex filter. Useful for strings only.
              $ilike:
                type: string
                title: $ilike
                description: Apply a case-insensitive `like` filter. Useful for strings only.
              $fulltext:
                type: string
                title: $fulltext
                description: Filter to apply on full-text properties.
              $overlap:
                type: array
                description: Filter arrays that have overlapping values with this parameter.
                items:
                  type: string
                  title: $overlap
                  description: The values to match.
              $contains:
                type: array
                description: Filter arrays that contain some of the values of this parameter.
                items:
                  type: string
                  title: $contains
                  description: The values to match.
              $contained:
                type: array
                description: Filter arrays that contain all values of this parameter.
                items:
                  type: string
                  title: $contained
                  description: The values to match.
              $exists:
                type: boolean
                title: $exists
                description: Filter by whether a value for this parameter exists (not `null`).
            title: created_at
        - name: updated_at
          in: query
          description: Filter by the tag's update date.
          required: false
          schema:
            type: object
            description: Filter by the tag's update date.
            properties:
              $and:
                type: array
                description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $and
              $or:
                type: array
                description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $or
              $eq:
                oneOf:
                  - type: string
                    title: $eq
                    description: Filter by an exact match.
                  - type: array
                    description: Filter by multiple exact matches.
                    items:
                      type: string
                      title: $eq
                      description: An exact match.
              $ne:
                type: string
                title: $ne
                description: Filter by values not equal to this parameter.
              $in:
                type: array
                description: Filter by values in this array.
                items:
                  type: string
                  title: $in
                  description: The value to match.
              $nin:
                type: array
                description: Filter by values not in this array.
                items:
                  type: string
                  title: $nin
                  description: The value not to match.
              $not:
                oneOf:
                  - type: string
                    title: $not
                    description: Filter by values not matching this parameter.
                  - type: object
                    description: Filter by values not matching the conditions in this parameter.
                    properties:
                      $and:
                        type: array
                        description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $and
                      $or:
                        type: array
                        description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $or
                      $eq:
                        oneOf:
                          - type: string
                            title: $eq
                            description: Filter by an exact match.
                          - type: array
                            description: Filter by multiple exact matches.
                            items:
                              type: string
                              title: $eq
                              description: The value to match.
                      $ne:
                        type: string
                        title: $ne
                        description: Filter by values not matching this parameter.
                      $in:
                        type: array
                        description: Filter by values in this array.
                        items:
                          type: string
                          title: $in
                          description: The value to match.
                      $nin:
                        type: array
                        description: Filter by values not in this array.
                        items:
                          type: string
                          title: $nin
                          description: The value to not match
                      $not:
                        oneOf:
                          - type: string
                            title: $not
                            description: Filter by values not matching this parameter
                          - type: object
                            description: Filter by values not matching the conditions in this parameter.
                          - type: array
                            description: Filter by values not matching the values of this parameter.
                            items:
                              type: string
                              title: $not
                              description: The values to not match.
                      $gt:
                        type: string
                        title: $gt
                        description: Filter by values greater than this parameter. Useful for numbers and dates only.
                      $gte:
                        type: string
                        title: $gte
                        description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
                      $lt:
                        type: string
                        title: $lt
                        description: Filter by values less than this parameter. Useful for numbers and dates only.
                      $lte:
                        type: string
                        title: $lte
                        description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
                      $like:
                        type: string
                        title: $like
                        description: Apply a `like` filter. Useful for strings only.
                      $re:
                        type: string
                        title: $re
                        description: Apply a regex filter. Useful for strings only.
                      $ilike:
                        type: string
                        title: $ilike
                        description: Apply a case-insensitive `like` filter. Useful for strings only.
                      $fulltext:
                        type: string
                        title: $fulltext
                        description: Filter to apply on full-text properties.
                      $overlap:
                        type: array
                        description: Filter arrays that have overlapping values with this parameter.
                        items:
                          type: string
                          title: $overlap
                          description: The value to match.
                      $contains:
                        type: array
                        description: Filter arrays that contain some of the values of this parameter.
                        items:
                          type: string
                          title: $contains
                          description: The values to match.
                      $contained:
                        type: array
                        description: Filter arrays that contain all values of this parameter.
                        items:
                          type: string
                          title: $contained
                          description: The values to match.
                      $exists:
                        type: boolean
                        title: $exists
                        description: Filter by whether a value for this parameter exists (not `null`).
                  - type: array
                    description: Filter by values not matching those in this parameter.
                    items:
                      type: string
                      title: $not
                      description: The values to not match.
              $gt:
                type: string
                title: $gt
                description: Filter by values greater than this parameter. Useful for numbers and dates only.
              $gte:
                type: string
                title: $gte
                description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
              $lt:
                type: string
                title: $lt
                description: Filter by values less than this parameter. Useful for numbers and dates only.
              $lte:
                type: string
                title: $lte
                description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
              $like:
                type: string
                title: $like
                description: Apply a `like` filter. Useful for strings only.
              $re:
                type: string
                title: $re
                description: Apply a regex filter. Useful for strings only.
              $ilike:
                type: string
                title: $ilike
                description: Apply a case-insensitive `like` filter. Useful for strings only.
              $fulltext:
                type: string
                title: $fulltext
                description: Filter to apply on full-text properties.
              $overlap:
                type: array
                description: Filter arrays that have overlapping values with this parameter.
                items:
                  type: string
                  title: $overlap
                  description: The values to match.
              $contains:
                type: array
                description: Filter arrays that contain some of the values of this parameter.
                items:
                  type: string
                  title: $contains
                  description: The values to match.
              $contained:
                type: array
                description: Filter arrays that contain all values of this parameter.
                items:
                  type: string
                  title: $contained
                  description: The values to match.
              $exists:
                type: boolean
                title: $exists
                description: Filter by whether a value for this parameter exists (not `null`).
            title: updated_at
        - name: with_deleted
          in: query
          description: Whether to include deleted records in the result.
          required: false
          schema:
            type: boolean
            title: with_deleted
            description: Whether to include deleted records in the result.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/product-tags' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Product Tags
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreProductTagListResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /store/product-tags/{id}:
    get:
      operationId: GetProductTagsId
      summary: Get a Product Tag
      description: Retrieve a product tag by its ID. You can expand the product tag's relations or select the fields that should be returned.
      x-authenticated: false
      parameters:
        - name: id
          in: path
          description: The product tag's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: |-
            Comma-separated fields that should be included in the returned data.
            if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.
            without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/product-tags/{id}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Product Tags
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreProductTagResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /store/product-types:
    get:
      operationId: GetProductTypes
      summary: List Product Types
      description: Retrieve a list of product types. The product types can be filtered by fields such as `id`. The product types can also be sorted or paginated.
      x-authenticated: false
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: |-
            Comma-separated fields that should be included in the returned data.
             if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.
             without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: offset
          in: query
          description: The number of items to skip when retrieving a list.
          required: false
          schema:
            type: number
            title: offset
            description: The number of items to skip when retrieving a list.
            externalDocs:
              url: '#pagination'
        - name: limit
          in: query
          description: Limit the number of items returned in the list.
          required: false
          schema:
            type: number
            title: limit
            description: Limit the number of items returned in the list.
            externalDocs:
              url: '#pagination'
        - name: order
          in: query
          description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
          required: false
          schema:
            type: string
            title: order
            description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
            externalDocs:
              url: '#pagination'
        - name: $and
          in: query
          description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
          required: false
          schema:
            type: array
            description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
            items:
              type: object
            title: $and
        - name: $or
          in: query
          description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
          required: false
          schema:
            type: array
            description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
            items:
              type: object
            title: $or
        - name: q
          in: query
          description: Query to search the product type's searchable fields.
          required: false
          schema:
            type: string
            title: q
            description: Query to search the product type's searchable fields.
        - name: id
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: id
                description: Filter by a product type's ID.
              - type: array
                description: Filter by product type IDs.
                items:
                  type: string
                  title: id
                  description: A product type's ID.
        - name: value
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: value
                description: Filter by a product type's value.
              - type: array
                description: Filter by product type values.
                items:
                  type: string
                  title: value
                  description: A product type's value.
        - name: created_at
          in: query
          description: Filter by the type's creation date.
          required: false
          schema:
            type: object
            description: Filter by the type's creation date.
            properties:
              $and:
                type: array
                description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $and
              $or:
                type: array
                description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $or
              $eq:
                oneOf:
                  - type: string
                    title: $eq
                    description: Filter by an exact match.
                  - type: array
                    description: Filter by multiple exact matches.
                    items:
                      type: string
                      title: $eq
                      description: An exact match.
              $ne:
                type: string
                title: $ne
                description: Filter by values not equal to this parameter.
              $in:
                type: array
                description: Filter by values in this array.
                items:
                  type: string
                  title: $in
                  description: The value to match.
              $nin:
                type: array
                description: Filter by values not in this array.
                items:
                  type: string
                  title: $nin
                  description: The value not to match.
              $not:
                oneOf:
                  - type: string
                    title: $not
                    description: Filter by values not matching this parameter.
                  - type: object
                    description: Filter by values not matching the conditions in this parameter.
                    properties:
                      $and:
                        type: array
                        description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $and
                      $or:
                        type: array
                        description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $or
                      $eq:
                        oneOf:
                          - type: string
                            title: $eq
                            description: Filter by an exact match.
                          - type: array
                            description: Filter by multiple exact matches.
                            items:
                              type: string
                              title: $eq
                              description: The value to match.
                      $ne:
                        type: string
                        title: $ne
                        description: Filter by values not matching this parameter.
                      $in:
                        type: array
                        description: Filter by values in this array.
                        items:
                          type: string
                          title: $in
                          description: The value to match.
                      $nin:
                        type: array
                        description: Filter by values not in this array.
                        items:
                          type: string
                          title: $nin
                          description: The value to not match
                      $not:
                        oneOf:
                          - type: string
                            title: $not
                            description: Filter by values not matching this parameter
                          - type: object
                            description: Filter by values not matching the conditions in this parameter.
                          - type: array
                            description: Filter by values not matching the values of this parameter.
                            items:
                              type: string
                              title: $not
                              description: The values to not match.
                      $gt:
                        type: string
                        title: $gt
                        description: Filter by values greater than this parameter. Useful for numbers and dates only.
                      $gte:
                        type: string
                        title: $gte
                        description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
                      $lt:
                        type: string
                        title: $lt
                        description: Filter by values less than this parameter. Useful for numbers and dates only.
                      $lte:
                        type: string
                        title: $lte
                        description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
                      $like:
                        type: string
                        title: $like
                        description: Apply a `like` filter. Useful for strings only.
                      $re:
                        type: string
                        title: $re
                        description: Apply a regex filter. Useful for strings only.
                      $ilike:
                        type: string
                        title: $ilike
                        description: Apply a case-insensitive `like` filter. Useful for strings only.
                      $fulltext:
                        type: string
                        title: $fulltext
                        description: Filter to apply on full-text properties.
                      $overlap:
                        type: array
                        description: Filter arrays that have overlapping values with this parameter.
                        items:
                          type: string
                          title: $overlap
                          description: The value to match.
                      $contains:
                        type: array
                        description: Filter arrays that contain some of the values of this parameter.
                        items:
                          type: string
                          title: $contains
                          description: The values to match.
                      $contained:
                        type: array
                        description: Filter arrays that contain all values of this parameter.
                        items:
                          type: string
                          title: $contained
                          description: The values to match.
                      $exists:
                        type: boolean
                        title: $exists
                        description: Filter by whether a value for this parameter exists (not `null`).
                  - type: array
                    description: Filter by values not matching those in this parameter.
                    items:
                      type: string
                      title: $not
                      description: The values to not match.
              $gt:
                type: string
                title: $gt
                description: Filter by values greater than this parameter. Useful for numbers and dates only.
              $gte:
                type: string
                title: $gte
                description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
              $lt:
                type: string
                title: $lt
                description: Filter by values less than this parameter. Useful for numbers and dates only.
              $lte:
                type: string
                title: $lte
                description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
              $like:
                type: string
                title: $like
                description: Apply a `like` filter. Useful for strings only.
              $re:
                type: string
                title: $re
                description: Apply a regex filter. Useful for strings only.
              $ilike:
                type: string
                title: $ilike
                description: Apply a case-insensitive `like` filter. Useful for strings only.
              $fulltext:
                type: string
                title: $fulltext
                description: Filter to apply on full-text properties.
              $overlap:
                type: array
                description: Filter arrays that have overlapping values with this parameter.
                items:
                  type: string
                  title: $overlap
                  description: The values to match.
              $contains:
                type: array
                description: Filter arrays that contain some of the values of this parameter.
                items:
                  type: string
                  title: $contains
                  description: The values to match.
              $contained:
                type: array
                description: Filter arrays that contain all values of this parameter.
                items:
                  type: string
                  title: $contained
                  description: The values to match.
              $exists:
                type: boolean
                title: $exists
                description: Filter by whether a value for this parameter exists (not `null`).
            title: created_at
        - name: updated_at
          in: query
          description: Filter by the type's update date.
          required: false
          schema:
            type: object
            description: Filter by the type's update date.
            properties:
              $and:
                type: array
                description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $and
              $or:
                type: array
                description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $or
              $eq:
                oneOf:
                  - type: string
                    title: $eq
                    description: Filter by an exact match.
                  - type: array
                    description: Filter by multiple exact matches.
                    items:
                      type: string
                      title: $eq
                      description: An exact match.
              $ne:
                type: string
                title: $ne
                description: Filter by values not equal to this parameter.
              $in:
                type: array
                description: Filter by values in this array.
                items:
                  type: string
                  title: $in
                  description: The value to match.
              $nin:
                type: array
                description: Filter by values not in this array.
                items:
                  type: string
                  title: $nin
                  description: The value not to match.
              $not:
                oneOf:
                  - type: string
                    title: $not
                    description: Filter by values not matching this parameter.
                  - type: object
                    description: Filter by values not matching the conditions in this parameter.
                    properties:
                      $and:
                        type: array
                        description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $and
                      $or:
                        type: array
                        description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $or
                      $eq:
                        oneOf:
                          - type: string
                            title: $eq
                            description: Filter by an exact match.
                          - type: array
                            description: Filter by multiple exact matches.
                            items:
                              type: string
                              title: $eq
                              description: The value to match.
                      $ne:
                        type: string
                        title: $ne
                        description: Filter by values not matching this parameter.
                      $in:
                        type: array
                        description: Filter by values in this array.
                        items:
                          type: string
                          title: $in
                          description: The value to match.
                      $nin:
                        type: array
                        description: Filter by values not in this array.
                        items:
                          type: string
                          title: $nin
                          description: The value to not match
                      $not:
                        oneOf:
                          - type: string
                            title: $not
                            description: Filter by values not matching this parameter
                          - type: object
                            description: Filter by values not matching the conditions in this parameter.
                          - type: array
                            description: Filter by values not matching the values of this parameter.
                            items:
                              type: string
                              title: $not
                              description: The values to not match.
                      $gt:
                        type: string
                        title: $gt
                        description: Filter by values greater than this parameter. Useful for numbers and dates only.
                      $gte:
                        type: string
                        title: $gte
                        description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
                      $lt:
                        type: string
                        title: $lt
                        description: Filter by values less than this parameter. Useful for numbers and dates only.
                      $lte:
                        type: string
                        title: $lte
                        description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
                      $like:
                        type: string
                        title: $like
                        description: Apply a `like` filter. Useful for strings only.
                      $re:
                        type: string
                        title: $re
                        description: Apply a regex filter. Useful for strings only.
                      $ilike:
                        type: string
                        title: $ilike
                        description: Apply a case-insensitive `like` filter. Useful for strings only.
                      $fulltext:
                        type: string
                        title: $fulltext
                        description: Filter to apply on full-text properties.
                      $overlap:
                        type: array
                        description: Filter arrays that have overlapping values with this parameter.
                        items:
                          type: string
                          title: $overlap
                          description: The value to match.
                      $contains:
                        type: array
                        description: Filter arrays that contain some of the values of this parameter.
                        items:
                          type: string
                          title: $contains
                          description: The values to match.
                      $contained:
                        type: array
                        description: Filter arrays that contain all values of this parameter.
                        items:
                          type: string
                          title: $contained
                          description: The values to match.
                      $exists:
                        type: boolean
                        title: $exists
                        description: Filter by whether a value for this parameter exists (not `null`).
                  - type: array
                    description: Filter by values not matching those in this parameter.
                    items:
                      type: string
                      title: $not
                      description: The values to not match.
              $gt:
                type: string
                title: $gt
                description: Filter by values greater than this parameter. Useful for numbers and dates only.
              $gte:
                type: string
                title: $gte
                description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
              $lt:
                type: string
                title: $lt
                description: Filter by values less than this parameter. Useful for numbers and dates only.
              $lte:
                type: string
                title: $lte
                description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
              $like:
                type: string
                title: $like
                description: Apply a `like` filter. Useful for strings only.
              $re:
                type: string
                title: $re
                description: Apply a regex filter. Useful for strings only.
              $ilike:
                type: string
                title: $ilike
                description: Apply a case-insensitive `like` filter. Useful for strings only.
              $fulltext:
                type: string
                title: $fulltext
                description: Filter to apply on full-text properties.
              $overlap:
                type: array
                description: Filter arrays that have overlapping values with this parameter.
                items:
                  type: string
                  title: $overlap
                  description: The values to match.
              $contains:
                type: array
                description: Filter arrays that contain some of the values of this parameter.
                items:
                  type: string
                  title: $contains
                  description: The values to match.
              $contained:
                type: array
                description: Filter arrays that contain all values of this parameter.
                items:
                  type: string
                  title: $contained
                  description: The values to match.
              $exists:
                type: boolean
                title: $exists
                description: Filter by whether a value for this parameter exists (not `null`).
            title: updated_at
        - name: with_deleted
          in: query
          description: Whether to include deleted records in the result.
          required: false
          schema:
            type: boolean
            title: with_deleted
            description: Whether to include deleted records in the result.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/product-types' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Product Types
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreProductTypeListResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /store/product-types/{id}:
    get:
      operationId: GetProductTypesId
      summary: Get a Product Type
      description: Retrieve a product type by its ID. You can expand the product type's relations or select the fields that should be returned.
      x-authenticated: false
      parameters:
        - name: id
          in: path
          description: The product type's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: |-
            Comma-separated fields that should be included in the returned data.
             if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.
             without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/product-types/{id}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Product Types
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreProductTypeResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /store/products:
    get:
      operationId: GetProducts
      summary: List Products
      description: |
        Retrieve a list of products. The products can be filtered by fields such as `id`. The products can also be sorted or paginated.

        You can retrieve the content of the products translated to a specific locale either by passing the `locale` query parameter or by setting the `x-medusa-locale` header to the desired locale code in BCP 47 format. If you don't pass a locale, and your store has a default locale, the default locale will be used.

        With localization, the products' content like title and description will be in the specified locale if a translation is available,  and fallback to the original content otherwise. Learn more in the [Localization](#localization) section.
      x-authenticated: false
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/products/price
        description: 'Storefront guide: How to retrieve a product variants'' prices.'
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: offset
          in: query
          description: The number of items to skip when retrieving a list.
          required: false
          schema:
            type: number
            title: offset
            description: The number of items to skip when retrieving a list.
            externalDocs:
              url: '#pagination'
        - name: limit
          in: query
          description: Limit the number of items returned in the list.
          required: false
          schema:
            type: number
            title: limit
            description: Limit the number of items returned in the list.
            externalDocs:
              url: '#pagination'
        - name: order
          in: query
          description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
          required: false
          schema:
            type: string
            title: order
            description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
        - name: $and
          in: query
          description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
          required: false
          schema:
            type: array
            description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
            items:
              type: object
            title: $and
        - name: $or
          in: query
          description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
          required: false
          schema:
            type: array
            description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
            items:
              type: object
            title: $or
        - name: q
          in: query
          description: Search term to filter the product's searchable properties.
          required: false
          schema:
            type: string
            title: q
            description: Search term to filter the product's searchable properties.
        - name: id
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: id
                description: Filter by a product ID.
              - type: array
                description: Filter by product IDs.
                items:
                  type: string
                  title: id
                  description: A product ID.
        - name: title
          in: query
          description: Filter by product titles.
          required: false
          schema:
            oneOf:
              - type: string
                title: title
                description: Filter by a title.
              - type: array
                description: Filter by titles.
                items:
                  type: string
                  title: title
                  description: A title.
        - name: handle
          in: query
          description: Filter by product handles.
          required: false
          schema:
            oneOf:
              - type: string
                title: handle
                description: Filter by a product handle.
              - type: array
                description: Filter by product handles.
                items:
                  type: string
                  title: handle
                  description: A product handle.
        - name: is_giftcard
          in: query
          description: Whether the product is a gift card.
          required: false
          schema:
            type: boolean
            title: is_giftcard
            description: Whether the product is a gift card.
        - name: collection_id
          in: query
          description: Filter by a collection's ID to retrieve the products in it.
          required: false
          schema:
            description: Filter by a collection's ID to retrieve the products in it.
            externalDocs:
              url: https://docs.medusajs.com/resources/storefront-development/products/collections/products
              description: 'Storefront guide: Retrieve a collection''s products.'
            items:
              type: string
              title: collection_id
              description: A collection's ID.
        - name: tag_id
          in: query
          description: Filter by a tag's ID to retrieve the products in it.
          required: false
          schema:
            oneOf:
              - type: string
                title: tag_id
                description: Filter by a product tag's ID.
              - type: array
                description: Filter by product tag IDs.
                items:
                  type: string
                  title: tag_id
                  description: A product tag ID.
        - name: type_id
          in: query
          description: Filter by a type's ID to retrieve the products in it.
          required: false
          schema:
            oneOf:
              - type: string
                title: type_id
                description: Filter by a product type's ID.
              - type: array
                description: Filter by product type IDs.
                items:
                  type: string
                  title: type_id
                  description: A product type ID.
        - name: created_at
          in: query
          description: Filter by the product's creation date.
          required: false
          schema:
            type: object
            description: Filter by the product's creation date.
            properties:
              $and:
                type: array
                description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $and
              $or:
                type: array
                description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $or
              $eq:
                oneOf:
                  - type: string
                    title: $eq
                    description: Filter by an exact match.
                  - type: array
                    description: Filter by multiple exact matches.
                    items:
                      type: string
                      title: $eq
                      description: An exact match.
              $ne:
                type: string
                title: $ne
                description: Filter by values not equal to this parameter.
              $in:
                type: array
                description: Filter by values in this array.
                items:
                  type: string
                  title: $in
                  description: The value to match.
              $nin:
                type: array
                description: Filter by values not in this array.
                items:
                  type: string
                  title: $nin
                  description: The value not to match.
              $not:
                oneOf:
                  - type: string
                    title: $not
                    description: Filter by values not matching this parameter.
                  - type: object
                    description: Filter by values not matching the conditions in this parameter.
                    properties:
                      $and:
                        type: array
                        description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $and
                      $or:
                        type: array
                        description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $or
                      $eq:
                        oneOf:
                          - type: string
                            title: $eq
                            description: Filter by an exact match.
                          - type: array
                            description: Filter by multiple exact matches.
                            items:
                              type: string
                              title: $eq
                              description: The value to match.
                      $ne:
                        type: string
                        title: $ne
                        description: Filter by values not matching this parameter.
                      $in:
                        type: array
                        description: Filter by values in this array.
                        items:
                          type: string
                          title: $in
                          description: The value to match.
                      $nin:
                        type: array
                        description: Filter by values not in this array.
                        items:
                          type: string
                          title: $nin
                          description: The value to not match
                      $not:
                        oneOf:
                          - type: string
                            title: $not
                            description: Filter by values not matching this parameter
                          - type: object
                            description: Filter by values not matching the conditions in this parameter.
                          - type: array
                            description: Filter by values not matching the values of this parameter.
                            items:
                              type: string
                              title: $not
                              description: The values to not match.
                      $gt:
                        type: string
                        title: $gt
                        description: Filter by values greater than this parameter. Useful for numbers and dates only.
                      $gte:
                        type: string
                        title: $gte
                        description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
                      $lt:
                        type: string
                        title: $lt
                        description: Filter by values less than this parameter. Useful for numbers and dates only.
                      $lte:
                        type: string
                        title: $lte
                        description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
                      $like:
                        type: string
                        title: $like
                        description: Apply a `like` filter. Useful for strings only.
                      $re:
                        type: string
                        title: $re
                        description: Apply a regex filter. Useful for strings only.
                      $ilike:
                        type: string
                        title: $ilike
                        description: Apply a case-insensitive `like` filter. Useful for strings only.
                      $fulltext:
                        type: string
                        title: $fulltext
                        description: Filter to apply on full-text properties.
                      $overlap:
                        type: array
                        description: Filter arrays that have overlapping values with this parameter.
                        items:
                          type: string
                          title: $overlap
                          description: The value to match.
                      $contains:
                        type: array
                        description: Filter arrays that contain some of the values of this parameter.
                        items:
                          type: string
                          title: $contains
                          description: The values to match.
                      $contained:
                        type: array
                        description: Filter arrays that contain all values of this parameter.
                        items:
                          type: string
                          title: $contained
                          description: The values to match.
                      $exists:
                        type: boolean
                        title: $exists
                        description: Filter by whether a value for this parameter exists (not `null`).
                  - type: array
                    description: Filter by values not matching those in this parameter.
                    items:
                      type: string
                      title: $not
                      description: The values to not match.
              $gt:
                type: string
                title: $gt
                description: Filter by values greater than this parameter. Useful for numbers and dates only.
              $gte:
                type: string
                title: $gte
                description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
              $lt:
                type: string
                title: $lt
                description: Filter by values less than this parameter. Useful for numbers and dates only.
              $lte:
                type: string
                title: $lte
                description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
              $like:
                type: string
                title: $like
                description: Apply a `like` filter. Useful for strings only.
              $re:
                type: string
                title: $re
                description: Apply a regex filter. Useful for strings only.
              $ilike:
                type: string
                title: $ilike
                description: Apply a case-insensitive `like` filter. Useful for strings only.
              $fulltext:
                type: string
                title: $fulltext
                description: Filter to apply on full-text properties.
              $overlap:
                type: array
                description: Filter arrays that have overlapping values with this parameter.
                items:
                  type: string
                  title: $overlap
                  description: The values to match.
              $contains:
                type: array
                description: Filter arrays that contain some of the values of this parameter.
                items:
                  type: string
                  title: $contains
                  description: The values to match.
              $contained:
                type: array
                description: Filter arrays that contain all values of this parameter.
                items:
                  type: string
                  title: $contained
                  description: The values to match.
              $exists:
                type: boolean
                title: $exists
                description: Filter by whether a value for this parameter exists (not `null`).
            title: created_at
        - name: updated_at
          in: query
          description: Filter by the product's update date.
          required: false
          schema:
            type: object
            description: Filter by the product's update date.
            properties:
              $and:
                type: array
                description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $and
              $or:
                type: array
                description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $or
              $eq:
                oneOf:
                  - type: string
                    title: $eq
                    description: Filter by an exact match.
                  - type: array
                    description: Filter by multiple exact matches.
                    items:
                      type: string
                      title: $eq
                      description: An exact match.
              $ne:
                type: string
                title: $ne
                description: Filter by values not equal to this parameter.
              $in:
                type: array
                description: Filter by values in this array.
                items:
                  type: string
                  title: $in
                  description: The value to match.
              $nin:
                type: array
                description: Filter by values not in this array.
                items:
                  type: string
                  title: $nin
                  description: The value not to match.
              $not:
                oneOf:
                  - type: string
                    title: $not
                    description: Filter by values not matching this parameter.
                  - type: object
                    description: Filter by values not matching the conditions in this parameter.
                    properties:
                      $and:
                        type: array
                        description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $and
                      $or:
                        type: array
                        description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                        items:
                          type: object
                        title: $or
                      $eq:
                        oneOf:
                          - type: string
                            title: $eq
                            description: Filter by an exact match.
                          - type: array
                            description: Filter by multiple exact matches.
                            items:
                              type: string
                              title: $eq
                              description: The value to match.
                      $ne:
                        type: string
                        title: $ne
                        description: Filter by values not matching this parameter.
                      $in:
                        type: array
                        description: Filter by values in this array.
                        items:
                          type: string
                          title: $in
                          description: The value to match.
                      $nin:
                        type: array
                        description: Filter by values not in this array.
                        items:
                          type: string
                          title: $nin
                          description: The value to not match
                      $not:
                        oneOf:
                          - type: string
                            title: $not
                            description: Filter by values not matching this parameter
                          - type: object
                            description: Filter by values not matching the conditions in this parameter.
                          - type: array
                            description: Filter by values not matching the values of this parameter.
                            items:
                              type: string
                              title: $not
                              description: The values to not match.
                      $gt:
                        type: string
                        title: $gt
                        description: Filter by values greater than this parameter. Useful for numbers and dates only.
                      $gte:
                        type: string
                        title: $gte
                        description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
                      $lt:
                        type: string
                        title: $lt
                        description: Filter by values less than this parameter. Useful for numbers and dates only.
                      $lte:
                        type: string
                        title: $lte
                        description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
                      $like:
                        type: string
                        title: $like
                        description: Apply a `like` filter. Useful for strings only.
                      $re:
                        type: string
                        title: $re
                        description: Apply a regex filter. Useful for strings only.
                      $ilike:
                        type: string
                        title: $ilike
                        description: Apply a case-insensitive `like` filter. Useful for strings only.
                      $fulltext:
                        type: string
                        title: $fulltext
                        description: Filter to apply on full-text properties.
                      $overlap:
                        type: array
                        description: Filter arrays that have overlapping values with this parameter.
                        items:
                          type: string
                          title: $overlap
                          description: The value to match.
                      $contains:
                        type: array
                        description: Filter arrays that contain some of the values of this parameter.
                        items:
                          type: string
                          title: $contains
                          description: The values to match.
                      $contained:
                        type: array
                        description: Filter arrays that contain all values of this parameter.
                        items:
                          type: string
                          title: $contained
                          description: The values to match.
                      $exists:
                        type: boolean
                        title: $exists
                        description: Filter by whether a value for this parameter exists (not `null`).
                  - type: array
                    description: Filter by values not matching those in this parameter.
                    items:
                      type: string
                      title: $not
                      description: The values to not match.
              $gt:
                type: string
                title: $gt
                description: Filter by values greater than this parameter. Useful for numbers and dates only.
              $gte:
                type: string
                title: $gte
                description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
              $lt:
                type: string
                title: $lt
                description: Filter by values less than this parameter. Useful for numbers and dates only.
              $lte:
                type: string
                title: $lte
                description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
              $like:
                type: string
                title: $like
                description: Apply a `like` filter. Useful for strings only.
              $re:
                type: string
                title: $re
                description: Apply a regex filter. Useful for strings only.
              $ilike:
                type: string
                title: $ilike
                description: Apply a case-insensitive `like` filter. Useful for strings only.
              $fulltext:
                type: string
                title: $fulltext
                description: Filter to apply on full-text properties.
              $overlap:
                type: array
                description: Filter arrays that have overlapping values with this parameter.
                items:
                  type: string
                  title: $overlap
                  description: The values to match.
              $contains:
                type: array
                description: Filter arrays that contain some of the values of this parameter.
                items:
                  type: string
                  title: $contains
                  description: The values to match.
              $contained:
                type: array
                description: Filter arrays that contain all values of this parameter.
                items:
                  type: string
                  title: $contained
                  description: The values to match.
              $exists:
                type: boolean
                title: $exists
                description: Filter by whether a value for this parameter exists (not `null`).
            title: updated_at
        - name: region_id
          in: query
          description: The ID of the region the products are being viewed from. This is required if you're retrieving product variant prices with taxes.
          required: false
          schema:
            type: string
            title: region_id
            description: The ID of the region the products are being viewed from. This is required if you're retrieving product variant prices with taxes.
            externalDocs:
              url: https://docs.medusajs.com/resources/storefront-development/products/price/examples/tax-price
              description: 'Storefront guide: How to show product variants'' prices with taxes.'
        - name: province
          in: query
          description: The lower-case ISO 3166-2 province code the products are being viewed from. This is useful to narrow down the tax context when calculating product variant prices with taxes.
          required: false
          schema:
            type: string
            title: province
            description: The lower-case ISO 3166-2 province code the products are being viewed from. This is useful to narrow down the tax context when calculating product variant prices with taxes.
            example: us-ca
            externalDocs:
              url: https://en.wikipedia.org/wiki/ISO_3166-2
              description: Learn more about ISO 3166-2
        - name: sales_channel_id
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: sales_channel_id
                description: The ID of a sales channel to retrieve products in it.
              - type: array
                description: The IDs of sales channels to retrieve products in them.
                items:
                  type: string
                  title: sales_channel_id
                  description: A sales channel's ID.
        - name: category_id
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: category_id
                description: The ID of a product category to retrieve products in it.
              - type: array
                description: The ID of product categories to retrieve products in them.
                items:
                  type: string
                  title: category_id
                  description: A product category's ID.
        - name: variants
          in: query
          description: Filter the products' variants.
          required: false
          schema:
            type: object
            description: Filter the products' variants.
            x-schemaName: StoreProductVariantParams
            properties:
              options:
                type: object
                description: Filter by the variants' options.
                required:
                  - value
                  - option_id
                properties:
                  option_id:
                    type: string
                    title: option_id
                    description: The ID of the option to filter by.
                  value:
                    type: string
                    title: value
                    description: Filter by a value of the option.
        - name: country_code
          in: query
          description: The product's country code.
          required: false
          schema:
            type: string
            title: country_code
            description: The product's country code.
        - name: cart_id
          in: query
          description: The product's cart id.
          required: false
          schema:
            type: string
            title: cart_id
            description: The product's cart id.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.product.list()
            .then(({ products, count, offset, limit }) => {
              console.log(products)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/products' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Products
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreProductListResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /store/products/{id}:
    get:
      operationId: GetProductsId
      summary: Get a Product
      description: |
        Retrieve a product by its ID. You can expand the product's relations or select the fields that should be returned.

        You can retrieve the content of the product translated to a specific locale either by passing the `locale` query parameter or by setting the `x-medusa-locale` header to the desired locale code in BCP 47 format. If you don't pass a locale, and your store has a default locale, the default locale will be used.

        With localization, the product's content like title and description will be in the specified locale if a translation is available,  and fallback to the original content otherwise. Learn more in the [Localization](#localization) section.
      x-authenticated: false
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/products/price
        description: 'Storefront guide: How to retrieve a product variants'' prices.'
      parameters:
        - name: id
          in: path
          description: The product's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: region_id
          in: query
          description: The ID of the region the product is being viewed from. This is required if you're retrieving product variant prices with taxes.
          required: false
          schema:
            type: string
            title: region_id
            description: The ID of the region the product is being viewed from. This is required if you're retrieving product variant prices with taxes.
            externalDocs:
              url: https://docs.medusajs.com/resources/storefront-development/products/price/examples/tax-price
              description: 'Storefront guide: How to show product variants'' prices with taxes.'
        - name: country_code
          in: query
          description: The country code the product is being viewed from. This is required if you're retrieving product variant prices with taxes.
          required: false
          schema:
            type: string
            title: country_code
            description: The country code the product is being viewed from. This is required if you're retrieving product variant prices with taxes.
        - name: province
          in: query
          description: The lower-case ISO 3166-2 province code the product is being viewed from. This is useful to narrow down the tax context when calculating product variant prices with taxes.
          required: false
          schema:
            type: string
            title: province
            description: The lower-case ISO 3166-2 province code the product is being viewed from. This is useful to narrow down the tax context when calculating product variant prices with taxes.
            example: us-ca
            externalDocs:
              url: https://en.wikipedia.org/wiki/ISO_3166-2
              description: Learn more about ISO 3166-2
        - name: cart_id
          in: query
          description: The ID of the customer's cart. If set, the cart's region and shipping address's country code and province are used instead of the `region_id`, `country_code`, and `province` properties.
          required: false
          schema:
            type: string
            title: cart_id
            description: The ID of the customer's cart. If set, the cart's region and shipping address's country code and province are used instead of the `region_id`, `country_code`, and `province` properties.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.product.retrieve("prod_123")
            .then(({ product }) => {
              console.log(product)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/products/{id}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Products
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreProductResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /store/regions:
    get:
      operationId: GetRegions
      summary: List Regions
      description: Retrieve a list of regions. The regions can be filtered by fields such as `id`. The regions can also be sorted or paginated.
      x-authenticated: false
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/regions/list
        description: 'Storefront guide: How to retrieve a list of regions.'
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: offset
          in: query
          description: The number of items to skip when retrieving a list.
          required: false
          schema:
            type: number
            title: offset
            description: The number of items to skip when retrieving a list.
            externalDocs:
              url: '#pagination'
        - name: limit
          in: query
          description: Limit the number of items returned in the list.
          required: false
          schema:
            type: number
            title: limit
            description: Limit the number of items returned in the list.
            externalDocs:
              url: '#pagination'
        - name: order
          in: query
          description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
          required: false
          schema:
            type: string
            title: order
            description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
        - name: q
          in: query
          description: Search term to filter the region's searchable properties.
          required: false
          schema:
            type: string
            title: q
            description: Search term to filter the region's searchable properties.
        - name: id
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: id
                description: Filter by a region's ID.
              - type: array
                description: Filter by region IDs.
                items:
                  type: string
                  title: id
                  description: A region's ID.
        - name: name
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: name
                description: Filter by a region name.
              - type: array
                description: Filter by region names.
                items:
                  type: string
                  title: name
                  description: A region's name.
        - name: currency_code
          in: query
          required: false
          schema:
            oneOf:
              - type: string
                title: currency_code
                description: Filter by a currency code to retrieve regions that use that code.
              - type: array
                description: Filter by currency codes to retrieve regions that use one of these codes.
                items:
                  type: string
                  title: currency_code
                  description: A currency code.
        - name: $and
          in: query
          description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
          required: false
          schema:
            type: array
            description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
            items:
              type: object
            title: $and
        - name: $or
          in: query
          description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
          required: false
          schema:
            type: array
            description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
            items:
              type: object
            title: $or
        - name: with_deleted
          in: query
          description: Whether to include deleted records in the result.
          required: false
          schema:
            type: boolean
            title: with_deleted
            description: Whether to include deleted records in the result.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.region.list()
            .then(({ regions, count, limit, offset }) => {
              console.log(regions)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/regions' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Regions
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    description: The paginated list of regions.
                    required:
                      - limit
                      - offset
                      - count
                    properties:
                      limit:
                        type: number
                        title: limit
                        description: The maximum number of items returned.
                      offset:
                        type: number
                        title: offset
                        description: The number of items skipped before retrieving the returned items.
                      count:
                        type: number
                        title: count
                        description: The total number of items.
                  - type: object
                    description: The paginated list of regions.
                    required:
                      - regions
                    properties:
                      regions:
                        type: array
                        description: The list of regions.
                        items:
                          $ref: '#/components/schemas/StoreRegion'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /store/regions/{id}:
    get:
      operationId: GetRegionsId
      summary: Get a Region
      description: Retrieve a region by its ID. You can expand the region's relations or select the fields that should be returned.
      x-authenticated: false
      parameters:
        - name: id
          in: path
          description: The region's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.region.retrieve("reg_123")
            .then(({ region }) => {
              console.log(region)
            })
        - lang: Shell
          label: cURL
          source: curl '{backend_url}/store/regions/{id}'
      tags:
        - Regions
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                description: The region's details.
                required:
                  - region
                properties:
                  region:
                    $ref: '#/components/schemas/StoreRegion'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /store/return-reasons:
    get:
      operationId: GetReturnReasons
      summary: List Return Reasons
      description: Retrieve a list of return reasons. The return reasons can be sorted or paginated.
      x-authenticated: false
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: offset
          in: query
          description: The number of items to skip when retrieving a list.
          required: false
          schema:
            type: number
            title: offset
            description: The number of items to skip when retrieving a list.
            externalDocs:
              url: '#pagination'
        - name: limit
          in: query
          description: Limit the number of items returned in the list.
          required: false
          schema:
            type: number
            title: limit
            description: Limit the number of items returned in the list.
            externalDocs:
              url: '#pagination'
        - name: order
          in: query
          description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
          required: false
          schema:
            type: string
            title: order
            description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
        - name: with_deleted
          in: query
          description: Whether to include deleted records in the result.
          required: false
          schema:
            type: boolean
            title: with_deleted
            description: Whether to include deleted records in the result.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/return-reasons' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Return Reasons
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - type: object
                    description: The paginated list of return reasons.
                    required:
                      - limit
                      - offset
                      - count
                    properties:
                      limit:
                        type: number
                        title: limit
                        description: The maximum number of items returned.
                      offset:
                        type: number
                        title: offset
                        description: The number of items skipped before retrieving the returned items.
                      count:
                        type: number
                        title: count
                        description: The total number of items.
                  - type: object
                    description: The paginated list of return reasons.
                    required:
                      - return_reasons
                    properties:
                      return_reasons:
                        type: array
                        description: The list of return reasons.
                        items:
                          $ref: '#/components/schemas/StoreReturnReason'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /store/return-reasons/{id}:
    get:
      operationId: GetReturnReasonsId
      summary: Get a Return Reason
      description: Retrieve a return reason by its ID. You can expand the return reason's relations or select the fields that should be returned.
      x-authenticated: false
      parameters:
        - name: id
          in: path
          description: The return reason's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/return-reasons/{id}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Return Reasons
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreReturnReasonResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
  /store/returns:
    post:
      operationId: PostReturns
      summary: Create Return
      description: Create a return for an order's items. The admin receives the return and process it from their side.
      x-authenticated: false
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreCreateReturn'
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/returns' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            -H 'Content-Type: application/json' \
            --data-raw '{
              "order_id": "order_123",
              "items": [
                {
                  "id": "id_XbfptxUVo2io9EI",
                  "quantity": 7916429753974784,
                  "reason_id": "{value}",
                  "note": "{value}"
                }
              ],
              "return_shipping": {
                "option_id": "{value}",
                "price": 1068364080349184
              },
              "note": "{value}",
              "location_id": "{value}"
            }'
      tags:
        - Returns
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreReturnResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: createAndCompleteReturnOrderWorkflow
      x-events:
        - name: order.return_requested
          payload: |-
            ```ts
            {
              order_id, // The ID of the order
              return_id, // The ID of the return
            }
            ```
          description: Emitted when a return request is confirmed.
          deprecated: false
        - name: order.return_received
          payload: |-
            ```ts
            {
              order_id, // The ID of the order
              return_id, // The ID of the return
            }
            ```
          description: Emitted when a return is marked as received.
          deprecated: false
      x-since: 2.8.0
  /store/shipping-options:
    get:
      operationId: GetShippingOptions
      summary: List Shipping Options for Cart
      description: |
        Retrieve a list of shipping options for a cart. The cart's ID is set in the required `cart_id` query parameter.

        The shipping options also be sorted or paginated.
      externalDocs:
        url: https://docs.medusajs.com/resources/storefront-development/checkout/shipping
        description: 'Storefront guide: How to implement shipping during checkout.'
      x-authenticated: false
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: offset
          in: query
          description: The number of items to skip when retrieving a list.
          required: false
          schema:
            type: number
            title: offset
            description: The number of items to skip when retrieving a list.
            externalDocs:
              url: '#pagination'
        - name: limit
          in: query
          description: Limit the number of items returned in the list.
          required: false
          schema:
            type: number
            title: limit
            description: Limit the number of items returned in the list.
            externalDocs:
              url: '#pagination'
        - name: order
          in: query
          description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
          required: false
          schema:
            type: string
            title: order
            description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
        - name: cart_id
          in: query
          description: The ID of the cart to retrieve its shipping options.
          required: true
          schema:
            type: string
            title: cart_id
            description: The ID of the cart to retrieve its shipping options.
        - name: $and
          in: query
          description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
          required: false
          schema:
            type: array
            description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
            items:
              type: object
            title: $and
        - name: $or
          in: query
          description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
          required: false
          schema:
            type: array
            description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
            items:
              type: object
            title: $or
        - name: is_return
          in: query
          description: Whether the shipping option can be used for returns.
          required: false
          schema:
            type: boolean
            title: is_return
            description: Whether the shipping option can be used for returns.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.fulfillment.listCartOptions({
              cart_id: "cart_123"
            })
            .then(({ shipping_options }) => {
              console.log(shipping_options)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/shipping-options' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Shipping Options
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreShippingOptionListResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: listShippingOptionsForCartWorkflow
      x-events: []
  /store/shipping-options/{id}/calculate:
    post:
      operationId: PostShippingOptionsIdCalculate
      summary: Calculate Shipping Option Price
      description: Calculate the price of a shipping option in a cart.
      x-authenticated: false
      parameters:
        - name: id
          in: path
          description: The shipping option's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: fields
          in: query
          description: |-
            Comma-separated fields that should be included in the returned data.
            if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields.
            without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      requestBody:
        content:
          application/json:
            schema:
              type: object
              description: The calculation's details.
              required:
                - cart_id
              properties:
                cart_id:
                  type: string
                  title: cart_id
                  description: The ID of the cart the shipping option is used in.
                data:
                  type: object
                  description: Custom data that's useful for the fulfillment provider to calculate the price.
                  externalDocs:
                    url: https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property
      x-codeSamples:
        - lang: JavaScript
          label: JS SDK
          source: |-
            import Medusa from "@medusajs/js-sdk"

            let MEDUSA_BACKEND_URL = "http://localhost:9000"

            if (process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL) {
              MEDUSA_BACKEND_URL = process.env.NEXT_PUBLIC_MEDUSA_BACKEND_URL
            }

            export const sdk = new Medusa({
              baseUrl: MEDUSA_BACKEND_URL,
              debug: process.env.NODE_ENV === "development",
              publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
            })

            sdk.store.fulfillment.calculate("so_123", {
              cart_id: "cart_123"
            })
            .then(({ shipping_option }) => {
              console.log(shipping_option)
            })
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/shipping-options/{id}/calculate' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            -H 'Content-Type: application/json' \
            --data-raw '{
              "cart_id": "{value}"
            }'
      tags:
        - Shipping Options
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreShippingOptionResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-workflow: calculateShippingOptionsPricesWorkflow
      x-events: []
  /store/store-credit-accounts:
    get:
      operationId: GetStoreCreditAccounts
      summary: List Customer's Store Credit Accounts
      x-sidebar-summary: List Store Credit Accounts
      description: Retrieve the logged-in customer's store credit accounts. The store credit accounts can be filtered by fields such as `id`. The store credit accounts can also be sorted or paginated.
      x-authenticated: true
      x-ignoreCleanup: true
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: currency_code
          in: query
          description: Filter by the store credit account's currency code.
          required: false
          schema:
            type: string
            title: currency_code
            description: Filter by the store credit account's currency code.
            example: usd
        - name: created_at
          in: query
          description: Filter by a store credit account's creation date.
          required: false
          schema:
            type: object
            description: Filter by a store credit account's creation date.
            properties:
              $and:
                type: array
                description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $and
              $or:
                type: array
                description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $or
              $eq:
                oneOf:
                  - type: string
                    title: $eq
                    description: Filter by an exact match.
                  - type: array
                    description: Filter by an exact match.
                    items:
                      type: string
                      title: $eq
                      description: Filter by an exact match.
              $ne:
                type: string
                title: $ne
                description: Filter by values not equal to this parameter.
              $in:
                type: array
                description: Filter by values in this array.
                items:
                  type: string
                  title: $in
                  description: Filter by values in this array.
              $nin:
                type: array
                description: Filter by values not in this array.
                items:
                  type: string
                  title: $nin
                  description: Filter by values not in this array.
              $not:
                oneOf:
                  - type: string
                    title: $not
                    description: Filter by values not matching the conditions in this parameter.
                  - type: object
                    description: Filter by values not matching the conditions in this parameter.
                  - type: array
                    description: Filter by values not matching the conditions in this parameter.
                    items:
                      type: string
                      title: $not
                      description: Filter by values not matching the conditions in this parameter.
              $gt:
                type: string
                title: $gt
                description: Filter by values greater than this parameter. Useful for numbers and dates only.
              $gte:
                type: string
                title: $gte
                description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
              $lt:
                type: string
                title: $lt
                description: Filter by values less than this parameter. Useful for numbers and dates only.
              $lte:
                type: string
                title: $lte
                description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
              $like:
                type: string
                title: $like
                description: Apply a `like` filter. Useful for strings only.
              $re:
                type: string
                title: $re
                description: Apply a regex filter. Useful for strings only.
              $ilike:
                type: string
                title: $ilike
                description: Apply a case-insensitive `like` filter. Useful for strings only.
              $fulltext:
                type: string
                title: $fulltext
                description: Filter to apply on full-text properties.
              $overlap:
                type: array
                description: Filter arrays that have overlapping values with this parameter.
                items:
                  type: string
                  title: $overlap
                  description: Filter arrays that have overlapping values with this parameter.
              $contains:
                type: array
                description: Filter arrays that contain some of the values of this parameter.
                items:
                  type: string
                  title: $contains
                  description: Filter arrays that contain some of the values of this parameter.
              $contained:
                type: array
                description: Filter arrays that contain all values of this parameter.
                items:
                  type: string
                  title: $contained
                  description: Filter arrays that contain all values of this parameter.
              $exists:
                type: boolean
                title: $exists
                description: Filter by whether a value for this parameter exists (not `null`).
            title: created_at
        - name: updated_at
          in: query
          description: Filter by a store credit account's update date.
          required: false
          schema:
            type: object
            description: Filter by a store credit account's update date.
            properties:
              $and:
                type: array
                description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $and
              $or:
                type: array
                description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                items:
                  type: object
                title: $or
              $eq:
                oneOf:
                  - type: string
                    title: $eq
                    description: Filter by an exact match.
                  - type: array
                    description: Filter by an exact match.
                    items:
                      type: string
                      title: $eq
                      description: Filter by an exact match.
              $ne:
                type: string
                title: $ne
                description: Filter by values not equal to this parameter.
              $in:
                type: array
                description: Filter by values in this array.
                items:
                  type: string
                  title: $in
                  description: Filter by values in this array.
              $nin:
                type: array
                description: Filter by values not in this array.
                items:
                  type: string
                  title: $nin
                  description: Filter by values not in this array.
              $not:
                oneOf:
                  - type: string
                    title: $not
                    description: Filter by values not matching the conditions in this parameter.
                  - type: object
                    description: Filter by values not matching the conditions in this parameter.
                  - type: array
                    description: Filter by values not matching the conditions in this parameter.
                    items:
                      type: string
                      title: $not
                      description: Filter by values not matching the conditions in this parameter.
              $gt:
                type: string
                title: $gt
                description: Filter by values greater than this parameter. Useful for numbers and dates only.
              $gte:
                type: string
                title: $gte
                description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
              $lt:
                type: string
                title: $lt
                description: Filter by values less than this parameter. Useful for numbers and dates only.
              $lte:
                type: string
                title: $lte
                description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
              $like:
                type: string
                title: $like
                description: Apply a `like` filter. Useful for strings only.
              $re:
                type: string
                title: $re
                description: Apply a regex filter. Useful for strings only.
              $ilike:
                type: string
                title: $ilike
                description: Apply a case-insensitive `like` filter. Useful for strings only.
              $fulltext:
                type: string
                title: $fulltext
                description: Filter to apply on full-text properties.
              $overlap:
                type: array
                description: Filter arrays that have overlapping values with this parameter.
                items:
                  type: string
                  title: $overlap
                  description: Filter arrays that have overlapping values with this parameter.
              $contains:
                type: array
                description: Filter arrays that contain some of the values of this parameter.
                items:
                  type: string
                  title: $contains
                  description: Filter arrays that contain some of the values of this parameter.
              $contained:
                type: array
                description: Filter arrays that contain all values of this parameter.
                items:
                  type: string
                  title: $contained
                  description: Filter arrays that contain all values of this parameter.
              $exists:
                type: boolean
                title: $exists
                description: Filter by whether a value for this parameter exists (not `null`).
            title: updated_at
        - name: limit
          in: query
          description: Limit the number of items returned in the list.
          required: false
          schema:
            type: number
            title: limit
            description: Limit the number of items returned in the list.
            externalDocs:
              url: '#pagination'
        - name: offset
          in: query
          description: The number of items to skip when retrieving a list.
          required: false
          schema:
            type: number
            title: offset
            description: The number of items to skip when retrieving a list.
            externalDocs:
              url: '#pagination'
        - name: order
          in: query
          description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
          required: false
          schema:
            type: string
            title: order
            description: The field to sort the data by. By default, the sort order is ascending. To change the order to descending, prefix the field name with `-`.
            externalDocs:
              url: '#pagination'
        - name: fields
          in: query
          description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.
          required: false
          schema:
            type: string
            title: fields
            description: Comma-separated fields that should be included in the returned data. If a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. Without prefix it will replace the entire default fields.
            externalDocs:
              url: '#select-fields-and-relations'
        - name: $and
          in: query
          description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
          required: false
          schema:
            type: array
            description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
            items:
              type: object
            title: $and
        - name: $or
          in: query
          description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
          required: false
          schema:
            type: array
            description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
            items:
              type: object
            title: $or
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/store-credit-accounts' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Store Credit Accounts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreStoreCreditAccountsResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      security:
        - cookie_auth: []
        - jwt_token: []
      x-badges:
        - text: Cloud
          description: |
            This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).
  /store/store-credit-accounts/claim:
    post:
      operationId: PostStoreCreditAccountsClaim
      summary: Claim Credits
      description: Claim credits of the logged-in customer's store credit account.
      x-authenticated: true
      parameters:
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      security:
        - cookie_auth: []
        - jwt_token: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreClaimStoreCreditAccountParams'
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl -X POST '{backend_url}/store/store-credit-accounts/claim' \
            -H 'Authorization: Bearer {access_token}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}' \
            -H 'Content-Type: application/json' \
            --data-raw '{
              "code": "{value}"
            }'
      tags:
        - Store Credit Accounts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreClaimStoreCreditAccountResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      x-badges:
        - text: Cloud
          description: |
            This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).
  /store/store-credit-accounts/{id}:
    get:
      operationId: GetStoreCreditAccountsId
      summary: Get Customer's Store Credit Account
      x-sidebar-summary: Get Store Credit Account
      description: Retrieve logged-in customer's store credit account by its ID. You can expand the store credit account's relations or select the fields that should be returned.
      x-authenticated: true
      x-ignoreCleanup: true
      parameters:
        - name: id
          in: path
          description: The store credit account's ID.
          required: true
          schema:
            type: string
        - name: x-publishable-api-key
          in: header
          description: Publishable API Key created in the Medusa Admin.
          required: true
          schema:
            type: string
            externalDocs:
              url: https://docs.medusajs.com/api/store#publishable-api-key
        - name: x-medusa-locale
          in: header
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
        - name: locale
          in: query
          description: The locale in BCP 47 format to retrieve localized content.
          required: false
          schema:
            type: string
            example: en-US
            externalDocs:
              url: https://docs.medusajs.com/resources/commerce-modules/translation/storefront
              description: Learn more in the Serve Translations in Storefront guide.
      x-codeSamples:
        - lang: Shell
          label: cURL
          source: |-
            curl '{backend_url}/store/store-credit-accounts/{id}' \
            -H 'x-publishable-api-key: {your_publishable_api_key}'
      tags:
        - Store Credit Accounts
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StoreStoreCreditAccountResponse'
        '400':
          $ref: '#/components/responses/400_error'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found_error'
        '409':
          $ref: '#/components/responses/invalid_state_error'
        '422':
          $ref: '#/components/responses/invalid_request_error'
        '500':
          $ref: '#/components/responses/500_error'
      security:
        - cookie_auth: []
        - jwt_token: []
      x-badges:
        - text: Cloud
          description: |
            This API route is only available in [Medusa Cloud](https://docs.medusajs.com/cloud/loyalty-plugin).
components:
  schemas:
    AdminAddClaimItems:
      type: object
      description: The details of the order items to add to the claim.
      x-schemaName: AdminAddClaimItems
      properties:
        items:
          type: array
          description: The item's details.
          items:
            type: object
            description: An item's details.
            required:
              - id
              - quantity
            properties:
              id:
                type: string
                title: id
                description: The ID of the order's item.
              quantity:
                type: number
                title: quantity
                description: The quantity of the order's item to add to the claim.
              reason:
                type: string
                description: The reason the item is claimed.
                enum:
                  - missing_item
                  - wrong_item
                  - production_failure
                  - other
              description:
                type: string
                title: description
                description: The item's description.
              internal_note:
                type: string
                title: internal_note
                description: A note that's only viewed by admin users.
    AdminAddClaimOutboundItems:
      type: object
      description: The details of the outbound items to add to the claim.
      x-schemaName: AdminAddClaimOutboundItems
      properties:
        items:
          type: array
          description: The outbound item's details.
          items:
            type: object
            description: An item's details.
            required:
              - id
              - quantity
            properties:
              quantity:
                type: number
                title: quantity
                description: The quantity to send to the customer.
              internal_note:
                type: string
                title: internal_note
                description: A note viewed only by admin users.
              id:
                type: string
                title: id
                description: The item's ID.
              reason:
                type: string
                description: The item's reason.
                enum:
                  - missing_item
                  - wrong_item
                  - production_failure
                  - other
              description:
                type: string
                title: description
                description: The item's description.
    AdminAddDraftOrderItems:
      type: object
      description: The details of the items to add to a draft order.
      x-schemaName: AdminAddDraftOrderItems
      properties:
        items:
          type: array
          description: The items to add to the draft order.
          items:
            type: object
            description: The item's details
            required:
              - quantity
            properties:
              quantity:
                type: number
                title: quantity
                description: The item's quantity.
              variant_id:
                type: string
                title: variant_id
                description: The ID of the variant to add to the draft order.
              title:
                type: string
                title: title
                description: The item's title.
              unit_price:
                type: number
                title: unit_price
                description: The item's unit price.
              compare_at_unit_price:
                type: number
                title: compare_at_unit_price
                description: The original price of the item before a promotion or sale.
              internal_note:
                type: string
                title: internal_note
                description: A note viewed only by admin users about the item.
              allow_backorder:
                type: boolean
                title: allow_backorder
                description: Whether the item can be purchased if it's out of stock.
              metadata:
                type: object
                description: The item's metadata, can hold custom key-value pairs.
                externalDocs:
                  url: https://docs.medusajs.com/api/admin#manage-metadata
                  description: Learn how to manage metadata
    AdminAddDraftOrderPromotions:
      type: object
      description: The details of the promotions to add to a draft order.
      x-schemaName: AdminAddDraftOrderPromotions
      required:
        - promo_codes
      properties:
        promo_codes:
          type: array
          description: The list promotion codes to add to the draft order.
          items:
            type: string
            title: promo_codes
            description: A promotion's code.
    AdminAddDraftOrderShippingMethod:
      type: object
      description: The details of the shipping method to add to a draft order.
      x-schemaName: AdminAddDraftOrderShippingMethod
      required:
        - shipping_option_id
      properties:
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the shipping option that this method is created from.
        custom_amount:
          type: number
          title: custom_amount
          description: A custom amount to be charged for this shipping method. If not provided, the shipping option's amount will be used.
        description:
          type: string
          title: description
          description: The shipping method's description.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users about the shipping method.
        metadata:
          type: object
          description: The shipping method's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminAddExchangeInboundItems:
      type: object
      description: The details of the inbound (return) items.
      x-schemaName: AdminAddExchangeInboundItems
      properties:
        items:
          type: array
          description: The details of the inbound (return) items.
          items:
            type: object
            description: An item's details.
            required:
              - id
              - quantity
            properties:
              id:
                type: string
                title: id
                description: The ID of the order's item.
              quantity:
                type: number
                title: quantity
                description: The item's quantity.
              description:
                type: string
                title: description
                description: The item's description.
              internal_note:
                type: string
                title: internal_note
                description: A note viewed only by admin users.
              reason_id:
                type: string
                title: reason_id
                description: The ID of the return reason to associate with the item.
              metadata:
                type: object
                description: The item's metadata, can hold custom key-value pairs.
                externalDocs:
                  url: https://docs.medusajs.com/api/admin#manage-metadata
                  description: Learn how to manage metadata
        location_id:
          type: string
          title: location_id
          description: The ID of the location to which outbound items are sent from.
    AdminAddExchangeOutboundItems:
      type: object
      description: The details of outbound items.
      x-schemaName: AdminAddExchangeOutboundItems
      properties:
        items:
          type: array
          description: The details of outbound items.
          items:
            type: object
            description: An item's details.
            required:
              - variant_id
              - quantity
            properties:
              variant_id:
                type: string
                title: variant_id
                description: The ID of the associated product variant.
              quantity:
                type: number
                title: quantity
                description: The item's quantity.
              unit_price:
                type: number
                title: unit_price
                description: The item's unit price.
              internal_note:
                type: string
                title: internal_note
                description: A note viewed only by admin users.
              allow_backorder:
                type: boolean
                title: allow_backorder
                description: Whether the item can be added even if it's not in stock.
              metadata:
                type: object
                description: The item's metadata, can hold custom key-value pairs.
                externalDocs:
                  url: https://docs.medusajs.com/api/admin#manage-metadata
                  description: Learn how to manage metadata
    AdminAddReturnItem:
      type: object
      description: An item's details.
      required:
        - id
        - quantity
      properties:
        id:
          type: string
          title: id
          description: The item's ID.
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        description:
          type: string
          title: description
          description: The item's description.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users.
        metadata:
          type: object
          description: The item's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
      x-schemaName: AdminAddReturnItem
    AdminAddReturnItems:
      type: object
      description: The items' details.
      x-schemaName: AdminAddReturnItems
      properties:
        items:
          type: array
          description: The items' details.
          items:
            $ref: '#/components/schemas/AdminAddReturnItem'
      required:
        - items
    AdminAddReturnShipping:
      type: object
      description: The shipping method's details.
      x-schemaName: AdminAddReturnShipping
      required:
        - shipping_option_id
      properties:
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the associated shipping option.
        custom_amount:
          type: number
          title: custom_amount
          description: Set the price of the shipping method.
        description:
          type: string
          title: description
          description: The shipping method's description.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users.
        metadata:
          type: object
          description: The exchange's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminApiKey:
      type: object
      description: The API key's details.
      x-schemaName: AdminApiKey
      required:
        - id
        - token
        - redacted
        - title
        - type
        - last_used_at
        - created_by
        - created_at
        - updated_at
        - revoked_by
        - revoked_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The api key's ID.
        token:
          type: string
          title: token
          description: The api key's token.
        redacted:
          type: string
          title: redacted
          description: The redacted form of the API key's token. This is useful when showing portion of the token.
          example: sk_...123
        title:
          type: string
          title: title
          description: The api key's title.
        type:
          type: string
          description: The api key's type. `secret` is used for a user's API key, whereas `publishable` is used for Publishable API keys.
          enum:
            - secret
            - publishable
        last_used_at:
          type: string
          title: last_used_at
          description: The date and time the API key was last used.
          format: date-time
        created_by:
          type: string
          title: created_by
          description: The ID of the user that created the API key, if available.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date and time the API key was created.
        revoked_by:
          type: string
          title: revoked_by
          description: The ID of the user that revoked the API key, if available.
        revoked_at:
          type: string
          title: revoked_at
          description: The date and time the API key was revoked. The API key is considered revoked when this property is set.
          format: date-time
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the API key was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the API key was deleted.
    AdminApiKeyResponse:
      type: object
      description: The API key's details.
      x-schemaName: AdminApiKeyResponse
      required:
        - api_key
      properties:
        api_key:
          $ref: '#/components/schemas/AdminApiKey'
    AdminApplicationMethod:
      type: object
      description: The application method's details.
      x-schemaName: AdminApplicationMethod
      required:
        - id
      properties:
        promotion:
          type: object
        target_rules:
          type: array
          description: The application method's target rules.
          items:
            $ref: '#/components/schemas/AdminPromotionRule'
        buy_rules:
          type: array
          description: The application method's buy rules.
          items:
            $ref: '#/components/schemas/AdminPromotionRule'
        id:
          type: string
          title: id
          description: The application method's ID.
        type:
          type: string
          description: The application method's type. If it's `fixed`, the promotion discounts a fixed amount. If it's `percentage`, the promotion discounts a percentage.
          enum:
            - fixed
            - percentage
        target_type:
          type: string
          description: Which item does the promotion apply to. `items` mean the promotion applies to the cart's items; `shipping_methods` means the promotion applies to the cart's shipping methods; `order` means the promotion applies on the entire order.
          enum:
            - items
            - shipping_methods
            - order
        allocation:
          type: string
          description: How is the promotion amount discounted. `each` means the discounted amount is applied on each applicable item; `across` means the discounted amount is split accross the applicable items.
          enum:
            - each
            - across
        value:
          type: number
          title: value
          description: The amount to be discounted.
        currency_code:
          type: string
          title: currency_code
          description: The application method's currency code.
          example: usd
        max_quantity:
          type: number
          title: max_quantity
          description: The max quantity allowed in the cart for the associated promotion to be applied.
        buy_rules_min_quantity:
          type: number
          title: buy_rules_min_quantity
          description: The minimum quantity required for a `buyget` promotion to be applied. For example, if the promotion is a "Buy 2 shirts get 1 free", the value of this attribute is `2`.
        apply_to_quantity:
          type: number
          title: apply_to_quantity
          description: The quantity that results from matching the `buyget` promotion's condition. For example, if the promotion is a "Buy 2 shirts get 1 free", the value of this attribute is `1`.
    AdminBatchCreateInventoryItemLocationLevels:
      type: object
      description: The inventory level's details.
      required:
        - location_id
      properties:
        location_id:
          type: string
          title: location_id
          description: The ID of the associated location.
        stocked_quantity:
          type: number
          title: stocked_quantity
          description: The inventory level's stocked quantity.
        incoming_quantity:
          type: number
          title: incoming_quantity
          description: The inventory level's incoming quantity.
      x-schemaName: AdminBatchCreateInventoryItemLocationLevels
    AdminBatchCreateInventoryItemsLocationLevels:
      type: object
      description: The details of an inventory level to create.
      required:
        - location_id
        - inventory_item_id
      properties:
        location_id:
          type: string
          title: location_id
          description: The ID of the associated stock location.
        inventory_item_id:
          type: string
          title: inventory_item_id
          description: The ID of the associated inventory item.
        stocked_quantity:
          type: number
          title: stocked_quantity
          description: The stocked quantity.
        incoming_quantity:
          type: number
          title: incoming_quantity
          description: The incoming quantity to be added to stock.
      x-schemaName: AdminBatchCreateInventoryItemsLocationLevels
    AdminBatchImageVariantRequest:
      type: object
      description: Details of the associations between variants and a product image to manage.
      x-schemaName: AdminBatchImageVariantRequest
      properties:
        add:
          type: array
          description: The IDs of product variants to add the image to.
          items:
            type: string
            title: add
            description: The ID of the variant to add.
        remove:
          type: array
          description: The IDs of product variants to remove the image from.
          items:
            type: string
            title: remove
            description: The ID of the variant to remove.
    AdminBatchImageVariantResponse:
      type: object
      description: Result of managing the associations between variants and a product image.
      x-schemaName: AdminBatchImageVariantResponse
      required:
        - added
        - removed
      properties:
        added:
          type: array
          description: The IDs of product variants added the image to.
          items:
            type: string
            title: added
            description: The ID of the variant added.
        removed:
          type: array
          description: The IDs of product variants removed the image from.
          items:
            type: string
            title: removed
            description: The ID of the variant removed.
    AdminBatchInventoryItemLocationsLevel:
      type: object
      description: The inventory levels to create, update, or delete.
      properties:
        create:
          type: array
          description: The inventory levels to create.
          items:
            type: object
            description: The inventory level's details.
            required:
              - location_id
            properties:
              location_id:
                type: string
                title: location_id
                description: The ID of the associated location.
              stocked_quantity:
                type: number
                title: stocked_quantity
                description: The inventory level's stocked quantity.
              incoming_quantity:
                type: number
                title: incoming_quantity
                description: The inventory level's incoming quantity.
        update:
          type: array
          description: The inventory levels to update.
          items:
            type: object
            description: The inventory level's details.
            properties:
              stocked_quantity:
                type: number
                title: stocked_quantity
                description: The inventory level's stocked quantity.
              incoming_quantity:
                type: number
                title: incoming_quantity
                description: The inventory level's incoming quantity.
              location_id:
                type: string
                title: location_id
                description: The associated stock location's ID.
              id:
                type: string
                title: id
                description: The ID of the location level.
            required:
              - location_id
        delete:
          type: array
          description: The inventory levels to delete.
          items:
            type: string
            title: delete
            description: The ID of the inventory level to delete.
        force:
          type: boolean
          title: force
          description: Whether to delete specified inventory levels even if they have a non-zero stocked quantity.
      x-schemaName: AdminBatchInventoryItemLocationsLevel
    AdminBatchInventoryItemsLocationLevels:
      type: object
      description: The inventory levels to manage.
      properties:
        create:
          type: array
          description: The inventory levels to create.
          items:
            $ref: '#/components/schemas/AdminBatchCreateInventoryItemsLocationLevels'
        update:
          type: array
          description: The inventory levels to update.
          items:
            $ref: '#/components/schemas/AdminBatchUpdateInventoryItemsLocationLevels'
        delete:
          type: array
          description: The IDs of the inventory levels to delete.
          items:
            type: string
            title: delete
            description: The ID of the inventory level to delete.
        force:
          type: boolean
          title: force
          description: Whether to delete specified inventory levels even if they have a non-zero stocked quantity.
      required:
        - create
        - update
        - delete
      x-schemaName: AdminBatchInventoryItemsLocationLevels
    AdminBatchInventoryItemsLocationLevelsResponse:
      type: object
      description: The result of managing inventory levels.
      x-schemaName: AdminBatchInventoryItemsLocationLevelsResponse
      properties:
        created:
          type: array
          description: The created inventory levels.
          items:
            $ref: '#/components/schemas/InventoryLevel'
        updated:
          type: array
          description: The updated inventory levels.
          items:
            $ref: '#/components/schemas/InventoryLevel'
        deleted:
          type: array
          description: The IDs of deleted inventory levels.
          items:
            type: string
            title: deleted
            description: The ID of a deleted inventory level.
    AdminBatchLink:
      type: object
      description: A batch operation to manage the associations between two entities.
      properties:
        add:
          type: array
          description: The IDs of an entity to add to the other.
          items:
            type: string
            title: add
            description: The entity's ID.
        remove:
          type: array
          description: The IDs of an entity to remove from the other.
          items:
            type: string
            title: remove
            description: The entity's ID.
      x-schemaName: AdminBatchLink
    AdminBatchProductRequest:
      type: object
      description: The products to create, update, or delete.
      x-schemaName: AdminBatchProductRequest
      properties:
        create:
          type: array
          description: The products to create.
          items:
            $ref: '#/components/schemas/AdminCreateProduct'
        update:
          type: array
          description: The products to update.
          items:
            $ref: '#/components/schemas/AdminBatchUpdateProduct'
        delete:
          type: array
          description: The products to delete.
          items:
            type: string
            title: delete
            description: A product's ID.
    AdminBatchProductResponse:
      type: object
      description: The details of the products created, updated, or deleted.
      x-schemaName: AdminBatchProductResponse
      required:
        - created
        - updated
        - deleted
      properties:
        created:
          type: array
          description: The created products
          items:
            $ref: '#/components/schemas/AdminProduct'
        updated:
          type: array
          description: The updated products.
          items:
            $ref: '#/components/schemas/AdminProduct'
        deleted:
          type: object
          description: The deleted products' details.
          required:
            - ids
            - object
            - deleted
          properties:
            ids:
              type: array
              description: The IDs of deleted products.
              items:
                type: string
                title: ids
                description: The ID of a deleted product.
            object:
              type: string
              title: object
              description: The name of the deleted objects.
              default: product
            deleted:
              type: boolean
              title: deleted
              description: Whether the products were deleted.
    AdminBatchProductVariantRequest:
      type: object
      description: The product variants to create, update, or delete.
      x-schemaName: AdminBatchProductVariantRequest
      properties:
        create:
          type: array
          description: The product variants to create.
          items:
            $ref: '#/components/schemas/AdminCreateProductVariant'
        update:
          type: array
          description: The product variants to update.
          items:
            $ref: '#/components/schemas/AdminBatchUpdateProductVariant'
        delete:
          type: array
          description: The product variants to delete.
          items:
            type: string
            title: delete
            description: A product variant's ID.
    AdminBatchProductVariantResponse:
      type: object
      description: The details of the product variants created, updated, or deleted.
      x-schemaName: AdminBatchProductVariantResponse
      required:
        - created
        - updated
        - deleted
      properties:
        created:
          type: array
          description: The created product variants.
          items:
            $ref: '#/components/schemas/AdminProductVariant'
        updated:
          type: array
          description: The updated product variants.
          items:
            $ref: '#/components/schemas/AdminProductVariant'
        deleted:
          type: object
          description: The details of the deleted product variants.
          required:
            - ids
            - object
            - deleted
          properties:
            ids:
              type: array
              description: The IDs of the deleted product variants.
              items:
                type: string
                title: ids
                description: The ID of a deleted variant.
            object:
              type: string
              title: object
              description: The name of the deleted objects.
              default: variant
            deleted:
              type: boolean
              title: deleted
              description: Whether the product variants were deleted.
    AdminBatchTranslationSettings:
      type: object
      description: The translation settings to create, update, or delete in batch.
      x-schemaName: AdminBatchTranslationSettings
      properties:
        create:
          type: array
          description: The translation settings to create.
          items:
            $ref: '#/components/schemas/AdminCreateTranslationSettings'
        update:
          type: array
          description: The translation settings to update.
          items:
            $ref: '#/components/schemas/AdminUpdateTranslationSettings'
        delete:
          type: array
          description: The translation settings to delete.
          items:
            type: string
            title: delete
            description: The IDs of the translation settings to delete.
    AdminBatchTranslationSettingsResponse:
      type: object
      description: The result of managing the translation settings in batch.
      x-schemaName: AdminBatchTranslationSettingsResponse
      required:
        - created
        - updated
        - deleted
      properties:
        created:
          type: array
          description: The created translation settings.
          items:
            $ref: '#/components/schemas/AdminTranslationSettings'
        updated:
          type: array
          description: The updated translation settings.
          items:
            $ref: '#/components/schemas/AdminTranslationSettings'
        deleted:
          type: object
          description: The deletion result.
          required:
            - ids
            - object
            - deleted
          properties:
            ids:
              type: array
              description: The IDs of the deleted translation settings.
              items:
                type: string
                title: ids
                description: The ID of a deleted translation settings.
            object:
              type: string
              title: object
              description: The type of object deleted.
            deleted:
              type: boolean
              title: deleted
              description: Whether the deletion was successful.
    AdminBatchUpdateInventoryItemsLocationLevels:
      type: object
      description: The details of an inventory level to update.
      required:
        - location_id
        - inventory_item_id
      properties:
        location_id:
          type: string
          title: location_id
          description: The ID of the associated stock location.
        inventory_item_id:
          type: string
          title: inventory_item_id
          description: The ID of the associated inventory item.
        stocked_quantity:
          type: number
          title: stocked_quantity
          description: The stocked quantity.
        incoming_quantity:
          type: number
          title: incoming_quantity
          description: The incoming quantity to be added to stock.
        id:
          type: string
          title: id
          description: The update's ID.
      x-schemaName: AdminBatchUpdateInventoryItemsLocationLevels
    AdminBatchUpdateProduct:
      type: object
      description: The product's details.
      x-schemaName: AdminBatchUpdateProduct
      properties:
        title:
          type: string
          title: title
          description: The product's title.
        subtitle:
          type: string
          title: subtitle
          description: The product's subtitle.
        description:
          type: string
          title: description
          description: The product's description.
        is_giftcard:
          type: boolean
          title: is_giftcard
          description: Whether the product is a gift card.
        discountable:
          type: boolean
          title: discountable
          description: Whether discounts can be applied on the product.
        images:
          type: array
          description: The product's images.
          items:
            type: object
            description: The image's details.
            required:
              - url
            properties:
              url:
                type: string
                title: url
                description: The image's URL.
              id:
                type: string
                title: id
                description: The image's ID.
        thumbnail:
          type: string
          title: thumbnail
          description: The product's thumbnail URL.
        handle:
          type: string
          title: handle
          description: The product's unique handle.
        status:
          type: string
          description: The product's status.
          enum:
            - draft
            - proposed
            - published
            - rejected
        type_id:
          type: string
          title: type_id
          description: The ID of the product's type.
        collection_id:
          type: string
          title: collection_id
          description: The ID of the product's collection.
        categories:
          type: array
          description: The product's categories.
          items:
            type: object
            description: The product's category.
            required:
              - id
            properties:
              id:
                type: string
                title: id
                description: The category's ID.
        tags:
          type: array
          description: The product's tags.
          items:
            type: object
            description: The product's tag.
            required:
              - id
            properties:
              id:
                type: string
                title: id
                description: The tag's ID.
        options:
          type: array
          description: The product's options.
          items:
            $ref: '#/components/schemas/AdminUpdateProductOption'
        variants:
          type: array
          description: The product's variants. You can add new variants or update existing ones, passing their IDs in the object.
          items:
            oneOf:
              - $ref: '#/components/schemas/AdminCreateProductVariant'
              - $ref: '#/components/schemas/AdminUpdateProductVariant'
        sales_channels:
          type: array
          description: The sales channels that the product is available in.
          items:
            type: object
            description: The sales channel's details.
            required:
              - id
            properties:
              id:
                type: string
                title: id
                description: The sales channel's ID.
        weight:
          type: number
          title: weight
          description: The product's weight.
        length:
          type: number
          title: length
          description: The product's length.
        height:
          type: number
          title: height
          description: The product's height.
        width:
          type: number
          title: width
          description: The product's width.
        hs_code:
          type: string
          title: hs_code
          description: The product's HS code.
        mid_code:
          type: string
          title: mid_code
          description: The product's MID code.
        origin_country:
          type: string
          title: origin_country
          description: The product's origin country.
        material:
          type: string
          title: material
          description: The product's material.
        metadata:
          type: object
          description: The product's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        external_id:
          type: string
          title: external_id
          description: The ID of the product in an external or third-party system.
        id:
          type: string
          title: id
          description: The product's ID.
        shipping_profile_id:
          type: string
          title: shipping_profile_id
          description: The ID of the product's shipping profile.
      required:
        - id
    AdminBatchUpdateProductVariant:
      type: object
      description: The properties to update of a product variant.
      x-schemaName: AdminBatchUpdateProductVariant
      properties:
        title:
          type: string
          title: title
          description: The product variant's title.
        sku:
          type: string
          title: sku
          description: The product variant's SKU.
        ean:
          type: string
          title: ean
          description: The product variant's EAN.
        upc:
          type: string
          title: upc
          description: The product variant's UPC.
        barcode:
          type: string
          title: barcode
          description: The product variant's barcode.
        hs_code:
          type: string
          title: hs_code
          description: The product variant's HS code.
        mid_code:
          type: string
          title: mid_code
          description: The product variant's MID code.
        allow_backorder:
          type: boolean
          title: allow_backorder
          description: Whether customers can order the variant even if it's not in stock.
        manage_inventory:
          type: boolean
          title: manage_inventory
          description: Whether the Medusa application manages the variant's inventory. If disabled, the product variant is always considered in stock.
        variant_rank:
          type: number
          title: variant_rank
          description: The product variant's rank among its siblings.
        weight:
          type: number
          title: weight
          description: The product variant's weight.
        length:
          type: number
          title: length
          description: The product variant's length.
        height:
          type: number
          title: height
          description: The product variant's height.
        width:
          type: number
          title: width
          description: The product variant's width.
        origin_country:
          type: string
          title: origin_country
          description: The product variant's origin country.
        material:
          type: string
          title: material
          description: The product variant's material.
        metadata:
          type: object
          description: The product variant's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        prices:
          type: array
          description: The product variant's prices.
          items:
            $ref: '#/components/schemas/AdminCreateProductVariantPrice'
        options:
          type: object
          description: The product variant's options.
        id:
          type: string
          title: id
          description: The update's ID.
        thumbnail:
          type: string
          title: thumbnail
          description: The variant's thumbnail.
      required:
        - id
    AdminBatchVariantImagesRequest:
      type: object
      description: Details of the associations between images and a product variant to manage.
      x-schemaName: AdminBatchVariantImagesRequest
      properties:
        add:
          type: array
          description: The IDs of product images to add to the variant.
          items:
            type: string
            title: add
            description: The ID of the image to add.
        remove:
          type: array
          description: The IDs of product images to remove from the variant.
          items:
            type: string
            title: remove
            description: The ID of the image to remove.
    AdminBatchVariantImagesResponse:
      type: object
      description: Result of managing the associations between images and a product variant.
      x-schemaName: AdminBatchVariantImagesResponse
      required:
        - added
        - removed
      properties:
        added:
          type: array
          description: The IDs of product images added to the variant.
          items:
            type: string
            title: added
            description: The ID of the image added.
        removed:
          type: array
          description: The IDs of product images removed from the variant.
          items:
            type: string
            title: removed
            description: The ID of the image removed.
    AdminCampaign:
      type: object
      description: The campaign's details.
      x-schemaName: AdminCampaign
      required:
        - id
        - name
        - description
        - currency
        - campaign_identifier
        - starts_at
        - ends_at
        - budget
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The campaign's ID.
        name:
          type: string
          title: name
          description: The campaign's name.
        description:
          type: string
          title: description
          description: The campaign's description.
        currency:
          type: string
          title: currency
          description: The campaign's currency.
        campaign_identifier:
          type: string
          title: campaign_identifier
          description: The campaign's identifier.
        starts_at:
          type: string
          title: starts_at
          description: The date and time that the campaign starts.
        ends_at:
          type: string
          title: ends_at
          description: The date and time that the campaign ends.
        budget:
          type: object
          description: The campaign's budget.
          required:
            - id
            - type
            - currency_code
            - limit
            - used
            - attribute
          properties:
            id:
              type: string
              title: id
              description: The budget's ID.
            type:
              type: string
              description: |
                The budget's type. `spend` means the limit is set on the total amount discounted by the campaign's promotions; `usage` means the limit is set on the total number of times the campaign's promotions can be used.
              enum:
                - spend
                - usage
            currency_code:
              type: string
              title: currency_code
              description: The budget's currency code.
            limit:
              type: number
              title: limit
              description: The budget's limit.
            used:
              type: number
              title: used
              description: |
                How much of the budget has been used. If the limit is `spend`, this property holds the total amount discounted so far. If the limit is `usage`, it holds the number of times the campaign's promotions have been used so far.
            attribute:
              type: string
              title: attribute
              description: The cart attribute to limit the budget by.
              externalDocs:
                url: https://docs.medusajs.com/resources/commerce-modules/promotion/campaign#attribute-based-budgets
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the campaign was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the campaign was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the campaign was deleted.
    AdminCampaignResponse:
      type: object
      description: The campaign's details.
      x-schemaName: AdminCampaignResponse
      required:
        - campaign
      properties:
        campaign:
          $ref: '#/components/schemas/AdminCampaign'
    AdminCapturePayment:
      type: object
      description: The payment's details.
      properties:
        amount:
          type: number
          title: amount
          description: The amount to capture.
      x-schemaName: AdminCapturePayment
    AdminClaim:
      type: object
      description: The claim's details.
      x-schemaName: AdminClaim
      required:
        - order
        - return
        - id
        - type
        - order_id
        - display_id
        - order_version
        - created_at
        - updated_at
        - canceled_at
        - additional_items
        - claim_items
      properties:
        id:
          type: string
          title: id
          description: The claim's ID.
        order_id:
          type: string
          title: order_id
          description: The ID of the order associated with the claim.
        claim_items:
          type: array
          description: The order items targetted by the claim.
          items:
            $ref: '#/components/schemas/BaseClaimItem'
        additional_items:
          type: array
          description: The outbound or new items of the claim.
          items:
            $ref: '#/components/schemas/BaseClaimItem'
        return:
          $ref: '#/components/schemas/AdminReturn'
        return_id:
          type: string
          title: return_id
          description: The ID of the associated return.
        no_notification:
          type: boolean
          title: no_notification
          description: Whether the customer should be notified about changes in the claim.
        refund_amount:
          type: number
          title: refund_amount
          description: The amount to be refunded.
        display_id:
          type: number
          title: display_id
          description: The claim's display ID.
        shipping_methods:
          type: array
          description: The claim's shipping methods.
          items:
            $ref: '#/components/schemas/AdminOrderShippingMethod'
        transactions:
          type: array
          description: The claim's transactions.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/order/transactions
            description: Learn more about transactions of orders and associated models.
          items:
            $ref: '#/components/schemas/BaseOrderTransaction'
        metadata:
          type: object
          description: The claim's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The claim's creation date.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The claim's update date.
        order:
          $ref: '#/components/schemas/AdminOrder'
        type:
          type: string
          description: The claim's type.
          enum:
            - replace
            - refund
        order_version:
          type: string
          title: order_version
          description: The version of the order when the claim is applied.
        created_by:
          type: string
          title: created_by
          description: The ID of the user that created the claim.
        canceled_at:
          type: string
          title: canceled_at
          description: The date the claim was canceled.
          format: date-time
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the claim was deleted.
    AdminClaimAddOutboundShipping:
      type: object
      description: The details of the shipping method used to ship outbound items.
      x-schemaName: AdminClaimAddOutboundShipping
      required:
        - shipping_option_id
      properties:
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the associated shipping option.
        custom_amount:
          type: number
          title: custom_amount
          description: Set a custom price for the shipping method.
        description:
          type: string
          title: description
          description: The shipping method's description.
        internal_note:
          type: string
          title: internal_note
          description: A note only viewed by admin users.
        metadata:
          type: object
          description: The claim's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminClaimDeleteResponse:
      type: object
      description: The details of the deleted claim.
      x-schemaName: AdminClaimDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The claim's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: claim
        deleted:
          type: boolean
          title: deleted
          description: Whether the claim was deleted.
    AdminClaimListResponse:
      type: object
      description: The paginated list of claims.
      x-schemaName: AdminClaimListResponse
      required:
        - limit
        - offset
        - count
        - claims
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total number of items.
        claims:
          type: array
          description: The list of claims.
          items:
            $ref: '#/components/schemas/AdminClaim'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    AdminClaimOrderResponse:
      type: object
      description: The created claim's details.
      x-schemaName: AdminClaimOrderResponse
      required:
        - order
        - claim
      properties:
        order:
          $ref: '#/components/schemas/Order'
        claim:
          $ref: '#/components/schemas/AdminClaim'
    AdminClaimPreviewResponse:
      type: object
      description: The details of the claim, as well as a preview of the order when the claim is applied.
      x-schemaName: AdminClaimPreviewResponse
      required:
        - order_preview
        - claim
      properties:
        order_preview:
          $ref: '#/components/schemas/AdminOrderPreview'
        claim:
          $ref: '#/components/schemas/AdminClaim'
    AdminClaimRequestResponse:
      type: object
      description: The details of the claim, its return, and a preview of the order when the claim is applied.
      x-schemaName: AdminClaimRequestResponse
      required:
        - return
        - order_preview
        - claim
      properties:
        return:
          $ref: '#/components/schemas/AdminReturn'
        order_preview:
          $ref: '#/components/schemas/AdminOrderPreview'
        claim:
          $ref: '#/components/schemas/AdminClaim'
    AdminClaimResponse:
      type: object
      description: The claim's details.
      x-schemaName: AdminClaimResponse
      required:
        - claim
      properties:
        claim:
          $ref: '#/components/schemas/AdminClaim'
    AdminClaimReturnPreviewResponse:
      type: object
      description: The details of the claim's return, with a preview of the order when the claim's return is applied.
      x-schemaName: AdminClaimReturnPreviewResponse
      required:
        - order_preview
        - return
      properties:
        order_preview:
          $ref: '#/components/schemas/AdminOrderPreview'
        return:
          $ref: '#/components/schemas/AdminReturn'
    AdminClaimUpdateInboundShipping:
      type: object
      description: The details to update in the shipping method.
      x-schemaName: AdminClaimUpdateInboundShipping
      properties:
        custom_amount:
          type: number
          title: custom_amount
          description: The shipping method's custom amount.
        internal_note:
          type: string
          title: internal_note
          description: A note only viewed by admin users.
        metadata:
          type: object
          description: The claim's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminClaimUpdateOutboundShipping:
      type: object
      description: The details to update in the shipping method.
      x-schemaName: AdminClaimUpdateOutboundShipping
      properties:
        custom_amount:
          type: number
          title: custom_amount
          description: The shipping method's custom amount.
        internal_note:
          type: string
          title: internal_note
          description: A note only viewed by admin users.
        metadata:
          type: object
          description: The claim's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminCollection:
      type: object
      description: The product collection's details.
      x-schemaName: AdminCollection
      required:
        - id
        - title
        - handle
        - created_at
        - updated_at
        - deleted_at
        - metadata
      properties:
        id:
          type: string
          title: id
          description: The collection's ID.
        title:
          type: string
          title: title
          description: The collection's title.
        handle:
          type: string
          title: handle
          description: The collection's handle.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The collection's creation date.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The collection's update date.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The collection's deletion date.
        products:
          type: array
          description: The collection's products.
          items:
            $ref: '#/components/schemas/BaseProduct'
        metadata:
          type: object
          description: The collection's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        translations:
          type: array
          description: The collection's translations.
          items:
            $ref: '#/components/schemas/AdminTranslation'
    AdminCollectionDeleteResponse:
      type: object
      description: The details of the deleted collection.
      x-schemaName: AdminCollectionDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The collection's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: collection
        deleted:
          type: boolean
          title: deleted
          description: Whether the collection was deleted.
    AdminCollectionListResponse:
      type: object
      description: The paginated list of product collections.
      x-schemaName: AdminCollectionListResponse
      required:
        - limit
        - offset
        - count
        - collections
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned results.
        count:
          type: number
          title: count
          description: The total number of items.
        collections:
          type: array
          description: The list of product collections.
          items:
            $ref: '#/components/schemas/AdminCollection'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    AdminCollectionResponse:
      type: object
      description: The collection's details.
      x-schemaName: AdminCollectionResponse
      required:
        - collection
      properties:
        collection:
          $ref: '#/components/schemas/AdminCollection'
    AdminColumn:
      type: object
      description: The details of a column in a view configuration.
      x-schemaName: AdminColumn
      required:
        - id
        - name
        - field
        - sortable
        - hideable
        - default_visible
        - data_type
      properties:
        id:
          type: string
          title: id
          description: The column's ID.
        name:
          type: string
          title: name
          description: The column's name. This is displayed in the view header.
        description:
          type: string
          title: description
          description: The column's description.
        field:
          type: string
          title: field
          description: The column's field in the entity.
        sortable:
          type: boolean
          title: sortable
          description: Whether the column is sortable.
        hideable:
          type: boolean
          title: hideable
          description: Whether the column is hideable.
        default_visible:
          type: boolean
          title: default_visible
          description: Whether the column is visible by default.
        data_type:
          type: string
          description: The data type of the column's value.
          enum:
            - string
            - number
            - boolean
            - object
            - date
            - currency
            - enum
        semantic_type:
          type: string
          title: semantic_type
          description: The column's semantic type. It can be `computed`, or other primitive types.
        context:
          type: string
          title: context
          description: The column's context. It can be `display` or `generic`.
        computed:
          type: object
          description: A computed column's details. Only available if the column's `semantic_type` is `computed`.
          required:
            - type
            - required_fields
            - optional_fields
          properties:
            type:
              type: string
              title: type
              description: The computed's type for rendering.
            required_fields:
              type: array
              description: The required fields in the computed column.
              items:
                type: string
                title: required_fields
                description: A required field in the computed column.
            optional_fields:
              type: array
              description: The optional fields in the computed column.
              items:
                type: string
                title: optional_fields
                description: An optional field in the computed column.
        relationship:
          type: object
          description: The relationship details. Only available for relationship columns.
          required:
            - entity
            - field
          properties:
            entity:
              type: string
              title: entity
              description: The related entity.
            field:
              type: string
              title: field
              description: The field in the related entity.
        default_order:
          type: number
          title: default_order
          description: The column's sort order in the default view configuration.
        category:
          type: string
          description: The column's category.
          enum:
            - status
            - metadata
            - identifier
            - timestamp
            - metric
            - relationship
    AdminConfirmReceiveReturn:
      type: object
      description: The confirmation's details.
      x-schemaName: AdminConfirmReceiveReturn
      properties:
        no_notification:
          type: boolean
          title: no_notification
          description: Whether to send the customer a notification about the confirmation.
    AdminConfirmReturnRequest:
      type: object
      description: The confirmation's details.
      x-schemaName: AdminConfirmReturnRequest
      properties:
        no_notification:
          type: boolean
          title: no_notification
          description: Whether to send the customer a notification about the confirmation.
    AdminCreateApiKey:
      type: object
      description: The API key's details.
      x-schemaName: AdminCreateApiKey
      required:
        - title
        - type
      properties:
        title:
          type: string
          title: title
          description: The API key's title.
        type:
          type: string
          description: The API key's type. Use `secret` for a user's API key; Use `publishable` for Publishable API keys.
          enum:
            - publishable
            - secret
    AdminCreateCalculatedShippingOption:
      type: object
      description: The calculated shipping option's details.
      x-schemaName: AdminCreateCalculatedShippingOption
      required:
        - price_type
        - name
        - service_zone_id
        - shipping_profile_id
        - provider_id
      properties:
        price_type:
          type: string
          title: price_type
          description: The calculated shipping option's price type.
          enum:
            - calculated
            - flat
        name:
          type: string
          title: name
          description: The calculated shipping option's name.
        service_zone_id:
          type: string
          title: service_zone_id
          description: The ID of the associated service zone.
        shipping_profile_id:
          type: string
          title: shipping_profile_id
          description: The ID of the associated shipping profile.
        data:
          type: object
          description: The calculated shipping option's data.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property
        provider_id:
          type: string
          title: provider_id
          description: The ID of the fulfillment provider handling this calculated shipping option.
        type:
          $ref: '#/components/schemas/AdminCreateShippingOptionType'
        type_id:
          type: string
          title: type_id
          description: The ID of the shipping option type that this shipping option belongs to.
        rules:
          type: array
          description: The calculated shipping option's rules.
          items:
            $ref: '#/components/schemas/AdminCreateShippingOptionRule'
        metadata:
          type: object
          description: The shipping option's metadata, can hold custom key-value pairs.
    AdminCreateClaim:
      type: object
      description: The claim's details.
      x-schemaName: AdminCreateClaim
      required:
        - type
        - order_id
      properties:
        type:
          type: string
          description: The claim's type.
          enum:
            - refund
            - replace
        order_id:
          type: string
          title: order_id
          description: The ID of the order the claim is created for.
        description:
          type: string
          title: description
          description: The claim's description.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users.
        reason_id:
          type: string
          title: reason_id
          description: The ID of the associated return reason.
        metadata:
          type: object
          description: The claim's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminCreateCustomerGroup:
      type: object
      description: The customer group's details.
      x-schemaName: AdminCreateCustomerGroup
      required:
        - name
      properties:
        name:
          type: string
          title: name
          description: The customer group's name.
        metadata:
          type: object
          description: The customer group's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminCreateExchange:
      type: object
      description: The exchange's details.
      x-schemaName: AdminCreateExchange
      required:
        - order_id
      properties:
        order_id:
          type: string
          title: order_id
          description: The ID of the order this exchange is created for.
        description:
          type: string
          title: description
          description: The exchange's description.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users.
        metadata:
          type: object
          description: The exchange's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminCreateFlatRateShippingOption:
      type: object
      description: The flat rate shipping option's details.
      x-schemaName: AdminCreateFlatRateShippingOption
      required:
        - price_type
        - prices
        - name
        - service_zone_id
        - shipping_profile_id
        - provider_id
      properties:
        name:
          type: string
          title: name
          description: The flat-rate shipping option's name.
        service_zone_id:
          type: string
          title: service_zone_id
          description: The ID of the associated service zone.
        shipping_profile_id:
          type: string
          title: shipping_profile_id
          description: The ID of the associated shipping profile.
        data:
          type: object
          description: The flat-rate shipping option's data, useful for the fulfillment provider handling its processing.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property
        price_type:
          type: string
          description: The shipping option's price type. If `flat`, the shipping option has a fixed price set in `prices`. Otherwise, the shipping option's price is calculated by the fulfillment provider.
          enum:
            - flat
            - calculated
        provider_id:
          type: string
          title: provider_id
          description: The ID of the fulfillment provider handling this shipping option.
        type:
          $ref: '#/components/schemas/AdminCreateShippingOptionType'
        prices:
          type: array
          description: The shipping option's prices.
          items:
            oneOf:
              - type: object
                description: The price's details.
                x-schemaName: AdminCreateShippingOptionPriceWithCurrency
                required:
                  - currency_code
                  - amount
                properties:
                  currency_code:
                    type: string
                    title: currency_code
                    description: The price's currency code.
                    example: usd
                  amount:
                    type: number
                    title: amount
                    description: The price's amount.
                  rules:
                    type: array
                    description: The price's rules.
                    items:
                      type: object
                      description: The rule's details.
                      x-schemaName: PriceRule
                      required:
                        - attribute
                        - operator
                        - value
                      properties:
                        attribute:
                          type: string
                          title: attribute
                          description: The rule's attribute.
                        operator:
                          type: string
                          description: The rule's operator.
                          enum:
                            - gt
                            - lt
                            - eq
                            - lte
                            - gte
                        value:
                          type: number
                          title: value
                          description: The rule's value.
              - type: object
                description: The price's details.
                x-schemaName: AdminCreateShippingOptionPriceWithRegion
                required:
                  - region_id
                  - amount
                properties:
                  region_id:
                    type: string
                    title: region_id
                    description: The ID of the region this price is used in.
                  amount:
                    type: number
                    title: amount
                    description: The price's amount.
                  rules:
                    type: array
                    description: The price's rules.
                    items:
                      type: object
                      description: The rule's details.
                      x-schemaName: PriceRule
                      required:
                        - attribute
                        - operator
                        - value
                      properties:
                        attribute:
                          type: string
                          title: attribute
                          description: The rule's attribute.
                        operator:
                          type: string
                          description: The rule's operator.
                          enum:
                            - gt
                            - lt
                            - eq
                            - lte
                            - gte
                        value:
                          type: number
                          title: value
                          description: The rule's value.
        type_id:
          type: string
          title: type_id
          description: The ID of the shipping option type that this shipping option belongs to.
        rules:
          type: array
          description: The shipping option's rules.
          items:
            $ref: '#/components/schemas/AdminCreateShippingOptionRule'
        metadata:
          type: object
          description: The shipping option's metadata.
    AdminCreateFulfillment:
      type: object
      description: The filfillment's details.
      x-schemaName: AdminCreateFulfillment
      required:
        - location_id
        - provider_id
        - delivery_address
        - items
        - labels
        - order_id
      properties:
        location_id:
          type: string
          title: location_id
          description: The ID of the location the items are fulfilled from.
        provider_id:
          type: string
          title: provider_id
          description: The ID of the provider handling this fulfillment.
        delivery_address:
          $ref: '#/components/schemas/AdminFulfillmentDeliveryAddress'
        items:
          type: array
          description: The items to fulfill.
          items:
            $ref: '#/components/schemas/AdminCreateFulfillmentItem'
        labels:
          type: array
          description: The labels for the fulfillment's shipments.
          items:
            $ref: '#/components/schemas/AdminCreateFulfillmentLabel'
        order_id:
          type: string
          title: order_id
          description: The ID of the order this fulfillment is created for.
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the shipping option used in the order.
        data:
          type: object
          description: Any data useful for the fulfillment provider to handle the fulfillment.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property
            description: Learn more about the data property.
        packed_at:
          type: string
          title: packed_at
          description: The date and time the fulfillment was packed.
          format: date-time
        shipped_at:
          type: string
          title: shipped_at
          description: The date and time the fulfillment was shipped.
          format: date-time
        delivered_at:
          type: string
          title: delivered_at
          description: The date and time the fulfillment was delivered.
          format: date-time
        canceled_at:
          type: string
          title: canceled_at
          description: The date and time the fulfillment was canceled.
          format: date-time
        metadata:
          type: object
          description: The fulfillment's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminCreateFulfillmentItem:
      type: object
      description: An item to fulfill.
      required:
        - title
        - sku
        - quantity
        - barcode
      properties:
        title:
          type: string
          title: title
          description: The item's title.
        sku:
          type: string
          title: sku
          description: The item's SKU.
        quantity:
          type: number
          title: quantity
          description: The quantity to fulfill of the item.
        barcode:
          type: string
          title: barcode
          description: The item's barcode.
        line_item_id:
          type: string
          title: line_item_id
          description: The ID of the associated line item.
        inventory_item_id:
          type: string
          title: inventory_item_id
          description: The ID of the inventory item associated with the underlying variant.
      x-schemaName: AdminCreateFulfillmentItem
    AdminCreateFulfillmentLabel:
      type: object
      description: Details of the fulfillment label to create.
      required:
        - tracking_number
        - tracking_url
        - label_url
      properties:
        tracking_number:
          type: string
          title: tracking_number
          description: The label's tracking number.
        tracking_url:
          type: string
          title: tracking_url
          description: The label's tracking URL.
        label_url:
          type: string
          title: label_url
          description: The label's URL.
      x-schemaName: AdminCreateFulfillmentLabel
    AdminCreateFulfillmentSetServiceZone:
      type: object
      description: Details of the service zone to create for the fulfillment set.
      required:
        - name
        - geo_zones
      properties:
        name:
          type: string
          title: name
          description: The service zone's name.
        geo_zones:
          type: array
          description: The service zone's geo zones.
          items:
            oneOf:
              - type: object
                description: A country geo zone.
                required:
                  - metadata
                  - country_code
                  - type
                properties:
                  metadata:
                    type: object
                    description: The geo zone's metadata.
                    externalDocs:
                      url: https://docs.medusajs.com/api/admin#manage-metadata
                      description: Learn how to manage metadata
                  country_code:
                    type: string
                    title: country_code
                    description: The geo zone's country code.
                  type:
                    type: string
                    title: type
                    description: The geo zone's type.
                    default: country
              - type: object
                description: A province geo zone.
                required:
                  - metadata
                  - country_code
                  - type
                  - province_code
                properties:
                  metadata:
                    type: object
                    description: The geo zone's metadata.
                    externalDocs:
                      url: https://docs.medusajs.com/api/admin#manage-metadata
                      description: Learn how to manage metadata
                  country_code:
                    type: string
                    title: country_code
                    description: The geo zone's country code.
                  type:
                    type: string
                    title: type
                    description: The geo zone's type.
                    default: province
                  province_code:
                    type: string
                    title: province_code
                    description: The geo zone's ISO 3166-2 province code. Must be lower-case.
                    example: us-ca
                    externalDocs:
                      url: https://en.wikipedia.org/wiki/ISO_3166-2
                      description: Learn more about ISO 3166-2
              - type: object
                description: A city geo zone
                required:
                  - metadata
                  - country_code
                  - type
                  - province_code
                  - city
                properties:
                  metadata:
                    type: object
                    description: The geo zone's metadata.
                    externalDocs:
                      url: https://docs.medusajs.com/api/admin#manage-metadata
                      description: Learn how to manage metadata
                  country_code:
                    type: string
                    title: country_code
                    description: The geo zone's country code.
                  type:
                    type: string
                    title: type
                    description: The geo zone's type.
                    default: city
                  province_code:
                    type: string
                    title: province_code
                    description: The geo zone's ISO 3166-2 province code. Must be lower-case.
                    example: us-ca
                    externalDocs:
                      url: https://en.wikipedia.org/wiki/ISO_3166-2
                      description: Learn more about ISO 3166-2
                  city:
                    type: string
                    title: city
                    description: The geo zone's city.
              - type: object
                description: A ZIP geo zone.
                required:
                  - metadata
                  - country_code
                  - type
                  - province_code
                  - city
                  - postal_expression
                properties:
                  metadata:
                    type: object
                    description: The geo zone's metadata.
                    externalDocs:
                      url: https://docs.medusajs.com/api/admin#manage-metadata
                      description: Learn how to manage metadata
                  country_code:
                    type: string
                    title: country_code
                    description: The geo zone's country code.
                  type:
                    type: string
                    title: type
                    description: The geo zone's type.
                    default: zip
                  province_code:
                    type: string
                    title: province_code
                    description: The geo zone's ISO 3166-2 province code. Must be lower-case.
                    example: us-ca
                    externalDocs:
                      url: https://en.wikipedia.org/wiki/ISO_3166-2
                      description: Learn more about ISO 3166-2
                  city:
                    type: string
                    title: city
                    description: The geo zone's city.
                  postal_expression:
                    type: object
                    description: The geo zone's postal expression or ZIP code.
      x-schemaName: AdminCreateFulfillmentSetServiceZone
    AdminCreateFulfillmentShipment:
      type: object
      description: Details of the shipment to create for a fulfillment.
      x-schemaName: AdminCreateFulfillmentShipment
      required:
        - labels
      properties:
        labels:
          type: array
          description: The shipment's labels.
          items:
            $ref: '#/components/schemas/AdminCreateFulfillmentLabel'
    AdminCreateGiftCardParams:
      type: object
      description: The details of the gift card to create.
      x-schemaName: AdminCreateGiftCardParams
      required:
        - code
        - value
        - currency_code
        - expires_at
        - reference_id
        - reference
        - line_item_id
        - customer_id
        - metadata
      properties:
        code:
          type: string
          title: code
          description: The gift card's code.
        value:
          type: number
          title: value
          description: The gift card's amount.
          example: 20
        currency_code:
          type: string
          title: currency_code
          description: The gift card's currency code.
          example: usd
        expires_at:
          type: string
          title: expires_at
          description: The date the gift card expires at.
        reference_id:
          type: string
          title: reference_id
          description: The gift card's reference ID.
        reference:
          type: string
          title: reference
          description: The gift card's reference.
        line_item_id:
          type: string
          title: line_item_id
          description: The ID of the line item associated with the gift card.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer associated with the gift card.
        metadata:
          type: object
          description: The gift card's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminCreateInventoryItem:
      type: object
      description: The inventory item's details.
      x-schemaName: AdminCreateInventoryItem
      properties:
        sku:
          type: string
          title: sku
          description: The inventory item's SKU.
        hs_code:
          type: string
          title: hs_code
          description: The inventory item's HS code.
        weight:
          type: number
          title: weight
          description: The inventory item's weight.
        length:
          type: number
          title: length
          description: The inventory item's length.
        height:
          type: number
          title: height
          description: The inventory item's height.
        width:
          type: number
          title: width
          description: The inventory item's width.
        origin_country:
          type: string
          title: origin_country
          description: The inventory item's origin country.
        mid_code:
          type: string
          title: mid_code
          description: The inventory item's mid code.
        material:
          type: string
          title: material
          description: The inventory item's material.
        title:
          type: string
          title: title
          description: The inventory item's title.
        description:
          type: string
          title: description
          description: The description of the variant associated with the inventory item.
        requires_shipping:
          type: boolean
          title: requires_shipping
          description: Whether the item requires shipping.
        thumbnail:
          type: string
          title: thumbnail
          description: The inventory item's thumbnail.
        metadata:
          type: object
          description: The inventory item's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminCreateOrderCreditLine:
      type: object
      description: The details of a credit line to add to an order.
      x-schemaName: AdminCreateOrderCreditLine
      required:
        - amount
        - reference
        - reference_id
      properties:
        amount:
          type: number
          title: amount
          description: The amount of the credit line.
          example: 100
        reference:
          type: string
          title: reference
          description: The name of the table that the credit line is referencing.
          example: order
        reference_id:
          type: string
          title: reference_id
          description: The ID of a record in the table that the credit line is referencing.
          example: order_123
        metadata:
          type: object
          description: The credit line's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminCreatePaymentCollection:
      type: object
      description: The payment collection's details.
      required:
        - order_id
        - amount
      properties:
        order_id:
          type: string
          title: order_id
          description: The ID of the associated order.
        amount:
          type: number
          title: amount
          description: The amount to be paid.
      x-schemaName: AdminCreatePaymentCollection
    AdminCreatePriceList:
      type: object
      description: The price list's details.
      x-schemaName: AdminCreatePriceList
      required:
        - title
        - description
      properties:
        title:
          type: string
          title: title
          description: The price list's title.
        description:
          type: string
          title: description
          description: The price list's description.
        starts_at:
          type: string
          title: starts_at
          description: The date and time the price list starts at.
          format: date-time
        ends_at:
          type: string
          title: ends_at
          description: The date and time the price list ends at.
          format: date-time
        status:
          type: string
          description: The price list's status.
          enum:
            - active
            - draft
        type:
          type: string
          description: The price list's type.
          enum:
            - sale
            - override
        rules:
          type: object
          description: The price list's rules.
          example:
            product_category_id: pcat_123
        prices:
          type: array
          description: The price list's prices.
          items:
            $ref: '#/components/schemas/AdminCreatePriceListPrice'
    AdminCreatePriceListPrice:
      type: object
      description: The details of a price to be created within a price list.
      required:
        - currency_code
        - amount
        - variant_id
      properties:
        currency_code:
          type: string
          title: currency_code
          description: The price's currency code.
        amount:
          type: number
          title: amount
          description: The price's amount.
        variant_id:
          type: string
          title: variant_id
          description: The ID of the product variant this price is for.
        min_quantity:
          type: number
          title: min_quantity
          description: The minimum quantity required in the cart for this price to be applied.
        max_quantity:
          type: number
          title: max_quantity
          description: The maximum quantity in the cart that shouldn't be crossed for this price to be applied.
        rules:
          type: object
          description: The price's rules.
          example:
            region_id: reg_123
      x-schemaName: AdminCreatePriceListPrice
    AdminCreatePricePreference:
      type: object
      description: The price preference's details.
      x-schemaName: AdminCreatePricePreference
      properties:
        attribute:
          type: string
          title: attribute
          description: The name of the attribute the price preference applies on.
          example: currency_code
        value:
          type: string
          title: value
          description: The attribute's value.
          example: usd
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: Whether the price is tax inclusive if the value of the specified attribute matches the specified value.
    AdminCreateProduct:
      type: object
      description: The product's details.
      x-schemaName: AdminCreateProduct
      required:
        - title
        - options
      properties:
        title:
          type: string
          title: title
          description: The product's title.
        subtitle:
          type: string
          title: subtitle
          description: The product's subtitle.
        description:
          type: string
          title: description
          description: The product's description.
        is_giftcard:
          type: boolean
          title: is_giftcard
          description: Whether the product is a gift card.
        discountable:
          type: boolean
          title: discountable
          description: Whether the product is discountable.
        images:
          type: array
          description: The product's images.
          items:
            type: object
            description: A product's image details.
            required:
              - url
            properties:
              url:
                type: string
                title: url
                description: The image's URL.
        thumbnail:
          type: string
          title: thumbnail
          description: The URL of the product's thumbnail.
        handle:
          type: string
          title: handle
          description: The product's handle.
        status:
          type: string
          description: The product's status.
          enum:
            - draft
            - proposed
            - published
            - rejected
        type_id:
          type: string
          title: type_id
          description: The ID of the type the product belongs to.
        collection_id:
          type: string
          title: collection_id
          description: The ID of the collection the product belongs to.
        categories:
          type: array
          description: The categories the product belongs to.
          items:
            type: object
            description: A category's details.
            required:
              - id
            properties:
              id:
                type: string
                title: id
                description: The category's ID.
        tags:
          type: array
          description: The product's tags.
          items:
            type: object
            description: A tag's details.
            required:
              - id
            properties:
              id:
                type: string
                title: id
                description: The tag's ID.
        options:
          type: array
          description: The product's options.
          items:
            $ref: '#/components/schemas/AdminCreateProductOption'
        variants:
          type: array
          description: The product's variants.
          items:
            $ref: '#/components/schemas/AdminCreateProductVariant'
        sales_channels:
          type: array
          description: The sales channels the product is available in.
          items:
            type: object
            description: A sales channel's details.
            required:
              - id
            properties:
              id:
                type: string
                title: id
                description: The sales channel's ID.
        weight:
          type: number
          title: weight
          description: The product's weight.
        length:
          type: number
          title: length
          description: The product's length.
        height:
          type: number
          title: height
          description: The product's height.
        width:
          type: number
          title: width
          description: The product's width.
        hs_code:
          type: string
          title: hs_code
          description: The product's HS code.
        mid_code:
          type: string
          title: mid_code
          description: The product's MID code.
        origin_country:
          type: string
          title: origin_country
          description: The product's origin country.
        material:
          type: string
          title: material
          description: The product's material.
        metadata:
          type: object
          description: The product's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        external_id:
          type: string
          title: external_id
          description: The ID of the product in an external or third-party system.
        shipping_profile_id:
          type: string
          title: shipping_profile_id
          description: The ID of the product's shipping profile.
    AdminCreateProductCategory:
      type: object
      description: The product category's details.
      x-schemaName: AdminCreateProductCategory
      required:
        - name
      properties:
        name:
          type: string
          title: name
          description: The product category's name.
        description:
          type: string
          title: description
          description: The product category's description.
        handle:
          type: string
          title: handle
          description: The product category's handle.
        is_internal:
          type: boolean
          title: is_internal
          description: Whether the product category is only used and seen by admin users.
        is_active:
          type: boolean
          title: is_active
          description: Whether the product category is active.
        parent_category_id:
          type: string
          title: parent_category_id
          description: The ID of a category that's the parent of this one.
        rank:
          type: number
          title: rank
          description: The sorting order of the product category among sibling categories.
        metadata:
          type: object
          description: The product category's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminCreateProductOption:
      type: object
      description: The product option's details.
      x-schemaName: AdminCreateProductOption
      required:
        - title
        - values
      properties:
        title:
          type: string
          title: title
          description: The product option's title.
        values:
          type: array
          description: The product option's values.
          items:
            type: string
            title: values
            description: A value.
    AdminCreateProductTag:
      type: object
      description: The product tag's details.
      x-schemaName: AdminCreateProductTag
      required:
        - value
      properties:
        value:
          type: string
          title: value
          description: The product tag's value.
        metadata:
          type: object
          description: The product tag's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminCreateProductType:
      type: object
      description: The details of the product type to create.
      x-schemaName: AdminCreateProductType
      required:
        - value
      properties:
        metadata:
          type: object
          description: The product's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        value:
          type: string
          title: value
          description: The product type's value.
    AdminCreateProductVariant:
      type: object
      description: The product variant's details.
      x-schemaName: AdminCreateProductVariant
      required:
        - title
        - prices
      properties:
        title:
          type: string
          title: title
          description: The variant's title.
        sku:
          type: string
          title: sku
          description: The variant's SKU.
        ean:
          type: string
          title: ean
          description: The variant's EAN.
        upc:
          type: string
          title: upc
          description: The variant's UPC.
        barcode:
          type: string
          title: barcode
          description: The variant's barcode.
        hs_code:
          type: string
          title: hs_code
          description: The variant's HS code.
        mid_code:
          type: string
          title: mid_code
          description: The variant's MID code.
        allow_backorder:
          type: boolean
          title: allow_backorder
          description: Whether it's allowed to order this variant when it's out of stock.
        manage_inventory:
          type: boolean
          title: manage_inventory
          description: Whether Medusa manages the variant's inventory quantity. If disabled, the product variant is always considered in stock.
        variant_rank:
          type: number
          title: variant_rank
          description: The sorting order of the variant among other variants in the product.
        weight:
          type: number
          title: weight
          description: The variant's weight.
        length:
          type: number
          title: length
          description: The variant's length.
        height:
          type: number
          title: height
          description: The variant's height.
        width:
          type: number
          title: width
          description: The variant's width.
        origin_country:
          type: string
          title: origin_country
          description: The variant's origin country.
        material:
          type: string
          title: material
          description: The variant's material.
        metadata:
          type: object
          description: The variant's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        prices:
          type: array
          description: The variant's prices.
          items:
            $ref: '#/components/schemas/AdminCreateProductVariantPrice'
        options:
          type: object
          description: The variant's options, where the key is an option's name, and the value is the option's value.
          example:
            Color: Black
        inventory_items:
          type: array
          description: The variant's inventory items to create.
          items:
            $ref: '#/components/schemas/AdminCreateProductVariantInventoryKit'
    AdminCreateProductVariantInventoryKit:
      type: object
      description: The details of a variant's inventory item.
      x-schemaName: AdminCreateProductVariantInventoryKit
      required:
        - inventory_item_id
      properties:
        inventory_item_id:
          type: string
          title: inventory_item_id
          description: The inventory item's ID.
        required_quantity:
          type: number
          title: required_quantity
          description: The number of units a single quantity is equivalent to. For example, if a customer orders one quantity of the variant, Medusa checks the availability of the quantity multiplied by the value set for `required_quantity`. When the customer orders the quantity, Medusa reserves the ordered quantity multiplied by the value set for `required_quantity`.
    AdminCreateProductVariantPrice:
      type: object
      description: The details of a variant's price.
      x-schemaName: AdminCreateProductVariantPrice
      required:
        - currency_code
        - amount
      properties:
        currency_code:
          type: string
          title: currency_code
          description: The price's currency code.
        amount:
          type: number
          title: amount
          description: The price's amount.
        min_quantity:
          type: number
          title: min_quantity
          description: The minimum quantity that must be available in the cart for this price to apply.
        max_quantity:
          type: number
          title: max_quantity
          description: The maximum quantity that must not be surpassed in the cart for this price to apply.
        rules:
          type: object
          description: The price's rules.
          example:
            region_id: reg_123
          properties:
            region_id:
              type: string
              title: region_id
              description: The ID of a region.
          required:
            - region_id
    AdminCreatePromotionRule:
      type: object
      description: The promotion rule's details.
      x-schemaName: AdminCreatePromotionRule
      required:
        - operator
        - attribute
        - values
      properties:
        operator:
          type: string
          description: The operator used to check whether the buy rule applies on a cart. For example, `eq` means that the cart's value for the specified attribute must match the specified value.
          enum:
            - gte
            - lte
            - gt
            - lt
            - eq
            - ne
            - in
        description:
          type: string
          title: description
          description: The rule's description.
        attribute:
          type: string
          title: attribute
          description: The attribute to compare against when checking whether a promotion can be applied on a cart.
          example: items.product.id
        values:
          oneOf:
            - type: string
              title: values
              description: The attribute's value.
              example: prod_123
            - type: array
              description: The allowed attribute values.
              items:
                type: string
                title: values
                description: An attribute value.
                example: prod_123
    AdminCreateRefundReason:
      type: object
      description: The refund reason's details.
      x-schemaName: AdminCreateRefundReason
      required:
        - label
        - code
      properties:
        label:
          type: string
          title: label
          description: The refund reason's label.
        description:
          type: string
          title: description
          description: The refund reason's description.
        code:
          type: string
          title: code
          description: The refund reason's code.
        metadata:
          type: object
          description: The refund reason's metadata. Can hold custom key-value pairs.
    AdminCreateRegion:
      type: object
      description: The region's details.
      x-schemaName: AdminCreateRegion
      required:
        - name
        - currency_code
      properties:
        name:
          type: string
          title: name
          description: The region's name.
        currency_code:
          type: string
          title: currency_code
          description: The region's currency code.
          example: usd
        countries:
          type: array
          description: The region's countries.
          items:
            type: string
            title: countries
            description: A country code.
            example: us
        automatic_taxes:
          type: boolean
          title: automatic_taxes
          description: Whether taxes are calculated automatically during checkout in this region.
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: Whether prices in this region are tax inclusive.
        payment_providers:
          type: array
          description: The payment providers enabled in this region.
          items:
            type: string
            title: payment_providers
            description: A payment provider's ID.
            example: pp_stripe_stripe
        metadata:
          type: object
          description: The region's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminCreateReservation:
      type: object
      description: The reservation's details.
      x-schemaName: AdminCreateReservation
      required:
        - location_id
        - inventory_item_id
        - quantity
      properties:
        line_item_id:
          type: string
          title: line_item_id
          description: The ID of the line item this reservation is created for.
        location_id:
          type: string
          title: location_id
          description: The ID of the location the quantity is reserved from.
        inventory_item_id:
          type: string
          title: inventory_item_id
          description: The ID of the inventory item associated with the line item's variant.
        quantity:
          type: number
          title: quantity
          description: The reserved quantity.
        description:
          type: string
          title: description
          description: The reservation's description.
        metadata:
          type: object
          description: The reservation's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminCreateReturnReason:
      type: object
      description: The details of the return reason to create.
      x-schemaName: AdminCreateReturnReason
      required:
        - value
        - label
      properties:
        value:
          type: string
          title: value
          description: The return reason's value.
        label:
          type: string
          title: label
          description: The return reason's label.
        description:
          type: string
          title: description
          description: The return reason's description.
        parent_return_reason_id:
          type: string
          title: parent_return_reason_id
          description: The ID of the parent return reason.
        metadata:
          type: object
          description: The return reason's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminCreateSalesChannel:
      type: object
      description: The sales channel's details.
      x-schemaName: AdminCreateSalesChannel
      required:
        - name
      properties:
        name:
          type: string
          title: name
          description: The sales channel's name.
        description:
          type: string
          title: description
          description: The sales channel's description.
        is_disabled:
          type: boolean
          title: is_disabled
          description: Whether the sales channel is disabled.
        metadata:
          type: object
          description: The sales channel's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminCreateShippingOptionRule:
      type: object
      description: The details of the shipping option rule.
      x-schemaName: AdminCreateShippingOptionRule
      required:
        - operator
        - attribute
        - value
      properties:
        operator:
          type: string
          description: The operator used to check whether a rule applies.
          enum:
            - gt
            - lt
            - eq
            - ne
            - in
            - lte
            - gte
            - nin
        attribute:
          type: string
          title: attribute
          description: The name of a property or table that the rule applies to.
          example: customer_group
        value:
          oneOf:
            - type: string
              title: value
              description: A value of the attribute that enables this rule.
              example: cusgroup_123
            - type: array
              description: Values of the attribute that enable this rule.
              items:
                type: string
                title: value
                description: A value of the attribute that enables this rule.
                example: cusgroup_123
    AdminCreateShippingOptionType:
      type: object
      description: The shipping option type's details.
      x-schemaName: AdminCreateShippingOptionType
      required:
        - label
        - code
      properties:
        label:
          type: string
          title: label
          description: The type's label.
        description:
          type: string
          title: description
          description: The type's description.
        code:
          type: string
          title: code
          description: The type's code.
    AdminCreateShippingProfile:
      type: object
      description: The shipping profile's details.
      x-schemaName: AdminCreateShippingProfile
      required:
        - name
        - type
      properties:
        name:
          type: string
          title: name
          description: The shipping profile's name.
        type:
          type: string
          title: type
          description: The shipping profile's type.
        metadata:
          type: object
          description: The shipping profile's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminCreateStockLocation:
      type: object
      description: The stock location's details.
      x-schemaName: AdminCreateStockLocation
      required:
        - name
      properties:
        name:
          type: string
          title: name
          description: The stock location's name.
        address_id:
          type: string
          title: address_id
          description: The ID of the stock location's address.
        address:
          $ref: '#/components/schemas/AdminUpsertStockLocationAddress'
        metadata:
          type: object
          description: The stock location's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminCreateStockLocationFulfillmentSet:
      type: object
      description: The fulfillment set to create.
      required:
        - name
        - type
      properties:
        name:
          type: string
          title: name
          description: The fulfillment set's name.
        type:
          type: string
          title: type
          description: The fulfillment set's type.
      x-schemaName: AdminCreateStockLocationFulfillmentSet
    AdminCreateStoreCreditAccount:
      type: object
      description: The details of the store credit account to create.
      x-schemaName: AdminCreateStoreCreditAccount
      required:
        - currency_code
      properties:
        currency_code:
          type: string
          title: currency_code
          description: The store credit account's currency code.
          example: usd
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer that the store credit account belongs to.
        metadata:
          type: object
          description: The store credit account's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminCreateTaxRate:
      type: object
      description: The tax rate's details.
      x-schemaName: AdminCreateTaxRate
      required:
        - name
        - tax_region_id
        - code
      properties:
        name:
          type: string
          title: name
          description: The tax rate's name.
          example: VAT
        tax_region_id:
          type: string
          title: tax_region_id
          description: The ID of the tax region this rate belongs to.
        rate:
          type: number
          title: rate
          description: The rate to charge.
          example: 10
        code:
          type: string
          title: code
          description: The code the tax rate is identified by.
        rules:
          type: array
          description: The tax rate's rules.
          items:
            $ref: '#/components/schemas/AdminCreateTaxRateRule'
        is_default:
          type: boolean
          title: is_default
          description: Whether the tax rate is the default in its tax region.
        is_combinable:
          type: boolean
          title: is_combinable
          description: Whether the tax rate should be combined with parent rates.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/tax/tax-rates-and-rules#combinable-tax-rates
        metadata:
          type: object
          description: The tax rate's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminCreateTaxRateRule:
      type: object
      description: The tax rate rule's details.
      x-schemaName: AdminCreateTaxRateRule
      required:
        - reference
        - reference_id
      properties:
        reference:
          type: string
          title: reference
          description: The name of a table in the database that this rule points to.
          example: product_type
        reference_id:
          type: string
          title: reference_id
          description: The ID of a record in the table specified in reference.
          example: ptype_123
    AdminCreateTaxRegion:
      type: object
      description: The tax region's details.
      x-schemaName: AdminCreateTaxRegion
      required:
        - country_code
      properties:
        country_code:
          type: string
          title: country_code
          description: The tax region's country code.
          example: us
        province_code:
          type: string
          title: province_code
          description: The tax region's ISO 3166-2 province code. Must be lower-case.
          example: us-ca
          externalDocs:
            url: https://en.wikipedia.org/wiki/ISO_3166-2
            description: Learn more about ISO 3166-2
        parent_id:
          type: string
          title: parent_id
          description: The ID of the parent tax region.
        default_tax_rate:
          type: object
          description: The tax region's default tax rate.
          required:
            - code
            - name
          properties:
            rate:
              type: number
              title: rate
              description: The rate to charge.
              example: 10
            code:
              type: string
              title: code
              description: The code the tax rate is identified by
            name:
              type: string
              title: name
              description: The default tax rate's name.
              example: VAT
            is_combinable:
              type: boolean
              description: Whether the tax rate should be combined with parent rates.
              externalDocs:
                url: https://docs.medusajs.com/resources/commerce-modules/tax/tax-rates-and-rules#combinable-tax-rates
            metadata:
              type: object
              description: The default tax rate's metadata, used to store custom key-value pairs.
              externalDocs:
                url: https://docs.medusajs.com/api/admin#manage-metadata
                description: Learn how to manage metadata
        metadata:
          type: object
          description: The tax region's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        provider_id:
          type: string
          title: provider_id
          description: The ID of the tax provider used to calculate the tax rate in this tax region.
    AdminCreateTranslationSettings:
      type: object
      description: The translation settings to create.
      x-schemaName: AdminCreateTranslationSettings
      required:
        - entity_type
        - fields
      properties:
        entity_type:
          type: string
          title: entity_type
          description: The entity type to create the translation settings for.
          example: product
        fields:
          type: array
          description: The fields to support translations for.
          items:
            type: string
            title: fields
            description: A field to support translations for.
            example: title
        is_active:
          type: boolean
          title: is_active
          description: Whether translations are active for the given entity type.
    AdminCreateVariantInventoryItem:
      type: object
      description: The details of the variant-inventory item association.
      x-schemaName: AdminCreateVariantInventoryItem
      required:
        - required_quantity
        - inventory_item_id
      properties:
        required_quantity:
          type: number
          title: required_quantity
          description: The quantity of the variant in the inventory item.
        inventory_item_id:
          type: string
          title: inventory_item_id
          description: The inventory item's ID.
    AdminCreateViewConfiguration:
      type: object
      description: The details of a view configuration to create.
      x-schemaName: AdminCreateViewConfiguration
      properties:
        is_system_default:
          type: boolean
          title: is_system_default
          description: Whether the view is the system default. If so, it will be used as the default view for all users that don't have a custom active view set.
        set_active:
          type: boolean
          title: set_active
          description: Whether the view is set as active.
        configuration:
          type: object
          description: The view's configuration.
          required:
            - visible_columns
            - column_order
          properties:
            visible_columns:
              type: array
              description: The configuration's visible columns.
              items:
                type: string
                title: visible_columns
                description: The visible column's name.
            column_order:
              type: array
              description: The columns in the order they should be displayed.
              items:
                type: string
                title: column_order
                description: The column's name.
            search:
              type: string
              title: search
              description: The search query used in the view.
            column_widths:
              type: object
              description: The column widths in the view.
            filters:
              type: object
              description: The filters applied to the view.
            sorting:
              type: object
              description: The sorting applied to the view.
              required:
                - id
                - desc
              properties:
                id:
                  type: string
                  title: id
                  description: The ID of the sorting column.
                desc:
                  type: boolean
                  title: desc
                  description: Whether the sorting is descending.
        name:
          type: string
          title: name
          description: The view's name.
    AdminCreateWorkflowsAsyncResponse:
      type: object
      description: The details of changing a workflow execution's step status.
      x-schemaName: AdminCreateWorkflowsAsyncResponse
      required:
        - transaction_id
        - step_id
      properties:
        transaction_id:
          type: string
          title: transaction_id
          description: The workflows execution's transaction ID.
        step_id:
          type: string
          title: step_id
          description: The ID of the step whose status was changed.
        response:
          description: Sets the step's response. It accepts any type.
        compensate_input:
          description: Sets the compensation function's input. It accepts any response.
        action:
          type: string
          description: Whether to invoke or compensate the step.
          enum:
            - invoke
            - compensate
    AdminCreateWorkflowsRun:
      type: object
      description: The details of the workflow to execute.
      x-schemaName: AdminCreateWorkflowsRun
      properties:
        input:
          description: The input to pass to the workflow. Can be of any type.
        transaction_id:
          type: string
          title: transaction_id
          description: The ID of the workflow execution's transaction.
    AdminCreditStoreCreditAccountParams:
      type: object
      description: The details of the credits to add to the store credit account.
      x-schemaName: AdminCreditStoreCreditAccountParams
      required:
        - amount
      properties:
        amount:
          type: number
          title: amount
          description: The credits to add to the store credit account.
        note:
          type: string
          title: note
          description: An internal note with more details on the credit addition.
    AdminCurrency:
      type: object
      description: The currency's currencies.
      x-schemaName: AdminCurrency
      required:
        - code
        - symbol
        - symbol_native
        - name
        - decimal_digits
        - rounding
        - created_at
        - updated_at
        - deleted_at
      properties:
        code:
          type: string
          title: code
          description: The currency's code.
          example: usd
        symbol:
          type: string
          title: symbol
          description: The currency's symbol.
          example: $
        symbol_native:
          type: string
          title: symbol_native
          description: The currency's native symbol, if different than the symbol.
          example: $
        name:
          type: string
          title: name
          description: The currency's name.
        decimal_digits:
          type: number
          title: decimal_digits
          description: The number of digits after the decimal for prices in this currency.
        rounding:
          type: number
          title: rounding
          description: The rounding percision applied on prices in this currency.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The currency's creation date.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The currency's update date.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The currency's deletion date.
    AdminCurrencyListResponse:
      type: object
      description: The paginated list of currencies.
      x-schemaName: AdminCurrencyListResponse
      required:
        - limit
        - offset
        - count
        - currencies
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total number of items.
        currencies:
          type: array
          description: The list of currencies.
          items:
            $ref: '#/components/schemas/AdminCurrency'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    AdminCurrencyResponse:
      type: object
      description: The currency's details.
      x-schemaName: AdminCurrencyResponse
      required:
        - currency
      properties:
        currency:
          $ref: '#/components/schemas/AdminCurrency'
    AdminCustomer:
      type: object
      description: The customer's details.
      x-schemaName: AdminCustomer
      required:
        - has_account
        - addresses
        - id
        - email
        - default_billing_address_id
        - default_shipping_address_id
        - company_name
        - first_name
        - last_name
      properties:
        id:
          type: string
          title: id
          description: The customer's ID.
        has_account:
          type: boolean
          title: has_account
          description: Whether the customer is registered.
        groups:
          type: array
          description: The customer's groups.
          items:
            $ref: '#/components/schemas/AdminCustomerGroup'
        email:
          type: string
          title: email
          description: The customer's email.
          format: email
        default_billing_address_id:
          type: string
          title: default_billing_address_id
          description: The ID of the address used as the default billing address.
        default_shipping_address_id:
          type: string
          title: default_shipping_address_id
          description: The ID of the address used as the default shipping address.
        company_name:
          type: string
          title: company_name
          description: The customer's company name.
        first_name:
          type: string
          title: first_name
          description: The customer's first name.
        last_name:
          type: string
          title: last_name
          description: The customer's last name.
        addresses:
          type: array
          description: The customer's addresses.
          items:
            $ref: '#/components/schemas/AdminCustomerAddress'
        phone:
          type: string
          title: phone
          description: The customer's phone.
        metadata:
          type: object
          description: The customer's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_by:
          type: string
          title: created_by
          description: The ID of the user that created this customer, if available.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The customer's creation date.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The customer's update date.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The customer's deletion date.
    AdminCustomerAddress:
      type: object
      description: The customer's address.
      x-schemaName: AdminCustomerAddress
      required:
        - id
        - address_name
        - is_default_shipping
        - is_default_billing
        - customer_id
        - company
        - first_name
        - last_name
        - address_1
        - address_2
        - city
        - country_code
        - province
        - postal_code
        - phone
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The address's ID.
        address_name:
          type: string
          title: address_name
          description: The address's name.
        is_default_shipping:
          type: boolean
          title: is_default_shipping
          description: Whether the address is the default shipping address.
        is_default_billing:
          type: boolean
          title: is_default_billing
          description: Whether the address is the default billing address.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer that this address belongs to.
        company:
          type: string
          title: company
          description: The customer's company.
        first_name:
          type: string
          title: first_name
          description: The customer's first name.
        last_name:
          type: string
          title: last_name
          description: The customer's last name.
        address_1:
          type: string
          title: address_1
          description: The address's first line.
        address_2:
          type: string
          title: address_2
          description: The address's second line.
        city:
          type: string
          title: city
          description: The address's city.
        country_code:
          type: string
          title: country_code
          description: The address's country code.
          example: us
        province:
          type: string
          title: province
          description: The address's lower-case ISO 3166-2 province code.
          example: us-ca
          externalDocs:
            url: https://en.wikipedia.org/wiki/ISO_3166-2
            description: Learn more about ISO 3166-2
        postal_code:
          type: string
          title: postal_code
          description: The address's postal code.
        phone:
          type: string
          title: phone
          description: The address's phone.
        metadata:
          type: object
          description: The address's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The address's creation date.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The address's update date.
    AdminCustomerAddressResponse:
      type: object
      description: The address's details.
      x-schemaName: AdminCustomerAddressResponse
      required:
        - address
      properties:
        address:
          $ref: '#/components/schemas/AdminCustomerAddress'
    AdminCustomerGroup:
      type: object
      description: The customer group's details.
      x-schemaName: AdminCustomerGroup
      required:
        - customers
        - id
        - name
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The customer group's ID.
        name:
          type: string
          title: name
          description: The customer group's name.
        customers:
          type: array
          description: The customer group's customers.
          items:
            type: object
        metadata:
          type: object
          description: The customer group's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The customer group's creation date.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The customer group's update date.
    AdminCustomerGroupResponse:
      type: object
      description: The customer group's details.
      x-schemaName: AdminCustomerGroupResponse
      required:
        - customer_group
      properties:
        customer_group:
          $ref: '#/components/schemas/AdminCustomerGroup'
    AdminCustomerInGroupFilters:
      type: object
      description: Filters to apply on customers to retrieve their groups.
      x-schemaName: AdminCustomerInGroupFilters
      properties:
        id:
          oneOf:
            - type: string
              title: id
              description: Filter by a customer's ID.
            - type: array
              description: Filter by customer IDs.
              items:
                type: string
                title: id
                description: A customer's ID.
        email:
          oneOf:
            - type: string
              title: email
              description: Filter by a customer's email.
              format: email
            - type: array
              description: Filter by customer emails.
              items:
                type: string
                title: email
                description: A customer's email.
                format: email
            - type: object
              description: Apply filters on the customer's email.
              properties:
                $and:
                  type: array
                  description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
                  items:
                    type: object
                  title: $and
                $or:
                  type: array
                  description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
                  items:
                    type: object
                  title: $or
                $eq:
                  oneOf:
                    - type: string
                      title: $eq
                      description: Filter by an exact match.
                    - type: array
                      description: Filter by exact matches
                      items:
                        type: string
                        title: $eq
                        description: Filter by an exact match.
                $ne:
                  type: string
                  title: $ne
                  description: Filter by values not equal to this parameter.
                $in:
                  type: array
                  description: Filter by values in this array.
                  items:
                    type: string
                    title: $in
                    description: Filter by values in this array.
                $nin:
                  type: array
                  description: Filter by values not in this array.
                  items:
                    type: string
                    title: $nin
                    description: Filter by values not in this array.
                $not:
                  oneOf:
                    - type: string
                      title: $not
                      description: Filter by values not matching the conditions in this parameter.
                    - type: object
                      description: Filter by values not matching the conditions in this parameter.
                    - type: array
                      description: Filter by values not matching the conditions in this parameter.
                      items:
                        type: string
                        title: $not
                        description: Filter by values not matching the conditions in this parameter.
                $gt:
                  type: string
                  title: $gt
                  description: Filter by values greater than this parameter. Useful for numbers and dates only.
                $gte:
                  type: string
                  title: $gte
                  description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
                $lt:
                  type: string
                  title: $lt
                  description: Filter by values less than this parameter. Useful for numbers and dates only.
                $lte:
                  type: string
                  title: $lte
                  description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
                $like:
                  type: string
                  title: $like
                  description: Apply a `like` filter. Useful for strings only.
                $re:
                  type: string
                  title: $re
                  description: Apply a regex filter. Useful for strings only.
                $ilike:
                  type: string
                  title: $ilike
                  description: Apply a case-insensitive `like` filter. Useful for strings only.
                $fulltext:
                  type: string
                  title: $fulltext
                  description: Filter to apply on full-text properties.
                $overlap:
                  type: array
                  description: Filter arrays that have overlapping values with this parameter.
                  items:
                    type: string
                    title: $overlap
                    description: Filter arrays that have overlapping values with this parameter.
                $contains:
                  type: array
                  description: Filter arrays that contain some of the values of this parameter.
                  items:
                    type: string
                    title: $contains
                    description: Filter arrays that contain some of the values of this parameter.
                $contained:
                  type: array
                  description: Filter arrays that contain all values of this parameter.
                  items:
                    type: string
                    title: $contained
                    description: Filter arrays that contain all values of this parameter.
                $exists:
                  type: boolean
                  title: $exists
                  description: Filter by whether a value for this parameter exists (not `null`).
        default_billing_address_id:
          oneOf:
            - type: string
              title: default_billing_address_id
              description: Filter by the ID of a customer's default billing address.
            - type: array
              description: Filter by the IDs of a customers' default billing address.
              items:
                type: string
                title: default_billing_address_id
                description: The ID of a customer's default billing address.
        default_shipping_address_id:
          oneOf:
            - type: string
              title: default_shipping_address_id
              description: Filter by the ID of a customer's default shipping address.
            - type: array
              description: Filter by the IDs of a customers' default shipping address.
              items:
                type: string
                title: default_shipping_address_id
                description: The ID of a customer's default shipping address.
        company_name:
          oneOf:
            - type: string
              title: company_name
              description: Filter by a customer's company name.
            - type: array
              description: Filter by customers' company names.
              items:
                type: string
                title: company_name
                description: A company name.
        first_name:
          oneOf:
            - type: string
              title: first_name
              description: Filter by a customer's first name.
            - type: array
              description: Filter by customers' first names.
              items:
                type: string
                title: first_name
                description: A first name.
        last_name:
          oneOf:
            - type: string
              title: last_name
              description: Filter by a customer's last name.
            - type: array
              description: Filter by customers' last names.
              items:
                type: string
                title: last_name
                description: A last name.
        created_by:
          oneOf:
            - type: string
              title: created_by
              description: Filter by the ID of a user to retrieve the groups of the customers they created.
            - type: array
              description: Filter by the ID of users to retrieve the groups of the customers they created.
              items:
                type: string
                title: created_by
                description: A user's ID.
        created_at:
          type: object
          description: Filter the customer's creation date.
          properties:
            $and:
              type: array
              description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
              items:
                type: object
              title: $and
            $or:
              type: array
              description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
              items:
                type: object
              title: $or
            $eq:
              oneOf:
                - type: string
                  title: $eq
                  description: Filter by an exact match.
                - type: array
                  description: Filter by exact matches
                  items:
                    type: string
                    title: $eq
                    description: Filter by an exact match.
            $ne:
              type: string
              title: $ne
              description: Filter by values not equal to this parameter.
            $in:
              type: array
              description: Filter by values in this array.
              items:
                type: string
                title: $in
                description: Filter by values in this array.
            $nin:
              type: array
              description: Filter by values not in this array.
              items:
                type: string
                title: $nin
                description: Filter by values not in this array.
            $not:
              oneOf:
                - type: string
                  title: $not
                  description: Filter by values not matching the conditions in this parameter.
                - type: object
                  description: Filter by values not matching the conditions in this parameter.
                - type: array
                  description: Filter by values not matching the conditions in this parameter.
                  items:
                    type: string
                    title: $not
                    description: Filter by values not matching the conditions in this parameter.
            $gt:
              type: string
              title: $gt
              description: Filter by values greater than this parameter. Useful for numbers and dates only.
            $gte:
              type: string
              title: $gte
              description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
            $lt:
              type: string
              title: $lt
              description: Filter by values less than this parameter. Useful for numbers and dates only.
            $lte:
              type: string
              title: $lte
              description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
            $like:
              type: string
              title: $like
              description: Apply a `like` filter. Useful for strings only.
            $re:
              type: string
              title: $re
              description: Apply a regex filter. Useful for strings only.
            $ilike:
              type: string
              title: $ilike
              description: Apply a case-insensitive `like` filter. Useful for strings only.
            $fulltext:
              type: string
              title: $fulltext
              description: Filter to apply on full-text properties.
            $overlap:
              type: array
              description: Filter arrays that have overlapping values with this parameter.
              items:
                type: string
                title: $overlap
                description: Filter arrays that have overlapping values with this parameter.
            $contains:
              type: array
              description: Filter arrays that contain some of the values of this parameter.
              items:
                type: string
                title: $contains
                description: Filter arrays that contain some of the values of this parameter.
            $contained:
              type: array
              description: Filter arrays that contain all values of this parameter.
              items:
                type: string
                title: $contained
                description: Filter arrays that contain all values of this parameter.
            $exists:
              type: boolean
              title: $exists
              description: Filter by whether a value for this parameter exists (not `null`).
        updated_at:
          type: object
          description: Filter the customer's update date.
          properties:
            $and:
              type: array
              description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
              items:
                type: object
              title: $and
            $or:
              type: array
              description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
              items:
                type: object
              title: $or
            $eq:
              oneOf:
                - type: string
                  title: $eq
                  description: Filter by an exact match.
                - type: array
                  description: Filter by an exact match.
                  items:
                    type: string
                    title: $eq
                    description: Filter by an exact match.
            $ne:
              type: string
              title: $ne
              description: Filter by values not equal to this parameter.
            $in:
              type: array
              description: Filter by values in this array.
              items:
                type: string
                title: $in
                description: Filter by values in this array.
            $nin:
              type: array
              description: Filter by values not in this array.
              items:
                type: string
                title: $nin
                description: Filter by values not in this array.
            $not:
              oneOf:
                - type: string
                  title: $not
                  description: Filter by values not matching the conditions in this parameter.
                - type: object
                  description: Filter by values not matching the conditions in this parameter.
                - type: array
                  description: Filter by values not matching the conditions in this parameter.
                  items:
                    type: string
                    title: $not
                    description: Filter by values not matching the conditions in this parameter.
            $gt:
              type: string
              title: $gt
              description: Filter by values greater than this parameter. Useful for numbers and dates only.
            $gte:
              type: string
              title: $gte
              description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
            $lt:
              type: string
              title: $lt
              description: Filter by values less than this parameter. Useful for numbers and dates only.
            $lte:
              type: string
              title: $lte
              description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
            $like:
              type: string
              title: $like
              description: Apply a `like` filter. Useful for strings only.
            $re:
              type: string
              title: $re
              description: Apply a regex filter. Useful for strings only.
            $ilike:
              type: string
              title: $ilike
              description: Apply a case-insensitive `like` filter. Useful for strings only.
            $fulltext:
              type: string
              title: $fulltext
              description: Filter to apply on full-text properties.
            $overlap:
              type: array
              description: Filter arrays that have overlapping values with this parameter.
              items:
                type: string
                title: $overlap
                description: Filter arrays that have overlapping values with this parameter.
            $contains:
              type: array
              description: Filter arrays that contain some of the values of this parameter.
              items:
                type: string
                title: $contains
                description: Filter arrays that contain some of the values of this parameter.
            $contained:
              type: array
              description: Filter arrays that contain all values of this parameter.
              items:
                type: string
                title: $contained
                description: Filter arrays that contain all values of this parameter.
            $exists:
              type: boolean
              title: $exists
              description: Filter by whether a value for this parameter exists (not `null`).
        deleted_at:
          type: object
          description: Filter the customer's deletion date.
          properties:
            $and:
              type: array
              description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
              items:
                type: object
              title: $and
            $or:
              type: array
              description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
              items:
                type: object
              title: $or
            $eq:
              oneOf:
                - type: string
                  title: $eq
                  description: Filter by an exact match.
                - type: array
                  description: Filter by an exact match.
                  items:
                    type: string
                    title: $eq
                    description: Filter by an exact match.
            $ne:
              type: string
              title: $ne
              description: Filter by values not equal to this parameter.
            $in:
              type: array
              description: Filter by values in this array.
              items:
                type: string
                title: $in
                description: Filter by values in this array.
            $nin:
              type: array
              description: Filter by values not in this array.
              items:
                type: string
                title: $nin
                description: Filter by values not in this array.
            $not:
              oneOf:
                - type: string
                  title: $not
                  description: Filter by values not matching the conditions in this parameter.
                - type: object
                  description: Filter by values not matching the conditions in this parameter.
                - type: array
                  description: Filter by values not matching the conditions in this parameter.
                  items:
                    type: string
                    title: $not
                    description: Filter by values not matching the conditions in this parameter.
            $gt:
              type: string
              title: $gt
              description: Filter by values greater than this parameter. Useful for numbers and dates only.
            $gte:
              type: string
              title: $gte
              description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
            $lt:
              type: string
              title: $lt
              description: Filter by values less than this parameter. Useful for numbers and dates only.
            $lte:
              type: string
              title: $lte
              description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
            $like:
              type: string
              title: $like
              description: Apply a `like` filter. Useful for strings only.
            $re:
              type: string
              title: $re
              description: Apply a regex filter. Useful for strings only.
            $ilike:
              type: string
              title: $ilike
              description: Apply a case-insensitive `like` filter. Useful for strings only.
            $fulltext:
              type: string
              title: $fulltext
              description: Filter to apply on full-text properties.
            $overlap:
              type: array
              description: Filter arrays that have overlapping values with this parameter.
              items:
                type: string
                title: $overlap
                description: Filter arrays that have overlapping values with this parameter.
            $contains:
              type: array
              description: Filter arrays that contain some of the values of this parameter.
              items:
                type: string
                title: $contains
                description: Filter arrays that contain some of the values of this parameter.
            $contained:
              type: array
              description: Filter arrays that contain all values of this parameter.
              items:
                type: string
                title: $contained
                description: Filter arrays that contain all values of this parameter.
            $exists:
              type: boolean
              title: $exists
              description: Filter by whether a value for this parameter exists (not `null`).
    AdminCustomerResponse:
      type: object
      description: The customer's details.
      x-schemaName: AdminCustomerResponse
      required:
        - customer
      properties:
        customer:
          $ref: '#/components/schemas/AdminCustomer'
    AdminDeletePaymentCollectionResponse:
      type: object
      description: The result of deleting the payment collection.
      x-schemaName: AdminDeletePaymentCollectionResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The payment collection's ID.
        object:
          type: string
          title: object
          description: The name of the object that was deleted.
          default: payment-collection
        deleted:
          type: boolean
          title: deleted
          description: Whether the object was deleted.
    AdminDismissItems:
      type: object
      description: The items details.
      x-schemaName: AdminDismissItems
      properties:
        items:
          type: array
          description: The items details.
          items:
            type: object
            description: An item's details.
            required:
              - id
              - quantity
            properties:
              id:
                type: string
                title: id
                description: The ID of the item in the order.
              quantity:
                type: number
                title: quantity
                description: The item's quantity.
              internal_note:
                type: string
                title: internal_note
                description: A note viewed only by admin users.
    AdminDraftOrder:
      type: object
      description: The draft order's details.
      x-schemaName: AdminDraftOrder
      required:
        - payment_collections
        - items
        - shipping_methods
        - status
        - id
        - version
        - region_id
        - customer_id
        - sales_channel_id
        - email
        - currency_code
        - payment_status
        - fulfillment_status
        - summary
        - created_at
        - updated_at
        - original_item_total
        - original_item_subtotal
        - original_item_tax_total
        - item_total
        - item_subtotal
        - item_tax_total
        - item_discount_total
        - original_total
        - original_subtotal
        - original_tax_total
        - total
        - subtotal
        - tax_total
        - discount_total
        - discount_tax_total
        - gift_card_total
        - gift_card_tax_total
        - shipping_total
        - shipping_subtotal
        - shipping_tax_total
        - shipping_discount_total
        - original_shipping_total
        - original_shipping_subtotal
        - original_shipping_tax_total
        - credit_line_total
      properties:
        payment_collections:
          type: array
          description: The draft order's payment collections.
          items:
            $ref: '#/components/schemas/AdminPaymentCollection'
        fulfillments:
          type: array
          description: The draft order's fulfillments.
          items:
            $ref: '#/components/schemas/AdminOrderFulfillment'
        sales_channel:
          $ref: '#/components/schemas/AdminSalesChannel'
        customer:
          $ref: '#/components/schemas/AdminCustomer'
        shipping_address:
          $ref: '#/components/schemas/AdminOrderAddress'
        billing_address:
          $ref: '#/components/schemas/AdminOrderAddress'
        items:
          type: array
          description: The draft order's items.
          items:
            $ref: '#/components/schemas/AdminOrderLineItem'
        shipping_methods:
          type: array
          description: The draft order's shipping methods.
          items:
            $ref: '#/components/schemas/AdminOrderShippingMethod'
        status:
          type: string
          title: status
          description: The draft order's status.
        currency_code:
          type: string
          title: currency_code
          description: The draft order's currency code.
          example: usd
        id:
          type: string
          title: id
          description: The draft order's ID.
        version:
          type: number
          title: version
          description: The draft order's version.
        region_id:
          type: string
          title: region_id
          description: The ID of the region associated with the draft order.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer that the draft order belongs to.
        sales_channel_id:
          type: string
          title: sales_channel_id
          description: The ID of the sales channel that the draft order is placed in.
        email:
          type: string
          title: email
          description: The customer email associated with the draft order.
          format: email
        display_id:
          type: number
          title: display_id
          description: The draft order's display ID.
        payment_status:
          type: string
          description: The draft order's payment status.
          enum:
            - not_paid
            - awaiting
            - authorized
            - partially_authorized
            - canceled
            - captured
            - partially_captured
            - partially_refunded
            - refunded
            - requires_action
        fulfillment_status:
          type: string
          description: The draft order's fulfillment status.
          enum:
            - canceled
            - not_fulfilled
            - partially_fulfilled
            - fulfilled
            - partially_shipped
            - shipped
            - partially_delivered
            - delivered
        transactions:
          type: array
          description: The draft order's transactions.
          items:
            $ref: '#/components/schemas/BaseOrderTransaction'
        summary:
          $ref: '#/components/schemas/BaseOrderSummary'
        metadata:
          type: object
          description: The draft order's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the draft order was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the draft order was updated.
        original_item_total:
          type: number
          title: original_item_total
          description: The total of the draft order's items including taxes, excluding promotions.
        original_item_subtotal:
          type: number
          title: original_item_subtotal
          description: The total of the draft order's items excluding taxes, including promotions.
        original_item_tax_total:
          type: number
          title: original_item_tax_total
          description: The tax total of the draft order's items excluding promotions.
        item_total:
          type: number
          title: item_total
          description: The total of the draft order's items including taxes and promotions.
        item_subtotal:
          type: number
          title: item_subtotal
          description: The total of the draft order's items excluding taxes, including promotions.
        item_tax_total:
          type: number
          title: item_tax_total
          description: The tax total of the draft order's items including promotions.
        original_total:
          type: number
          title: original_total
          description: The draft order's total excluding promotions, including taxes.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The draft order's total excluding taxes, including promotions.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The draft order's tax total, excluding promotions.
        total:
          type: number
          title: total
          description: The draft order's total including taxes and promotions.
        subtotal:
          type: number
          title: subtotal
          description: The draft order's total excluding taxes, including promotions.
        tax_total:
          type: number
          title: tax_total
          description: The draft order's tax total including promotions.
        discount_total:
          type: number
          title: discount_total
          description: The draft order's discount or promotions total.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The tax total of draft order's discount or promotion.
        gift_card_total:
          type: number
          title: gift_card_total
          description: The draft order's gift card total.
        gift_card_tax_total:
          type: number
          title: gift_card_tax_total
          description: The tax total of the draft order's gift card.
        shipping_total:
          type: number
          title: shipping_total
          description: The draft order's shipping total including taxes and promotions.
        shipping_subtotal:
          type: number
          title: shipping_subtotal
          description: The draft order's shipping total excluding taxes, including promotions.
        shipping_tax_total:
          type: number
          title: shipping_tax_total
          description: The tax total of the draft order's shipping.
        original_shipping_total:
          type: number
          title: original_shipping_total
          description: The draft order's shipping total including taxes, excluding promotions.
        original_shipping_subtotal:
          type: number
          title: original_shipping_subtotal
          description: The draft order's shipping total excluding taxes, including promotions.
        original_shipping_tax_total:
          type: number
          title: original_shipping_tax_total
          description: The tax total of the draft order's shipping excluding promotions.
        region:
          $ref: '#/components/schemas/AdminRegion'
        credit_lines:
          type: array
          description: The draft order's credit lines.
          items:
            $ref: '#/components/schemas/OrderCreditLine'
        credit_line_total:
          type: number
          title: credit_line_total
          description: The draft order's credit line total.
        item_discount_total:
          type: number
          title: item_discount_total
          description: The total discount amount applied on the draft order's items.
        shipping_discount_total:
          type: number
          title: shipping_discount_total
          description: The total discount amount applied on the draft order's shipping.
        custom_display_id:
          type: string
          title: custom_display_id
          description: The custom display ID of the draft order.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/order/custom-display-id
    AdminDraftOrderListResponse:
      type: object
      description: The list of draft orders with pagination fields.
      x-schemaName: AdminDraftOrderListResponse
      required:
        - limit
        - offset
        - count
        - draft_orders
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items retrieved.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total count of items available.
        draft_orders:
          type: array
          description: The list of draft orders.
          items:
            $ref: '#/components/schemas/AdminDraftOrder'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    AdminDraftOrderParams:
      type: object
      description: The parameters for retrieving draft orders.
      x-schemaName: AdminDraftOrderParams
      properties:
        fields:
          type: string
          title: fields
          description: Comma-separated fields that should be included in the returned data. if a field is prefixed with `+` it will be added to the default fields, using `-` will remove it from the default fields. without prefix it will replace the entire default fields.
    AdminDraftOrderPreview:
      type: object
      description: The draft order preview's details.
      x-schemaName: AdminDraftOrderPreview
      required:
        - return_requested_total
        - order_change
        - status
        - id
        - version
        - region_id
        - customer_id
        - sales_channel_id
        - email
        - currency_code
        - payment_collections
        - payment_status
        - fulfillment_status
        - summary
        - created_at
        - updated_at
        - original_item_total
        - original_item_subtotal
        - original_item_tax_total
        - item_total
        - item_subtotal
        - item_tax_total
        - item_discount_total
        - original_total
        - original_subtotal
        - original_tax_total
        - total
        - subtotal
        - tax_total
        - discount_total
        - discount_tax_total
        - gift_card_total
        - gift_card_tax_total
        - shipping_total
        - shipping_subtotal
        - shipping_tax_total
        - shipping_discount_total
        - original_shipping_total
        - original_shipping_subtotal
        - original_shipping_tax_total
        - credit_line_total
      properties:
        return_requested_total:
          type: number
          title: return_requested_total
          description: The total of the requested return.
        order_change:
          $ref: '#/components/schemas/AdminOrderChange'
        items:
          type: array
          description: The order's items.
          items:
            allOf:
              - type: object
                description: An order's item.
                x-schemaName: BaseOrderLineItem
                required:
                  - id
                  - title
                  - subtitle
                  - thumbnail
                  - variant_id
                  - product_id
                  - product_title
                  - product_description
                  - product_subtitle
                  - product_type
                  - product_collection
                  - product_handle
                  - variant_sku
                  - variant_barcode
                  - variant_title
                  - variant_option_values
                  - requires_shipping
                  - is_discountable
                  - is_tax_inclusive
                  - unit_price
                  - quantity
                  - detail
                  - created_at
                  - updated_at
                  - metadata
                  - original_total
                  - original_subtotal
                  - original_tax_total
                  - item_total
                  - item_subtotal
                  - item_tax_total
                  - total
                  - subtotal
                  - tax_total
                  - discount_total
                  - discount_tax_total
                  - refundable_total
                  - refundable_total_per_unit
                properties:
                  id:
                    type: string
                    title: id
                    description: The item's ID.
                  title:
                    type: string
                    title: title
                    description: The item's title.
                  subtitle:
                    type: string
                    title: subtitle
                    description: The item's subtitle.
                  thumbnail:
                    type: string
                    title: thumbnail
                    description: The URL of the item's thumbnail.
                  variant:
                    $ref: '#/components/schemas/BaseProductVariant'
                  variant_id:
                    type: string
                    title: variant_id
                    description: The ID of the associated variant.
                  product:
                    $ref: '#/components/schemas/AdminProduct'
                  product_id:
                    type: string
                    title: product_id
                    description: The ID of the associated product.
                  product_title:
                    type: string
                    title: product_title
                    description: The title of the item's product.
                  product_description:
                    type: string
                    title: product_description
                    description: The description of the item's product.
                  product_subtitle:
                    type: string
                    title: product_subtitle
                    description: The subtitle of the item's product.
                  product_type:
                    type: string
                    title: product_type
                    description: The ID of type of the item's product.
                  product_collection:
                    type: string
                    title: product_collection
                    description: The ID of collection of the item's product.
                  product_handle:
                    type: string
                    title: product_handle
                    description: The handle of the item's product.
                  variant_sku:
                    type: string
                    title: variant_sku
                    description: The SKU of the item's variant.
                  variant_barcode:
                    type: string
                    title: variant_barcode
                    description: The barcode of the item's variant.
                  variant_title:
                    type: string
                    title: variant_title
                    description: The title of the item's variant.
                  variant_option_values:
                    type: object
                    description: The option values of the item's variant as key-value pairs. The key is the title of an option, and the value is the option's value.
                  requires_shipping:
                    type: boolean
                    title: requires_shipping
                    description: Whether the item requires shipping.
                  is_discountable:
                    type: boolean
                    title: is_discountable
                    description: Whether the item is discountable.
                  is_tax_inclusive:
                    type: boolean
                    title: is_tax_inclusive
                    description: Whether the item's price includes taxes.
                  compare_at_unit_price:
                    type: number
                    title: compare_at_unit_price
                    description: The original price of the item before a promotion or sale.
                  unit_price:
                    type: number
                    title: unit_price
                    description: The item's unit price.
                  quantity:
                    type: number
                    title: quantity
                    description: The item's quantity.
                  tax_lines:
                    type: array
                    description: The item's tax lines.
                    items:
                      $ref: '#/components/schemas/BaseOrderLineItemTaxLine'
                  adjustments:
                    type: array
                    description: The item's adjustments.
                    items:
                      $ref: '#/components/schemas/BaseOrderLineItemAdjustment'
                  detail:
                    $ref: '#/components/schemas/BaseOrderItemDetail'
                  created_at:
                    type: string
                    format: date-time
                    title: created_at
                    description: The date the item was created.
                  updated_at:
                    type: string
                    format: date-time
                    title: updated_at
                    description: The date the item was updated.
                  metadata:
                    type: object
                    description: The item's metadata, can hold custom key-value pairs.
                    externalDocs:
                      url: https://docs.medusajs.com/api/admin#manage-metadata
                      description: Learn how to manage metadata
                  original_total:
                    type: number
                    title: original_total
                    description: The item's total including taxes, excluding promotions.
                  original_subtotal:
                    type: number
                    title: original_subtotal
                    description: The item's total excluding taxes, including promotions.
                  original_tax_total:
                    type: number
                    title: original_tax_total
                    description: The tax total of the item excluding promotions.
                  item_total:
                    type: number
                    title: item_total
                    description: The item's total for a single unit including taxes and promotions.
                  item_subtotal:
                    type: number
                    title: item_subtotal
                    description: The item's total for a single unit excluding taxes, including promotions.
                  item_tax_total:
                    type: number
                    title: item_tax_total
                    description: The tax total for a single unit of the item including promotions.
                  total:
                    type: number
                    title: total
                    description: The item's total including taxes and promotions.
                  subtotal:
                    type: number
                    title: subtotal
                    description: The item's total excluding taxes, including promotions.
                  tax_total:
                    type: number
                    title: tax_total
                    description: The tax total of the item including promotions.
                  discount_total:
                    type: number
                    title: discount_total
                    description: The total of the item's discount / promotion.
                  discount_tax_total:
                    type: number
                    title: discount_tax_total
                    description: The tax total of the item's discount / promotion
                  refundable_total:
                    type: number
                    title: refundable_total
                    description: The total refundable amount of the item's total.
                  refundable_total_per_unit:
                    type: number
                    title: refundable_total_per_unit
                    description: The total refundable amount of the item's total for a single unit.
              - type: object
                description: An order's item.
                properties:
                  actions:
                    type: array
                    description: The actions applied on an item.
                    items:
                      type: object
                      description: The action's details.
                      x-schemaName: BaseOrderChangeAction
        shipping_methods:
          type: array
          description: The order's shipping methods.
          items:
            allOf:
              - type: object
                description: The shipping method's details.
                x-schemaName: BaseOrderShippingMethod
                required:
                  - id
                  - order_id
                  - name
                  - amount
                  - is_tax_inclusive
                  - shipping_option_id
                  - data
                  - metadata
                  - original_total
                  - original_subtotal
                  - original_tax_total
                  - total
                  - subtotal
                  - tax_total
                  - discount_total
                  - discount_tax_total
                  - created_at
                  - updated_at
                properties:
                  id:
                    type: string
                    title: id
                    description: The shipping method's ID.
                  order_id:
                    type: string
                    title: order_id
                    description: The ID of the order this shipping method belongs to.
                  name:
                    type: string
                    title: name
                    description: The shipping method's name.
                  description:
                    type: string
                    title: description
                    description: The shipping method's description.
                  amount:
                    type: number
                    title: amount
                    description: The shipping method's amount.
                  is_tax_inclusive:
                    type: boolean
                    title: is_tax_inclusive
                    description: Whether the shipping method's amount is tax inclusive.
                  shipping_option_id:
                    type: string
                    title: shipping_option_id
                    description: The ID of the shipping option this method was created from.
                  data:
                    type: object
                    description: The data relevant for the fulfillment provider to process this shipment.
                    externalDocs:
                      url: https://docs.medusajs.com/resources/commerce-modules/order/concepts#data-property
                  metadata:
                    type: object
                    description: The shipping method's metadata, can hold custom key-value pairs.
                    externalDocs:
                      url: https://docs.medusajs.com/api/admin#manage-metadata
                      description: Learn how to manage metadata
                  tax_lines:
                    type: array
                    description: The shipping method's tax lines.
                    items:
                      $ref: '#/components/schemas/BaseOrderShippingMethodTaxLine'
                  adjustments:
                    type: array
                    description: The shipping method's adjustments.
                    items:
                      $ref: '#/components/schemas/BaseOrderShippingMethodAdjustment'
                  original_total:
                    oneOf:
                      - type: string
                        title: original_total
                        description: The shipping method's total including taxes, excluding promotions.
                      - type: number
                        title: original_total
                        description: The shipping method's total including taxes, excluding promotions.
                  original_subtotal:
                    oneOf:
                      - type: string
                        title: original_subtotal
                        description: The shipping method's total excluding taxes, including promotions.
                      - type: number
                        title: original_subtotal
                        description: The shipping method's total excluding taxes, including promotions.
                  original_tax_total:
                    oneOf:
                      - type: string
                        title: original_tax_total
                        description: The tax total of the shipping method excluding promotions.
                      - type: number
                        title: original_tax_total
                        description: The tax total of the shipping method excluding promotions.
                  total:
                    oneOf:
                      - type: string
                        title: total
                        description: The shipping method's total including taxes and promotions.
                      - type: number
                        title: total
                        description: The shipping method's total including taxes and promotions.
                  subtotal:
                    oneOf:
                      - type: string
                        title: subtotal
                        description: The shipping method's total excluding taxes, including promotions.
                      - type: number
                        title: subtotal
                        description: The shipping method's total excluding taxes, including promotions.
                  tax_total:
                    oneOf:
                      - type: string
                        title: tax_total
                        description: The tax total of the shipping method including promotions.
                      - type: number
                        title: tax_total
                        description: The tax total of the shipping method including promotions.
                  discount_total:
                    oneOf:
                      - type: string
                        title: discount_total
                        description: The total of the shipping method's promotion.
                      - type: number
                        title: discount_total
                        description: The total of the shipping method's promotion.
                  discount_tax_total:
                    oneOf:
                      - type: string
                        title: discount_tax_total
                        description: The tax total of the shipping method's promotion.
                      - type: number
                        title: discount_tax_total
                        description: The shipping method's discount tax total.
                  created_at:
                    type: string
                    format: date-time
                    title: created_at
                    description: The date the shipping method was created.
                  updated_at:
                    type: string
                    format: date-time
                    title: updated_at
                    description: The date the shipping method was updated.
              - type: object
                description: The shipping method's details.
                properties:
                  actions:
                    type: array
                    description: The actions applied on the shipping method.
                    items:
                      type: object
                      description: The action's details.
                      x-schemaName: BaseOrderChangeAction
        currency_code:
          type: string
          title: currency_code
          description: The order's currency code.
        version:
          type: number
          title: version
          description: The order's version when this preview is applied.
        id:
          type: string
          title: id
          description: The order's ID.
        region_id:
          type: string
          title: region_id
          description: The ID of the order's associated region.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer that placed the order.
        sales_channel_id:
          type: string
          title: sales_channel_id
          description: The ID of the sales channel that the order was placed in.
        email:
          type: string
          title: email
          description: The email of the customer that placed the order.
          format: email
        display_id:
          type: number
          title: display_id
          description: The order's display ID.
        shipping_address:
          $ref: '#/components/schemas/AdminOrderAddress'
        billing_address:
          $ref: '#/components/schemas/AdminOrderAddress'
        payment_collections:
          type: array
          description: The order's payment collections.
          items:
            $ref: '#/components/schemas/AdminPaymentCollection'
        payment_status:
          type: string
          description: The order's payment status.
          enum:
            - canceled
            - not_paid
            - awaiting
            - authorized
            - partially_authorized
            - captured
            - partially_captured
            - partially_refunded
            - refunded
            - requires_action
        fulfillments:
          type: array
          description: The order's fulfillments.
          items:
            $ref: '#/components/schemas/AdminOrderFulfillment'
        fulfillment_status:
          type: string
          description: The order's fulfillment status.
          enum:
            - canceled
            - not_fulfilled
            - partially_fulfilled
            - fulfilled
            - partially_shipped
            - shipped
            - partially_delivered
            - delivered
        transactions:
          type: array
          description: The order's transactions.
          items:
            $ref: '#/components/schemas/BaseOrderTransaction'
        summary:
          $ref: '#/components/schemas/BaseOrderSummary'
        metadata:
          type: object
          description: The order's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the order was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the order was updated.
        original_item_total:
          type: number
          title: original_item_total
          description: The total of the order's items including taxes, excluding promotions.
        original_item_subtotal:
          type: number
          title: original_item_subtotal
          description: The total of the order's items excluding taxes, including promotions.
        original_item_tax_total:
          type: number
          title: original_item_tax_total
          description: The tax total of the order's items excluding promotions.
        item_total:
          type: number
          title: item_total
          description: The total of the order's items including taxes and promotions.
        item_subtotal:
          type: number
          title: item_subtotal
          description: The total of the order's items excluding taxes, including promotions.
        item_tax_total:
          type: number
          title: item_tax_total
          description: The tax total of the order's items including promotions.
        original_total:
          type: number
          title: original_total
          description: The order's total excluding promotions, including taxes.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The order's total excluding taxes, including promotions.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The order's tax total, excluding promotions.
        total:
          type: number
          title: total
          description: The order's total including taxes and promotions.
        subtotal:
          type: number
          title: subtotal
          description: The order's total excluding taxes, including promotions.
        tax_total:
          type: number
          title: tax_total
          description: The order's tax total including promotions.
        discount_total:
          type: number
          title: discount_total
          description: The order's discount or promotions total.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The tax total of order's discount or promotion.
        gift_card_total:
          type: number
          title: gift_card_total
          description: The order's gift card total.
        gift_card_tax_total:
          type: number
          title: gift_card_tax_total
          description: The tax total of the order's gift card.
        shipping_total:
          type: number
          title: shipping_total
          description: The order's shipping total including taxes and promotions.
        shipping_subtotal:
          type: number
          title: shipping_subtotal
          description: The order's shipping total excluding taxes, including promotions.
        shipping_tax_total:
          type: number
          title: shipping_tax_total
          description: The tax total of the order's shipping.
        original_shipping_total:
          type: number
          title: original_shipping_total
          description: The order's shipping total including taxes, excluding promotions.
        original_shipping_subtotal:
          type: number
          title: original_shipping_subtotal
          description: The order's shipping total excluding taxes, including promotions.
        original_shipping_tax_total:
          type: number
          title: original_shipping_tax_total
          description: The tax total of the order's shipping excluding promotions.
        customer:
          $ref: '#/components/schemas/AdminCustomer'
        sales_channel:
          $ref: '#/components/schemas/AdminSalesChannel'
        status:
          type: string
          title: status
          description: The order's status.
        region:
          $ref: '#/components/schemas/AdminRegion'
        credit_lines:
          type: array
          description: The order preview's credit lines.
          items:
            $ref: '#/components/schemas/OrderCreditLine'
        credit_line_total:
          type: number
          title: credit_line_total
          description: The draft order preview's credit line total.
        item_discount_total:
          type: number
          title: item_discount_total
          description: The total discount amount applied on the draft order's items.
        shipping_discount_total:
          type: number
          title: shipping_discount_total
          description: The total discount amount applied on the draft order's shipping.
        custom_display_id:
          type: string
          title: custom_display_id
          description: The custom display ID of the draft order.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/order/custom-display-id
    AdminDraftOrderPreviewResponse:
      type: object
      description: The details of the preview on the draft order.
      x-schemaName: AdminDraftOrderPreviewResponse
      required:
        - draft_order_preview
      properties:
        draft_order_preview:
          $ref: '#/components/schemas/AdminDraftOrderPreview'
    AdminDraftOrderResponse:
      type: object
      description: The draft order's details.
      x-schemaName: AdminDraftOrderResponse
      required:
        - draft_order
      properties:
        draft_order:
          $ref: '#/components/schemas/AdminDraftOrder'
    AdminExchange:
      type: object
      description: The exchange's details.
      x-schemaName: AdminExchange
      required:
        - id
        - order_id
        - created_at
        - updated_at
        - canceled_at
        - deleted_at
        - additional_items
        - return_items
      properties:
        order_id:
          type: string
          title: order_id
          description: The ID of the order the exchange is created for.
        return_items:
          type: array
          description: The items returned (inbound) by the exchange.
          items:
            $ref: '#/components/schemas/AdminReturnItem'
        additional_items:
          type: array
          description: The new items (outbound) sent by the exchange.
          items:
            $ref: '#/components/schemas/BaseExchangeItem'
        no_notification:
          type: boolean
          title: no_notification
          description: Whether to send the customer notifications when the exchange is updated.
        difference_due:
          type: number
          title: difference_due
          description: The amount to be exchanged or refunded. If the amount is negative, it must be refunded. If positive, additional payment is required from the customer.
        return:
          $ref: '#/components/schemas/AdminReturn'
        return_id:
          type: string
          title: return_id
          description: The ID of the associated exchange.
        id:
          type: string
          title: id
          description: The exchange's ID.
        display_id:
          type: string
          title: display_id
          description: The exchange's display ID.
        shipping_methods:
          type: array
          description: The shipping methods used to send the new (outbound) items.
          items:
            $ref: '#/components/schemas/BaseOrderShippingMethod'
        transactions:
          type: array
          description: The exchange's transactions.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/order/transactions
          items:
            $ref: '#/components/schemas/BaseOrderTransaction'
        metadata:
          type: object
          description: The exchange's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date that the exchange was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date that the exchange was updated.
        order_version:
          type: string
          title: order_version
          description: The version of the order once the exchange is applied.
        created_by:
          type: string
          title: created_by
          description: The ID of the user that created the exchange.
        canceled_at:
          type: string
          title: canceled_at
          description: The date the exchange was canceled.
          format: date-time
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the exchange was deleted.
        order:
          $ref: '#/components/schemas/BaseOrder'
        allow_backorder:
          type: boolean
          title: allow_backorder
          description: Whether variants that are out-of-stock can still be added as additional or outbound items.
    AdminExchangeAddOutboundShipping:
      type: object
      description: The outbound shipping method's details.
      x-schemaName: AdminExchangeAddOutboundShipping
      required:
        - shipping_option_id
      properties:
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the associated shipping option.
        custom_amount:
          type: number
          title: custom_amount
          description: Set a custom amount for the shipping method.
        description:
          type: string
          title: description
          description: The shipping method's description.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed by admin users only.
        metadata:
          type: object
          description: The exchange's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminExchangeDeleteResponse:
      type: object
      description: The details of deleting an exchange.
      x-schemaName: AdminExchangeDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The exchange's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: exchange
        deleted:
          type: boolean
          title: deleted
          description: Whether the exchange was deleted.
    AdminExchangeOrderResponse:
      type: object
      description: The exchange's details.
      x-schemaName: AdminExchangeOrderResponse
      required:
        - order
        - exchange
      properties:
        order:
          $ref: '#/components/schemas/Order'
        exchange:
          $ref: '#/components/schemas/AdminExchange'
    AdminExchangePreviewResponse:
      type: object
      description: A preview of the order once the exchange is applied.
      x-schemaName: AdminExchangePreviewResponse
      required:
        - order_preview
        - exchange
      properties:
        order_preview:
          $ref: '#/components/schemas/AdminOrderPreview'
        exchange:
          $ref: '#/components/schemas/AdminExchange'
    AdminExchangeRequestResponse:
      type: object
      description: The details of a requested exchange.
      x-schemaName: AdminExchangeRequestResponse
      required:
        - return
        - order_preview
        - exchange
      properties:
        return:
          $ref: '#/components/schemas/AdminReturn'
        order_preview:
          $ref: '#/components/schemas/AdminOrderPreview'
        exchange:
          $ref: '#/components/schemas/AdminExchange'
    AdminExchangeResponse:
      type: object
      description: The exchange's details.
      x-schemaName: AdminExchangeResponse
      required:
        - exchange
      properties:
        exchange:
          $ref: '#/components/schemas/AdminExchange'
    AdminExchangeReturnResponse:
      type: object
      description: The details of an exchange's return.
      x-schemaName: AdminExchangeReturnResponse
      required:
        - order_preview
        - return
      properties:
        order_preview:
          $ref: '#/components/schemas/AdminOrderPreview'
        return:
          $ref: '#/components/schemas/AdminReturn'
    AdminExchangeUpdateInboundShipping:
      type: object
      description: The details of the shipping method to update.
      x-schemaName: AdminExchangeUpdateInboundShipping
      properties:
        custom_amount:
          type: number
          title: custom_amount
          description: The shipping method's custom amount.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed by admin users only.
        metadata:
          type: object
          description: The exchange's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminExchangeUpdateOutboundShipping:
      type: object
      description: The details of the shipping method to update.
      x-schemaName: AdminExchangeUpdateOutboundShipping
      properties:
        custom_amount:
          type: number
          title: custom_amount
          description: The shipping method's custom amount.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed by admin users only.
        metadata:
          type: object
          description: The exchange's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminExportOrderResponse:
      type: object
      description: The details of the order export.
      x-schemaName: AdminExportOrderResponse
      required:
        - transaction_id
      properties:
        transaction_id:
          type: string
          title: transaction_id
          description: The ID of the workflow execution's transaction. Use it to check the status of the export by sending a GET request to `/admin/workflows-executions/export-orders/:transaction-id`
    AdminExportProductResponse:
      type: object
      description: The details of the product export.
      x-schemaName: AdminExportProductResponse
      required:
        - transaction_id
      properties:
        transaction_id:
          type: string
          title: transaction_id
          description: The ID of the workflow execution's transaction. Use it to check the status of the export by sending a GET request to `/admin/workflows-executions/export-products/:transaction-id`
    AdminFile:
      type: object
      description: A file's details.
      x-schemaName: AdminFile
      required:
        - id
        - url
      properties:
        id:
          type: string
          title: id
          description: The file's ID.
        url:
          type: string
          title: url
          description: The file's URL.
    AdminFileListResponse:
      type: object
      description: The list of uploaded files.
      x-schemaName: AdminFileListResponse
      required:
        - files
      properties:
        files:
          type: array
          description: The list of uploaded files.
          items:
            $ref: '#/components/schemas/AdminFile'
    AdminFileResponse:
      type: object
      description: A file's details.
      x-schemaName: AdminFileResponse
      required:
        - file
      properties:
        file:
          $ref: '#/components/schemas/AdminFile'
    AdminFulfillment:
      type: object
      description: The fulfillment's details.
      x-schemaName: AdminFulfillment
      required:
        - id
        - location_id
        - provider_id
        - shipping_option_id
        - provider
        - delivery_address
        - items
        - labels
        - packed_at
        - shipped_at
        - delivered_at
        - canceled_at
        - data
        - metadata
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The fulfillment's ID.
        location_id:
          type: string
          title: location_id
          description: The ID of the location the fulfillment's items are shipped from.
        provider_id:
          type: string
          title: provider_id
          description: The ID of the fulfillment provider handling this fulfillment.
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the shipping option this fulfillment is created for.
        provider:
          $ref: '#/components/schemas/AdminFulfillmentProvider'
        delivery_address:
          $ref: '#/components/schemas/AdminFulfillmentAddress'
        items:
          type: array
          description: The fulfillment's items.
          items:
            $ref: '#/components/schemas/AdminFulfillmentItem'
        labels:
          type: array
          description: The fulfillment's shipment labels.
          items:
            $ref: '#/components/schemas/AdminFulfillmentLabel'
        packed_at:
          type: string
          title: packed_at
          description: The date the fulfillment was packed at.
        shipped_at:
          type: string
          title: shipped_at
          description: The date the fulfillment was shipped at.
        delivered_at:
          type: string
          title: delivered_at
          description: The date the fulfillment was delivered at.
        canceled_at:
          type: string
          title: canceled_at
          description: The date the fulfillment was canceled at.
        data:
          type: object
          description: The fulfillment's data, useful for the third-party provider handling the fulfillment.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property
        metadata:
          type: object
          description: The fulfillment's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the fulfillment was created at.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the fulfillment was updated at.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the fulfillment was deleted at.
    AdminFulfillmentAddress:
      type: object
      description: An address's details.
      x-schemaName: AdminFulfillmentAddress
      required:
        - id
        - fulfillment_id
        - company
        - first_name
        - last_name
        - address_1
        - address_2
        - city
        - country_code
        - province
        - postal_code
        - phone
        - metadata
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The address's ID.
        fulfillment_id:
          type: string
          title: fulfillment_id
          description: The ID of the fulfillment that the address belongs to.
        company:
          type: string
          title: company
          description: The address's company.
        first_name:
          type: string
          title: first_name
          description: The address's first name.
        last_name:
          type: string
          title: last_name
          description: The address's last name.
        address_1:
          type: string
          title: address_1
          description: The address's first line.
        address_2:
          type: string
          title: address_2
          description: The address's second line.
        city:
          type: string
          title: city
          description: The address's city.
        country_code:
          type: string
          title: country_code
          description: The address's country code.
        province:
          type: string
          title: province
          description: The address's lower-case ISO 3166-2 province code.
          example: us-ca
          externalDocs:
            url: https://en.wikipedia.org/wiki/ISO_3166-2
            description: Learn more about ISO 3166-2
        postal_code:
          type: string
          title: postal_code
          description: The address's postal code.
        phone:
          type: string
          title: phone
          description: The address's phone.
        metadata:
          type: object
          description: The address's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the address was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the address was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the address was deleted.
    AdminFulfillmentDeliveryAddress:
      type: object
      description: The address to deliver the items to.
      properties:
        first_name:
          type: string
          title: first_name
          description: The customer's first name.
        last_name:
          type: string
          title: last_name
          description: The customer's last name.
        phone:
          type: string
          title: phone
          description: The customer's phone.
        company:
          type: string
          title: company
          description: The delivery address's company.
        address_1:
          type: string
          title: address_1
          description: The delivery address's first line.
        address_2:
          type: string
          title: address_2
          description: The delivery address's second line.
        city:
          type: string
          title: city
          description: The delivery address's city.
        country_code:
          type: string
          title: country_code
          description: The delivery address's country code.
        province:
          type: string
          title: province
          description: The delivery address's ISO 3166-2 province code. Must be lower-case.
          example: us-ca
          externalDocs:
            url: https://en.wikipedia.org/wiki/ISO_3166-2
            description: Learn more about ISO 3166-2
        postal_code:
          type: string
          title: postal_code
          description: The delivery address's postal code.
        metadata:
          type: object
          description: The delivery address's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
      x-schemaName: AdminFulfillmentDeliveryAddress
    AdminFulfillmentItem:
      type: object
      description: The details of a fulfillment's item.
      x-schemaName: AdminFulfillmentItem
      required:
        - id
        - title
        - quantity
        - sku
        - barcode
        - line_item_id
        - inventory_item_id
        - fulfillment_id
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The item's ID.
        title:
          type: string
          title: title
          description: The item's title.
        quantity:
          type: number
          title: quantity
          description: The item's quantity to be fulfilled.
        sku:
          type: string
          title: sku
          description: The item's SKU.
        barcode:
          type: string
          title: barcode
          description: The item's barcode.
        line_item_id:
          type: string
          title: line_item_id
          description: The ID of the order's line item to be fulfilled.
        inventory_item_id:
          type: string
          title: inventory_item_id
          description: The ID of the inventory item of the underlying product variant.
        fulfillment_id:
          type: string
          title: fulfillment_id
          description: The ID of the fulfillment the item belongs to.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the item was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the item was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the item was deleted.
    AdminFulfillmentLabel:
      type: object
      description: The details of a fulfillmet's shipment label.
      x-schemaName: AdminFulfillmentLabel
      required:
        - id
        - tracking_number
        - tracking_url
        - label_url
        - fulfillment_id
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The label's ID.
        tracking_number:
          type: string
          title: tracking_number
          description: The label's tracking number.
        tracking_url:
          type: string
          title: tracking_url
          description: The label's tracking URL.
        label_url:
          type: string
          title: label_url
          description: The label's URL.
        fulfillment_id:
          type: string
          title: fulfillment_id
          description: The ID of the fulfillment the label is associated with.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the label was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the label was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the label was deleted.
    AdminFulfillmentProvider:
      type: object
      description: The fulfillment provider's details.
      x-schemaName: AdminFulfillmentProvider
      required:
        - id
        - is_enabled
      properties:
        id:
          type: string
          title: id
          description: The provider's ID.
        is_enabled:
          type: boolean
          title: is_enabled
          description: The provider's is enabled.
    AdminFulfillmentProviderListResponse:
      type: object
      description: The paginated list of fulfillment providers.
      x-schemaName: AdminFulfillmentProviderListResponse
      required:
        - limit
        - offset
        - count
        - fulfillment_providers
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total count of items.
        fulfillment_providers:
          type: array
          description: The list of fulfillment providers.
          items:
            $ref: '#/components/schemas/AdminFulfillmentProvider'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    AdminFulfillmentProviderOption:
      type: object
      description: The fulfillment option's details.
      x-schemaName: AdminFulfillmentProviderOption
      required:
        - id
        - is_return
      properties:
        id:
          type: string
          title: id
          description: The fulfillment option's ID.
        is_return:
          type: boolean
          title: is_return
          description: Whether the fulfillment option is used for returns.
    AdminFulfillmentProviderOptionsListResponse:
      type: object
      description: The paginated list of fulfillment options.
      x-schemaName: AdminFulfillmentProviderOptionsListResponse
      required:
        - limit
        - offset
        - count
        - fulfillment_options
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total number of items.
        fulfillment_options:
          type: array
          description: The list of fulfillment options.
          items:
            $ref: '#/components/schemas/AdminFulfillmentProviderOption'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    AdminFulfillmentResponse:
      type: object
      description: A fulfillment's details.
      x-schemaName: AdminFulfillmentResponse
      required:
        - fulfillment
      properties:
        fulfillment:
          $ref: '#/components/schemas/AdminFulfillment'
    AdminFulfillmentSet:
      type: object
      description: The service zone's fulfillment set.
      x-schemaName: AdminFulfillmentSet
      required:
        - id
        - name
        - type
        - location
        - service_zones
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The fulfillment set's ID.
        name:
          type: string
          title: name
          description: The fulfillment set's name.
        type:
          type: string
          title: type
          description: The fulfillment set's type.
        location:
          $ref: '#/components/schemas/AdminStockLocation'
        service_zones:
          type: array
          description: The fulfillment set's service zones.
          items:
            $ref: '#/components/schemas/AdminServiceZone'
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The fulfillment set's created at.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The fulfillment set's updated at.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The fulfillment set's deleted at.
    AdminFulfillmentSetDeleteResponse:
      type: object
      description: The deletion details.
      x-schemaName: AdminFulfillmentSetDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The fulfillment set's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: fulfillment_set
        deleted:
          type: boolean
          title: deleted
          description: Whether the fulfillment set was deleted.
    AdminFulfillmentSetResponse:
      type: object
      description: The fulfillment set's details.
      x-schemaName: AdminFulfillmentSetResponse
      required:
        - fulfillment_set
      properties:
        fulfillment_set:
          $ref: '#/components/schemas/AdminFulfillmentSet'
    AdminGeoZone:
      type: object
      description: The geo zone's geo zones.
      x-schemaName: AdminGeoZone
      required:
        - id
        - type
        - country_code
        - province_code
        - city
        - postal_expression
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The geo zone's ID.
        type:
          type: string
          description: The geo zone's type.
          enum:
            - country
            - province
            - city
            - zip
        country_code:
          type: string
          title: country_code
          description: The geo zone's country code.
        province_code:
          type: string
          title: province_code
          description: The geo zone's lower-case ISO 3166-2 province code.
          example: us-ca
          externalDocs:
            url: https://en.wikipedia.org/wiki/ISO_3166-2
            description: Learn more about ISO 3166-2
        city:
          type: string
          title: city
          description: The geo zone's city.
        postal_expression:
          type: object
          description: The geo zone's postal expression.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The geo zone's created at.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The geo zone's updated at.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The geo zone's deleted at.
    AdminGiftCard:
      type: object
      description: The gift card's details.
      x-schemaName: AdminGiftCard
      required:
        - line_item
        - customer
        - id
        - code
        - status
        - value
        - currency_code
        - customer_id
        - reference_id
        - note
        - reference
        - expires_at
        - created_at
        - updated_at
      properties:
        line_item:
          $ref: '#/components/schemas/AdminOrderLineItem'
        customer:
          $ref: '#/components/schemas/AdminCustomer'
        id:
          type: string
          title: id
          description: The gift card's ID.
        code:
          type: string
          title: code
          description: The gift card's code.
        status:
          type: string
          description: The gift card's status.
          enum:
            - pending
            - redeemed
        value:
          type: number
          title: value
          description: The gift card's amount.
        currency_code:
          type: string
          title: currency_code
          description: The gift card's currency code.
          example: usd
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer associated with the gift card.
        reference_id:
          type: string
          title: reference_id
          description: The gift card's reference ID.
        note:
          type: string
          title: note
          description: The gift card's note.
        reference:
          type: string
          title: reference
          description: The gift card's reference.
        expires_at:
          type: string
          title: expires_at
          description: The date the gift card expires at.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the gift card was created at.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the gift card was updated at.
    AdminGiftCardResponse:
      type: object
      description: The gift card's details.
      x-schemaName: AdminGiftCardResponse
      required:
        - gift_card
      properties:
        gift_card:
          $ref: '#/components/schemas/AdminGiftCard'
    AdminGiftCardsResponse:
      type: object
      description: The paginated list of gift cards.
      x-schemaName: AdminGiftCardsResponse
      required:
        - limit
        - offset
        - count
        - gift_cards
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of gift cards to return.
        offset:
          type: number
          title: offset
          description: The number of gift cards to skip before retrieving the results.
        count:
          type: number
          title: count
          description: The total number of gift cards available.
        gift_cards:
          type: array
          description: The list of gift cards.
          items:
            $ref: '#/components/schemas/AdminGiftCard'
        estimate_count:
          type: number
          title: estimate_count
          description: The gift card's estimate count.
          x-featureFlag: index_engine
    AdminImportProductRequest:
      type: object
      description: The import's details.
      x-schemaName: AdminImportProductRequest
      required:
        - file
      properties:
        file:
          type: object
          description: A File to upload.
          externalDocs:
            url: https://developer.mozilla.org/en-US/docs/Web/API/File
            description: Learn more about the File API
          title: file
    AdminImportProductResponse:
      type: object
      description: The import process's details.
      x-schemaName: AdminImportProductResponse
      required:
        - transaction_id
        - summary
      properties:
        transaction_id:
          type: string
          title: transaction_id
          description: The ID of the workflow execution's transaction. This is useful to confirm the import using the `/admin/products/:transaction-id/import` API route.
        summary:
          type: object
          description: The import's summary.
          required:
            - toCreate
            - toUpdate
          properties:
            toCreate:
              type: number
              title: toCreate
              description: The number of products that will be created by this import.
            toUpdate:
              type: number
              title: toUpdate
              description: The number of products that will be updated by this import.
    AdminImportProducts:
      type: object
      description: The details of the product's import file.
      x-schemaName: AdminImportProducts
      required:
        - file_key
        - originalname
        - extension
        - size
        - mime_type
      properties:
        file_key:
          type: string
          title: file_key
          description: The name of the file as stored in the configured File Module Provider.
        originalname:
          type: string
          title: originalname
          description: The file's original name.
        extension:
          type: string
          title: extension
          description: The file's extension.
          example: csv
        size:
          type: number
          title: size
          description: The file's size in bytes.
        mime_type:
          type: string
          title: mime_type
          description: The file's mime type.
          example: text/csv
    AdminIndexDetailsResponse:
      type: object
      description: The index's metadata details.
      x-schemaName: AdminIndexDetailsResponse
      required:
        - metadata
      properties:
        metadata:
          type: array
          description: The index's metadata.
          items:
            $ref: '#/components/schemas/IndexInfo'
    AdminIndexSyncPayload:
      type: object
      description: The details of the index sync.
      x-schemaName: AdminIndexSyncPayload
      required:
        - strategy
      properties:
        strategy:
          type: string
          description: The syncing strategy. `full` indicates a full reindex, while `reset` truncates tables and performs a fresh sync.
          enum:
            - full
            - reset
    AdminInitiateReceiveReturn:
      type: object
      description: The return receival details.
      x-schemaName: AdminInitiateReceiveReturn
      properties:
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users.
        description:
          type: string
          title: description
          description: The return's description.
        metadata:
          type: object
          description: The return's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminInitiateReturnRequest:
      type: object
      description: The return's details.
      x-schemaName: AdminInitiateReturnRequest
      required:
        - order_id
      properties:
        order_id:
          type: string
          title: order_id
          description: The ID of the order the return belongs to.
        location_id:
          type: string
          title: location_id
          description: The ID of the location the items are returned to.
        description:
          type: string
          title: description
          description: The return's description.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users.
        no_notification:
          type: boolean
          title: no_notification
          description: Whether to send the customer a notification about the created return.
        metadata:
          type: object
          description: The return's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminInventoryItem:
      type: object
      description: The inventory item's details.
      x-schemaName: AdminInventoryItem
      required:
        - id
        - requires_shipping
      properties:
        id:
          type: string
          title: id
          description: The inventory item's ID.
        sku:
          type: string
          title: sku
          description: The inventory item's sku.
        origin_country:
          type: string
          title: origin_country
          description: The inventory item's origin country.
        hs_code:
          type: string
          title: hs_code
          description: The inventory item's HS code.
        requires_shipping:
          type: boolean
          title: requires_shipping
          description: Whether the inventory item requires shipping.
        mid_code:
          type: string
          title: mid_code
          description: The inventory item's MID code.
        material:
          type: string
          title: material
          description: The inventory item's material.
        weight:
          type: number
          title: weight
          description: The inventory item's weight.
        length:
          type: number
          title: length
          description: The inventory item's length.
        height:
          type: number
          title: height
          description: The inventory item's height.
        width:
          type: number
          title: width
          description: The inventory item's width.
        title:
          type: string
          title: title
          description: The inventory item's title.
        description:
          type: string
          title: description
          description: The inventory item's description.
        thumbnail:
          type: string
          title: thumbnail
          description: The thumbnail URL of the inventory item.
        metadata:
          type: object
          description: Custom key-value pairs, used to store additional information about the inventory item.
        location_levels:
          type: array
          description: The inventory item's location levels.
          items:
            $ref: '#/components/schemas/AdminInventoryLevel'
    AdminInventoryItemResponse:
      type: object
      description: The inventory item's details.
      x-schemaName: AdminInventoryItemResponse
      required:
        - inventory_item
      properties:
        inventory_item:
          $ref: '#/components/schemas/AdminInventoryItem'
    AdminInventoryLevel:
      type: object
      description: The location level's location levels.
      x-schemaName: AdminInventoryLevel
      required:
        - id
        - created_at
        - updated_at
        - deleted_at
        - inventory_item_id
        - location_id
        - stocked_quantity
        - reserved_quantity
        - incoming_quantity
        - metadata
        - available_quantity
      properties:
        id:
          type: string
          title: id
          description: The location level's ID.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The location level's created at.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The location level's updated at.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The location level's deleted at.
        inventory_item_id:
          type: string
          title: inventory_item_id
          description: The location level's inventory item id.
        location_id:
          type: string
          title: location_id
          description: The location level's location id.
        stocked_quantity:
          type: number
          title: stocked_quantity
          description: The location level's stocked quantity.
        reserved_quantity:
          type: number
          title: reserved_quantity
          description: The location level's reserved quantity.
        incoming_quantity:
          type: number
          title: incoming_quantity
          description: The location level's incoming quantity.
        metadata:
          type: object
          description: The location level's metadata.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        inventory_item:
          type: object
        available_quantity:
          type: number
          title: available_quantity
          description: The location level's available quantity.
    AdminInvite:
      type: object
      description: The invite's details.
      x-schemaName: AdminInvite
      required:
        - id
        - email
        - accepted
        - token
        - expires_at
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The invite's ID.
        email:
          type: string
          title: email
          description: The invite's email.
          format: email
        accepted:
          type: boolean
          title: accepted
          description: Whether the invite has been accepted.
        token:
          type: string
          title: token
          description: The invite's token.
        expires_at:
          type: string
          title: expires_at
          description: The invite's expiry date.
          format: date-time
        metadata:
          type: object
          description: The invite's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the invite was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the invite was updated.
    AdminInviteAccept:
      type: object
      description: The details of the user to be created.
      properties:
        email:
          type: string
          title: email
          description: The user's email.
          format: email
        first_name:
          type: string
          title: first_name
          description: The user's first name.
        last_name:
          type: string
          title: last_name
          description: The user's last name.
      x-schemaName: AdminInviteAccept
    AdminInviteResponse:
      type: object
      description: The invite's details.
      x-schemaName: AdminInviteResponse
      required:
        - invite
      properties:
        invite:
          $ref: '#/components/schemas/AdminInvite'
    AdminLinkPriceListProducts:
      type: object
      description: The products removal details.
      properties:
        remove:
          type: array
          description: The products to remove from the price list.
          items:
            type: string
            title: remove
            description: The ID of a product.
      x-schemaName: AdminLinkPriceListProducts
    AdminLocale:
      type: object
      description: The locale's details.
      x-schemaName: AdminLocale
      required:
        - code
        - name
        - created_at
        - updated_at
        - deleted_at
      properties:
        code:
          type: string
          title: code
          description: The locale's code in BCP 47 format.
          example: fr-FR
        name:
          type: string
          title: name
          description: The locale's display name.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date and time at which the locale was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date and time at which the locale was last updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date and time at which the locale was deleted.
    AdminLocaleListResponse:
      type: object
      description: The list of locales with pagination details.
      x-schemaName: AdminLocaleListResponse
      required:
        - limit
        - offset
        - count
        - locales
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of locales returned.
        offset:
          type: number
          title: offset
          description: The number of locales skipped before retrieving the returned locales.
        count:
          type: number
          title: count
          description: The total number of locales matching the query.
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
        locales:
          type: array
          description: The list of locales.
          items:
            $ref: '#/components/schemas/AdminLocale'
    AdminLocaleResponse:
      type: object
      description: The locale's details.
      x-schemaName: AdminLocaleResponse
      required:
        - locale
      properties:
        locale:
          $ref: '#/components/schemas/AdminLocale'
    AdminMarkPaymentCollectionAsPaid:
      type: object
      description: The payment details.
      required:
        - order_id
      properties:
        order_id:
          type: string
          title: order_id
          description: The ID of the order associated with the payment collection.
      x-schemaName: AdminMarkPaymentCollectionAsPaid
    AdminNotification:
      type: object
      description: The notification's details.
      x-schemaName: AdminNotification
      required:
        - id
        - to
        - channel
        - template
        - provider_id
        - created_at
      properties:
        id:
          type: string
          title: id
          description: The notification's ID.
        to:
          type: string
          title: to
          description: Where to send the notification to. For example, if `channel` is `email`, this can be an email number.
        channel:
          type: string
          title: channel
          description: Through which channel is the notification sent through.
          example: email
        template:
          type: string
          title: template
          description: The ID of the template in a third-party service used as the notification's shape.
        data:
          type: object
          description: Data payload to send with the notification.
        trigger_type:
          type: string
          title: trigger_type
          description: What triggered this notification.
          example: order.created
        resource_id:
          type: string
          title: resource_id
          description: The ID of the associated resource. For example, if the notification was triggered because an order was created, this would be the ID of the order.
        resource_type:
          type: string
          title: resource_type
          description: The type of the resource that triggered the notification.
          example: order
        receiver_id:
          type: string
          title: receiver_id
          description: The ID of the user or customer that's receiving this notification.
        original_notification_id:
          type: string
          title: original_notification_id
          description: The ID of the original notification, if this notification is resent.
        external_id:
          type: string
          title: external_id
          description: The ID of the notification in an external or third-party system.
        provider_id:
          type: string
          title: provider_id
          description: The ID of the provider used to send the notification.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the notification was created.
    AdminNotificationListResponse:
      type: object
      description: The paginated list of notifications.
      x-schemaName: AdminNotificationListResponse
      required:
        - limit
        - offset
        - count
        - notifications
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total count of items.
        notifications:
          type: array
          description: The list of notifications.
          items:
            $ref: '#/components/schemas/AdminNotification'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    AdminNotificationResponse:
      type: object
      description: The notification's details.
      x-schemaName: AdminNotificationResponse
      required:
        - notification
      properties:
        notification:
          $ref: '#/components/schemas/AdminNotification'
    AdminOrder:
      type: object
      description: The order's details.
      x-schemaName: AdminOrder
      required:
        - payment_collections
        - items
        - shipping_methods
        - status
        - id
        - version
        - region_id
        - customer_id
        - sales_channel_id
        - email
        - currency_code
        - payment_status
        - fulfillment_status
        - summary
        - created_at
        - updated_at
        - original_item_total
        - original_item_subtotal
        - original_item_tax_total
        - item_total
        - item_subtotal
        - item_tax_total
        - item_discount_total
        - original_total
        - original_subtotal
        - original_tax_total
        - total
        - subtotal
        - tax_total
        - discount_total
        - discount_tax_total
        - gift_card_total
        - gift_card_tax_total
        - shipping_total
        - shipping_subtotal
        - shipping_tax_total
        - shipping_discount_total
        - original_shipping_total
        - original_shipping_subtotal
        - original_shipping_tax_total
        - credit_line_total
      properties:
        payment_collections:
          type: array
          description: The order's payment collections.
          items:
            $ref: '#/components/schemas/AdminPaymentCollection'
        fulfillments:
          type: array
          description: The order's fulfillments.
          items:
            $ref: '#/components/schemas/AdminOrderFulfillment'
        sales_channel:
          $ref: '#/components/schemas/AdminSalesChannel'
        customer:
          $ref: '#/components/schemas/AdminCustomer'
        shipping_address:
          $ref: '#/components/schemas/AdminOrderAddress'
        billing_address:
          $ref: '#/components/schemas/AdminOrderAddress'
        id:
          type: string
          title: id
          description: The order's ID.
        version:
          type: number
          title: version
          description: The order's version.
        region_id:
          type: string
          title: region_id
          description: The ID of the region associated with the order.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer that placed the order.
        sales_channel_id:
          type: string
          title: sales_channel_id
          description: The ID of the sales channel the order is placed in.
        email:
          type: string
          title: email
          description: The email of the customer that placed the order.
          format: email
        currency_code:
          type: string
          title: currency_code
          description: The order's currency code.
        display_id:
          type: number
          title: display_id
          description: The order's display ID.
        items:
          type: array
          description: The order's items.
          items:
            $ref: '#/components/schemas/AdminOrderLineItem'
        shipping_methods:
          type: array
          description: The order's shipping methods.
          items:
            $ref: '#/components/schemas/AdminOrderShippingMethod'
        payment_status:
          type: string
          description: The order's payment status.
          enum:
            - canceled
            - not_paid
            - awaiting
            - authorized
            - partially_authorized
            - captured
            - partially_captured
            - partially_refunded
            - refunded
            - requires_action
        fulfillment_status:
          type: string
          description: The order's fulfillment status.
          enum:
            - canceled
            - not_fulfilled
            - partially_fulfilled
            - fulfilled
            - partially_shipped
            - shipped
            - partially_delivered
            - delivered
        transactions:
          type: array
          description: The order's transactions.
          items:
            $ref: '#/components/schemas/BaseOrderTransaction'
        summary:
          $ref: '#/components/schemas/BaseOrderSummary'
        metadata:
          type: object
          description: The order's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the order was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the order was updated.
        original_item_total:
          type: number
          title: original_item_total
          description: The total of the order's items including taxes, excluding promotions.
        original_item_subtotal:
          type: number
          title: original_item_subtotal
          description: The total of the order's items excluding taxes, including promotions.
        original_item_tax_total:
          type: number
          title: original_item_tax_total
          description: The tax total of the order's items excluding promotions.
        item_total:
          type: number
          title: item_total
          description: The total of the order's items including taxes and promotions.
        item_subtotal:
          type: number
          title: item_subtotal
          description: The total of the order's items excluding taxes, including promotions.
        item_tax_total:
          type: number
          title: item_tax_total
          description: The tax total of the order's items including promotions.
        original_total:
          type: number
          title: original_total
          description: The order's total excluding promotions, including taxes.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The order's total excluding taxes, including promotions.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The order's tax total, excluding promotions.
        total:
          type: number
          title: total
          description: The order's total including taxes and promotions.
        subtotal:
          type: number
          title: subtotal
          description: The order's total excluding taxes, including promotions.
        tax_total:
          type: number
          title: tax_total
          description: The order's tax total including promotions.
        discount_total:
          type: number
          title: discount_total
          description: The order's discount or promotions total.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The tax total of order's discount or promotion.
        gift_card_total:
          type: number
          title: gift_card_total
          description: The order's gift card total.
        gift_card_tax_total:
          type: number
          title: gift_card_tax_total
          description: The tax total of the order's gift card.
        shipping_total:
          type: number
          title: shipping_total
          description: The order's shipping total including taxes and promotions.
        shipping_subtotal:
          type: number
          title: shipping_subtotal
          description: The order's shipping total excluding taxes, including promotions.
        shipping_tax_total:
          type: number
          title: shipping_tax_total
          description: The tax total of the order's shipping.
        original_shipping_total:
          type: number
          title: original_shipping_total
          description: The order's shipping total including taxes, excluding promotions.
        original_shipping_subtotal:
          type: number
          title: original_shipping_subtotal
          description: The order's shipping total excluding taxes, including promotions.
        original_shipping_tax_total:
          type: number
          title: original_shipping_tax_total
          description: The tax total of the order's shipping excluding promotions.
        status:
          type: string
          title: status
          description: The order's status.
        region:
          $ref: '#/components/schemas/AdminRegion'
        credit_lines:
          type: array
          description: The order's credit lines.
          items:
            $ref: '#/components/schemas/OrderCreditLine'
        credit_line_total:
          type: number
          title: credit_line_total
          description: The order's credit line total.
        item_discount_total:
          type: number
          title: item_discount_total
          description: The total discount amount applied on the order's items.
        shipping_discount_total:
          type: number
          title: shipping_discount_total
          description: The total discount amount applied on the order's shipping.
        custom_display_id:
          type: string
          title: custom_display_id
          description: The custom display ID of the order.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/order/custom-display-id
    AdminOrderAddress:
      type: object
      description: An order address.
      x-schemaName: AdminOrderAddress
      required:
        - id
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The address's ID.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer this address belongs to.
        first_name:
          type: string
          title: first_name
          description: The address's first name.
        last_name:
          type: string
          title: last_name
          description: The address's last name.
        phone:
          type: string
          title: phone
          description: The address's phone.
        company:
          type: string
          title: company
          description: The address's company.
        address_1:
          type: string
          title: address_1
          description: The address's first line.
        address_2:
          type: string
          title: address_2
          description: The address's second line.
        city:
          type: string
          title: city
          description: The address's city.
        country_code:
          type: string
          title: country_code
          description: The address's country code.
          example: us
        country:
          $ref: '#/components/schemas/AdminRegionCountry'
        province:
          type: string
          title: province
          description: The address's lower-case ISO 3166-2 province code.
          example: us-ca
          externalDocs:
            url: https://en.wikipedia.org/wiki/ISO_3166-2
            description: Learn more about ISO 3166-2
        postal_code:
          type: string
          title: postal_code
          description: The address's postal code.
        metadata:
          type: object
          description: The address's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the address was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the address was updated.
    AdminOrderChange:
      type: object
      description: The order change's details.
      x-schemaName: AdminOrderChange
      required:
        - order
        - claim
        - return_order
        - exchange
        - actions
        - status
        - id
        - version
        - metadata
        - created_at
        - updated_at
        - order_id
        - return_id
        - exchange_id
        - claim_id
        - requested_by
        - requested_at
        - confirmed_by
        - confirmed_at
        - declined_by
        - declined_reason
        - declined_at
        - canceled_by
        - canceled_at
      properties:
        id:
          type: string
          title: id
          description: The order change's ID.
        version:
          type: number
          title: version
          description: The order change's version. This will be the order's version when the change is applied.
        change_type:
          type: string
          description: The order change's type.
          enum:
            - return
            - exchange
            - claim
            - edit
        order_id:
          type: string
          title: order_id
          description: The ID of the order this change applies on.
        return_id:
          type: string
          title: return_id
          description: The ID of the associated return.
        exchange_id:
          type: string
          title: exchange_id
          description: The ID of the associated exchange.
        claim_id:
          type: string
          title: claim_id
          description: The ID of the associated claim.
        order:
          $ref: '#/components/schemas/AdminOrder'
        return_order:
          $ref: '#/components/schemas/AdminReturn'
        exchange:
          $ref: '#/components/schemas/AdminExchange'
        claim:
          $ref: '#/components/schemas/AdminClaim'
        actions:
          type: array
          description: The order change's actions.
          items:
            $ref: '#/components/schemas/AdminOrderChangeAction'
        status:
          type: string
          description: The order change's status.
          enum:
            - canceled
            - requested
            - pending
            - confirmed
            - declined
        requested_by:
          type: string
          title: requested_by
          description: The ID of the user that requested the change.
        requested_at:
          type: string
          title: requested_at
          description: The date the order change was requested.
          format: date-time
        confirmed_by:
          type: string
          title: confirmed_by
          description: The ID of the user that confirmed the order change.
        confirmed_at:
          type: string
          title: confirmed_at
          description: The date the order change was confirmed.
          format: date-time
        declined_by:
          type: string
          title: declined_by
          description: The ID of the user that declined the order change.
        declined_reason:
          type: string
          title: declined_reason
          description: The reason the order change was declined.
        metadata:
          type: object
          description: The order change's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        declined_at:
          type: string
          title: declined_at
          description: The date the order change was declined.
          format: date-time
        canceled_by:
          type: string
          title: canceled_by
          description: The ID of the user that canceled the order change.
        canceled_at:
          type: string
          title: canceled_at
          description: The date the order change was canceled.
          format: date-time
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the order change was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the order change was updated.
        carry_over_promotions:
          type: boolean
          title: carry_over_promotions
          description: Whether promotions from the original order should be carried over to the order change (specifically, exchanges).
    AdminOrderChangeAction:
      type: object
      description: The order change action's details.
      x-schemaName: AdminOrderChangeAction
      required:
        - order_change
        - order
        - id
        - created_at
        - updated_at
        - order_id
        - internal_note
        - return_id
        - exchange_id
        - claim_id
        - ordering
        - order_change_id
        - reference
        - reference_id
        - action
        - details
      properties:
        id:
          type: string
          title: id
          description: The action's ID.
        order_change_id:
          type: string
          title: order_change_id
          description: The ID of the order change that the action belongs to.
        order_change:
          type: object
        order_id:
          type: string
          title: order_id
          description: The ID of the order the associated change is for.
        return_id:
          type: string
          title: return_id
          description: The ID of the associated return.
        claim_id:
          type: string
          title: claim_id
          description: The ID of the associated claim.
        exchange_id:
          type: string
          title: exchange_id
          description: The ID of the associated exchange.
        order:
          $ref: '#/components/schemas/AdminOrder'
        reference:
          type: string
          title: reference
          description: The name of the table this action applies on.
          enum:
            - claim
            - exchange
            - return
            - order_shipping_method
        reference_id:
          type: string
          title: reference_id
          description: The ID of the record in the referenced table.
        action:
          type: string
          description: The applied action.
          enum:
            - CANCEL_RETURN_ITEM
            - FULFILL_ITEM
            - DELIVER_ITEM
            - CANCEL_ITEM_FULFILLMENT
            - ITEM_ADD
            - ITEM_REMOVE
            - ITEM_UPDATE
            - RECEIVE_DAMAGED_RETURN_ITEM
            - RECEIVE_RETURN_ITEM
            - RETURN_ITEM
            - SHIPPING_ADD
            - SHIPPING_REMOVE
            - SHIP_ITEM
            - WRITE_OFF_ITEM
            - REINSTATE_ITEM
        details:
          type: object
          description: The action's details.
          example:
            reference_id: 123
            quantity: 1
        internal_note:
          type: string
          title: internal_note
          description: A note that's viewed only by admin users.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the action was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the action was updated.
        ordering:
          type: number
          title: ordering
          description: The action's order in the sequence of actions.
    AdminOrderChangeResponse:
      type: object
      description: The details of the order change.
      x-schemaName: AdminOrderChangeResponse
      required:
        - order_change
      properties:
        order_change:
          $ref: '#/components/schemas/AdminOrderChange'
    AdminOrderChangesResponse:
      type: object
      description: The details of an order's changes.
      x-schemaName: AdminOrderChangesResponse
      required:
        - order_changes
      properties:
        order_changes:
          type: array
          description: An order's changes.
          items:
            $ref: '#/components/schemas/AdminOrderChange'
    AdminOrderEditPreviewResponse:
      type: object
      description: The preview of an order edit.
      x-schemaName: AdminOrderEditPreviewResponse
      required:
        - order_preview
      properties:
        order_preview:
          $ref: '#/components/schemas/AdminOrderPreview'
    AdminOrderEditResponse:
      type: object
      description: An order edit's details.
      x-schemaName: AdminOrderEditResponse
      required:
        - order_change
      properties:
        order_change:
          $ref: '#/components/schemas/AdminOrderChange'
    AdminOrderFulfillment:
      type: object
      description: The fulfillment's details.
      x-schemaName: AdminOrderFulfillment
      required:
        - id
        - location_id
        - packed_at
        - shipped_at
        - delivered_at
        - canceled_at
        - requires_shipping
        - data
        - provider_id
        - shipping_option_id
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The fulfillment's ID.
        location_id:
          type: string
          title: location_id
          description: The ID of the location the items are fulfilled from.
        packed_at:
          type: string
          title: packed_at
          description: The date the items were packed.
          format: date-time
        shipped_at:
          type: string
          title: shipped_at
          description: The date the items were shipped.
          format: date-time
        delivered_at:
          type: string
          title: delivered_at
          description: The date the items were delivered.
          format: date-time
        canceled_at:
          type: string
          title: canceled_at
          description: The date the items were canceled.
          format: date-time
        data:
          type: object
          description: Data useful for the fulfillment provider handling it. This is taken from the associated shipping option.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property
        provider_id:
          type: string
          title: provider_id
          description: The ID of the fulfillment provider used to handle the fulfillment.
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the associated shipping option.
        metadata:
          type: object
          description: The fulfillment's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the fulfillment was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the fulfillment was updated.
        requires_shipping:
          type: boolean
          title: requires_shipping
          description: Whether the fulfillment requires shipping.
    AdminOrderItem:
      type: object
      description: The order item's details.
      x-schemaName: AdminOrderItem
      required:
        - order_id
        - item_id
        - version
        - history
        - item
      properties:
        order_id:
          type: string
          title: order_id
          description: The ID of the order this item belongs to.
        item_id:
          type: string
          title: item_id
          description: The ID of the associated line item.
        version:
          type: number
          title: version
          description: The order item's version.
        history:
          type: object
          description: The order item's history.
          required:
            - version
          properties:
            version:
              type: object
              description: The version changes of the item.
              required:
                - from
                - to
              properties:
                from:
                  type: number
                  title: from
                  description: The original version.
                to:
                  type: number
                  title: to
                  description: The new version.
        item:
          $ref: '#/components/schemas/AdminOrderLineItem'
    AdminOrderLineItem:
      type: object
      description: The item's details.
      x-schemaName: AdminOrderLineItem
      required:
        - title
        - id
        - metadata
        - created_at
        - updated_at
        - item_total
        - item_subtotal
        - item_tax_total
        - original_total
        - original_subtotal
        - original_tax_total
        - total
        - subtotal
        - tax_total
        - discount_total
        - discount_tax_total
        - subtitle
        - thumbnail
        - variant_id
        - product_id
        - product_title
        - product_description
        - product_subtitle
        - product_type_id
        - product_type
        - product_collection
        - product_handle
        - variant_sku
        - variant_barcode
        - variant_title
        - variant_option_values
        - requires_shipping
        - is_discountable
        - is_tax_inclusive
        - unit_price
        - quantity
        - detail
        - refundable_total
        - refundable_total_per_unit
      properties:
        id:
          type: string
          title: id
          description: The item's ID.
        title:
          type: string
          title: title
          description: The item's title.
        subtitle:
          type: string
          title: subtitle
          description: The item's subtitle.
        thumbnail:
          type: string
          title: thumbnail
          description: The URL of the item's thumbnail.
        variant:
          $ref: '#/components/schemas/AdminProductVariant'
        variant_id:
          type: string
          title: variant_id
          description: The ID of the associated variant.
        product:
          $ref: '#/components/schemas/AdminProduct'
        product_id:
          type: string
          title: product_id
          description: The ID of the associated product.
        product_title:
          type: string
          title: product_title
          description: The item's product title.
        product_description:
          type: string
          title: product_description
          description: The item's product description.
        product_subtitle:
          type: string
          title: product_subtitle
          description: The item's product subtitle.
        product_type:
          type: string
          title: product_type
          description: The item's product type.
        product_collection:
          type: string
          title: product_collection
          description: The ID of the collection the item's product belongs to.
        product_handle:
          type: string
          title: product_handle
          description: The item's product handle.
        variant_sku:
          type: string
          title: variant_sku
          description: The item's variant SKU.
        variant_barcode:
          type: string
          title: variant_barcode
          description: The item's variant barcode.
        variant_title:
          type: string
          title: variant_title
          description: The item's variant title.
        variant_option_values:
          type: object
          description: The values of the item variant's options.
          example:
            Color: Blue
        requires_shipping:
          type: boolean
          title: requires_shipping
          description: Whether the item requires shipping.
        is_discountable:
          type: boolean
          title: is_discountable
          description: Whether the item is discountable.
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: Whether the item is tax inclusive.
        compare_at_unit_price:
          type: number
          title: compare_at_unit_price
          description: The original price of the item before a promotion or sale.
        unit_price:
          type: number
          title: unit_price
          description: The item's unit price.
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        tax_lines:
          type: array
          description: The item's tax lines.
          items:
            $ref: '#/components/schemas/BaseOrderLineItemTaxLine'
        adjustments:
          type: array
          description: The item's adjustments.
          items:
            $ref: '#/components/schemas/BaseOrderLineItemAdjustment'
        detail:
          type: object
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the item was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the item was updated.
        metadata:
          type: object
          description: The item's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        original_total:
          type: number
          title: original_total
          description: The item's total including taxes, excluding promotions.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The item's total excluding taxes, including promotions.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The total taxes of the item, excluding promotions.
        item_total:
          type: number
          title: item_total
          description: The total taxes of the item, including promotions.
        item_subtotal:
          type: number
          title: item_subtotal
          description: The item's total excluding taxes, including promotions.
        item_tax_total:
          type: number
          title: item_tax_total
          description: The total taxes of the item, including promotions.
        total:
          type: number
          title: total
          description: The item's total, including taxes and promotions.
        subtotal:
          type: number
          title: subtotal
          description: The item's subtotal excluding taxes, including promotions.
        tax_total:
          type: number
          title: tax_total
          description: The tax total of the item including promotions.
        discount_total:
          type: number
          title: discount_total
          description: The total discount amount of the item.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The total taxes applied on the discounted amount.
        refundable_total:
          type: number
          title: refundable_total
          description: The total refundable amount of the item's total.
        refundable_total_per_unit:
          type: number
          title: refundable_total_per_unit
          description: The total refundable amount of the item's total for a single quantity.
        product_type_id:
          type: string
          title: product_type_id
          description: The ID of the associated product's type.
    AdminOrderPreview:
      type: object
      description: A preview of an order if a change, such as exchange, return, edit, or claim is applied on it.
      x-schemaName: AdminOrderPreview
      required:
        - return_requested_total
        - order_change
        - status
        - id
        - version
        - region_id
        - customer_id
        - sales_channel_id
        - email
        - currency_code
        - payment_collections
        - payment_status
        - fulfillment_status
        - summary
        - created_at
        - updated_at
        - original_item_total
        - original_item_subtotal
        - original_item_tax_total
        - item_total
        - item_subtotal
        - item_tax_total
        - item_discount_total
        - original_total
        - original_subtotal
        - original_tax_total
        - total
        - subtotal
        - tax_total
        - discount_total
        - discount_tax_total
        - gift_card_total
        - gift_card_tax_total
        - shipping_total
        - shipping_subtotal
        - shipping_tax_total
        - shipping_discount_total
        - original_shipping_total
        - original_shipping_subtotal
        - original_shipping_tax_total
        - credit_line_total
      properties:
        return_requested_total:
          type: number
          title: return_requested_total
          description: The total of the requested return.
        order_change:
          $ref: '#/components/schemas/AdminOrderChange'
        items:
          type: array
          description: The order's items.
          items:
            allOf:
              - type: object
                description: An order's item.
                x-schemaName: BaseOrderLineItem
                required:
                  - id
                  - title
                  - subtitle
                  - thumbnail
                  - variant_id
                  - product_id
                  - product_title
                  - product_description
                  - product_subtitle
                  - product_type
                  - product_collection
                  - product_handle
                  - variant_sku
                  - variant_barcode
                  - variant_title
                  - variant_option_values
                  - requires_shipping
                  - is_discountable
                  - is_tax_inclusive
                  - unit_price
                  - quantity
                  - detail
                  - created_at
                  - updated_at
                  - metadata
                  - original_total
                  - original_subtotal
                  - original_tax_total
                  - item_total
                  - item_subtotal
                  - item_tax_total
                  - total
                  - subtotal
                  - tax_total
                  - discount_total
                  - discount_tax_total
                  - refundable_total
                  - refundable_total_per_unit
                properties:
                  id:
                    type: string
                    title: id
                    description: The item's ID.
                  title:
                    type: string
                    title: title
                    description: The item's title.
                  subtitle:
                    type: string
                    title: subtitle
                    description: The item's subtitle.
                  thumbnail:
                    type: string
                    title: thumbnail
                    description: The URL of the item's thumbnail.
                  variant:
                    $ref: '#/components/schemas/BaseProductVariant'
                  variant_id:
                    type: string
                    title: variant_id
                    description: The ID of the associated variant.
                  product:
                    $ref: '#/components/schemas/AdminProduct'
                  product_id:
                    type: string
                    title: product_id
                    description: The ID of the associated product.
                  product_title:
                    type: string
                    title: product_title
                    description: The title of the item's product.
                  product_description:
                    type: string
                    title: product_description
                    description: The description of the item's product.
                  product_subtitle:
                    type: string
                    title: product_subtitle
                    description: The subtitle of the item's product.
                  product_type:
                    type: string
                    title: product_type
                    description: The ID of type of the item's product.
                  product_collection:
                    type: string
                    title: product_collection
                    description: The ID of collection of the item's product.
                  product_handle:
                    type: string
                    title: product_handle
                    description: The handle of the item's product.
                  variant_sku:
                    type: string
                    title: variant_sku
                    description: The SKU of the item's variant.
                  variant_barcode:
                    type: string
                    title: variant_barcode
                    description: The barcode of the item's variant.
                  variant_title:
                    type: string
                    title: variant_title
                    description: The title of the item's variant.
                  variant_option_values:
                    type: object
                    description: The option values of the item's variant as key-value pairs. The key is the title of an option, and the value is the option's value.
                  requires_shipping:
                    type: boolean
                    title: requires_shipping
                    description: Whether the item requires shipping.
                  is_discountable:
                    type: boolean
                    title: is_discountable
                    description: Whether the item is discountable.
                  is_tax_inclusive:
                    type: boolean
                    title: is_tax_inclusive
                    description: Whether the item's price includes taxes.
                  compare_at_unit_price:
                    type: number
                    title: compare_at_unit_price
                    description: The original price of the item before a promotion or sale.
                  unit_price:
                    type: number
                    title: unit_price
                    description: The item's unit price.
                  quantity:
                    type: number
                    title: quantity
                    description: The item's quantity.
                  tax_lines:
                    type: array
                    description: The item's tax lines.
                    items:
                      $ref: '#/components/schemas/BaseOrderLineItemTaxLine'
                  adjustments:
                    type: array
                    description: The item's adjustments.
                    items:
                      $ref: '#/components/schemas/BaseOrderLineItemAdjustment'
                  detail:
                    $ref: '#/components/schemas/BaseOrderItemDetail'
                  created_at:
                    type: string
                    format: date-time
                    title: created_at
                    description: The date the item was created.
                  updated_at:
                    type: string
                    format: date-time
                    title: updated_at
                    description: The date the item was updated.
                  metadata:
                    type: object
                    description: The item's metadata, can hold custom key-value pairs.
                    externalDocs:
                      url: https://docs.medusajs.com/api/admin#manage-metadata
                      description: Learn how to manage metadata
                  original_total:
                    type: number
                    title: original_total
                    description: The item's total including taxes, excluding promotions.
                  original_subtotal:
                    type: number
                    title: original_subtotal
                    description: The item's total excluding taxes, including promotions.
                  original_tax_total:
                    type: number
                    title: original_tax_total
                    description: The tax total of the item excluding promotions.
                  item_total:
                    type: number
                    title: item_total
                    description: The item's total for a single unit including taxes and promotions.
                  item_subtotal:
                    type: number
                    title: item_subtotal
                    description: The item's total for a single unit excluding taxes, including promotions.
                  item_tax_total:
                    type: number
                    title: item_tax_total
                    description: The tax total for a single unit of the item including promotions.
                  total:
                    type: number
                    title: total
                    description: The item's total including taxes and promotions.
                  subtotal:
                    type: number
                    title: subtotal
                    description: The item's total excluding taxes, including promotions.
                  tax_total:
                    type: number
                    title: tax_total
                    description: The tax total of the item including promotions.
                  discount_total:
                    type: number
                    title: discount_total
                    description: The total of the item's discount / promotion.
                  discount_tax_total:
                    type: number
                    title: discount_tax_total
                    description: The tax total of the item's discount / promotion
                  refundable_total:
                    type: number
                    title: refundable_total
                    description: The total refundable amount of the item's total.
                  refundable_total_per_unit:
                    type: number
                    title: refundable_total_per_unit
                    description: The total refundable amount of the item's total for a single unit.
              - type: object
                description: An order's item.
                properties:
                  actions:
                    type: array
                    description: The actions applied on an item.
                    items:
                      type: object
                      description: The action's details.
                      x-schemaName: BaseOrderChangeAction
        shipping_methods:
          type: array
          description: The order's shipping methods.
          items:
            allOf:
              - type: object
                description: The shipping method's details.
                x-schemaName: BaseOrderShippingMethod
                required:
                  - id
                  - order_id
                  - name
                  - amount
                  - is_tax_inclusive
                  - shipping_option_id
                  - data
                  - metadata
                  - original_total
                  - original_subtotal
                  - original_tax_total
                  - total
                  - subtotal
                  - tax_total
                  - discount_total
                  - discount_tax_total
                  - created_at
                  - updated_at
                properties:
                  id:
                    type: string
                    title: id
                    description: The shipping method's ID.
                  order_id:
                    type: string
                    title: order_id
                    description: The ID of the order this shipping method belongs to.
                  name:
                    type: string
                    title: name
                    description: The shipping method's name.
                  description:
                    type: string
                    title: description
                    description: The shipping method's description.
                  amount:
                    type: number
                    title: amount
                    description: The shipping method's amount.
                  is_tax_inclusive:
                    type: boolean
                    title: is_tax_inclusive
                    description: Whether the shipping method's amount is tax inclusive.
                  shipping_option_id:
                    type: string
                    title: shipping_option_id
                    description: The ID of the shipping option this method was created from.
                  data:
                    type: object
                    description: The data relevant for the fulfillment provider to process this shipment.
                    externalDocs:
                      url: https://docs.medusajs.com/resources/commerce-modules/order/concepts#data-property
                  metadata:
                    type: object
                    description: The shipping method's metadata, can hold custom key-value pairs.
                    externalDocs:
                      url: https://docs.medusajs.com/api/admin#manage-metadata
                      description: Learn how to manage metadata
                  tax_lines:
                    type: array
                    description: The shipping method's tax lines.
                    items:
                      $ref: '#/components/schemas/BaseOrderShippingMethodTaxLine'
                  adjustments:
                    type: array
                    description: The shipping method's adjustments.
                    items:
                      $ref: '#/components/schemas/BaseOrderShippingMethodAdjustment'
                  original_total:
                    oneOf:
                      - type: string
                        title: original_total
                        description: The shipping method's total including taxes, excluding promotions.
                      - type: number
                        title: original_total
                        description: The shipping method's total including taxes, excluding promotions.
                  original_subtotal:
                    oneOf:
                      - type: string
                        title: original_subtotal
                        description: The shipping method's total excluding taxes, including promotions.
                      - type: number
                        title: original_subtotal
                        description: The shipping method's total excluding taxes, including promotions.
                  original_tax_total:
                    oneOf:
                      - type: string
                        title: original_tax_total
                        description: The tax total of the shipping method excluding promotions.
                      - type: number
                        title: original_tax_total
                        description: The tax total of the shipping method excluding promotions.
                  total:
                    oneOf:
                      - type: string
                        title: total
                        description: The shipping method's total including taxes and promotions.
                      - type: number
                        title: total
                        description: The shipping method's total including taxes and promotions.
                  subtotal:
                    oneOf:
                      - type: string
                        title: subtotal
                        description: The shipping method's total excluding taxes, including promotions.
                      - type: number
                        title: subtotal
                        description: The shipping method's total excluding taxes, including promotions.
                  tax_total:
                    oneOf:
                      - type: string
                        title: tax_total
                        description: The tax total of the shipping method including promotions.
                      - type: number
                        title: tax_total
                        description: The tax total of the shipping method including promotions.
                  discount_total:
                    oneOf:
                      - type: string
                        title: discount_total
                        description: The total of the shipping method's promotion.
                      - type: number
                        title: discount_total
                        description: The total of the shipping method's promotion.
                  discount_tax_total:
                    oneOf:
                      - type: string
                        title: discount_tax_total
                        description: The tax total of the shipping method's promotion.
                      - type: number
                        title: discount_tax_total
                        description: The shipping method's discount tax total.
                  created_at:
                    type: string
                    format: date-time
                    title: created_at
                    description: The date the shipping method was created.
                  updated_at:
                    type: string
                    format: date-time
                    title: updated_at
                    description: The date the shipping method was updated.
              - type: object
                description: The shipping method's details.
                properties:
                  actions:
                    type: array
                    description: The actions applied on the shipping method.
                    items:
                      type: object
                      description: The action's details.
                      x-schemaName: BaseOrderChangeAction
        currency_code:
          type: string
          title: currency_code
          description: The order's currency code.
        version:
          type: number
          title: version
          description: The order's version when this preview is applied.
        id:
          type: string
          title: id
          description: The order's ID.
        region_id:
          type: string
          title: region_id
          description: The ID of the order's associated region.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer that placed the order.
        sales_channel_id:
          type: string
          title: sales_channel_id
          description: The ID of the sales channel that the order was placed in.
        email:
          type: string
          title: email
          description: The email of the customer that placed the order.
          format: email
        display_id:
          type: number
          title: display_id
          description: The order's display ID.
        shipping_address:
          $ref: '#/components/schemas/AdminOrderAddress'
        billing_address:
          $ref: '#/components/schemas/AdminOrderAddress'
        payment_collections:
          type: array
          description: The order's payment collections.
          items:
            $ref: '#/components/schemas/AdminPaymentCollection'
        payment_status:
          type: string
          description: The order's payment status.
          enum:
            - canceled
            - not_paid
            - awaiting
            - authorized
            - partially_authorized
            - captured
            - partially_captured
            - partially_refunded
            - refunded
            - requires_action
        fulfillments:
          type: array
          description: The order's fulfillments.
          items:
            $ref: '#/components/schemas/AdminOrderFulfillment'
        fulfillment_status:
          type: string
          description: The order's fulfillment status.
          enum:
            - canceled
            - not_fulfilled
            - partially_fulfilled
            - fulfilled
            - partially_shipped
            - shipped
            - partially_delivered
            - delivered
        transactions:
          type: array
          description: The order's transactions.
          items:
            $ref: '#/components/schemas/BaseOrderTransaction'
        summary:
          $ref: '#/components/schemas/BaseOrderSummary'
        metadata:
          type: object
          description: The order's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the order was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the order was updated.
        original_item_total:
          type: number
          title: original_item_total
          description: The total of the order's items including taxes, excluding promotions.
        original_item_subtotal:
          type: number
          title: original_item_subtotal
          description: The total of the order's items excluding taxes, including promotions.
        original_item_tax_total:
          type: number
          title: original_item_tax_total
          description: The tax total of the order's items excluding promotions.
        item_total:
          type: number
          title: item_total
          description: The total of the order's items including taxes and promotions.
        item_subtotal:
          type: number
          title: item_subtotal
          description: The total of the order's items excluding taxes, including promotions.
        item_tax_total:
          type: number
          title: item_tax_total
          description: The tax total of the order's items including promotions.
        original_total:
          type: number
          title: original_total
          description: The order's total excluding promotions, including taxes.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The order's total excluding taxes, including promotions.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The order's tax total, excluding promotions.
        total:
          type: number
          title: total
          description: The order's total including taxes and promotions.
        subtotal:
          type: number
          title: subtotal
          description: The order's total excluding taxes, including promotions.
        tax_total:
          type: number
          title: tax_total
          description: The order's tax total including promotions.
        discount_total:
          type: number
          title: discount_total
          description: The order's discount or promotions total.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The tax total of order's discount or promotion.
        gift_card_total:
          type: number
          title: gift_card_total
          description: The order's gift card total.
        gift_card_tax_total:
          type: number
          title: gift_card_tax_total
          description: The tax total of the order's gift card.
        shipping_total:
          type: number
          title: shipping_total
          description: The order's shipping total including taxes and promotions.
        shipping_subtotal:
          type: number
          title: shipping_subtotal
          description: The order's shipping total excluding taxes, including promotions.
        shipping_tax_total:
          type: number
          title: shipping_tax_total
          description: The tax total of the order's shipping.
        original_shipping_total:
          type: number
          title: original_shipping_total
          description: The order's shipping total including taxes, excluding promotions.
        original_shipping_subtotal:
          type: number
          title: original_shipping_subtotal
          description: The order's shipping total excluding taxes, including promotions.
        original_shipping_tax_total:
          type: number
          title: original_shipping_tax_total
          description: The tax total of the order's shipping excluding promotions.
        customer:
          $ref: '#/components/schemas/AdminCustomer'
        sales_channel:
          $ref: '#/components/schemas/AdminSalesChannel'
        status:
          type: string
          title: status
          description: The order's status.
        region:
          $ref: '#/components/schemas/AdminRegion'
        credit_lines:
          type: array
          description: The order preview's credit lines.
          items:
            $ref: '#/components/schemas/OrderCreditLine'
        credit_line_total:
          type: number
          title: credit_line_total
          description: The order preview's credit line total.
        item_discount_total:
          type: number
          title: item_discount_total
          description: The total discount amount applied on the order's items.
        shipping_discount_total:
          type: number
          title: shipping_discount_total
          description: The total discount amount applied on the order's shipping.
        custom_display_id:
          type: string
          title: custom_display_id
          description: The custom display ID of the order.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/order/custom-display-id
    AdminOrderPreviewResponse:
      type: object
      description: The preview of an order.
      x-schemaName: AdminOrderPreviewResponse
      required:
        - order
      properties:
        order:
          $ref: '#/components/schemas/AdminOrderPreview'
    AdminOrderResponse:
      type: object
      description: An order's details.
      x-schemaName: AdminOrderResponse
      required:
        - order
      properties:
        order:
          $ref: '#/components/schemas/AdminOrder'
    AdminOrderReturnResponse:
      type: object
      description: The order return details.
      x-schemaName: AdminOrderReturnResponse
      required:
        - order
        - return
      properties:
        order:
          $ref: '#/components/schemas/Order'
        return:
          $ref: '#/components/schemas/AdminReturn'
    AdminOrderShippingMethod:
      type: object
      description: The shipping method's details.
      x-schemaName: AdminOrderShippingMethod
      required:
        - id
        - order_id
        - name
        - amount
        - is_tax_inclusive
        - shipping_option_id
        - data
        - metadata
        - original_total
        - original_subtotal
        - original_tax_total
        - total
        - subtotal
        - tax_total
        - discount_total
        - discount_tax_total
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The shipping method's ID.
        order_id:
          type: string
          title: order_id
          description: The ID of the order the shipping method belongs to.
        name:
          type: string
          title: name
          description: The shipping method's name.
        description:
          type: string
          title: description
          description: The shipping method's description.
        amount:
          type: number
          title: amount
          description: The shipping method's amount.
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: Whether the shipping method's amount includes applied taxes.
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the shipping option this method was created from.
        data:
          type: object
          description: The shipping method's data, useful for fulfillment provider handling its fulfillment.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property
        metadata:
          type: object
          description: The shipping method's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        tax_lines:
          type: array
          description: The shipping method's tax lines.
          items:
            $ref: '#/components/schemas/BaseOrderShippingMethodTaxLine'
        adjustments:
          type: array
          description: The shipping method's adjustments.
          items:
            $ref: '#/components/schemas/BaseOrderShippingMethodAdjustment'
        original_total:
          type: number
          title: original_total
          description: The shipping method's total including taxes, excluding promotions.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The shipping method's total excluding taxes, including promotions.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The shipping method's total taxes excluding promotions.
        total:
          type: number
          title: total
          description: The shipping method's total including taxes and promotions.
        subtotal:
          type: number
          title: subtotal
          description: The shipping method's total excluding taxes, including promotions.
        tax_total:
          type: number
          title: tax_total
          description: The shipping method's tax total including promotions.
        discount_total:
          type: number
          title: discount_total
          description: The total discounts applied on the shipping method.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The taxes applied on the discount amount.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the shipping method was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the shipping method was updated.
        detail:
          $ref: '#/components/schemas/BaseOrderShippingDetail'
    AdminPayment:
      type: object
      description: The payment's details.
      x-schemaName: AdminPayment
      required:
        - id
        - amount
        - currency_code
        - provider_id
      properties:
        id:
          type: string
          title: id
          description: The payment's ID.
        amount:
          type: number
          title: amount
          description: The payment's amount.
        authorized_amount:
          type: number
          title: authorized_amount
          description: The amount authorized of the payment.
        currency_code:
          type: string
          title: currency_code
          description: The payment's currency code.
        provider_id:
          type: string
          title: provider_id
          description: The ID of the payment provider used to process this payment.
        data:
          type: object
          description: The payment's data, useful for processing by the payment provider.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/payment/payment#whats-a-payment
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the payment was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the payment was updated.
        captured_at:
          type: string
          format: date-time
          title: captured_at
          description: The date the payment was captured.
        canceled_at:
          type: string
          format: date-time
          title: canceled_at
          description: The date the payment was canceled.
        captured_amount:
          type: number
          title: captured_amount
          description: The captured amount of the payment.
        refunded_amount:
          type: number
          title: captured_amount
          description: The refunded amount of the payment.
        captures:
          type: array
          description: The details of payment captures.
          items:
            $ref: '#/components/schemas/BaseCapture'
        refunds:
          type: array
          description: The details of payment refunds.
          items:
            $ref: '#/components/schemas/AdminRefund'
        payment_collection:
          type: object
        payment_session:
          $ref: '#/components/schemas/AdminPaymentSession'
    AdminPaymentCollection:
      type: object
      description: The payment collection's details.
      x-schemaName: AdminPaymentCollection
      required:
        - payment_providers
        - id
        - currency_code
        - amount
        - status
      properties:
        id:
          type: string
          title: id
          description: The payment collection's ID.
        currency_code:
          type: string
          title: currency_code
          description: The payment collection's currency code.
        amount:
          type: number
          title: amount
          description: The total amount to be paid.
        authorized_amount:
          type: number
          title: authorized_amount
          description: The total authorized amount of the collection's payments.
        captured_amount:
          type: number
          title: captured_amount
          description: The total captured amount of the collection's payments.
        refunded_amount:
          type: number
          title: refunded_amount
          description: The total refunded amount of the collection's payments.
        completed_at:
          type: string
          format: date-time
          title: completed_at
          description: The date the payment collection was completed.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the payment collection was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the payment collection was updated.
        metadata:
          type: object
          description: The payment collection's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        status:
          type: string
          description: The payment collection's status.
          enum:
            - canceled
            - not_paid
            - awaiting
            - authorized
            - partially_authorized
        payment_providers:
          type: array
          description: The payment provider used to process the collection's payments and sessions.
          items:
            $ref: '#/components/schemas/AdminPaymentProvider'
        payment_sessions:
          type: array
          description: The payment collection's payment sessions.
          items:
            $ref: '#/components/schemas/AdminPaymentSession'
        payments:
          type: array
          description: The payment collection's payments.
          items:
            $ref: '#/components/schemas/AdminPayment'
    AdminPaymentCollectionResponse:
      type: object
      description: The payment collection's details.
      x-schemaName: AdminPaymentCollectionResponse
      required:
        - payment_collection
      properties:
        payment_collection:
          $ref: '#/components/schemas/AdminPaymentCollection'
    AdminPaymentProvider:
      type: object
      description: The payment provider's details.
      x-schemaName: AdminPaymentProvider
      required:
        - is_enabled
        - id
      properties:
        id:
          type: string
          title: id
          description: The payment provider's ID.
        is_enabled:
          type: boolean
          title: is_enabled
          description: Whether the payment provider is enabled.
    AdminPaymentResponse:
      type: object
      description: The payment's details.
      x-schemaName: AdminPaymentResponse
      required:
        - payment
      properties:
        payment:
          $ref: '#/components/schemas/AdminPayment'
    AdminPaymentSession:
      type: object
      description: The payment session's details.
      x-schemaName: AdminPaymentSession
      properties:
        id:
          type: string
          title: id
          description: The payment session's ID.
        amount:
          type: number
          title: amount
          description: The payment session's amount.
        currency_code:
          type: string
          title: currency_code
          description: The payment session's currency code.
          example: usd
        provider_id:
          type: string
          title: provider_id
          description: The ID of the payment provider processing this session.
        data:
          type: object
          description: The payment session's data, useful for the payment provider processing the payment.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/payment/payment-session#data-property
        context:
          type: object
          description: The context around the payment, such as the customer's details.
          example:
            customer:
              id: cus_123
        status:
          type: string
          description: The payment session's status.
          enum:
            - authorized
            - captured
            - canceled
            - pending
            - requires_more
            - error
        authorized_at:
          type: string
          title: authorized_at
          description: The date the payment session was authorized.
          format: date-time
        payment_collection:
          type: object
        payment:
          $ref: '#/components/schemas/BasePayment'
      required:
        - id
        - amount
        - currency_code
        - provider_id
        - data
        - status
    AdminPlugin:
      type: object
      description: The plugin's details.
      x-schemaName: AdminPlugin
      required:
        - name
      properties:
        name:
          type: string
          title: name
          description: The plugin's name.
    AdminPluginsListResponse:
      type: object
      description: The list of plugins.
      x-schemaName: AdminPluginsListResponse
      required:
        - plugins
      properties:
        plugins:
          type: array
          description: The list of plugins.
          items:
            $ref: '#/components/schemas/AdminPlugin'
    AdminPostCancelClaimReqSchema:
      type: object
      description: The details of canceling a claim.
      x-schemaName: AdminPostCancelClaimReqSchema
      properties:
        no_notification:
          type: boolean
          title: no_notification
          description: Whether to send the customer a notification about the claim's cancelation.
    AdminPostCancelExchangeReqSchema:
      type: object
      description: The details of canceling an exchange.
      x-schemaName: AdminPostCancelExchangeReqSchema
      properties:
        no_notification:
          type: boolean
          title: no_notification
          description: Whether to send a notification to the customer about the exchange's cancelation.
    AdminPostCancelReturnReqSchema:
      type: object
      description: The details of canceling a return.
      x-schemaName: AdminPostCancelReturnReqSchema
      properties:
        no_notification:
          type: boolean
          title: no_notification
          description: Whether to send the customer a notification about the return's cancelation.
    AdminPostExchangesRequestItemsReturnActionReqSchema:
      type: object
      description: The details to update in an inbound (returned) item.
      x-schemaName: AdminPostExchangesRequestItemsReturnActionReqSchema
      properties:
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users.
        reason_id:
          type: string
          title: reason_id
          description: The ID of the associated return reason.
        metadata:
          type: object
          description: The exchange's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminPostOrderEditsAddItemsReqSchema:
      type: object
      description: The details of items to be edited.
      x-schemaName: AdminPostOrderEditsAddItemsReqSchema
      properties:
        items:
          type: array
          description: The details of items to be edited.
          items:
            type: object
            description: An item's details.
            required:
              - variant_id
              - quantity
            properties:
              variant_id:
                type: string
                title: variant_id
                description: The ID of the associated product variant.
              quantity:
                type: number
                title: quantity
                description: The item's quantity.
              unit_price:
                type: number
                title: unit_price
                description: The item's unit price.
              internal_note:
                type: string
                title: internal_note
                description: A note viewed only by admin users.
              allow_backorder:
                type: boolean
                title: allow_backorder
                description: Whether the item can be added even if there's no available invenotory quantity of the variant.
              metadata:
                type: object
                description: The item's metadata, can hold custom key-value pairs.
                externalDocs:
                  url: https://docs.medusajs.com/api/admin#manage-metadata
                  description: Learn how to manage metadata
              compare_at_unit_price:
                type: number
                title: compare_at_unit_price
                description: The original price of the item before a promotion or sale.
    AdminPostOrderEditsItemsActionReqSchema:
      type: object
      description: The details to update in the item.
      x-schemaName: AdminPostOrderEditsItemsActionReqSchema
      properties:
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users.
        unit_price:
          type: number
          title: unit_price
          description: The item's unit price.
        compare_at_unit_price:
          type: number
          title: compare_at_unit_price
          description: The original price of the item before a promotion or sale.
    AdminPostOrderEditsReqSchema:
      type: object
      description: The order edit's details.
      x-schemaName: AdminPostOrderEditsReqSchema
      required:
        - order_id
      properties:
        order_id:
          type: string
          title: order_id
          description: The ID of the order this edit is for.
        description:
          type: string
          title: description
          description: The order edit's description.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users.
        metadata:
          type: object
          description: The order edit's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminPostOrderEditsShippingActionReqSchema:
      type: object
      description: The shipping method's details.
      x-schemaName: AdminPostOrderEditsShippingActionReqSchema
      properties:
        custom_amount:
          type: number
          title: custom_amount
          description: Set a custom price for the shipping method.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users.
        metadata:
          type: object
          description: The order edit's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminPostOrderEditsShippingReqSchema:
      type: object
      description: The shipping method's details.
      x-schemaName: AdminPostOrderEditsShippingReqSchema
      required:
        - shipping_option_id
      properties:
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the associated shipping option.
        custom_amount:
          type: number
          title: custom_amount
          description: Set a custom price for the shipping method.
        description:
          type: string
          title: description
          description: The shipping method's description.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users.
        metadata:
          type: object
          description: The shipping method's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminPostOrderEditsUpdateItemQuantityReqSchema:
      type: object
      description: The order item's details to update.
      x-schemaName: AdminPostOrderEditsUpdateItemQuantityReqSchema
      required:
        - quantity
      properties:
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users.
        unit_price:
          type: number
          title: unit_price
          description: The item's unit price.
        compare_at_unit_price:
          type: number
          title: compare_at_unit_price
          description: The original price of the item before a promotion or sale.
    AdminPostReturnsDismissItemsActionReqSchema:
      type: object
      description: The details to update of the damaged item.
      x-schemaName: AdminPostReturnsDismissItemsActionReqSchema
      properties:
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users.
    AdminPostReturnsReceiveItemsActionReqSchema:
      type: object
      description: The details of the received item.
      x-schemaName: AdminPostReturnsReceiveItemsActionReqSchema
      properties:
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users.
    AdminPostReturnsRequestItemsActionReqSchema:
      type: object
      description: The details to update in the item.
      x-schemaName: AdminPostReturnsRequestItemsActionReqSchema
      properties:
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users.
        reason_id:
          type: string
          title: reason_id
          description: The ID of the associated return reason.
        metadata:
          type: object
          description: The claim's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminPostReturnsRequestItemsReqSchema:
      type: object
      description: The items' details.
      x-schemaName: AdminPostReturnsRequestItemsReqSchema
      properties:
        items:
          type: array
          description: The items' details.
          items:
            type: object
            description: An item's details.
            required:
              - id
              - quantity
            properties:
              id:
                type: string
                title: id
                description: The item's ID.
              quantity:
                type: number
                title: quantity
                description: The item's quantity.
              description:
                type: string
                title: description
                description: The item's description.
              internal_note:
                type: string
                title: internal_note
                description: A note viewed only by admin users.
              reason_id:
                type: string
                title: reason_id
                description: The ID of the associated return reason.
              metadata:
                type: object
                description: The item's metadata, can hold custom key-value pairs.
                externalDocs:
                  url: https://docs.medusajs.com/api/admin#manage-metadata
                  description: Learn how to manage metadata
    AdminPostReturnsShippingReqSchema:
      type: object
      description: The shipping method's details.
      x-schemaName: AdminPostReturnsShippingReqSchema
      required:
        - shipping_option_id
      properties:
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the associated shipping option.
        custom_amount:
          type: number
          title: custom_amount
          description: Set the price of the shipping method.
        description:
          type: string
          title: description
          description: The shipping method's description.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users.
        metadata:
          type: object
          description: The exchange's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminPrice:
      type: object
      description: The price's details.
      x-schemaName: AdminPrice
      required:
        - id
        - title
        - currency_code
        - amount
        - raw_amount
        - min_quantity
        - max_quantity
        - price_set_id
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The price's ID.
        title:
          type: string
          title: title
          description: The price's title.
        currency_code:
          type: string
          title: currency_code
          description: The price's currency code.
          example: usd
        amount:
          type: number
          title: amount
          description: The price's amount.
        raw_amount:
          type: object
          description: The price's raw amount.
        min_quantity:
          type: number
          title: min_quantity
          description: The minimum quantity that must be available in the cart for the price to be applied.
        max_quantity:
          type: number
          title: max_quantity
          description: The maximum quantity allowed to be available in the cart for the price to be applied.
        price_set_id:
          type: string
          title: price_set_id
          description: The ID of the associated price set.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the price was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the price was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the price was deleted.
    AdminPriceList:
      type: object
      description: The price list's details.
      x-schemaName: AdminPriceList
      required:
        - id
        - title
        - description
        - rules
        - starts_at
        - ends_at
        - status
        - type
        - prices
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The price list's ID.
        title:
          type: string
          title: title
          description: The price list's title.
        description:
          type: string
          title: description
          description: The price list's description.
        rules:
          type: object
          description: The price list's rules.
        starts_at:
          type: string
          title: starts_at
          description: The date the price list starts.
        ends_at:
          type: string
          title: ends_at
          description: The date the price list ends.
        status:
          type: string
          description: The price list's status.
          enum:
            - draft
            - active
        type:
          type: string
          description: The price list's type.
          enum:
            - sale
            - override
        prices:
          type: array
          description: The price list's prices.
          items:
            $ref: '#/components/schemas/AdminPriceListPrice'
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the price list was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the price list was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the price list was deleted.
    AdminPriceListBatchResponse:
      type: object
      description: The details of the created, updated, and deleted prices in a price list.
      x-schemaName: AdminPriceListBatchResponse
      required:
        - created
        - updated
        - deleted
      properties:
        created:
          type: array
          description: The created prices.
          items:
            $ref: '#/components/schemas/AdminPrice'
        updated:
          type: array
          description: The updated prices.
          items:
            $ref: '#/components/schemas/AdminPrice'
        deleted:
          type: object
          description: The details of the deleted prices.
          required:
            - ids
            - object
            - deleted
          properties:
            ids:
              type: array
              description: The IDs of the deleted prices.
              items:
                type: string
                title: ids
                description: A price's ID.
            object:
              type: string
              title: object
              description: The name of the deleted object.
              default: price
            deleted:
              type: boolean
              title: deleted
              description: Whether the prices were deleted.
    AdminPriceListDeleteResponse:
      type: object
      description: The details of the deleted price list.
      x-schemaName: AdminPriceListDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The price list's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: price_list
        deleted:
          type: boolean
          title: deleted
          description: Whether the price list was deleted.
    AdminPriceListListResponse:
      type: object
      description: The paginated list of price lists.
      x-schemaName: AdminPriceListListResponse
      required:
        - limit
        - offset
        - count
        - price_lists
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total number of items.
        price_lists:
          type: array
          description: The list of price lists.
          items:
            $ref: '#/components/schemas/AdminPriceList'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    AdminPriceListPrice:
      type: object
      description: The details of a price list's price.
      x-schemaName: AdminPriceListPrice
      required:
        - variant_id
        - rules
        - id
        - title
        - currency_code
        - amount
        - raw_amount
        - min_quantity
        - max_quantity
        - price_set_id
        - created_at
        - updated_at
        - deleted_at
      properties:
        variant_id:
          type: string
          title: variant_id
          description: The ID of the product variant this price list is for.
        rules:
          type: object
          description: The price's rules.
        id:
          type: string
          title: id
          description: The price's ID.
        title:
          type: string
          title: title
          description: The price's title.
        currency_code:
          type: string
          title: currency_code
          description: The price's currency code.
          example: usd
        amount:
          type: number
          title: amount
          description: The price's amount.
        raw_amount:
          type: object
          description: The price's raw amount.
        min_quantity:
          type: number
          title: min_quantity
          description: The minimum quantity that must be available in the cart for the price to be applied.
        max_quantity:
          type: number
          title: max_quantity
          description: The maximum quantity allowed to be available in the cart for the price to be applied.
        price_set_id:
          type: string
          title: price_set_id
          description: The ID of the price set this price belongs to.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the price was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the price was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the price was deleted.
    AdminPriceListPriceListResponse:
      type: object
      description: The list of prices.
      x-schemaName: AdminPriceListPriceListResponse
      required:
        - limit
        - offset
        - count
        - prices
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of prices returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the prices.
        count:
          type: number
          title: count
          description: The total number of prices.
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
        prices:
          type: array
          description: The list of prices.
          items:
            $ref: '#/components/schemas/AdminPrice'
    AdminPriceListResponse:
      type: object
      description: The price list's details.
      x-schemaName: AdminPriceListResponse
      required:
        - price_list
      properties:
        price_list:
          $ref: '#/components/schemas/AdminPriceList'
    AdminPricePreference:
      type: object
      description: The price preference's details.
      x-schemaName: AdminPricePreference
      required:
        - id
        - attribute
        - value
        - is_tax_inclusive
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The price preference's ID.
        attribute:
          type: string
          title: attribute
          description: The price preference's attribute.
          example: region_id
        value:
          type: string
          title: value
          description: The price preference's value.
          example: reg_123
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: Whether prices matching this preference include taxes.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the price preference was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the price preference was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the price preference was deleted.
    AdminPricePreferenceDeleteResponse:
      type: object
      description: The details of the deleted price preference.
      x-schemaName: AdminPricePreferenceDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The price preference's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: price_preference
        deleted:
          type: boolean
          title: deleted
          description: Whether the price preference was deleted.
    AdminPricePreferenceListResponse:
      type: object
      description: The paginated list of price preferences.
      x-schemaName: AdminPricePreferenceListResponse
      required:
        - limit
        - offset
        - count
        - price_preferences
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total count of items.
        price_preferences:
          type: array
          description: The list of price preferences.
          items:
            $ref: '#/components/schemas/AdminPricePreference'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    AdminPricePreferenceResponse:
      type: object
      description: The price preference's details.
      x-schemaName: AdminPricePreferenceResponse
      required:
        - price_preference
      properties:
        price_preference:
          $ref: '#/components/schemas/AdminPricePreference'
    AdminProduct:
      type: object
      description: The product's details.
      x-schemaName: AdminProduct
      required:
        - variants
        - type
        - options
        - images
        - title
        - status
        - length
        - id
        - created_at
        - updated_at
        - subtitle
        - thumbnail
        - handle
        - description
        - is_giftcard
        - width
        - weight
        - height
        - origin_country
        - hs_code
        - mid_code
        - material
        - collection_id
        - type_id
        - discountable
        - external_id
        - deleted_at
      properties:
        collection:
          $ref: '#/components/schemas/AdminCollection'
        categories:
          type: array
          description: The product's categories.
          items:
            $ref: '#/components/schemas/AdminProductCategory'
        sales_channels:
          type: array
          description: The sales channels that the product is available in.
          items:
            $ref: '#/components/schemas/AdminSalesChannel'
        variants:
          type: array
          description: The product's variants.
          items:
            $ref: '#/components/schemas/AdminProductVariant'
        type:
          $ref: '#/components/schemas/AdminProductType'
        tags:
          type: array
          description: The product's tags.
          items:
            $ref: '#/components/schemas/AdminProductTag'
        length:
          type: number
          title: length
          description: The product's length.
        title:
          type: string
          title: title
          description: The product's title.
        status:
          type: string
          description: The product's status.
          enum:
            - draft
            - proposed
            - published
            - rejected
        options:
          type: array
          description: The product's options.
          items:
            $ref: '#/components/schemas/AdminProductOption'
        description:
          type: string
          title: description
          description: The product's description.
        id:
          type: string
          title: id
          description: The product's ID.
        metadata:
          type: object
          description: The product's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the product was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the product was updated.
        handle:
          type: string
          title: handle
          description: The product's unique handle.
        subtitle:
          type: string
          title: subtitle
          description: The product's subtitle.
        is_giftcard:
          type: boolean
          title: is_giftcard
          description: Whether the product is a gift card.
        thumbnail:
          type: string
          title: thumbnail
          description: The product's thumbnail.
        width:
          type: number
          title: width
          description: The product's width.
        weight:
          type: number
          title: weight
          description: The product's weight.
        height:
          type: number
          title: height
          description: The product's height.
        origin_country:
          type: string
          title: origin_country
          description: The product's origin country.
        hs_code:
          type: string
          title: hs_code
          description: The product's HS code.
        mid_code:
          type: string
          title: mid_code
          description: The product's MID code.
        material:
          type: string
          title: material
          description: The product's material.
        collection_id:
          type: string
          title: collection_id
          description: The ID of the collection that the product belongs to.
        type_id:
          type: string
          title: type_id
          description: The ID of the product's type.
        images:
          type: array
          description: The product's images.
          items:
            $ref: '#/components/schemas/AdminProductImage'
        discountable:
          type: boolean
          title: discountable
          description: Whether discounts can be applied on the product.
        external_id:
          type: string
          title: external_id
          description: The ID of a product in an external system, such as an ERP or CMS.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the product was deleted.
        shipping_profile:
          $ref: '#/components/schemas/AdminShippingProfile'
        translations:
          type: array
          description: The product's translations.
          items:
            $ref: '#/components/schemas/AdminTranslation'
    AdminProductCategory:
      type: object
      description: The product category's details.
      x-schemaName: AdminProductCategory
      required:
        - category_children
        - parent_category
        - name
        - description
        - id
        - created_at
        - updated_at
        - handle
        - deleted_at
        - is_active
        - is_internal
        - rank
        - parent_category_id
      properties:
        category_children:
          type: array
          description: The category's children.
          items:
            type: object
        parent_category:
          type: object
        products:
          type: array
          description: The category's products.
          items:
            type: object
        name:
          type: string
          title: name
          description: The category's name.
        description:
          type: string
          title: description
          description: The category's description.
        id:
          type: string
          title: id
          description: The category's ID.
        metadata:
          type: object
          description: The category's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the category was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the category was updated.
        handle:
          type: string
          title: handle
          description: The category's unique handle.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the category was deleted.
        is_active:
          type: boolean
          title: is_active
          description: Whether the category is active. If disabled, the category isn't shown in the storefront.
        is_internal:
          type: boolean
          title: is_internal
          description: Whether the category is internal. If enabled, the category is only seen by admin users.
        rank:
          type: number
          title: rank
          description: The category's rank among sibling categories.
        parent_category_id:
          type: string
          title: parent_category_id
          description: The ID of the category's parent.
    AdminProductCategoryDeleteResponse:
      type: object
      description: The details of deleting the category.
      x-schemaName: AdminProductCategoryDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The product category's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: product_category
        deleted:
          type: boolean
          title: deleted
          description: Whether the product category was deleted.
    AdminProductCategoryListResponse:
      type: object
      description: The paginated list of product categories.
      x-schemaName: AdminProductCategoryListResponse
      required:
        - limit
        - offset
        - count
        - product_categories
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total number of items.
        product_categories:
          type: array
          description: The list of product categories.
          items:
            $ref: '#/components/schemas/AdminProductCategory'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    AdminProductCategoryResponse:
      type: object
      description: The product category's details.
      x-schemaName: AdminProductCategoryResponse
      required:
        - product_category
      properties:
        product_category:
          $ref: '#/components/schemas/AdminProductCategory'
    AdminProductDeleteResponse:
      type: object
      description: The details of the product deletion.
      x-schemaName: AdminProductDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The product's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: product
        deleted:
          type: boolean
          title: deleted
          description: Whether the product was deleted.
    AdminProductImage:
      type: object
      description: The image's details.
      x-schemaName: AdminProductImage
      properties:
        id:
          type: string
          title: id
          description: The image's ID.
        url:
          type: string
          title: url
          description: The image's URL.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the image was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the image was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the image was deleted.
        metadata:
          type: object
          description: The image's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        rank:
          type: number
          title: rank
          description: The image's rank among sibling images.
        product:
          type: object
        variants:
          type: array
          description: The variants associated with the image.
          items:
            type: object
      required:
        - id
        - url
        - rank
    AdminProductOption:
      type: object
      description: The product option's details.
      x-schemaName: AdminProductOption
      required:
        - id
        - title
      properties:
        id:
          type: string
          title: id
          description: The product option's ID.
        title:
          type: string
          title: title
          description: The product option's title.
        product:
          type: object
        product_id:
          type: string
          title: product_id
          description: The ID of the product this option belongs to.
        values:
          type: array
          description: The product option's values.
          items:
            type: object
        metadata:
          type: object
          description: The product option's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the product option was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the product option was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the product option was deleted.
    AdminProductOptionDeleteResponse:
      type: object
      description: The details of the product option deletion.
      x-schemaName: AdminProductOptionDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The product option's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: product_option
        deleted:
          type: boolean
          title: deleted
          description: Whether the product option was deleted.
        parent:
          $ref: '#/components/schemas/AdminProduct'
    AdminProductOptionResponse:
      type: object
      description: The product option's details.
      x-schemaName: AdminProductOptionResponse
      required:
        - product_option
      properties:
        product_option:
          $ref: '#/components/schemas/AdminProductOption'
    AdminProductOptionValue:
      type: object
      description: The product option value's details.
      x-schemaName: AdminProductOptionValue
      required:
        - id
        - value
      properties:
        id:
          type: string
          title: id
          description: The value's ID.
        value:
          type: string
          title: value
          description: The value.
        option:
          $ref: '#/components/schemas/AdminProductOption'
        option_id:
          type: string
          title: option_id
          description: The ID of the option this value belongs to.
        metadata:
          type: object
          description: The value's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the value was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the value was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the value was deleted.
    AdminProductResponse:
      type: object
      description: The product's details.
      x-schemaName: AdminProductResponse
      required:
        - product
      properties:
        product:
          $ref: '#/components/schemas/AdminProduct'
    AdminProductTag:
      type: object
      description: The product tag's details.
      x-schemaName: AdminProductTag
      required:
        - id
        - value
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The tag's ID.
        value:
          type: string
          title: value
          description: The tag's value.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the tag was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the tag was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the tag was deleted.
        metadata:
          type: object
          description: The tag's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        translations:
          type: array
          description: The tag's translations.
          items:
            $ref: '#/components/schemas/AdminTranslation'
    AdminProductTagDeleteResponse:
      type: object
      description: The details of the product tag deletion.
      x-schemaName: AdminProductTagDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The product tag's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: product_tag
        deleted:
          type: boolean
          title: deleted
          description: Whether the product tag was deleted.
    AdminProductTagListResponse:
      type: object
      description: The paginated list of product tags.
      x-schemaName: AdminProductTagListResponse
      required:
        - limit
        - offset
        - count
        - product_tags
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total number of items.
        product_tags:
          type: array
          description: The list of product tags.
          items:
            $ref: '#/components/schemas/AdminProductTag'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    AdminProductTagResponse:
      type: object
      description: The product tag's details.
      x-schemaName: AdminProductTagResponse
      required:
        - product_tag
      properties:
        product_tag:
          $ref: '#/components/schemas/AdminProductTag'
    AdminProductType:
      type: object
      description: The product type's details.
      x-schemaName: AdminProductType
      required:
        - id
        - value
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The type's ID.
        value:
          type: string
          title: value
          description: The type's value.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the type was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the type was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the type was deleted.
        metadata:
          type: object
          description: The type's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        translations:
          type: array
          description: The type's translations.
          items:
            $ref: '#/components/schemas/AdminTranslation'
    AdminProductTypeDeleteResponse:
      type: object
      description: The details of the product type deletion.
      x-schemaName: AdminProductTypeDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The product type's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: product_type
        deleted:
          type: boolean
          title: deleted
          description: Whether the product type was deleted.
    AdminProductTypeListResponse:
      type: object
      description: The paginated list of product types.
      x-schemaName: AdminProductTypeListResponse
      required:
        - limit
        - offset
        - count
        - product_types
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total number of items.
        product_types:
          type: array
          description: The list of product types.
          items:
            $ref: '#/components/schemas/AdminProductType'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    AdminProductTypeResponse:
      type: object
      description: The product type's details.
      x-schemaName: AdminProductTypeResponse
      required:
        - product_type
      properties:
        product_type:
          $ref: '#/components/schemas/AdminProductType'
    AdminProductVariant:
      type: object
      description: The product variant's details.
      x-schemaName: AdminProductVariant
      required:
        - prices
        - options
        - id
        - title
        - sku
        - barcode
        - ean
        - upc
        - thumbnail
        - images
        - allow_backorder
        - manage_inventory
        - hs_code
        - origin_country
        - mid_code
        - material
        - weight
        - length
        - height
        - width
        - created_at
        - updated_at
        - deleted_at
      properties:
        prices:
          type: array
          description: The variant's prices.
          items:
            $ref: '#/components/schemas/AdminPrice'
        id:
          type: string
          title: id
          description: The variant's ID.
        title:
          type: string
          title: title
          description: The variant's title.
        sku:
          type: string
          title: sku
          description: The variant's SKU.
        barcode:
          type: string
          title: barcode
          description: The variant's barcode.
        ean:
          type: string
          title: ean
          description: The variant's EAN code.
        upc:
          type: string
          title: upc
          description: The variant's UPC.
        allow_backorder:
          type: boolean
          title: allow_backorder
          description: Whether the variant can be ordered even if it's out of stock.
        manage_inventory:
          type: boolean
          title: manage_inventory
          description: Whether the Medusa application manages the variant's inventory quantity and availablility. If disabled, the variant is always considered in stock.
        inventory_quantity:
          type: number
          title: inventory_quantity
          description: The variant's inventory quantity. This is only included if you pass in the `fields` query parameter a `+variants.inventory_quantity` parameter.
        hs_code:
          type: string
          title: hs_code
          description: The variant's HS code.
        origin_country:
          type: string
          title: origin_country
          description: The variant's origin country.
        mid_code:
          type: string
          title: mid_code
          description: The variant's MID code.
        material:
          type: string
          title: material
          description: The variant's material.
        weight:
          type: number
          title: weight
          description: The variant's weight.
        length:
          type: number
          title: length
          description: The variant's length.
        height:
          type: number
          title: height
          description: The variant's height.
        width:
          type: number
          title: width
          description: The variant's width.
        variant_rank:
          type: number
          title: variant_rank
          description: The variant's rank among its sibling variants.
        options:
          type: array
          description: The variant's option values.
          items:
            $ref: '#/components/schemas/AdminProductOptionValue'
        product:
          type: object
        product_id:
          type: string
          title: product_id
          description: The ID of the product that the variant belongs to.
        calculated_price:
          $ref: '#/components/schemas/BaseCalculatedPriceSet'
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the variant was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the variant was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the variant was deleted.
        metadata:
          type: object
          description: The variant's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        inventory_items:
          type: array
          description: The variant's inventory items.
          items:
            $ref: '#/components/schemas/AdminProductVariantInventoryItemLink'
        images:
          type: array
          description: The variant's images.
          items:
            $ref: '#/components/schemas/BaseProductImage'
        thumbnail:
          type: string
          title: thumbnail
          description: The variant's thumbnail.
        translations:
          type: array
          description: The variant's translations.
          items:
            $ref: '#/components/schemas/AdminTranslation'
    AdminProductVariantDeleteResponse:
      type: object
      description: The details of the product variant's deletion.
      x-schemaName: AdminProductVariantDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The product variant's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
        deleted:
          type: boolean
          title: deleted
          description: Whether the product variant was deleted.
          default: variant
        parent:
          $ref: '#/components/schemas/AdminProduct'
    AdminProductVariantInventoryBatchResponse:
      type: object
      description: The created, updated, and deleted associations between variants and inventory items.
      x-schemaName: AdminProductVariantInventoryBatchResponse
      required:
        - created
        - updated
        - deleted
      properties:
        created:
          oneOf:
            - $ref: '#/components/schemas/AdminProductVariantInventoryLink'
            - type: array
              description: The created associations between product variants and inventory items.
              items:
                type: object
                description: A created association between a product variant and an inventory item.
                x-schemaName: AdminProductVariantInventoryLink
                required:
                  - productService
                  - inventoryService
                properties:
                  productService:
                    type: object
                    description: The product variant's details.
                    required:
                      - variant_id
                    properties:
                      variant_id:
                        type: string
                        title: variant_id
                        description: The ID of the product variant.
                  inventoryService:
                    type: object
                    description: The inventory item's details.
                    required:
                      - inventory_item_id
                    properties:
                      inventory_item_id:
                        type: string
                        title: inventory_item_id
                        description: The ID of the inventory item.
        updated:
          oneOf:
            - $ref: '#/components/schemas/AdminProductVariantInventoryLink'
            - type: array
              description: The updated associations between product variants and inventory items.
              items:
                type: object
                description: An updated association between a product variant and an inventory item.
                x-schemaName: AdminProductVariantInventoryLink
                required:
                  - productService
                  - inventoryService
                properties:
                  productService:
                    type: object
                    description: The product variant's details.
                    required:
                      - variant_id
                    properties:
                      variant_id:
                        type: string
                        title: variant_id
                        description: The ID of the product variant.
                  inventoryService:
                    type: object
                    description: The inventory item's details.
                    required:
                      - inventory_item_id
                    properties:
                      inventory_item_id:
                        type: string
                        title: inventory_item_id
                        description: The ID of the inventory item.
        deleted:
          oneOf:
            - $ref: '#/components/schemas/AdminProductVariantInventoryLink'
            - type: array
              description: The deleted associations between product variants and inventory items.
              items:
                type: object
                description: An deleted association between a product variant and an inventory item.
                x-schemaName: AdminProductVariantInventoryLink
                required:
                  - productService
                  - inventoryService
                properties:
                  productService:
                    type: object
                    description: The product variant's details.
                    required:
                      - variant_id
                    properties:
                      variant_id:
                        type: string
                        title: variant_id
                        description: The ID of the product variant.
                  inventoryService:
                    type: object
                    description: The inventory item's details.
                    required:
                      - inventory_item_id
                    properties:
                      inventory_item_id:
                        type: string
                        title: inventory_item_id
                        description: The ID of the inventory item.
    AdminProductVariantInventoryItemLink:
      type: object
      description: An association between a product variant and an inventory item.
      x-schemaName: AdminProductVariantInventoryItemLink
      required:
        - id
        - variant_id
        - inventory_item_id
      properties:
        id:
          type: string
          title: id
          description: The ID of the association.
        variant_id:
          type: string
          title: variant_id
          description: The associated product variant's ID.
        variant:
          type: object
        inventory_item_id:
          type: string
          title: inventory_item_id
          description: The associated inventory item's ID.
        inventory:
          $ref: '#/components/schemas/AdminInventoryItem'
        required_quantity:
          type: number
          title: required_quantity
          description: The inventory item's required quantity.
    AdminProductVariantInventoryLink:
      type: object
      description: The details of an association between a product variant and an inventory item.
      x-schemaName: AdminProductVariantInventoryLink
      required:
        - Product
        - Inventory
      properties:
        Product:
          type: object
          description: The product variant's details.
          required:
            - variant_id
          properties:
            variant_id:
              type: string
              title: variant_id
              description: The ID of the product variant.
        Inventory:
          type: object
          description: The inventory item's details.
          required:
            - inventory_item_id
          properties:
            inventory_item_id:
              type: string
              title: inventory_item_id
              description: The ID of the inventory item.
    AdminProductVariantInventoryLinkDeleteResponse:
      type: object
      description: The details of the deleted associated between a product variant and an inventory item.
      x-schemaName: AdminProductVariantInventoryLinkDeleteResponse
      required:
        - id
        - object
        - deleted
        - parent
      properties:
        id:
          $ref: '#/components/schemas/AdminProductVariantInventoryLink'
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: variant-inventory-item-link
        deleted:
          type: boolean
          title: deleted
          description: Whether the association was deleted.
        parent:
          $ref: '#/components/schemas/AdminProductVariant'
    AdminProductVariantResponse:
      type: object
      description: The product variant's details.
      x-schemaName: AdminProductVariantResponse
      required:
        - variant
      properties:
        variant:
          $ref: '#/components/schemas/AdminProductVariant'
    AdminPromotion:
      type: object
      description: The promotion's details.
      x-schemaName: AdminPromotion
      required:
        - id
        - created_at
        - updated_at
        - deleted_at
      properties:
        application_method:
          $ref: '#/components/schemas/AdminApplicationMethod'
        rules:
          type: array
          description: The promotion's rules.
          items:
            $ref: '#/components/schemas/AdminPromotionRule'
        id:
          type: string
          title: id
          description: The promotion's ID.
        code:
          type: string
          title: code
          description: The promotion's code.
          example: OFF50
        type:
          type: string
          description: The promotion's type.
          enum:
            - standard
            - buyget
        is_automatic:
          type: boolean
          title: is_automatic
          description: Whether the promotion is applied on a cart automatically if it matches the promotion's rules.
        campaign_id:
          type: string
          title: campaign_id
          description: The ID of the campaign this promotion belongs to.
        campaign:
          $ref: '#/components/schemas/AdminCampaign'
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the promotion was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the promotion was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the promotion was deleted.
        status:
          type: string
          description: The promotion's status.
          enum:
            - draft
            - active
            - inactive
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: Whether the promotion is tax inclusive. If enabled, the promotion is applied after tax is calculated.
        limit:
          type: number
          title: limit
          description: The limit of times the promotion can be used.
        used:
          type: number
          title: used
          description: The number of times the promotion has been used.
    AdminPromotionResponse:
      type: object
      description: The promotion's details.
      x-schemaName: AdminPromotionResponse
      required:
        - promotion
      properties:
        promotion:
          $ref: '#/components/schemas/AdminPromotion'
    AdminPromotionRule:
      type: object
      description: The promotion rule's details.
      x-schemaName: AdminPromotionRule
      required:
        - id
        - values
      properties:
        id:
          type: string
          title: id
          description: The promotion rule's ID.
        description:
          type: string
          title: description
          description: The promotion rule's description.
        attribute:
          type: string
          title: attribute
          description: The promotion rule's attribute.
          example: customer_group_id
        operator:
          type: string
          description: The rule's operator.
          enum:
            - gt
            - lt
            - eq
            - ne
            - in
            - lte
            - gte
        values:
          type: array
          description: The rule's values.
          example:
            - cusgroup_123
          items:
            $ref: '#/components/schemas/BasePromotionRuleValue'
    AdminReceiveItems:
      type: object
      description: The items details.
      x-schemaName: AdminReceiveItems
      properties:
        items:
          type: array
          description: The items details.
          items:
            type: object
            description: An item's details.
            required:
              - id
              - quantity
            properties:
              id:
                type: string
                title: id
                description: The ID of the item in the order.
              quantity:
                type: number
                title: quantity
                description: The item's quantity.
              description:
                type: string
                title: description
                description: The item's description.
              internal_note:
                type: string
                title: internal_note
                description: A note viewed only by admin users.
    AdminRefund:
      type: object
      description: The refund's details.
      x-schemaName: AdminRefund
      required:
        - id
        - amount
        - created_at
        - payment
      properties:
        id:
          type: string
          title: id
          description: The refund's ID.
        amount:
          type: number
          title: amount
          description: The refund's amount.
        refund_reason_id:
          type: string
          title: refund_reason_id
          description: The ID of the refund reason.
        note:
          type: string
          title: note
          description: More details about the refund.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the refund was created.
        created_by:
          type: string
          title: created_by
          description: The ID of the user that created the refund.
        payment:
          $ref: '#/components/schemas/BasePayment'
        refund_reason:
          $ref: '#/components/schemas/BaseRefundReason'
    AdminRefundPayment:
      type: object
      description: The refund's details.
      properties:
        amount:
          type: number
          title: amount
          description: The amount to refund.
        refund_reason_id:
          type: string
          title: refund_reason_id
          description: The ID of a refund reason.
        note:
          type: string
          title: note
          description: A note to attach to the refund.
      x-schemaName: AdminRefundPayment
    AdminRefundReason:
      type: object
      description: The refund reason's details.
      x-schemaName: AdminRefundReason
      required:
        - id
        - label
        - code
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The refund reason's ID.
        label:
          type: string
          title: label
          description: The refund reason's label.
        description:
          type: string
          title: description
          description: The refund reason's description.
        metadata:
          type: object
          description: The refund reason's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the refund reason was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the refund reason was updated.
        code:
          type: string
          title: code
          description: The refund reason's code.
    AdminRefundReasonDeleteResponse:
      type: object
      description: The deletion's details.
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The refund reason's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: refund_reason
        deleted:
          type: boolean
          title: deleted
          description: Whether the refund reason was deleted.
      x-schemaName: AdminRefundReasonDeleteResponse
    AdminRegion:
      type: object
      description: The region's details.
      x-schemaName: AdminRegion
      required:
        - id
        - currency_code
        - name
      properties:
        id:
          type: string
          title: id
          description: The region's ID.
        name:
          type: string
          title: name
          description: The region's name.
        currency_code:
          type: string
          title: currency_code
          description: The region's currency code.
          example: usd
        automatic_taxes:
          type: boolean
          title: automatic_taxes
          description: Whether taxes are applied automatically during checkout.
        countries:
          type: array
          description: The region's countries.
          items:
            $ref: '#/components/schemas/AdminRegionCountry'
        payment_providers:
          type: array
          description: The region's payment providers.
          items:
            $ref: '#/components/schemas/AdminPaymentProvider'
        metadata:
          type: object
          description: The region's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the region was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the region was updated.
    AdminRegionCountry:
      type: object
      description: The country's details.
      x-schemaName: AdminRegionCountry
      required:
        - id
      properties:
        id:
          type: string
          title: id
          description: The country's ID.
        iso_2:
          type: string
          title: iso_2
          description: The country's iso 2.
          example: us
        iso_3:
          type: string
          title: iso_3
          description: The country's iso 3.
          example: usa
        num_code:
          type: string
          title: num_code
          description: The country's num code.
          example: 840
        name:
          type: string
          title: name
          description: The country's name.
        display_name:
          type: string
          title: display_name
          description: The country's display name.
    AdminRegionResponse:
      type: object
      description: The region's details.
      x-schemaName: AdminRegionResponse
      required:
        - region
      properties:
        region:
          $ref: '#/components/schemas/AdminRegion'
    AdminRemoveDraftOrderPromotions:
      type: object
      description: The promotion codes to remove from the draft order.
      x-schemaName: AdminRemoveDraftOrderPromotions
      required:
        - promo_codes
      properties:
        promo_codes:
          type: array
          description: The promotion codes to remove from the draft order.
          items:
            type: string
            title: promo_codes
            description: A promotion code to remove from the draft order.
    AdminRequestOrderTransfer:
      type: object
      description: The details of the request to transfer the order.
      x-schemaName: AdminRequestOrderTransfer
      required:
        - customer_id
      properties:
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer to transfer the order to.
        description:
          type: string
          title: description
          description: The description of the order transfer, which can be shown to the customer receiving the order transfer request.
        internal_note:
          type: string
          title: internal_note
          description: An internal note viewable only by admin users.
    AdminReservation:
      type: object
      description: The reservation's details.
      x-schemaName: AdminReservation
      required:
        - id
        - line_item_id
        - location_id
        - quantity
        - external_id
        - description
        - inventory_item_id
      properties:
        id:
          type: string
          title: id
          description: The reservation's ID.
        line_item_id:
          type: string
          title: line_item_id
          description: The ID of the line item this reservation is for.
        location_id:
          type: string
          title: location_id
          description: The ID of the location the quantity is reserved from.
        quantity:
          type: number
          title: quantity
          description: The reservation's quantity.
        external_id:
          type: string
          title: external_id
          description: An ID in an external system
        description:
          type: string
          title: description
          description: The reservation's description.
        inventory_item_id:
          type: string
          title: inventory_item_id
          description: The ID of the inventory item this reservation is associated with.
        inventory_item:
          $ref: '#/components/schemas/AdminInventoryItem'
        metadata:
          type: object
          description: The reservation's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_by:
          type: string
          title: created_by
          description: The ID of the user that created this reservation.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date this reservation was deleted.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date this reservation was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date this reservation was updated.
    AdminReservationResponse:
      type: object
      description: The reservation's details.
      x-schemaName: AdminReservationResponse
      required:
        - reservation
      properties:
        reservation:
          $ref: '#/components/schemas/AdminReservation'
    AdminReturn:
      type: object
      description: The return's details.
      x-schemaName: AdminReturn
      required:
        - items
        - id
        - order_id
        - order_version
        - display_id
        - received_at
        - created_at
        - canceled_at
      properties:
        id:
          type: string
          title: id
          description: The return's ID.
        status:
          type: string
          description: The return's status.
          enum:
            - canceled
            - requested
            - received
            - partially_received
        refund_amount:
          type: number
          title: refund_amount
          description: The amount refunded by this return.
        order_id:
          type: string
          title: order_id
          description: The ID of the associated order.
        items:
          type: array
          description: The return's items.
          items:
            $ref: '#/components/schemas/AdminReturnItem'
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the return was created.
        canceled_at:
          type: string
          title: canceled_at
          description: The date the return was canceled.
          format: date-time
        exchange_id:
          type: string
          title: exchange_id
          description: The return's exchange id.
        location_id:
          type: string
          title: location_id
          description: The return's location id.
        claim_id:
          type: string
          title: claim_id
          description: The return's claim id.
        order_version:
          type: number
          title: order_version
          description: The return's order version.
        display_id:
          type: number
          title: display_id
          description: The return's display id.
        no_notification:
          type: boolean
          title: no_notification
          description: Whether the customer should receive notifications about the return's updates.
        received_at:
          type: string
          title: received_at
          description: The date the return was received.
    AdminReturnItem:
      type: object
      description: The return item's details.
      x-schemaName: AdminReturnItem
      required:
        - id
        - quantity
        - received_quantity
        - damaged_quantity
        - item_id
        - return_id
      properties:
        id:
          type: string
          title: id
          description: The return item's ID.
        quantity:
          type: number
          title: quantity
          description: The return item's quantity.
        received_quantity:
          type: number
          title: received_quantity
          description: The received quantity of the item. This quantity is added to the stocked inventory quantity of the item.
        damaged_quantity:
          type: number
          title: damaged_quantity
          description: The received damaged quantity of the item, which isn't added to the stocked inventory quantity of the item.
        reason_id:
          type: string
          title: reason_id
          description: The ID of the return reason associated with the item.
        note:
          type: string
          title: note
          description: A note about why the item was returned.
        item_id:
          type: string
          title: item_id
          description: The ID of the associated order item.
        return_id:
          type: string
          title: return_id
          description: The ID of the return this return item belongs to.
        metadata:
          type: object
          description: The return item's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminReturnPreviewResponse:
      type: object
      description: The details of a return and a preview of the order once the return is applied.
      x-schemaName: AdminReturnPreviewResponse
      required:
        - order_preview
        - return
      properties:
        order_preview:
          $ref: '#/components/schemas/AdminOrderPreview'
        return:
          $ref: '#/components/schemas/AdminReturn'
    AdminReturnReason:
      type: object
      description: The return reason's details.
      x-schemaName: AdminReturnReason
      required:
        - id
        - value
        - label
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The return reason's ID.
        value:
          type: string
          title: value
          description: The return reason's value.
        label:
          type: string
          title: label
          description: The return reason's label.
        description:
          type: string
          title: description
          description: The return reason's description.
        metadata:
          type: object
          description: The return reason's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the return reason was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the return reason was updated.
    AdminReturnReasonDeleteResponse:
      type: object
      description: The details of the return reason deletion.
      x-schemaName: AdminReturnReasonDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The return reason's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: return_reason
        deleted:
          type: boolean
          title: deleted
          description: Whether the return reason was deleted.
    AdminReturnReasonListResponse:
      type: object
      description: The paginated list of return reasons.
      x-schemaName: AdminReturnReasonListResponse
      required:
        - limit
        - offset
        - count
        - return_reasons
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total number of items.
        return_reasons:
          type: array
          description: The list of return reasons.
          items:
            $ref: '#/components/schemas/AdminReturnReason'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    AdminReturnReasonResponse:
      type: object
      description: The return reason's details.
      x-schemaName: AdminReturnReasonResponse
      required:
        - return_reason
      properties:
        return_reason:
          $ref: '#/components/schemas/AdminReturnReason'
    AdminReturnResponse:
      type: object
      description: The return's details.
      x-schemaName: AdminReturnResponse
      required:
        - return
      properties:
        return:
          $ref: '#/components/schemas/AdminReturn'
    AdminRevokeApiKey:
      type: object
      description: The details of revoking the API key.
      x-schemaName: AdminRevokeApiKey
      properties:
        revoke_in:
          type: number
          title: revoke_in
          description: The time in seconds to revoke the API key after. If not set, the API key is revoked immediately.
    AdminRuleAttributeOption:
      type: object
      description: The details of a potential rule attribute.
      x-schemaName: AdminRuleAttributeOption
      required:
        - id
        - value
        - label
        - operators
      properties:
        id:
          type: string
          title: id
          description: The rule attribute's ID, which is a rule's `attribute` it refers to.
          example: customer_group
        value:
          type: string
          title: value
          description: The rule attribute's value.
          example: customer.groups.id
        label:
          type: string
          title: label
          description: The rule attribute option's label.
          example: Customer Group
        operators:
          type: array
          description: The attribute's operators.
          items:
            $ref: '#/components/schemas/BaseRuleOperatorOptions'
    AdminRuleValueOption:
      type: object
      description: The details of a potential rule value.
      x-schemaName: AdminRuleValueOption
      required:
        - value
        - label
      properties:
        value:
          type: string
          title: value
          description: The rule value's value.
          example: reg_123
        label:
          type: string
          title: label
          description: The rule value's label.
          example: Europe Region
    AdminSalesChannel:
      type: object
      description: The sales channel's details.
      x-schemaName: AdminSalesChannel
      required:
        - id
        - name
        - description
        - is_disabled
        - metadata
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The sales channel's ID.
        name:
          type: string
          title: name
          description: The sales channel's name.
        description:
          type: string
          title: description
          description: The sales channel's description.
        is_disabled:
          type: boolean
          title: is_disabled
          description: Whether the sales channel is disabled.
        metadata:
          type: object
          description: The sales channel's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the sales channel was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the sales channel was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the sales channel was deleted.
    AdminSalesChannelDeleteResponse:
      type: object
      description: The details of deleting a sales channel.
      x-schemaName: AdminSalesChannelDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The sales channel's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: sales-channel
        deleted:
          type: boolean
          title: deleted
          description: Whether the sales channel was deleted.
    AdminSalesChannelResponse:
      type: object
      description: The sales channel's details.
      x-schemaName: AdminSalesChannelResponse
      required:
        - sales_channel
      properties:
        sales_channel:
          $ref: '#/components/schemas/AdminSalesChannel'
    AdminServiceZone:
      type: object
      description: The shipping option's service zone.
      x-schemaName: AdminServiceZone
      required:
        - id
        - name
        - fulfillment_set_id
        - fulfillment_set
        - geo_zones
        - shipping_options
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The service zone's ID.
        name:
          type: string
          title: name
          description: The service zone's name.
        fulfillment_set_id:
          type: string
          title: fulfillment_set_id
          description: The service zone's fulfillment set id.
        fulfillment_set:
          type: object
        geo_zones:
          type: array
          description: The service zone's geo zones.
          items:
            $ref: '#/components/schemas/AdminGeoZone'
        shipping_options:
          type: array
          description: The service zone's shipping options.
          items:
            $ref: '#/components/schemas/AdminShippingOption'
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The service zone's created at.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The service zone's updated at.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The service zone's deleted at.
    AdminServiceZoneDeleteResponse:
      type: object
      description: The details of the service zone deletion.
      x-schemaName: AdminServiceZoneDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The service zone's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: service_zone
        deleted:
          type: boolean
          title: deleted
          description: Whether the service zone was deleted.
        parent:
          $ref: '#/components/schemas/AdminFulfillmentSet'
    AdminServiceZoneResponse:
      type: object
      description: The service zone's details.
      x-schemaName: AdminServiceZoneResponse
      required:
        - service_zone
      properties:
        service_zone:
          $ref: '#/components/schemas/AdminServiceZone'
    AdminSetActiveViewConfiguration:
      type: object
      description: The details of a view configuration to set as active for the given entity.
      x-schemaName: AdminSetActiveViewConfiguration
      required:
        - view_configuration_id
      properties:
        view_configuration_id:
          type: string
          title: view_configuration_id
          description: The ID of the view configuration to set as active. If `null`, the active view configuration will be cleared, and the `code` or system default view configuration will be used as the active view.
    AdminShippingOption:
      type: object
      description: The shipping option's details.
      x-schemaName: AdminShippingOption
      required:
        - id
        - name
        - price_type
        - service_zone_id
        - service_zone
        - provider_id
        - provider
        - shipping_option_type_id
        - type
        - shipping_profile_id
        - shipping_profile
        - rules
        - prices
        - data
        - metadata
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The shipping option's ID.
        name:
          type: string
          title: name
          description: The shipping option's name.
        price_type:
          type: string
          description: The shipping option's price type. If it's `flat`, the price is fixed and is set in the `prices` property. If it's `calculated`, the price is calculated on checkout by the associated fulfillment provider.
          enum:
            - calculated
            - flat
        service_zone_id:
          type: string
          title: service_zone_id
          description: The ID of the service zone this option belongs to.
        service_zone:
          type: object
        provider_id:
          type: string
          title: provider_id
          description: The ID of the provider handling fulfillments created from this shipping option.
        provider:
          $ref: '#/components/schemas/AdminFulfillmentProvider'
        shipping_option_type_id:
          type: string
          title: shipping_option_type_id
          description: The ID of the associated shipping option type.
        type:
          $ref: '#/components/schemas/AdminShippingOptionType'
        shipping_profile_id:
          type: string
          title: shipping_profile_id
          description: The ID of the associated shipping profile.
        shipping_profile:
          $ref: '#/components/schemas/AdminShippingProfile'
        rules:
          type: array
          description: The shipping option's rules.
          items:
            $ref: '#/components/schemas/AdminShippingOptionRule'
        prices:
          type: array
          description: The shipping option's prices. If the `price_type` is `calculated`, this array will be empty since the price is calculated by the fulfillment provider during checkout.
          items:
            $ref: '#/components/schemas/AdminShippingOptionPrice'
        data:
          type: object
          description: The shipping option's data, useful for the fulfillment provider handling fulfillments created from this option.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property
        metadata:
          type: object
          description: The shipping option's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the shipping option was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the shipping option was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the shipping option was deleted.
    AdminShippingOptionDeleteResponse:
      type: object
      description: The details of the shipping option's deletion.
      x-schemaName: AdminShippingOptionDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The shipping option's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: shipping_option
        deleted:
          type: boolean
          title: deleted
          description: Whether the shipping option was deleted.
    AdminShippingOptionPrice:
      type: object
      description: The details of the shipping option's price.
      x-schemaName: AdminShippingOptionPrice
      required:
        - price_rules
        - rules_count
        - id
        - title
        - currency_code
        - amount
        - raw_amount
        - min_quantity
        - max_quantity
        - price_set_id
        - created_at
        - updated_at
        - deleted_at
      properties:
        price_rules:
          type: array
          description: The price's rules.
          items:
            $ref: '#/components/schemas/AdminShippingOptionPriceRule'
        rules_count:
          type: number
          title: rules_count
          description: The number of rules the price has.
        id:
          type: string
          title: id
          description: The price's ID.
        title:
          type: string
          title: title
          description: The price's title.
        currency_code:
          type: string
          title: currency_code
          description: The price's currency code.
          example: usd
        amount:
          type: number
          title: amount
          description: The price's amount.
        raw_amount:
          type: object
          description: The price's raw amount.
        min_quantity:
          type: number
          title: min_quantity
          description: The minimum quantity required in the cart for this price to apply.
        max_quantity:
          type: number
          title: max_quantity
          description: The maximum quantity that the cart's items must not surpass for this price to apply.
        price_set_id:
          type: string
          title: price_set_id
          description: The ID of the price set this price belongs to.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the price was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the price was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the price was deleted.
    AdminShippingOptionPriceRule:
      type: object
      description: The details of a shipping option price's rule.
      x-schemaName: AdminShippingOptionPriceRule
      required:
        - id
        - value
        - operator
        - attribute
        - price_id
        - priority
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The price rule's ID.
        value:
          oneOf:
            - type: string
              title: value
              description: The price rule's value.
            - type: number
              title: value
              description: The price rule's value.
          description: The price rule's value.
        operator:
          type: string
          description: The price rule's operator.
          enum:
            - gt
            - lt
            - eq
            - ne
            - in
            - lte
            - gte
            - nin
        attribute:
          type: string
          title: attribute
          description: The price rule's attribute.
        price_id:
          type: string
          title: price_id
          description: The ID of the price this rule applies to.
        priority:
          type: number
          title: priority
          description: The price rule's priority.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the price rule was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the price rule was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the price rule was deleted.
    AdminShippingOptionResponse:
      type: object
      description: The shipping option's details.
      x-schemaName: AdminShippingOptionResponse
      required:
        - shipping_option
      properties:
        shipping_option:
          $ref: '#/components/schemas/AdminShippingOption'
    AdminShippingOptionRule:
      type: object
      description: The shipping option rule's details.
      x-schemaName: AdminShippingOptionRule
      required:
        - id
        - attribute
        - operator
        - value
        - shipping_option_id
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The shipping option rule's ID.
        attribute:
          type: string
          title: attribute
          description: The shipping option rule's attribute.
          example: is_return
        operator:
          type: string
          description: The rule's operator.
          enum:
            - gt
            - lt
            - eq
            - ne
            - in
            - lte
            - gte
            - nin
        value:
          oneOf:
            - type: string
              title: value
              description: The shipping option rule's value.
              example: 'true'
            - type: array
              description: The shipping option rule's values.
              items:
                type: string
                title: value
                description: A value of the shipping option rule.
                example: 'true'
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the shipping option this rule is for.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the shipping option rule was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the shipping option rule was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the shipping option rule was deleted.
    AdminShippingOptionType:
      type: object
      description: The shipping option's details.
      x-schemaName: AdminShippingOptionType
      required:
        - id
        - label
        - description
        - code
        - shipping_option_id
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The shipping option's ID.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the shipping option was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the shipping option was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the shipping option was deleted.
        label:
          type: string
          title: label
          description: The type's label.
        description:
          type: string
          title: description
          description: The type's description.
        code:
          type: string
          title: code
          description: The type's code.
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The type's shipping option id.
    AdminShippingOptionTypeDeleteResponse:
      type: object
      description: The response returned after deleting a shipping option type.
      x-schemaName: AdminShippingOptionTypeDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The shipping option type's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: shipping_option_type
        deleted:
          type: boolean
          title: deleted
          description: Whether the Shipping Option Type was deleted.
    AdminShippingOptionTypeListResponse:
      type: object
      description: The paginated list of shipping option types.
      x-schemaName: AdminShippingOptionTypeListResponse
      required:
        - limit
        - offset
        - count
        - shipping_option_types
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before returning the results.
        count:
          type: number
          title: count
          description: The total number of items.
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
        shipping_option_types:
          type: array
          description: The list of shipping option types.
          items:
            $ref: '#/components/schemas/AdminShippingOptionType'
    AdminShippingOptionTypeResponse:
      type: object
      description: The shipping option type's details.
      x-schemaName: AdminShippingOptionTypeResponse
      required:
        - shipping_option_type
      properties:
        shipping_option_type:
          $ref: '#/components/schemas/AdminShippingOptionType'
    AdminShippingProfile:
      type: object
      description: The shipping profile's details..
      x-schemaName: AdminShippingProfile
      properties:
        id:
          type: string
          title: id
          description: The shipping profile's ID.
        name:
          type: string
          title: name
          description: The shipping profile's name.
        type:
          type: string
          title: type
          description: The shipping profile's type.
        metadata:
          type: object
          description: The shipping profile's metadata, holds custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the shipping profile was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the shipping profile was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the shipping profile was deleted.
      required:
        - id
        - name
        - type
        - metadata
        - created_at
        - updated_at
        - deleted_at
    AdminShippingProfileDeleteResponse:
      type: object
      description: The details of the shipping profile's deletion.
      x-schemaName: AdminShippingProfileDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The shipping profile's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: shipping_profile
        deleted:
          type: boolean
          title: deleted
          description: Whether the shipping profile was deleted.
    AdminShippingProfileResponse:
      type: object
      description: The shipping profile's details.
      x-schemaName: AdminShippingProfileResponse
      required:
        - shipping_profile
      properties:
        shipping_profile:
          $ref: '#/components/schemas/AdminShippingProfile'
    AdminStockLocation:
      type: object
      description: The stock location's details.
      x-schemaName: AdminStockLocation
      required:
        - id
        - name
        - address_id
      properties:
        id:
          type: string
          title: id
          description: The location's ID.
        name:
          type: string
          title: name
          description: The location's name.
        address_id:
          type: string
          title: address_id
          description: The ID of the associated address.
        address:
          $ref: '#/components/schemas/AdminStockLocationAddress'
        sales_channels:
          type: array
          description: The sales channels associated with the location.
          items:
            $ref: '#/components/schemas/AdminSalesChannel'
        fulfillment_providers:
          type: array
          description: The fulfillment providers associated with the location.
          items:
            $ref: '#/components/schemas/AdminFulfillmentProvider'
        fulfillment_sets:
          type: array
          description: The fulfillment sets associated with the location.
          items:
            type: object
    AdminStockLocationAddress:
      type: object
      description: The details of the stock location address.
      x-schemaName: AdminStockLocationAddress
      properties:
        id:
          type: string
          title: id
          description: The address's ID.
        address_1:
          type: string
          title: address_1
          description: The address's first line.
        address_2:
          type: string
          title: address_2
          description: The address's second line.
        company:
          type: string
          title: company
          description: The address's company.
        country_code:
          type: string
          title: country_code
          description: The address's country code.
          example: us
        city:
          type: string
          title: city
          description: The address's city.
        phone:
          type: string
          title: phone
          description: The address's phone.
        postal_code:
          type: string
          title: postal_code
          description: The address's postal code.
        province:
          type: string
          title: province
          description: The address's lower-case ISO 3166-2 province code.
          example: us-ca
          externalDocs:
            url: https://en.wikipedia.org/wiki/ISO_3166-2
            description: Learn more about ISO 3166-2
      required:
        - id
        - address_1
        - address_2
        - company
        - country_code
        - city
        - phone
        - postal_code
        - province
    AdminStockLocationDeleteResponse:
      type: object
      description: The details of the stock location's deletion.
      x-schemaName: AdminStockLocationDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The stock location's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: stock_location
        deleted:
          type: boolean
          title: deleted
          description: Whether the stock location was deleted.
    AdminStockLocationListResponse:
      type: object
      description: The paginated list of stock locations.
      x-schemaName: AdminStockLocationListResponse
      required:
        - limit
        - offset
        - count
        - stock_locations
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total number of items.
        stock_locations:
          type: array
          description: The list of stock locations.
          items:
            $ref: '#/components/schemas/AdminStockLocation'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    AdminStockLocationResponse:
      type: object
      description: The stock location's details.
      x-schemaName: AdminStockLocationResponse
      required:
        - stock_location
      properties:
        stock_location:
          $ref: '#/components/schemas/AdminStockLocation'
    AdminStore:
      type: object
      description: The store's details.
      x-schemaName: AdminStore
      required:
        - id
        - name
        - supported_currencies
        - supported_locales
        - default_sales_channel_id
        - default_region_id
        - default_location_id
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The store's ID.
        name:
          type: string
          title: name
          description: The store's name.
        supported_currencies:
          type: array
          description: The store's supported currencies.
          items:
            $ref: '#/components/schemas/AdminStoreCurrency'
        default_sales_channel_id:
          type: string
          title: default_sales_channel_id
          description: The ID of the sales channel used by default in the store.
        default_region_id:
          type: string
          title: default_region_id
          description: The ID of the region used by default in the store.
        default_location_id:
          type: string
          title: default_location_id
          description: The ID of the stock location used by default in the store.
        metadata:
          type: object
          description: The store's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the store was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the store was updated.
        supported_locales:
          type: array
          description: The store's supported locales.
          items:
            $ref: '#/components/schemas/AdminStoreLocale'
    AdminStoreCreditAccount:
      type: object
      description: The store credit account's details.
      x-schemaName: AdminStoreCreditAccount
      required:
        - customer
        - id
        - currency_code
        - credits
        - debits
        - balance
        - metadata
        - created_at
        - updated_at
      properties:
        customer:
          $ref: '#/components/schemas/AdminCustomer'
        id:
          type: string
          title: id
          description: The store credit account's ID.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer that the store credit account belongs to.
        currency_code:
          type: string
          title: currency_code
          description: The store credit account's currency code.
          example: usd
        credits:
          type: number
          title: credits
          description: The account's credits.
        debits:
          type: number
          title: debits
          description: The account's debits.
        balance:
          type: number
          title: balance
          description: The account's balance.
        metadata:
          type: object
          description: The store credit account's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the store credit account was created at.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the store credit account was updated at.
        code:
          type: string
          title: code
          description: The store credit account's code.
    AdminStoreCreditAccountResponse:
      type: object
      description: The store credit account's details.
      x-schemaName: AdminStoreCreditAccountResponse
      required:
        - store_credit_account
      properties:
        store_credit_account:
          $ref: '#/components/schemas/AdminStoreCreditAccount'
    AdminStoreCreditAccountsResponse:
      type: object
      description: The paginated list of store credit accounts.
      x-schemaName: AdminStoreCreditAccountsResponse
      required:
        - limit
        - offset
        - count
        - store_credit_accounts
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of store credit accounts to return.
        offset:
          type: number
          title: offset
          description: The number of store credit accounts to skip before retrieving the results.
        count:
          type: number
          title: count
          description: The total number of store credit accounts available.
        store_credit_accounts:
          type: array
          description: The list of store credit accounts.
          items:
            $ref: '#/components/schemas/AdminStoreCreditAccount'
        estimate_count:
          type: number
          title: estimate_count
          description: The store credit account's estimate count.
          x-featureFlag: index_engine
    AdminStoreCurrency:
      type: object
      description: The details of a store's currency.
      x-schemaName: AdminStoreCurrency
      required:
        - id
        - currency_code
        - store_id
        - is_default
        - currency
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The currency's ID.
        currency_code:
          type: string
          title: currency_code
          description: The currency's code.
          example: usd
        store_id:
          type: string
          title: store_id
          description: The ID of the store this currency belongs to.
        is_default:
          type: boolean
          title: is_default
          description: Whether this currency is the default in the store.
        currency:
          $ref: '#/components/schemas/AdminCurrency'
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the currency was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the currency was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the currency was deleted.
    AdminStoreListResponse:
      type: object
      description: The paginated list of stores.
      x-schemaName: AdminStoreListResponse
      required:
        - limit
        - offset
        - count
        - stores
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total number of items.
        stores:
          type: array
          description: The list of stores.
          items:
            $ref: '#/components/schemas/AdminStore'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    AdminStoreLocale:
      type: object
      description: The details of a store's locale.
      x-schemaName: AdminStoreLocale
      required:
        - id
        - locale_code
        - store_id
        - locale
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The locale's ID.
        locale_code:
          type: string
          title: locale_code
          description: The locale's code in BCP 47 format.
        store_id:
          type: string
          title: store_id
          description: The ID of the store to which the locale belongs.
        locale:
          $ref: '#/components/schemas/AdminLocale'
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the locale was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the locale was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the locale was deleted.
    AdminStoreResponse:
      type: object
      description: The store's details.
      x-schemaName: AdminStoreResponse
      required:
        - store
      properties:
        store:
          $ref: '#/components/schemas/AdminStore'
    AdminTaxProvider:
      type: object
      description: The tax provider's details.
      x-schemaName: AdminTaxProvider
      required:
        - id
        - is_enabled
      properties:
        id:
          type: string
          title: id
          description: The tax provider's ID.
          example: tp_taxjar_taxjar
        is_enabled:
          type: boolean
          title: is_enabled
          description: Whether the tax provider is enabled in the Medusa application.
    AdminTaxRate:
      type: object
      description: The tax rate's details.
      x-schemaName: AdminTaxRate
      required:
        - id
        - rate
        - code
        - name
        - metadata
        - tax_region_id
        - is_combinable
        - is_default
        - created_at
        - updated_at
        - deleted_at
        - created_by
        - tax_region
        - rules
      properties:
        id:
          type: string
          title: id
          description: The tax rate's ID.
        rate:
          type: number
          title: rate
          description: The rate to charge.
          example: 10
        code:
          type: string
          title: code
          description: The code the tax rate is identified by.
        name:
          type: string
          title: name
          description: The tax rate's name.
        metadata:
          type: object
          description: The tax rate's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        tax_region_id:
          type: string
          title: tax_region_id
          description: The ID of the tax region this rate belongs to.
        is_combinable:
          type: boolean
          title: is_combinable
          description: Whether the tax rate should be combined with parent rates.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/tax/tax-rates-and-rules#combinable-tax-rates
        is_default:
          type: boolean
          title: is_default
          description: Whether this tax rate is the default in the tax region.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the tax rate was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the tax rate was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the tax rate was deleted.
        created_by:
          type: string
          title: created_by
          description: The ID of the user that created the tax rate.
        tax_region:
          $ref: '#/components/schemas/AdminTaxRegion'
        rules:
          type: array
          description: The tax rate's rules.
          items:
            $ref: '#/components/schemas/AdminTaxRateRule'
    AdminTaxRateDeleteResponse:
      type: object
      description: The details of the tax rate deletion.
      x-schemaName: AdminTaxRateDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The tax rate's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: tax_rate
        deleted:
          type: boolean
          title: deleted
          description: Whether the tax rate was deleted.
    AdminTaxRateResponse:
      type: object
      description: The tax rate's details.
      x-schemaName: AdminTaxRateResponse
      required:
        - tax_rate
      properties:
        tax_rate:
          $ref: '#/components/schemas/AdminTaxRate'
    AdminTaxRateRule:
      type: object
      description: The tax rate rule's details.
      x-schemaName: AdminTaxRateRule
      required:
        - reference
        - reference_id
      properties:
        reference:
          type: string
          title: reference
          description: The name of the table this rule references.
          example: product_type
        reference_id:
          type: string
          title: reference_id
          description: The ID of a record in the table that this rule references.
          example: ptyp_1
    AdminTaxRegion:
      type: object
      description: The tax region's details.
      x-schemaName: AdminTaxRegion
      required:
        - id
        - country_code
        - province_code
        - metadata
        - parent_id
        - created_at
        - updated_at
        - deleted_at
        - created_by
        - tax_rates
        - parent
        - children
      properties:
        id:
          type: string
          title: id
          description: The tax region's ID.
        country_code:
          type: string
          title: country_code
          description: The tax region's country code.
          example: us
        province_code:
          type: string
          title: province_code
          description: The tax region's lower-case ISO 3166-2 province code.
          example: us-ca
          externalDocs:
            url: https://en.wikipedia.org/wiki/ISO_3166-2
            description: Learn more about ISO 3166-2
        metadata:
          type: object
          description: The tax region's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        parent_id:
          type: string
          title: parent_id
          description: The ID of the parent tax region.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the tax region was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the tax region was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the tax region was deleted.
        created_by:
          type: string
          title: created_by
          description: The ID of the user that created the tax region.
        tax_rates:
          type: array
          description: The tax region's rates.
          items:
            type: object
        parent:
          type: object
        children:
          type: array
          description: The tax region's children.
          items:
            type: object
    AdminTaxRegionDeleteResponse:
      type: object
      description: The details of the tax region deletion.
      x-schemaName: AdminTaxRegionDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The tax region's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: tax_region
        deleted:
          type: boolean
          title: deleted
          description: Whether the tax region was deleted.
    AdminTaxRegionResponse:
      type: object
      description: The tax region's details.
      x-schemaName: AdminTaxRegionResponse
      required:
        - tax_region
      properties:
        tax_region:
          $ref: '#/components/schemas/AdminTaxRegion'
    AdminTransaction:
      type: object
      description: The transaction's details.
      x-schemaName: AdminTransaction
      required:
        - account
        - id
        - account_id
        - type
        - amount
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The transaction's ID.
        account_id:
          type: string
          title: account_id
          description: The ID of the store credit account that the transaction belongs to.
        type:
          type: string
          description: The transaction's type.
          enum:
            - credit
            - debit
        amount:
          type: number
          title: amount
          description: The transaction's amount.
        account:
          $ref: '#/components/schemas/AdminStoreCreditAccount'
        note:
          type: string
          title: note
          description: The transaction's note.
        reference:
          type: string
          title: reference
          description: The transaction's reference.
        reference_id:
          type: string
          title: reference_id
          description: The transaction's reference ID.
        metadata:
          type: object
          description: The transaction's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the transaction was created at.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the transaction was updated at.
    AdminTransactionGroup:
      type: object
      description: The transaction group's details.
      x-schemaName: AdminTransactionGroup
      required:
        - account
        - id
        - code
        - credits
        - debits
        - balance
        - metadata
      properties:
        id:
          type: string
          title: id
          description: The transaction group's ID.
        code:
          type: string
          title: code
          description: The transaction group's code.
        credits:
          type: number
          title: credits
          description: The transaction group's credits.
        debits:
          type: number
          title: debits
          description: The transaction group's debits.
        balance:
          type: number
          title: balance
          description: The transaction group's balance.
        account:
          type: object
        metadata:
          type: object
          description: The transaction group's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminTransactionsResponse:
      type: object
      description: The paginated list of transactions.
      x-schemaName: AdminTransactionsResponse
      required:
        - limit
        - offset
        - count
        - transactions
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of transactions to return.
        offset:
          type: number
          title: offset
          description: The number of transactions to skip before retrieving the results.
        count:
          type: number
          title: count
          description: The total number of transactions available.
        transactions:
          type: array
          description: The list of transactions.
          items:
            $ref: '#/components/schemas/AdminTransaction'
        estimate_count:
          type: number
          title: estimate_count
          description: The store credit account's estimate count.
          x-featureFlag: index_engine
    AdminTranslation:
      type: object
      description: The translation's details.
      x-schemaName: AdminTranslation
      required:
        - id
        - reference_id
        - reference
        - locale_code
        - translations
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The translation's ID.
        reference_id:
          type: string
          title: reference_id
          description: The ID of the resource that the translation belongs to. For example, the ID of a product.
          example: prod_123
        reference:
          type: string
          title: reference
          description: The resource that the translation belongs to.
          example: product
        locale_code:
          type: string
          title: locale_code
          description: The translation's locale code in BCP 47 format.
          example: fr-FR
        translations:
          type: object
          description: The translation key-value pairs. Each key is a field in the resource, and the value is the translated text.
          example:
            title: Chaussures
            description: Des chaussures élégantes.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date that the translation was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date that the translation was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date that the translation was deleted.
    AdminTranslationEntitiesResponse:
      type: object
      description: The list of translatable entities.
      x-schemaName: AdminTranslationEntitiesResponse
      required:
        - data
        - count
        - offset
        - limit
      properties:
        data:
          type: array
          description: The list of translatable entities.
          items:
            allOf:
              - type: object
                description: The entity's data.
                required:
                  - id
                  - translations
                properties:
                  id:
                    type: string
                    title: id
                    description: The entity's ID.
                  translations:
                    type: array
                    description: The entity's translations.
                    items:
                      $ref: '#/components/schemas/AdminTranslation'
        count:
          type: number
          title: count
          description: The total number of translatable entities.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned items.
        limit:
          type: number
          title: limit
          description: The maximum number of items returned in the response.
    AdminTranslationSettings:
      type: object
      description: The translation settings details.
      x-schemaName: AdminTranslationSettings
      required:
        - id
        - created_at
        - updated_at
        - deleted_at
        - entity_type
        - fields
        - is_active
      properties:
        id:
          type: string
          title: id
          description: The ID of the translation settings.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the translation settings was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the translation settings was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the translation settings was deleted.
        entity_type:
          type: string
          title: entity_type
          description: The entity type the translation settings are for.
          example: product
        fields:
          type: array
          description: The fields supported for translations.
          items:
            type: string
            title: fields
            description: A field supported for translations.
        is_active:
          type: boolean
          title: is_active
          description: Whether translations are active for the given entity type.
    AdminTranslationSettingsResponse:
      type: object
      description: The translation settings' details.
      x-schemaName: AdminTranslationSettingsResponse
      required:
        - translation_settings
      properties:
        translation_settings:
          type: object
          description: The translation settings details.
    AdminTranslationStatisticsResponse:
      type: object
      description: The translation statistics details.
      x-schemaName: AdminTranslationStatisticsResponse
      required:
        - statistics
      properties:
        statistics:
          type: object
          description: The translation statistics for different entity types. The key is the entity type, and the value is an object containing the statistics for that entity type.
          example:
            product:
              expected: 150
              translated: 120
              missing: 30
              by_locale:
                fr-FR:
                  expected: 150
                  translated: 120
                  missing: 30
          required:
            - by_locale
            - expected
            - translated
            - missing
          additionalProperties:
            type: object
            properties:
              by_locale:
                type: object
                description: The translation statistics of an entity type broken down by locale. The key is the locale code in BCP 47 format, and the value is an object containing the statistics for that locale.
                example:
                  fr-FR:
                    expected: 150
                    translated: 120
                    missing: 30
                required:
                  - expected
                  - translated
                  - missing
                additionalProperties:
                  type: object
                  properties:
                    expected:
                      type: number
                      title: expected
                      description: The total number of translatable fields.
                    translated:
                      type: number
                      title: translated
                      description: The number of translated fields.
                    missing:
                      type: number
                      title: missing
                      description: The number of fields that are yet to be translated.
              expected:
                type: number
                title: expected
                description: The total number of translatable fields across specified locales.
              translated:
                type: number
                title: translated
                description: The number of translated fields across specified locales.
              missing:
                type: number
                title: missing
                description: The number of fields that are yet to be translated across specified locales.
    AdminTranslationsBatchResponse:
      type: object
      description: The batch response for managing translations.
      x-schemaName: AdminTranslationsBatchResponse
      required:
        - created
        - updated
        - deleted
      properties:
        created:
          type: array
          description: The created translations.
          items:
            $ref: '#/components/schemas/AdminTranslation'
        updated:
          type: array
          description: The updated translations.
          items:
            $ref: '#/components/schemas/AdminTranslation'
        deleted:
          type: object
          description: Summary of the deleted translations.
          required:
            - ids
            - object
            - deleted
          properties:
            ids:
              type: array
              description: The IDs of the deleted translations.
              items:
                type: string
                title: ids
                description: A translation ID.
            object:
              type: string
              title: object
              description: The type of object deleted.
              default: translation
            deleted:
              type: boolean
              title: deleted
              description: Whether the translations were successfully deleted.
    AdminUpdateApiKey:
      type: object
      description: The details to update in an API key.
      x-schemaName: AdminUpdateApiKey
      required:
        - title
      properties:
        title:
          type: string
          title: title
          description: The API key's title.
    AdminUpdateClaimItem:
      type: object
      description: The details to update in the item.
      x-schemaName: AdminUpdateClaimItem
      properties:
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        reason_id:
          type: string
          title: reason_id
          description: The ID of the return reason associated with the item.
        internal_note:
          type: string
          title: internal_note
          description: A note that's only viewed by admin users.
    AdminUpdateClaimOutboundItem:
      type: object
      description: The details to update in the item.
      x-schemaName: AdminUpdateClaimOutboundItem
      properties:
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        reason_id:
          type: string
          title: reason_id
          description: The ID of the return reason associated with the item.
        internal_note:
          type: string
          title: internal_note
          description: A note that's only viewed by admin users.
    AdminUpdateCustomerGroup:
      type: object
      description: The details to update in a customer group.
      x-schemaName: AdminUpdateCustomerGroup
      properties:
        name:
          type: string
          title: name
          description: The customer group's name.
        metadata:
          type: object
          description: The customer group's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminUpdateDraftOrder:
      type: object
      description: The data to update in the draft order.
      x-schemaName: AdminUpdateDraftOrder
      properties:
        email:
          type: string
          title: email
          description: The customer email associated with the draft order.
          format: email
        shipping_address:
          $ref: '#/components/schemas/OrderAddress'
        billing_address:
          $ref: '#/components/schemas/OrderAddress'
        metadata:
          type: object
          description: The draft order's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer associated with the draft order.
        sales_channel_id:
          type: string
          title: sales_channel_id
          description: The ID of the sales channel associated with the draft order.
    AdminUpdateDraftOrderActionShippingMethod:
      type: object
      description: The updates to make on a changed shipping method.
      x-schemaName: AdminUpdateDraftOrderActionShippingMethod
      required:
        - shipping_option_id
      properties:
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the associated shipping option.
        custom_amount:
          type: number
          title: custom_amount
          description: The custom amount of the shipping method. If not provided, the shipping option's amount will be used.
        description:
          type: string
          title: description
          description: The shipping method's description.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users about the shipping method.
        metadata:
          type: object
          description: The shipping method's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminUpdateDraftOrderItem:
      type: object
      description: The updates to make on a draft order's item.
      x-schemaName: AdminUpdateDraftOrderItem
      required:
        - quantity
      properties:
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        unit_price:
          type: number
          title: unit_price
          description: The item's unit price.
        compare_at_unit_price:
          type: number
          title: compare_at_unit_price
          description: The original price of the item before a promotion or sale.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users about the item.
    AdminUpdateDraftOrderShippingMethod:
      type: object
      description: The updates to make on a draft order's shipping method.
      x-schemaName: AdminUpdateDraftOrderShippingMethod
      properties:
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the associated shipping option.
        custom_amount:
          type: number
          title: custom_amount
          description: The custom amount of the shipping method. If not provided, the shipping option's amount will be used.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users about the shipping method.
    AdminUpdateExchangeOutboundItem:
      type: object
      description: The details to update in an outbound item.
      x-schemaName: AdminUpdateExchangeOutboundItem
      properties:
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        internal_note:
          type: string
          title: internal_note
          description: A note only viewed by admin users.
    AdminUpdateFulfillmentSetServiceZone:
      type: object
      description: The service zone's details.
      properties:
        name:
          type: string
          title: name
          description: The service zone's name.
        geo_zones:
          type: array
          description: The service zone's associated geo zones.
          items:
            oneOf:
              - type: object
                description: A country geo zone.
                required:
                  - type
                  - metadata
                  - country_code
                properties:
                  type:
                    type: string
                    title: type
                    description: The geo zone's type.
                    default: country
                  metadata:
                    type: object
                    description: The geo zone's metadata.
                    externalDocs:
                      url: https://docs.medusajs.com/api/admin#manage-metadata
                      description: Learn how to manage metadata
                  country_code:
                    type: string
                    title: country_code
                    description: The geo zone's country code.
                  id:
                    type: string
                    title: id
                    description: The ID of an existing geo zone.
              - type: object
                description: A province geo zone.
                required:
                  - type
                  - metadata
                  - country_code
                  - province_code
                properties:
                  type:
                    type: string
                    title: type
                    description: The geo zone's type.
                    default: province
                  metadata:
                    type: object
                    description: The geo zone's metadata.
                    externalDocs:
                      url: https://docs.medusajs.com/api/admin#manage-metadata
                      description: Learn how to manage metadata
                  country_code:
                    type: string
                    title: country_code
                    description: The geo zone's country code.
                  province_code:
                    type: string
                    title: province_code
                    description: The geo zone's ISO 3166-2 province code. Must be lower-case.
                    example: us-ca
                    externalDocs:
                      url: https://en.wikipedia.org/wiki/ISO_3166-2
                      description: Learn more about ISO 3166-2
                  id:
                    type: string
                    title: id
                    description: The ID of an existing geo zone.
              - type: object
                description: A city geo zone
                required:
                  - type
                  - metadata
                  - city
                  - country_code
                  - province_code
                properties:
                  type:
                    type: string
                    title: type
                    description: The geo zone's type.
                    default: city
                  metadata:
                    type: object
                    description: The geo zone's metadata.
                    externalDocs:
                      url: https://docs.medusajs.com/api/admin#manage-metadata
                      description: Learn how to manage metadata
                  city:
                    type: string
                    title: city
                    description: The geo zone's city.
                  country_code:
                    type: string
                    title: country_code
                    description: The geo zone's country code.
                  province_code:
                    type: string
                    title: province_code
                    description: The geo zone's ISO 3166-2 province code. Must be lower-case.
                    example: us-ca
                    externalDocs:
                      url: https://en.wikipedia.org/wiki/ISO_3166-2
                      description: Learn more about ISO 3166-2
                  id:
                    type: string
                    title: id
                    description: The ID of an existing geo zone.
              - type: object
                description: A ZIP geo zone.
                required:
                  - type
                  - metadata
                  - city
                  - country_code
                  - province_code
                  - postal_expression
                properties:
                  type:
                    type: string
                    title: type
                    description: The geo zone's type.
                    default: zip
                  metadata:
                    type: object
                    description: The geo zone's metadata.
                    externalDocs:
                      url: https://docs.medusajs.com/api/admin#manage-metadata
                      description: Learn how to manage metadata
                  city:
                    type: string
                    title: city
                    description: The geo zone's city.
                  country_code:
                    type: string
                    title: country_code
                    description: The geo zone's country code.
                  province_code:
                    type: string
                    title: province_code
                    description: The geo zone's ISO 3166-2 province code. Must be lower-case.
                    example: us-ca
                    externalDocs:
                      url: https://en.wikipedia.org/wiki/ISO_3166-2
                      description: Learn more about ISO 3166-2
                  postal_expression:
                    type: object
                    description: The geo zone's postal expression or ZIP code.
                  id:
                    type: string
                    title: id
                    description: The ID of an existing geo zone.
      x-schemaName: AdminUpdateFulfillmentSetServiceZone
    AdminUpdateGiftCardParams:
      type: object
      description: The details to update in the gift card.
      x-schemaName: AdminUpdateGiftCardParams
      properties:
        status:
          type: string
          description: The gift card's status.
          enum:
            - pending
            - redeemed
        value:
          type: number
          title: value
          description: The gift card's amount.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer that the gift card belongs to.
        currency_code:
          type: string
          title: currency_code
          description: The gift card's currency code.
          example: usd
        note:
          type: string
          title: note
          description: The gift card's note.
        expires_at:
          type: string
          title: expires_at
          description: The date the gift card expires at.
        metadata:
          type: object
          description: The gift card's metadata.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminUpdateInventoryItem:
      type: object
      description: The properties to update in the inventory item.
      properties:
        sku:
          type: string
          title: sku
          description: The inventory item's SKU.
        hs_code:
          type: string
          title: hs_code
          description: The inventory item's HS code.
        weight:
          type: number
          title: weight
          description: The inventory item's weight.
        length:
          type: number
          title: length
          description: The inventory item's length.
        height:
          type: number
          title: height
          description: The inventory item's height.
        width:
          type: number
          title: width
          description: The inventory item's width.
        origin_country:
          type: string
          title: origin_country
          description: The inventory item's origin country.
        mid_code:
          type: string
          title: mid_code
          description: The inventory item's MID code.
        material:
          type: string
          title: material
          description: The inventory item's material.
        title:
          type: string
          title: title
          description: The inventory item's title.
        description:
          type: string
          title: description
          description: The inventory item's description.
        requires_shipping:
          type: boolean
          title: requires_shipping
          description: Whether the inventory item requires shipping.
        thumbnail:
          type: string
          title: thumbnail
          description: The URL of an image to be used as the inventory item's thumbnail. You can use the Upload API routes to upload an image and get its URL.
        metadata:
          type: object
          description: The inventory item's metadata. Can be custom data in key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
      x-schemaName: AdminUpdateInventoryItem
    AdminUpdateInventoryLevel:
      type: object
      description: The properties to update in the inventory level.
      properties:
        stocked_quantity:
          type: number
          title: stocked_quantity
          description: The inventory level's stocked quantity.
        incoming_quantity:
          type: number
          title: incoming_quantity
          description: The inventory level's incoming quantity.
      x-schemaName: AdminUpdateInventoryLevel
    AdminUpdateOrder:
      type: object
      description: The details to update in the order.
      x-schemaName: AdminUpdateOrder
      properties:
        email:
          type: string
          title: email
          description: The order's email.
          format: email
        shipping_address:
          $ref: '#/components/schemas/OrderAddress'
        billing_address:
          $ref: '#/components/schemas/OrderAddress'
        metadata:
          type: object
          description: The order's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        locale:
          type: string
          title: locale
          description: The order's locale in [BCP 47](https://gist.github.com/typpo/b2b828a35e683b9bf8db91b5404f1bd1) format.
          example: en-US
    AdminUpdateOrderChange:
      type: object
      description: The data to update in the order change.
      x-schemaName: AdminUpdateOrderChange
      properties:
        carry_over_promotions:
          type: boolean
          title: carry_over_promotions
          description: Whether promotions from the original order should be carried over to the order change (specifically, exchanges).
    AdminUpdatePriceList:
      type: object
      description: the details to update in a price list.
      x-schemaName: AdminUpdatePriceList
      properties:
        title:
          type: string
          title: title
          description: The price list's title.
        description:
          type: string
          title: description
          description: The price list's description.
        starts_at:
          type: string
          title: starts_at
          description: The date the price list starts.
        ends_at:
          type: string
          title: ends_at
          description: The date the price list ends.
        status:
          type: string
          description: The price list's status.
          enum:
            - active
            - draft
        type:
          type: string
          description: The price list's type.
          enum:
            - sale
            - override
        rules:
          type: object
          description: The price list's rules.
          example:
            customer_group_id:
              - cusgrp_123
    AdminUpdatePricePreference:
      type: object
      description: The details to update in the price preference.
      x-schemaName: AdminUpdatePricePreference
      properties:
        attribute:
          type: string
          title: attribute
          description: The price preference's attribute.
          example: region_id
        value:
          type: string
          title: value
          description: The price preference's value.
          example: reg_123
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: Whether prices are tax inclusive for this price preference.
    AdminUpdateProduct:
      type: object
      description: The product's details.
      x-schemaName: AdminUpdateProduct
      properties:
        title:
          type: string
          title: title
          description: The product's title.
        subtitle:
          type: string
          title: subtitle
          description: The product's subtitle.
        description:
          type: string
          title: description
          description: The product's description.
        is_giftcard:
          type: boolean
          title: is_giftcard
          description: Whether the product is a gift card.
        discountable:
          type: boolean
          title: discountable
          description: Whether discounts can be applied on the product.
        images:
          type: array
          description: The product's images.
          items:
            type: object
            description: The image's details.
            required:
              - url
            properties:
              url:
                type: string
                title: url
                description: The image's URL.
        thumbnail:
          type: string
          title: thumbnail
          description: The product's thumbnail URL.
        handle:
          type: string
          title: handle
          description: The product's unique handle.
        status:
          type: string
          description: The product's status.
          enum:
            - draft
            - proposed
            - published
            - rejected
        type_id:
          type: string
          title: type_id
          description: The ID of the product's type.
        collection_id:
          type: string
          title: collection_id
          description: The ID of the product's collection.
        categories:
          type: array
          description: The product's categories.
          items:
            type: object
            description: The product's category.
            required:
              - id
            properties:
              id:
                type: string
                title: id
                description: The category's ID.
        tags:
          type: array
          description: The product's tags.
          items:
            type: object
            description: The product's tag.
            required:
              - id
            properties:
              id:
                type: string
                title: id
                description: The tag's ID.
        options:
          type: array
          description: The product's options.
          items:
            $ref: '#/components/schemas/AdminUpdateProductOption'
        variants:
          type: array
          description: The product's variants. You can add new variants or update existing ones, passing their IDs in the object.
          items:
            oneOf:
              - $ref: '#/components/schemas/AdminCreateProductVariant'
              - $ref: '#/components/schemas/AdminUpdateProductVariant'
        sales_channels:
          type: array
          description: The sales channels that the product is available in.
          items:
            type: object
            description: The sales channel's details.
            required:
              - id
            properties:
              id:
                type: string
                title: id
                description: The sales channel's ID.
        weight:
          type: number
          title: weight
          description: The product's weight.
        length:
          type: number
          title: length
          description: The product's length.
        height:
          type: number
          title: height
          description: The product's height.
        width:
          type: number
          title: width
          description: The product's width.
        hs_code:
          type: string
          title: hs_code
          description: The product's HS code.
        mid_code:
          type: string
          title: mid_code
          description: The product's MID code.
        origin_country:
          type: string
          title: origin_country
          description: The product's origin country.
        material:
          type: string
          title: material
          description: The product's material.
        metadata:
          type: object
          description: The product's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        external_id:
          type: string
          title: external_id
          description: The ID of the product in an external or third-party system.
    AdminUpdateProductCategory:
      type: object
      description: The properties to update in the product category.
      properties:
        name:
          type: string
          title: name
          description: The product category's name.
        description:
          type: string
          title: description
          description: The product category's description.
        handle:
          type: string
          title: handle
          description: The product category's handle. Must be a unique value.
        is_internal:
          type: boolean
          title: is_internal
          description: Whether the product category is only used for internal purposes and shouldn't be shown the customer.
        is_active:
          type: boolean
          title: is_active
          description: Whether the product category is active.
        parent_category_id:
          type: string
          title: parent_category_id
          description: The ID of a parent category.
        metadata:
          type: object
          description: The product category's metadata. Can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        rank:
          type: number
          title: rank
          description: The product category's rank among other categories.
      x-schemaName: AdminUpdateProductCategory
    AdminUpdateProductOption:
      type: object
      description: The details to update in a product option.
      x-schemaName: AdminUpdateProductOption
      properties:
        title:
          type: string
          title: title
          description: The option's title.
        values:
          type: array
          description: The option's values.
          items:
            type: string
            title: values
            description: An option value.
    AdminUpdateProductTag:
      type: object
      description: The properties to update in the product tag.
      properties:
        value:
          type: string
          title: value
          description: The product tag's value.
        metadata:
          type: object
          description: The product tag's metadata. Can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
      x-schemaName: AdminUpdateProductTag
    AdminUpdateProductType:
      type: object
      description: The properties to update in the product type.
      properties:
        value:
          type: string
          title: value
          description: The product type's value.
        metadata:
          type: object
          description: The product type's metadata. Can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
      x-schemaName: AdminUpdateProductType
    AdminUpdateProductVariant:
      type: object
      description: The properties to update of a product variant.
      x-schemaName: AdminUpdateProductVariant
      properties:
        title:
          type: string
          title: title
          description: The product variant's title.
        sku:
          type: string
          title: sku
          description: The product variant's SKU.
        ean:
          type: string
          title: ean
          description: The product variant's EAN.
        upc:
          type: string
          title: upc
          description: The product variant's UPC.
        barcode:
          type: string
          title: barcode
          description: The product variant's barcode.
        hs_code:
          type: string
          title: hs_code
          description: The product variant's HS code.
        mid_code:
          type: string
          title: mid_code
          description: The product variant's MID code.
        allow_backorder:
          type: boolean
          title: allow_backorder
          description: Whether customers can order the variant even if it's not in stock.
        manage_inventory:
          type: boolean
          title: manage_inventory
          description: Whether the Medusa application manages the variant's inventory. If disabled, the product variant is always considered in stock.
        variant_rank:
          type: number
          title: variant_rank
          description: The product variant's rank among its siblings.
        weight:
          type: number
          title: weight
          description: The product variant's weight.
        length:
          type: number
          title: length
          description: The product variant's length.
        height:
          type: number
          title: height
          description: The product variant's height.
        width:
          type: number
          title: width
          description: The product variant's width.
        origin_country:
          type: string
          title: origin_country
          description: The product variant's origin country.
        material:
          type: string
          title: material
          description: The product variant's material.
        metadata:
          type: object
          description: The product variant's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        prices:
          type: array
          description: The product variant's prices.
          items:
            $ref: '#/components/schemas/AdminCreateProductVariantPrice'
        options:
          type: object
          description: The product variant's options.
    AdminUpdatePromotionRule:
      type: object
      description: The properties to update in a buy rule.
      required:
        - id
        - values
      properties:
        id:
          type: string
          title: id
          description: The buy rule's ID.
        operator:
          type: string
          description: The operator used to check whether the buy rule applies on a cart. For example, `eq` means that the cart's value for the specified attribute must match the specified value.
          enum:
            - gte
            - lte
            - gt
            - lt
            - eq
            - ne
            - in
        description:
          type: string
          title: description
          description: The buy rule's description.
        attribute:
          type: string
          title: attribute
          description: The attribute to compare against when checking whether a promotion can be applied on a cart.
          example: items.product.id
        values:
          oneOf:
            - type: string
              title: values
              description: The attribute's value.
              example: prod_123
            - type: array
              description: The allowed attribute values.
              items:
                type: string
                title: values
                description: An attribute value.
                example: prod_123
      x-schemaName: AdminUpdatePromotionRule
    AdminUpdateRefundReason:
      type: object
      description: The properties to update in the refund reason.
      properties:
        label:
          type: string
          title: label
          description: The refund reason's label.
        description:
          type: string
          title: description
          description: The refund reason's description.
        code:
          type: string
          title: code
          description: The refund reason's code.
        metadata:
          type: object
          description: The refund reason's metadata.
      x-schemaName: AdminUpdateRefundReason
      required:
        - label
        - code
    AdminUpdateRegion:
      type: object
      description: The propeties to update in the region.
      properties:
        name:
          type: string
          title: name
          description: The region's name.
        currency_code:
          type: string
          title: currency_code
          description: The region's currency code.
        countries:
          type: array
          description: The region's countries.
          items:
            type: string
            title: countries
            description: A country code.
        automatic_taxes:
          type: boolean
          title: automatic_taxes
          description: Whether taxes are calculated automatically for carts in the region.
        payment_providers:
          type: array
          description: The payment providers enabled in the region.
          items:
            type: string
            title: payment_providers
            description: A payment provider's ID.
        metadata:
          type: object
          description: The region's metadata. Can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: Whether the prices in the region are tax inclusive.
      x-schemaName: AdminUpdateRegion
    AdminUpdateReservation:
      type: object
      description: The properties to update in the reservation.
      properties:
        location_id:
          type: string
          title: location_id
          description: The ID of the associated location.
        quantity:
          type: number
          title: quantity
          description: The reserved quantity.
        description:
          type: string
          title: description
          description: The reservation's description.
        metadata:
          type: object
          description: The reservation's metadata. Can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
      x-schemaName: AdminUpdateReservation
    AdminUpdateReturnItems:
      type: object
      description: The details to update in the item.
      x-schemaName: AdminUpdateReturnItems
      properties:
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users.
        reason_id:
          type: string
          title: reason_id
          description: The ID of the associated return reason.
        metadata:
          type: object
          description: The claim's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminUpdateReturnReason:
      type: object
      description: The details to update in a return reason.
      x-schemaName: AdminUpdateReturnReason
      properties:
        label:
          type: string
          title: label
          description: The return reason's label.
        value:
          type: string
          title: value
          description: The return reason's value.
        description:
          type: string
          title: description
          description: The return reason's description.
        metadata:
          type: object
          description: The return reason's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
      required:
        - value
        - label
    AdminUpdateReturnRequest:
      type: object
      description: The return's details.
      x-schemaName: AdminUpdateReturnRequest
      properties:
        location_id:
          type: string
          title: location_id
          description: The ID of the location to return items to.
        no_notification:
          type: boolean
          title: no_notification
          description: Whether the customer should receive notifications about updates to the return.
        metadata:
          type: object
          description: The return's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminUpdateReturnShipping:
      type: object
      description: The shipping method's details.
      x-schemaName: AdminUpdateReturnShipping
      properties:
        custom_amount:
          type: number
          title: custom_amount
          description: Set a custom price for the shipping method.
        internal_note:
          type: string
          title: internal_note
          description: A note viewed only by admin users.
        metadata:
          type: object
          description: The return's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminUpdateSalesChannel:
      type: object
      description: The properties to update in the sales channel.
      x-schemaName: AdminUpdateSalesChannel
      properties:
        name:
          type: string
          title: name
          description: The sales channel's name.
        description:
          type: string
          title: description
          description: The sales channel's description.
        is_disabled:
          type: boolean
          title: is_disabled
          description: Whether the sales channel is disabled.
        metadata:
          type: object
          description: The sales channel's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminUpdateShippingOption:
      type: object
      description: The properties to update in the shipping option type.
      properties:
        name:
          type: string
          title: name
          description: The shipping option's name.
        data:
          type: object
          description: The shipping option's data.
        price_type:
          type: string
          description: The shipping option's price type.
          enum:
            - flat
            - calculated
        provider_id:
          type: string
          title: provider_id
          description: The shipping option's provider id.
        shipping_profile_id:
          type: string
          title: shipping_profile_id
          description: The shipping option's shipping profile id.
        type:
          $ref: '#/components/schemas/AdminCreateShippingOptionType'
        type_id:
          type: string
          title: type_id
          description: The shipping option's type id.
        prices:
          type: array
          description: The shipping option's prices.
          items:
            oneOf:
              - type: object
                description: The price's prices.
                x-schemaName: AdminUpdateShippingOptionPriceWithCurrency
                properties:
                  id:
                    type: string
                    title: id
                    description: The price's ID.
                  currency_code:
                    type: string
                    title: currency_code
                    description: The price's currency code.
                  amount:
                    type: number
                    title: amount
                    description: The price's amount.
                  rules:
                    type: array
                    description: The price's rules.
                    items:
                      type: object
                      description: The rule's rules.
                      x-schemaName: PriceRule
                      required:
                        - attribute
                        - operator
                        - value
                      properties:
                        attribute:
                          type: string
                          title: attribute
                          description: The rule's attribute.
                        operator:
                          type: string
                          description: The rule's operator.
                          enum:
                            - gt
                            - lt
                            - eq
                            - lte
                            - gte
                        value:
                          type: number
                          title: value
                          description: The rule's value.
              - type: object
                description: The price's prices.
                x-schemaName: AdminUpdateShippingOptionPriceWithRegion
                properties:
                  id:
                    type: string
                    title: id
                    description: The price's ID.
                  region_id:
                    type: string
                    title: region_id
                    description: The price's region id.
                  amount:
                    type: number
                    title: amount
                    description: The price's amount.
                  rules:
                    type: array
                    description: The price's rules.
                    items:
                      type: object
                      description: The rule's rules.
                      x-schemaName: PriceRule
                      required:
                        - attribute
                        - operator
                        - value
                      properties:
                        attribute:
                          type: string
                          title: attribute
                          description: The rule's attribute.
                        operator:
                          type: string
                          description: The rule's operator.
                          enum:
                            - gt
                            - lt
                            - eq
                            - lte
                            - gte
                        value:
                          type: number
                          title: value
                          description: The rule's value.
        rules:
          type: array
          description: The shipping option's rules.
          items:
            oneOf:
              - type: object
                description: The rule's rules.
                x-schemaName: AdminCreateShippingOptionRule
                required:
                  - operator
                  - attribute
                  - value
                properties:
                  operator:
                    type: string
                    description: The rule's operator.
                    enum:
                      - gt
                      - lt
                      - eq
                      - ne
                      - in
                      - lte
                      - gte
                      - nin
                  attribute:
                    type: string
                    title: attribute
                    description: The rule's attribute.
                  value:
                    oneOf:
                      - type: string
                        title: value
                        description: The rule's value.
                      - type: array
                        description: The rule's value.
                        items:
                          type: string
                          title: value
                          description: The value's details.
              - type: object
                description: The rule's rules.
                x-schemaName: AdminUpdateShippingOptionRule
                required:
                  - id
                  - operator
                  - attribute
                  - value
                properties:
                  id:
                    type: string
                    title: id
                    description: The rule's ID.
                  operator:
                    type: string
                    description: The rule's operator.
                    enum:
                      - gt
                      - lt
                      - eq
                      - ne
                      - in
                      - lte
                      - gte
                      - nin
                  attribute:
                    type: string
                    title: attribute
                    description: The rule's attribute.
                  value:
                    oneOf:
                      - type: string
                        title: value
                        description: The rule's value.
                      - type: array
                        description: The rule's value.
                        items:
                          type: string
                          title: value
                          description: The value's details.
        metadata:
          type: object
          description: The shipping option's metadata.
      x-schemaName: AdminUpdateShippingOption
    AdminUpdateShippingOptionRule:
      type: object
      description: The properties to update in the shipping option rule.
      required:
        - id
        - operator
        - attribute
        - value
      properties:
        id:
          type: string
          title: id
          description: The rule's ID.
        operator:
          type: string
          description: The operator used to check whether a rule applies.
          enum:
            - in
            - eq
            - ne
            - gt
            - gte
            - lt
            - lte
            - nin
        attribute:
          type: string
          title: attribute
          description: The name of a property or table that the rule applies to.
          example: customer_group
        value:
          oneOf:
            - type: string
              title: value
              description: A value of the attribute that enables this rule.
              example: cusgroup_123
            - type: array
              description: Values of the attribute that enable this rule.
              items:
                type: string
                title: value
                description: A value of the attribute that enables this rule.
                example: cusgroup_123
      x-schemaName: AdminUpdateShippingOptionRule
    AdminUpdateShippingOptionType:
      type: object
      description: The properties to update in the shipping option type.
      properties:
        code:
          type: string
          title: code
          description: The shipping option type's code.
        description:
          type: string
          title: description
          description: The shipping option type's description.
        label:
          type: string
          title: label
          description: The shipping option type's label.
      x-schemaName: AdminUpdateShippingOptionType
    AdminUpdateShippingProfile:
      type: object
      description: The properties to update in the shipping profile.
      properties:
        name:
          type: string
          title: name
          description: The shipping profile's name.
        type:
          type: string
          title: type
          description: The shipping profile's type.
        metadata:
          type: object
          description: The shipping profile's metadata.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
      x-schemaName: AdminUpdateShippingProfile
    AdminUpdateStockLocation:
      type: object
      description: The properties to update in a stock location.
      x-schemaName: AdminUpdateStockLocation
      properties:
        name:
          type: string
          title: name
          description: The stock location's name.
        address:
          $ref: '#/components/schemas/AdminUpsertStockLocationAddress'
        address_id:
          type: string
          title: address_id
          description: The ID of an existing stock location address to associate the stock location with.
        metadata:
          type: object
          description: The stock location's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminUpdateStore:
      type: object
      description: The properties to update in a store.
      x-schemaName: AdminUpdateStore
      properties:
        name:
          type: string
          title: name
          description: The store's name.
        supported_currencies:
          type: array
          description: The store's supported currencies.
          items:
            $ref: '#/components/schemas/AdminUpdateStoreSupportedCurrency'
        default_sales_channel_id:
          type: string
          title: default_sales_channel_id
          description: The ID of the default sales channel in the store.
        default_region_id:
          type: string
          title: default_region_id
          description: The ID of the default region in the store.
        default_location_id:
          type: string
          title: default_location_id
          description: The ID of the default stock location in the store.
        metadata:
          type: object
          description: The store's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        supported_locales:
          type: array
          description: The store's supported locales.
          items:
            $ref: '#/components/schemas/AdminUpdateStoreSupportedLocale'
    AdminUpdateStoreSupportedCurrency:
      type: object
      description: The details to update in a supported currency of the store.
      required:
        - currency_code
      properties:
        currency_code:
          type: string
          title: currency_code
          description: The currency's code.
          example: usd
        is_default:
          type: boolean
          title: is_default
          description: Whether the currency is the default in the store.
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: Whether prices using this currency are tax inclusive.
      x-schemaName: AdminUpdateStoreSupportedCurrency
    AdminUpdateStoreSupportedLocale:
      type: object
      description: The payload to update a store's supported locale.
      x-schemaName: AdminUpdateStoreSupportedLocale
      required:
        - locale_code
      properties:
        locale_code:
          type: string
          title: locale_code
          description: The locale's code in [BCP 47 format](https://gist.github.com/typpo/b2b828a35e683b9bf8db91b5404f1bd1).
          example: fr-FR
    AdminUpdateTaxRate:
      type: object
      description: The properties to update in the tax rate.
      x-schemaName: AdminUpdateTaxRate
      properties:
        rate:
          type: number
          title: rate
          description: The rate to charge.
        code:
          type: string
          title: code
          description: The code that the tax rate is identified by.
        rules:
          type: array
          description: The tax rate's rules.
          items:
            $ref: '#/components/schemas/AdminCreateTaxRateRule'
        name:
          type: string
          title: name
          description: The tax rate's name.
        is_default:
          type: boolean
          title: is_default
          description: Whether the tax rate is the default in the store.
        is_combinable:
          type: boolean
          title: is_combinable
          description: Whether the tax rate should be combined with parent rates.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/tax/tax-rates-and-rules#combinable-tax-rates
        metadata:
          type: object
          description: The tax rate's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
      required:
        - code
    AdminUpdateTaxRegion:
      type: object
      description: The details to update in a tax region.
      x-schemaName: AdminUpdateTaxRegion
      properties:
        province_code:
          type: string
          title: province_code
          description: The tax region's ISO 3166-2 province code. Must be lower-case.
          example: us-ca
          externalDocs:
            url: https://en.wikipedia.org/wiki/ISO_3166-2
            description: Learn more about ISO 3166-2
        metadata:
          type: object
          description: The tax region's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        provider_id:
          type: string
          title: provider_id
          description: The ID of the tax provider to use when calculating taxes for this tax region.
    AdminUpdateTranslationSettings:
      type: object
      description: The translation settings to update.
      x-schemaName: AdminUpdateTranslationSettings
      required:
        - id
      properties:
        id:
          type: string
          title: id
          description: The ID of the translation settings to update.
        entity_type:
          type: string
          title: entity_type
          description: The entity type to update the translation settings for.
        fields:
          type: array
          description: The fields to update translations for.
          items:
            type: string
            title: fields
            description: A field to update translations for.
        is_active:
          type: boolean
          title: is_active
          description: Whether translations are active for the given entity type.
    AdminUpdateUser:
      type: object
      description: The properties to update in a user.
      x-schemaName: AdminUpdateUser
      properties:
        first_name:
          type: string
          title: first_name
          description: The user's first name.
        last_name:
          type: string
          title: last_name
          description: The user's last name.
        avatar_url:
          type: string
          title: avatar_url
          description: The URL of the user's avatar.
        metadata:
          type: object
          description: The user's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
    AdminUpdateVariantInventoryItem:
      type: object
      description: The properties to update of the variant's inventory item association.
      x-schemaName: AdminUpdateVariantInventoryItem
      required:
        - required_quantity
      properties:
        required_quantity:
          type: number
          title: required_quantity
          description: The number of units a single quantity is equivalent to. For example, if a customer orders one quantity of the variant, Medusa checks the availability of the quantity multiplied by the value set for `required_quantity`. When the customer orders the quantity, Medusa reserves the ordered quantity multiplied by the value set for `required_quantity`.
    AdminUpdateViewConfiguration:
      type: object
      description: The details to update in a view configuration.
      x-schemaName: AdminUpdateViewConfiguration
      properties:
        set_active:
          type: boolean
          title: set_active
          description: Whether the view is set as active.
        name:
          type: string
          title: name
          description: The view's name.
        is_system_default:
          type: boolean
          title: is_system_default
          description: Whether the view is the system default.
        configuration:
          type: object
          description: The view's configuration.
          properties:
            search:
              type: string
              title: search
              description: The search query used in the view.
            visible_columns:
              type: array
              description: The configuration's visible columns.
              items:
                type: string
                title: visible_columns
                description: The visible column's name.
            column_order:
              type: array
              description: The columns in the order they should be displayed.
              items:
                type: string
                title: column_order
                description: The column's name.
            column_widths:
              type: object
              description: The column widths in the view.
            filters:
              type: object
              description: The filters applied to the view.
            sorting:
              type: object
              description: The sorting applied to the view.
              required:
                - id
                - desc
              properties:
                id:
                  type: string
                  title: id
                  description: The ID of the sorting column.
                desc:
                  type: boolean
                  title: desc
                  description: Whether the sorting is descending.
    AdminUploadPreSignedUrl:
      type: object
      description: The details of the file to upload.
      x-schemaName: AdminUploadPreSignedUrl
      required:
        - originalname
        - size
        - mime_type
      properties:
        originalname:
          type: string
          title: originalname
          description: The file's original name.
        size:
          type: number
          title: size
          description: The file's size in bytes.
        mime_type:
          type: string
          title: mime_type
          description: The file's mime type.
          example: text/csv
        access:
          type: string
          description: The access level of the file. If `private`, the file will not be publicly accessible. The default value depends on the configured File Module Provider.
          enum:
            - public
            - private
    AdminUploadPreSignedUrlResponse:
      type: object
      description: The result of the pre-signed URL upload request.
      x-schemaName: AdminUploadPreSignedUrlResponse
      required:
        - url
        - filename
        - originalname
        - mime_type
        - extension
        - size
      properties:
        url:
          type: string
          title: url
          description: The file's pre-signed upload URL.
        filename:
          type: string
          title: filename
          description: The file's filename.
        originalname:
          type: string
          title: originalname
          description: The file's orignal name.
        mime_type:
          type: string
          title: mime_type
          description: The file's mime type.
          example: text/csv
        extension:
          type: string
          title: extension
          description: The file's extension.
          example: csv
        size:
          type: number
          title: size
          description: The file's size in bytes.
    AdminUpsertStockLocationAddress:
      type: object
      description: The details of the stock location address to create.
      x-schemaName: AdminUpsertStockLocationAddress
      required:
        - address_1
        - country_code
      properties:
        address_1:
          type: string
          title: address_1
          description: The address's first line.
        address_2:
          type: string
          title: address_2
          description: The address's second line.
        company:
          type: string
          title: company
          description: The address's company.
        country_code:
          type: string
          title: country_code
          description: The address's country code.
          example: usd
        city:
          type: string
          title: city
          description: The address's city.
        phone:
          type: string
          title: phone
          description: The address's phone.
        postal_code:
          type: string
          title: postal_code
          description: The address's postal code.
        province:
          type: string
          title: province
          description: The address's ISO 3166-2 province code. Must be lower-case.
          example: us-ca
          externalDocs:
            url: https://en.wikipedia.org/wiki/ISO_3166-2
            description: Learn more about ISO 3166-2
    AdminUser:
      type: object
      description: The user's details.
      x-schemaName: AdminUser
      required:
        - id
        - email
        - first_name
        - last_name
        - avatar_url
        - metadata
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The user's ID.
        email:
          type: string
          title: email
          description: The user's email.
          format: email
        first_name:
          type: string
          title: first_name
          description: The user's first name.
        last_name:
          type: string
          title: last_name
          description: The user's last name.
        avatar_url:
          type: string
          title: avatar_url
          description: The URL of the user's avatar.
        metadata:
          type: object
          description: The user's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the user was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the user was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the user was deleted.
    AdminUserDeleteResponse:
      type: object
      description: The details of the deleted user.
      x-schemaName: AdminUserDeleteResponse
      required:
        - id
        - object
        - deleted
      properties:
        id:
          type: string
          title: id
          description: The user's ID.
        object:
          type: string
          title: object
          description: The name of the deleted object.
          default: user
        deleted:
          type: boolean
          title: deleted
          description: Whether the user was deleted.
    AdminUserListResponse:
      type: object
      description: The paginated list of users.
      x-schemaName: AdminUserListResponse
      required:
        - limit
        - offset
        - count
        - users
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total number of items.
        users:
          type: array
          description: The list of users.
          items:
            $ref: '#/components/schemas/AdminUser'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    AdminUserResponse:
      type: object
      description: The user's details.
      x-schemaName: AdminUserResponse
      required:
        - user
      properties:
        user:
          $ref: '#/components/schemas/AdminUser'
    AdminViewConfiguration:
      type: object
      description: The details of a view configuration.
      x-schemaName: AdminViewConfiguration
      required:
        - id
        - entity
        - name
        - user_id
        - is_system_default
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The view configuration's ID.
        entity:
          type: string
          title: entity
          description: The entity the view configuration belongs to.
        name:
          type: string
          title: name
          description: The view configuration's name.
        user_id:
          type: string
          title: user_id
          description: The ID of the user the view configuration belongs to. If `null`, the view configuration is a system default.
        is_system_default:
          type: boolean
          title: is_system_default
          description: Whether the view configuration is the system default.
        configuration:
          type: object
          description: The view's configuration.
          required:
            - visible_columns
            - column_order
          properties:
            visible_columns:
              type: array
              description: The configuration's visible columns.
              items:
                type: string
                title: visible_columns
                description: The visible column's name.
            column_order:
              type: array
              description: The columns in the order they should be displayed.
              items:
                type: string
                title: column_order
                description: The column's name.
            column_widths:
              type: object
              description: The column widths in the view.
            filters:
              type: object
              description: The filters applied to the view.
            sorting:
              type: object
              description: The sorting applied to the view.
              required:
                - id
                - desc
              properties:
                id:
                  type: string
                  title: id
                  description: The ID of the sorting column.
                desc:
                  type: boolean
                  title: desc
                  description: Whether the sorting is descending.
            search:
              type: string
              title: search
              description: The configuration's search.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the view configuration was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the view configuration was updated.
    AdminViewConfigurationResponse:
      type: object
      description: The details of a view configuration.
      x-schemaName: AdminViewConfigurationResponse
      required:
        - view_configuration
      properties:
        view_configuration:
          $ref: '#/components/schemas/AdminViewConfiguration'
    AdminViewsEntityColumnsResponse:
      type: object
      description: The view's columns.
      x-schemaName: AdminViewsEntityColumnsResponse
      required:
        - columns
      properties:
        columns:
          type: array
          description: The view's columns.
          items:
            $ref: '#/components/schemas/AdminColumn'
    AdminWorkflowExecution:
      type: object
      description: The workflows execution's details.
      x-schemaName: AdminWorkflowExecution
      required:
        - id
        - workflow_id
        - transaction_id
        - execution
        - context
        - state
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The workflow execution's ID.
        workflow_id:
          type: string
          title: workflow_id
          description: The ID of the workflow.
        transaction_id:
          type: string
          title: transaction_id
          description: The workflow execution's transaction ID.
        execution:
          $ref: '#/components/schemas/AdminWorkflowExecutionExecution'
        context:
          $ref: '#/components/schemas/WorkflowExecutionContext'
        state:
          type: string
          description: The workflow execution's state.
          enum:
            - not_started
            - invoking
            - waiting_to_compensate
            - compensating
            - done
            - reverted
            - failed
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the workflow execution was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the workflow execution was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the workflow execution was deleted.
    AdminWorkflowExecutionExecution:
      type: object
      description: The workflow execution's steps details.
      x-schemaName: AdminWorkflowExecutionExecution
      required:
        - steps
      properties:
        steps:
          type: object
          description: The execution's steps. Each object key is a step ID, and the value is the object whose properties are shown below.
          required:
            - id
            - invoke
            - definition
            - compensate
            - depth
            - startedAt
          additionalProperties:
            type: object
            properties:
              id:
                type: string
                title: id
                description: The step's ID.
              invoke:
                type: object
                description: The state of the step's invokation function.
                x-schemaName: WorkflowExecutionFn
                required:
                  - state
                  - status
                properties:
                  state:
                    type: string
                    description: The invokation step's state.
                    enum:
                      - failed
                      - not_started
                      - invoking
                      - compensating
                      - done
                      - reverted
                      - dormant
                      - skipped
                      - skipped_failure
                      - timeout
                  status:
                    type: string
                    description: The invokation step's state.
                    enum:
                      - idle
                      - ok
                      - waiting_response
                      - temp_failure
                      - permanent_failure
              definition:
                type: object
                description: The step's definition details.
                x-schemaName: WorkflowExecutionDefinition
                properties:
                  async:
                    type: boolean
                    title: async
                    description: Whether the step is async.
                  compensateAsync:
                    type: boolean
                    title: compensateAsync
                    description: Whether the compensation function of the step is async.
                  noCompensation:
                    type: boolean
                    title: noCompensation
                    description: Whether the step doesn't have a compensation function.
                  continueOnPermanentFailure:
                    type: boolean
                    title: continueOnPermanentFailure
                    description: Whether the workflow should continue executing even if its status is changed to failed.
                  skipOnPermanentFailure:
                    oneOf:
                      - type: string
                        title: skipOnPermanentFailure
                        description: The ID of the step to skip to in case of a permanent failure.
                      - type: boolean
                        title: skipOnPermanentFailure
                        description: Whether the workflow should skip subsequent steps in case of a permanent failure.
                  maxRetries:
                    type: number
                    title: maxRetries
                    description: The maximum number of times to retry the step.
                  noWait:
                    type: boolean
                    title: noWait
                    description: Whether the workflow shouldn't wait for the step to finish before moving to the next step.
                    default: false
                  retryInterval:
                    type: number
                    title: retryInterval
                    description: The interval in seconds between retry attempts when the step fails.
                  retryIntervalAwaiting:
                    type: number
                    title: retryIntervalAwaiting
                    description: The interval in seconds to retry a step even if its status is `waiting_response`.
                  saveResponse:
                    type: boolean
                    title: saveResponse
                    description: Whether the step's response is stored.
                  timeout:
                    type: number
                    title: timeout
                    description: The maximum time in seconds to wait for this step to complete. If the step exceeds this time, the step's state is changed to `timeout`, but the step continues executing.
                  autoRetry:
                    type: boolean
                    title: autoRetry
                    description: Whether the step should be automatically retried if it fails.
                  maxAwaitingRetries:
                    type: number
                    title: maxAwaitingRetries
                    description: The maximum number of times to retry the step while it's in the `waiting_response` state.
              compensate:
                type: object
                description: The state of the step's compensation function.
                x-schemaName: WorkflowExecutionFn
                required:
                  - state
                  - status
                properties:
                  state:
                    type: string
                    description: The compensation function's state.
                    enum:
                      - failed
                      - not_started
                      - invoking
                      - compensating
                      - done
                      - reverted
                      - dormant
                      - skipped
                      - skipped_failure
                      - timeout
                  status:
                    type: string
                    description: The compensation function's status.
                    enum:
                      - idle
                      - ok
                      - waiting_response
                      - temp_failure
                      - permanent_failure
              depth:
                type: number
                title: depth
                description: The step's depth in the workflow's execution.
              startedAt:
                type: number
                title: startedAt
                description: The timestamp the step started executing.
    AdminWorkflowExecutionResponse:
      type: object
      description: The workflow execution's details.
      x-schemaName: AdminWorkflowExecutionResponse
      required:
        - workflow_execution
      properties:
        workflow_execution:
          $ref: '#/components/schemas/AdminWorkflowExecution'
    ApiKeyResponse:
      type: object
      description: The API key's details.
      x-schemaName: ApiKeyResponse
      required:
        - id
        - token
        - redacted
        - title
        - type
        - last_used_at
        - created_by
        - created_at
        - revoked_by
        - revoked_at
      properties:
        id:
          type: string
          title: id
          description: The API key's ID.
        token:
          type: string
          title: token
          description: The API key's token.
        redacted:
          type: string
          title: redacted
          description: The redacted form of the API key's token. This is useful when showing portion of the token. For example `sk_...123`.
        title:
          type: string
          title: title
          description: The API key's title.
        type:
          type: string
          description: The API key's type. `secret` API keys are used for authenticating admin users, and `publishable` API key are used for storefronts and similar clients to scope requests to sales channels.
          enum:
            - secret
            - publishable
        last_used_at:
          type: string
          title: last_used_at
          description: The date the API key was last used.
          format: date-time
        created_by:
          type: string
          title: created_by
          description: The ID of the user that created the API key.
        created_at:
          type: string
          title: created_at
          description: The date the API key was created.
          format: date-time
        revoked_by:
          type: string
          title: revoked_by
          description: The ID of the user that revoked the API key.
        revoked_at:
          type: string
          title: revoked_at
          description: The date the API key was revoked.
          format: date-time
    AuthAdminSessionResponse:
      type: object
      description: The authenticated user's details.
      x-schemaName: AuthAdminSessionResponse
      required:
        - user
      properties:
        user:
          title: user
          description: The logged-in user.
          $ref: '#/components/schemas/AdminUser'
    AuthCallbackResponse:
      type: object
      description: The authentication's details.
      x-schemaName: AuthCallbackResponse
      required:
        - location
      properties:
        location:
          type: string
          title: location
          description: The location to redirect the user to for further authentication with the third-party provider.
    AuthResponse:
      type: object
      description: The authentication's details.
      x-schemaName: AuthResponse
      required:
        - token
      properties:
        token:
          type: string
          title: token
          description: The JWT token used for registration or authentication.
    AuthStoreSessionResponse:
      type: object
      description: The authenticated customer's details.
      x-schemaName: AuthStoreSessionResponse
      required:
        - user
      properties:
        user:
          title: user
          description: The logged-in customer.
          $ref: '#/components/schemas/StoreCustomer'
    BaseCalculatedPriceSet:
      type: object
      description: The calculated price's details.
      x-schemaName: BaseCalculatedPriceSet
      required:
        - id
        - calculated_amount
        - original_amount
        - original_amount_with_tax
        - original_amount_without_tax
        - currency_code
      properties:
        id:
          type: string
          title: id
          description: The calculated price's ID.
        is_calculated_price_price_list:
          type: boolean
          title: is_calculated_price_price_list
          description: Whether the calculated price belongs to a price list.
        is_calculated_price_tax_inclusive:
          type: boolean
          title: is_calculated_price_tax_inclusive
          description: Whether the calculated price is tax inclusive.
        calculated_amount:
          type: number
          title: calculated_amount
          description: The amount of the calculated price, or `null` if there isn't a calculated price. This is the amount shown to the customer.
        calculated_amount_with_tax:
          type: number
          title: calculated_amount_with_tax
          description: The calculated price's amount with taxes applied.
        calculated_amount_without_tax:
          type: number
          title: calculated_amount_without_tax
          description: The calculated price's amount without taxes applied.
        is_original_price_price_list:
          type: boolean
          title: is_original_price_price_list
          description: Whether the original price belongs to a price list.
        is_original_price_tax_inclusive:
          type: boolean
          title: is_original_price_tax_inclusive
          description: Whether the original price is tax inclusive.
        original_amount:
          type: number
          title: original_amount
          description: The amount of the original price, or `null` if there isn't an original price. This amount is useful to compare with the `calculated_amount`, such as to check for discounted value.
        currency_code:
          type: string
          title: currency_code
          description: The calculated price's currency code.
          example: usd
        calculated_price:
          type: object
          description: The calculated price's details.
        original_price:
          type: object
          description: The original price's details.
        original_amount_with_tax:
          type: number
          title: original_amount_with_tax
          description: The amount of the original price with taxes applied.
        original_amount_without_tax:
          type: number
          title: original_amount_without_tax
          description: The amount of the original price without taxes.
    BaseCapture:
      type: object
      description: The details of a captured payment.
      x-schemaName: BaseCapture
      required:
        - id
        - amount
        - created_at
        - payment
      properties:
        id:
          type: string
          title: id
          description: The payment capture's ID.
        amount:
          type: number
          title: amount
          description: The captured amount.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the capture was created.
        created_by:
          type: string
          title: created_by
          description: The ID of the user that captured the payment.
        payment:
          type: object
    BaseCart:
      type: object
      description: The item's cart.
      x-schemaName: BaseCart
      required:
        - id
        - currency_code
        - original_item_total
        - original_item_subtotal
        - original_item_tax_total
        - item_total
        - item_subtotal
        - item_tax_total
        - original_total
        - original_subtotal
        - original_tax_total
        - total
        - subtotal
        - tax_total
        - discount_total
        - discount_tax_total
        - gift_card_total
        - gift_card_tax_total
        - shipping_total
        - shipping_subtotal
        - shipping_tax_total
        - original_shipping_total
        - original_shipping_subtotal
        - original_shipping_tax_total
      properties:
        id:
          type: string
          title: id
          description: The cart's ID.
        region:
          $ref: '#/components/schemas/BaseRegion'
        region_id:
          type: string
          title: region_id
          description: The cart's region id.
        customer_id:
          type: string
          title: customer_id
          description: The cart's customer id.
        sales_channel_id:
          type: string
          title: sales_channel_id
          description: The cart's sales channel id.
        email:
          type: string
          title: email
          description: The cart's email.
          format: email
        currency_code:
          type: string
          title: currency_code
          description: The cart's currency code.
        shipping_address:
          $ref: '#/components/schemas/BaseCartAddress'
        billing_address:
          $ref: '#/components/schemas/BaseCartAddress'
        items:
          type: array
          description: The cart's items.
          items:
            type: object
        shipping_methods:
          type: array
          description: The cart's shipping methods.
          items:
            $ref: '#/components/schemas/BaseCartShippingMethod'
        payment_collection:
          $ref: '#/components/schemas/BasePaymentCollection'
        metadata:
          type: object
          description: The cart's metadata.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The cart's created at.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The cart's updated at.
        original_item_total:
          type: number
          title: original_item_total
          description: The sum of all line items' original totals before discounts, including taxes.
        original_item_subtotal:
          type: number
          title: original_item_subtotal
          description: The sum of all line items' original subtotals before discounts, excluding taxes.
        original_item_tax_total:
          type: number
          title: original_item_tax_total
          description: The sum of all line items' original tax totals before discounts.
        item_total:
          type: number
          title: item_total
          description: The sum of all line items' totals after discounts, including taxes.
        item_subtotal:
          type: number
          title: item_subtotal
          description: The sum of all line items' subtotals before discounts, excluding taxes.
        item_tax_total:
          type: number
          title: item_tax_total
          description: The sum of all line items' tax totals after discounts.
        original_total:
          type: number
          title: original_total
          description: The cart's total before discounts, including taxes. Calculated as the sum of `original_item_total` and `original_shipping_total`.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The cart's subtotal before discounts, excluding taxes. Calculated as the sum of `original_item_subtotal` and `original_shipping_subtotal`.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The cart's tax total before discounts. Calculated as the sum of `original_item_tax_total` and `original_shipping_tax_total`.
        total:
          type: number
          title: total
          description: The cart's final total after discounts and credit lines, including taxes.
        subtotal:
          type: number
          title: subtotal
          description: The cart's subtotal before discounts, excluding taxes. Calculated as the sum of `item_subtotal` and `shipping_subtotal`.
        tax_total:
          type: number
          title: tax_total
          description: The cart's tax total after discounts. Calculated as the sum of `item_tax_total` and `shipping_tax_total`.
        discount_total:
          type: number
          title: discount_total
          description: The total amount of discounts applied to the cart, including the tax portion of discounts.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The total amount of discounts applied to the cart's tax. Represents the tax portion of discounts.
        gift_card_total:
          type: number
          title: gift_card_total
          description: The cart's gift card total.
        gift_card_tax_total:
          type: number
          title: gift_card_tax_total
          description: The cart's gift card tax total.
        shipping_total:
          type: number
          title: shipping_total
          description: The sum of all shipping methods' totals after discounts, including taxes.
        shipping_subtotal:
          type: number
          title: shipping_subtotal
          description: The sum of all shipping methods' subtotals before discounts, excluding taxes.
        shipping_tax_total:
          type: number
          title: shipping_tax_total
          description: The sum of all shipping methods' tax totals after discounts.
        original_shipping_total:
          type: number
          title: original_shipping_total
          description: The sum of all shipping methods' original totals before discounts, including taxes.
        original_shipping_subtotal:
          type: number
          title: original_shipping_subtotal
          description: The sum of all shipping methods' original subtotals before discounts, excluding taxes.
        original_shipping_tax_total:
          type: number
          title: original_shipping_tax_total
          description: The sum of all shipping methods' original tax totals before discounts.
    BaseCartAddress:
      type: object
      description: The cart's shipping address.
      x-schemaName: BaseCartAddress
    BaseCartLineItem:
      type: object
      description: The tax line's item.
      x-schemaName: BaseCartLineItem
      required:
        - id
        - title
        - quantity
        - requires_shipping
        - is_discountable
        - is_tax_inclusive
        - unit_price
        - cart
        - cart_id
      properties:
        id:
          type: string
          title: id
          description: The item's ID.
        title:
          type: string
          title: title
          description: The item's title.
        subtitle:
          type: string
          title: subtitle
          description: The item's subtitle.
        thumbnail:
          type: string
          title: thumbnail
          description: The item's thumbnail.
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        product:
          $ref: '#/components/schemas/BaseProduct'
        product_id:
          type: string
          title: product_id
          description: The item's product id.
        product_title:
          type: string
          title: product_title
          description: The item's product title.
        product_description:
          type: string
          title: product_description
          description: The item's product description.
        product_subtitle:
          type: string
          title: product_subtitle
          description: The item's product subtitle.
        product_type:
          type: string
          title: product_type
          description: The item's product type.
        product_collection:
          type: string
          title: product_collection
          description: The item's product collection.
        product_handle:
          type: string
          title: product_handle
          description: The item's product handle.
        variant:
          $ref: '#/components/schemas/BaseProductVariant'
        variant_id:
          type: string
          title: variant_id
          description: The item's variant id.
        variant_sku:
          type: string
          title: variant_sku
          description: The item's variant sku.
        variant_barcode:
          type: string
          title: variant_barcode
          description: The item's variant barcode.
        variant_title:
          type: string
          title: variant_title
          description: The item's variant title.
        variant_option_values:
          type: object
          description: The item's variant option values.
        requires_shipping:
          type: boolean
          title: requires_shipping
          description: The item's requires shipping.
        is_discountable:
          type: boolean
          title: is_discountable
          description: The item's is discountable.
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: The item's is tax inclusive.
        compare_at_unit_price:
          type: number
          title: compare_at_unit_price
          description: The item's compare at unit price.
        unit_price:
          type: number
          title: unit_price
          description: The item's unit price.
        tax_lines:
          type: array
          description: The item's tax lines.
          items:
            type: object
        adjustments:
          type: array
          description: The item's adjustments.
          items:
            $ref: '#/components/schemas/BaseLineItemAdjustment'
        cart:
          $ref: '#/components/schemas/BaseCart'
        cart_id:
          type: string
          title: cart_id
          description: The item's cart id.
        metadata:
          type: object
          description: The item's metadata.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The item's created at.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The item's updated at.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The item's deleted at.
        original_total:
          type: number
          title: original_total
          description: The line item's original total before discounts, including taxes.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The line item's original subtotal before discounts, excluding taxes.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The line item's original tax total before discounts.
        item_total:
          type: number
          title: item_total
          description: The line item's total after discounts, including taxes.
        item_subtotal:
          type: number
          title: item_subtotal
          description: The line item's subtotal before discounts, excluding taxes.
        item_tax_total:
          type: number
          title: item_tax_total
          description: The line item's tax total after discounts.
        total:
          type: number
          title: total
          description: The line item's total after discounts, including taxes.
        subtotal:
          type: number
          title: subtotal
          description: The line item's subtotal before discounts, excluding taxes.
        tax_total:
          type: number
          title: tax_total
          description: The line item's tax total after discounts.
        discount_total:
          type: number
          title: discount_total
          description: The total amount of discounts applied to the line item, including the tax portion of discounts.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The total amount of discounts applied to the line item's tax. Represents the tax portion of discounts.
    BaseCartShippingMethod:
      type: object
      description: A cart's shipping method.
      x-schemaName: BaseCartShippingMethod
      required:
        - id
        - cart_id
        - name
        - amount
        - is_tax_inclusive
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The shipping method's ID.
        cart_id:
          type: string
          title: cart_id
          description: The ID of the cart this shipping method belongs to.
        name:
          type: string
          title: name
          description: The shipping method's name.
        description:
          type: string
          title: description
          description: The shipping method's description.
        amount:
          type: number
          title: amount
          description: The shipping method's amount.
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: Whether the shipping method's amount is tax inclusive.
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the shipping option this method was created from.
        data:
          type: object
          description: The shipping method's data, useful for fulfillment handling by third-party services.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/cart/concepts#data-property
        metadata:
          type: object
          description: The shipping method's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        tax_lines:
          type: array
          description: The shipping method's tax lines.
          items:
            $ref: '#/components/schemas/BaseShippingMethodTaxLine'
        adjustments:
          type: array
          description: The shipping method's adjustments, such as applied promotions.
          items:
            $ref: '#/components/schemas/BaseShippingMethodAdjustment'
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the shipping method was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the shipping method was updated.
        original_total:
          type: number
          title: original_total
          description: The shipping method's original total before discounts, including taxes.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The shipping method's original subtotal before discounts, excluding taxes.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The shipping method's original tax total before discounts.
        total:
          type: number
          title: total
          description: The shipping method's total after discounts, including taxes.
        subtotal:
          type: number
          title: subtotal
          description: The shipping method's subtotal before discounts, excluding taxes.
        tax_total:
          type: number
          title: tax_total
          description: The shipping method's tax total after discounts.
        discount_total:
          type: number
          title: discount_total
          description: The total amount of discounts applied to the shipping method, including the tax portion of discounts.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The total amount of discounts applied to the shipping method's tax. Represents the tax portion of discounts.
    BaseClaimItem:
      type: object
      description: The claim item's details.
      x-schemaName: BaseClaimItem
      required:
        - id
        - claim_id
        - order_id
        - item_id
        - quantity
        - reason
        - raw_quantity
      properties:
        id:
          type: string
          title: id
          description: The claim item's ID.
        claim_id:
          type: string
          title: claim_id
          description: The ID of the claim this item belongs to.
        order_id:
          type: string
          title: order_id
          description: The ID of the order this item belongs to.
        item_id:
          type: string
          title: item_id
          description: The ID of the item in the order.
        quantity:
          type: number
          title: quantity
          description: The quantity claimed.
        reason:
          type: string
          description: The claim's reason.
          enum:
            - missing_item
            - wrong_item
            - production_failure
            - other
        raw_quantity:
          type: object
          description: The quantity claimed.
          properties:
            value:
              oneOf:
                - type: string
                  title: value
                  description: The raw quantity's value.
                - type: number
                  title: value
                  description: The raw quantity's value.
          required:
            - value
        metadata:
          type: object
          description: The item's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the claim was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the claim was updated.
    BaseCollection:
      type: object
      description: The product collection's details.
      x-schemaName: BaseCollection
      required:
        - id
        - title
        - handle
        - created_at
        - updated_at
        - deleted_at
        - metadata
      properties:
        id:
          type: string
          title: id
          description: The collection's ID.
        title:
          type: string
          title: title
          description: The collection's title.
        handle:
          type: string
          title: handle
          description: The collection's handle.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The collection's creation date.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The collection's update date.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The collection's deletion date.
        products:
          type: array
          description: The collection's products.
          items:
            type: object
        metadata:
          type: object
          description: The collection's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
    BaseExchangeItem:
      type: object
      description: The item's details.
      x-schemaName: BaseExchangeItem
      required:
        - id
        - exchange_id
        - order_id
        - item_id
        - quantity
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The item's ID.
        exchange_id:
          type: string
          title: exchange_id
          description: The ID of the exchange this item belongs to.
        order_id:
          type: string
          title: order_id
          description: The ID of the order this item belongs to.
        item_id:
          type: string
          title: item_id
          description: The ID of the item in the order.
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        metadata:
          type: object
          description: The item's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the item was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the item was updated.
    BaseFulfillmentProvider:
      type: object
      description: The fulfillment provider's details.
      x-schemaName: BaseFulfillmentProvider
      required:
        - id
        - is_enabled
      properties:
        id:
          type: string
          title: id
          description: The provider's ID.
        is_enabled:
          type: boolean
          title: is_enabled
          description: Whether the provider is enabled.
    BaseLineItemAdjustment:
      type: object
      description: The adjustment's details.
      x-schemaName: BaseLineItemAdjustment
      required:
        - item
        - item_id
        - id
        - amount
        - cart_id
        - created_at
        - updated_at
      properties:
        item:
          type: object
        item_id:
          type: string
          title: item_id
          description: The ID of the item this adjustment applies on.
        id:
          type: string
          title: id
          description: The adjustment's ID.
        code:
          type: string
          title: code
          description: The adjustment's code.
        amount:
          type: number
          title: amount
          description: The adjustment's amount.
        cart_id:
          type: string
          title: cart_id
          description: The ID of the cart this adjustment belongs to.
        description:
          type: string
          title: description
          description: The adjustment's description.
        promotion_id:
          type: string
          title: promotion_id
          description: The ID of the promotion applied by this adjustment.
        provider_id:
          type: string
          title: provider_id
          description: The adjustment's provider ID.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the adjustment was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the adjustment was updated.
    BaseLineItemTaxLine:
      type: object
      description: The tax line's details
      x-schemaName: BaseLineItemTaxLine
      required:
        - item
        - item_id
        - total
        - subtotal
        - id
        - code
        - rate
        - created_at
        - updated_at
      properties:
        item:
          $ref: '#/components/schemas/BaseCartLineItem'
        item_id:
          type: string
          title: item_id
          description: The ID of the item the tax line applies on.
        total:
          type: number
          title: total
          description: The item's total, including taxes and promotions.
        subtotal:
          type: number
          title: subtotal
          description: The item's subtotal excluding taxes, including promotions.
        id:
          type: string
          title: id
          description: The tax line's ID.
        description:
          type: string
          title: description
          description: The tax line's description.
        tax_rate_id:
          type: string
          title: tax_rate_id
          description: The ID of the associated tax rate.
        code:
          type: string
          title: code
          description: The code the tax rate is identified by.
        rate:
          type: number
          title: rate
          description: The rate to charge.
        provider_id:
          type: string
          title: provider_id
          description: The ID of the tax provider.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the tax line was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the tax line was updated.
    BaseOrder:
      type: object
      description: The order's details.
      x-schemaName: BaseOrder
      required:
        - id
        - version
        - region_id
        - customer_id
        - sales_channel_id
        - email
        - currency_code
        - status
        - items
        - shipping_methods
        - payment_status
        - fulfillment_status
        - summary
        - created_at
        - updated_at
        - original_item_total
        - original_item_subtotal
        - original_item_tax_total
        - item_total
        - item_subtotal
        - item_tax_total
        - item_discount_total
        - original_total
        - original_subtotal
        - original_tax_total
        - total
        - subtotal
        - tax_total
        - discount_total
        - discount_tax_total
        - gift_card_total
        - gift_card_tax_total
        - shipping_total
        - shipping_subtotal
        - shipping_tax_total
        - shipping_discount_total
        - original_shipping_total
        - original_shipping_subtotal
        - original_shipping_tax_total
        - credit_line_total
      properties:
        payment_collections:
          type: array
          description: The order's payment collections.
          items:
            $ref: '#/components/schemas/BasePaymentCollection'
        fulfillments:
          type: array
          description: The order's fulfillments.
          items:
            $ref: '#/components/schemas/BaseOrderFulfillment'
        shipping_address:
          $ref: '#/components/schemas/BaseOrderAddress'
        billing_address:
          $ref: '#/components/schemas/BaseOrderAddress'
        id:
          type: string
          title: id
          description: The order's ID.
        version:
          type: number
          title: version
          description: The order's version.
        region_id:
          type: string
          title: region_id
          description: The ID of the region associated with the order.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer that placed the order.
        sales_channel_id:
          type: string
          title: sales_channel_id
          description: The ID of the sales channel the order is placed in.
        email:
          type: string
          title: email
          description: The email of the customer that placed the order.
          format: email
        currency_code:
          type: string
          title: currency_code
          description: The order's currency code.
        display_id:
          type: number
          title: display_id
          description: The order's display ID.
        items:
          type: array
          description: The order's items.
          items:
            $ref: '#/components/schemas/BaseOrderLineItem'
        shipping_methods:
          type: array
          description: The order's shipping methods.
          items:
            $ref: '#/components/schemas/BaseOrderShippingMethod'
        payment_status:
          type: string
          description: The order's payment status.
          enum:
            - canceled
            - not_paid
            - awaiting
            - authorized
            - partially_authorized
            - captured
            - partially_captured
            - partially_refunded
            - refunded
            - requires_action
        fulfillment_status:
          type: string
          description: The order's fulfillment status.
          enum:
            - canceled
            - not_fulfilled
            - partially_fulfilled
            - fulfilled
            - partially_shipped
            - shipped
            - partially_delivered
            - delivered
        transactions:
          type: array
          description: The order's transactions.
          items:
            $ref: '#/components/schemas/BaseOrderTransaction'
        summary:
          $ref: '#/components/schemas/BaseOrderSummary'
        metadata:
          type: object
          description: The order's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the order was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the order was updated.
        original_item_total:
          type: number
          title: original_item_total
          description: The sum of all line items' original totals before discounts, including taxes.
        original_item_subtotal:
          type: number
          title: original_item_subtotal
          description: The sum of all line items' original subtotals before discounts, excluding taxes.
        original_item_tax_total:
          type: number
          title: original_item_tax_total
          description: The sum of all line items' original tax totals before discounts.
        item_total:
          type: number
          title: item_total
          description: The sum of all line items' totals after discounts, including taxes.
        item_subtotal:
          type: number
          title: item_subtotal
          description: The sum of all line items' subtotals before discounts, excluding taxes.
        item_tax_total:
          type: number
          title: item_tax_total
          description: The sum of all line items' tax totals after discounts.
        original_total:
          type: number
          title: original_total
          description: The order's total before discounts, including taxes. Calculated as the sum of `original_item_total` and `original_shipping_total`.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The order's subtotal before discounts, excluding taxes. Calculated as the sum of `original_item_subtotal` and `original_shipping_subtotal`.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The order's tax total before discounts. Calculated as the sum of `original_item_tax_total` and `original_shipping_tax_total`.
        total:
          type: number
          title: total
          description: The order's final total after discounts and credit lines, including taxes.
        subtotal:
          type: number
          title: subtotal
          description: The order's subtotal before discounts, excluding taxes. Calculated as the sum of `item_subtotal` and `shipping_subtotal`.
        tax_total:
          type: number
          title: tax_total
          description: The order's tax total after discounts. Calculated as the sum of `item_tax_total` and `shipping_tax_total`.
        discount_total:
          type: number
          title: discount_total
          description: The total amount of discounts applied to the order, including the tax portion of discounts.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The total amount of discounts applied to the order's tax. Represents the tax portion of discounts.
        gift_card_total:
          type: number
          title: gift_card_total
          description: The order's gift card total.
        gift_card_tax_total:
          type: number
          title: gift_card_tax_total
          description: The tax total of the order's gift card.
        shipping_total:
          type: number
          title: shipping_total
          description: The sum of all shipping methods' totals after discounts, including taxes.
        shipping_subtotal:
          type: number
          title: shipping_subtotal
          description: The sum of all shipping methods' subtotals before discounts, excluding taxes.
        shipping_tax_total:
          type: number
          title: shipping_tax_total
          description: The sum of all shipping methods' tax totals after discounts.
        original_shipping_total:
          type: number
          title: original_shipping_total
          description: The sum of all shipping methods' original totals before discounts, including taxes.
        original_shipping_subtotal:
          type: number
          title: original_shipping_subtotal
          description: The sum of all shipping methods' original subtotals before discounts, excluding taxes.
        original_shipping_tax_total:
          type: number
          title: original_shipping_tax_total
          description: The sum of all shipping methods' original tax totals before discounts.
        status:
          type: string
          title: status
          description: The order's status.
        credit_line_total:
          type: number
          title: credit_line_total
          description: The total amount of credit lines applied to the order, including taxes. Subtracted from the final total.
        item_discount_total:
          type: number
          title: item_discount_total
          description: The sum of all discounts applied to line items, including the tax portion of discounts.
        shipping_discount_total:
          type: number
          title: shipping_discount_total
          description: The sum of all discounts applied to shipping methods, including the tax portion of discounts.
        custom_display_id:
          type: string
          title: custom_display_id
          description: The custom display ID of the order.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/order/custom-display-id
    BaseOrderAddress:
      type: object
      description: An order address.
      x-schemaName: BaseOrderAddress
      required:
        - id
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The address's ID.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer this address belongs to.
        first_name:
          type: string
          title: first_name
          description: The address's first name.
        last_name:
          type: string
          title: last_name
          description: The address's last name.
        phone:
          type: string
          title: phone
          description: The address's phone.
        company:
          type: string
          title: company
          description: The address's company.
        address_1:
          type: string
          title: address_1
          description: The address's first line.
        address_2:
          type: string
          title: address_2
          description: The address's second line.
        city:
          type: string
          title: city
          description: The address's city.
        country_code:
          type: string
          title: country_code
          description: The address's country code.
          example: us
        province:
          type: string
          title: province
          description: The address's lower-case ISO 3166-2 province code.
          example: us-ca
          externalDocs:
            url: https://en.wikipedia.org/wiki/ISO_3166-2
            description: Learn more about ISO 3166-2
        postal_code:
          type: string
          title: postal_code
          description: The address's postal code.
        metadata:
          type: object
          description: The address's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the address was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the address was updated.
    BaseOrderFulfillment:
      type: object
      description: The fulfillment's details.
      x-schemaName: BaseOrderFulfillment
      required:
        - id
        - location_id
        - packed_at
        - shipped_at
        - delivered_at
        - canceled_at
        - requires_shipping
        - data
        - provider_id
        - shipping_option_id
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The fulfillment's ID.
        location_id:
          type: string
          title: location_id
          description: The ID of the location the items are fulfilled from.
        packed_at:
          type: string
          title: packed_at
          description: The date the items were packed.
          format: date-time
        shipped_at:
          type: string
          title: shipped_at
          description: The date the items were shipped.
          format: date-time
        delivered_at:
          type: string
          title: delivered_at
          description: The date the items were delivered.
          format: date-time
        canceled_at:
          type: string
          title: canceled_at
          description: The date the items were canceled.
          format: date-time
        data:
          type: object
          description: Data useful for the fulfillment provider handling it. This is taken from the associated shipping option.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property
        provider_id:
          type: string
          title: provider_id
          description: The ID of the fulfillment provider used to handle the fulfillment.
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the associated shipping option.
        metadata:
          type: object
          description: The fulfillment's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the fulfillment was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the fulfillment was updated.
        requires_shipping:
          type: boolean
          title: requires_shipping
          description: Whether the fulfillment requires shipping.
    BaseOrderItemDetail:
      type: object
      description: The item's detail.
      x-schemaName: BaseOrderItemDetail
      required:
        - id
        - item_id
        - item
        - quantity
        - fulfilled_quantity
        - delivered_quantity
        - shipped_quantity
        - return_requested_quantity
        - return_received_quantity
        - return_dismissed_quantity
        - written_off_quantity
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: the detail's ID.
        item_id:
          type: string
          title: id
          description: the ID of the associated line item.
        item:
          type: object
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        fulfilled_quantity:
          type: number
          title: fulfilled_quantity
          description: The item's fulfilled quantity.
        delivered_quantity:
          type: number
          title: fulfilled_quantity
          description: The item's delivered quantity.
        shipped_quantity:
          type: number
          title: shipped_quantity
          description: The item's shipped quantity.
        return_requested_quantity:
          type: number
          title: return_requested_quantity
          description: The item's quantity that's requested to be returned.
        return_received_quantity:
          type: number
          title: return_received_quantity
          description: The item's quantity that's returned and added to the underlying variant's stocked quantity.
        return_dismissed_quantity:
          type: number
          title: return_dismissed_quantity
          description: The item's quantity that's returned but damaged. So, it's not added to the underlying variant's stocked quantity.
        written_off_quantity:
          type: number
          title: written_off_quantity
          description: The item's quantity that's removed from the order.
        metadata:
          type: object
          title: metadata
          description: The item's metadata, can hold custom key-value pairs.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the detail was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the detail was updated.
    BaseOrderLineItem:
      type: object
      description: The item's items.
      x-schemaName: BaseOrderLineItem
      required:
        - id
        - title
        - subtitle
        - thumbnail
        - variant_id
        - product_id
        - product_title
        - product_description
        - product_subtitle
        - product_type_id
        - product_type
        - product_collection
        - product_handle
        - variant_sku
        - variant_barcode
        - variant_title
        - variant_option_values
        - requires_shipping
        - is_discountable
        - is_tax_inclusive
        - unit_price
        - quantity
        - detail
        - created_at
        - updated_at
        - metadata
        - original_total
        - original_subtotal
        - original_tax_total
        - item_total
        - item_subtotal
        - item_tax_total
        - total
        - subtotal
        - tax_total
        - discount_total
        - discount_tax_total
        - refundable_total
        - refundable_total_per_unit
      properties:
        id:
          type: string
          title: id
          description: The item's ID.
        title:
          type: string
          title: title
          description: The item's title.
        subtitle:
          type: string
          title: subtitle
          description: The item's subtitle.
        thumbnail:
          type: string
          title: thumbnail
          description: The URL of the item's thumbnail.
        variant:
          $ref: '#/components/schemas/BaseProductVariant'
        variant_id:
          type: string
          title: variant_id
          description: The ID of the associated variant.
        product:
          $ref: '#/components/schemas/BaseProduct'
        product_id:
          type: string
          title: product_id
          description: The ID of the associated product.
        product_title:
          type: string
          title: product_title
          description: The item's product title.
        product_description:
          type: string
          title: product_description
          description: The item's product description.
        product_subtitle:
          type: string
          title: product_subtitle
          description: The item's product subtitle.
        product_type:
          type: string
          title: product_type
          description: The item's product type.
        product_collection:
          type: string
          title: product_collection
          description: The ID of the collection the item's product belongs to.
        product_handle:
          type: string
          title: product_handle
          description: The item's product handle.
        variant_sku:
          type: string
          title: variant_sku
          description: The item's variant SKU.
        variant_barcode:
          type: string
          title: variant_barcode
          description: The item's variant barcode.
        variant_title:
          type: string
          title: variant_title
          description: The item's variant title.
        variant_option_values:
          type: object
          description: The values of the item variant's options.
          example:
            Color: Blue
        requires_shipping:
          type: boolean
          title: requires_shipping
          description: Whether the item requires shipping.
        is_discountable:
          type: boolean
          title: is_discountable
          description: Whether the item is discountable.
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: Whether the item is tax inclusive.
        compare_at_unit_price:
          type: number
          title: compare_at_unit_price
          description: The original price of the item before a promotion or sale.
        unit_price:
          type: number
          title: unit_price
          description: The item's unit price.
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        tax_lines:
          type: array
          description: The item's tax lines.
          items:
            $ref: '#/components/schemas/BaseOrderLineItemTaxLine'
        adjustments:
          type: array
          description: The item's adjustments.
          items:
            $ref: '#/components/schemas/BaseOrderLineItemAdjustment'
        detail:
          $ref: '#/components/schemas/BaseOrderItemDetail'
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the item was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the item was updated.
        metadata:
          type: object
          description: The item's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        original_total:
          type: number
          title: original_total
          description: The line item's original total before discounts, including taxes.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The line item's original subtotal before discounts, excluding taxes.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The line item's original tax total before discounts.
        item_total:
          type: number
          title: item_total
          description: The line item's total after discounts, including taxes.
        item_subtotal:
          type: number
          title: item_subtotal
          description: The line item's subtotal before discounts, excluding taxes.
        item_tax_total:
          type: number
          title: item_tax_total
          description: The line item's tax total after discounts.
        total:
          type: number
          title: total
          description: The line item's total after discounts, including taxes.
        subtotal:
          type: number
          title: subtotal
          description: The line item's subtotal before discounts, excluding taxes.
        tax_total:
          type: number
          title: tax_total
          description: The line item's tax total after discounts.
        discount_total:
          type: number
          title: discount_total
          description: The total amount of discounts applied to the line item, including the tax portion of discounts.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The total amount of discounts applied to the line item's tax. Represents the tax portion of discounts.
        refundable_total:
          type: number
          title: refundable_total
          description: The total refundable amount of the item's total.
        refundable_total_per_unit:
          type: number
          title: refundable_total_per_unit
          description: The total refundable amount of the item's total for a single quantity.
        product_type_id:
          type: string
          title: product_type_id
          description: The ID of the associated product's type.
    BaseOrderLineItemAdjustment:
      type: object
      description: The adjustment's details.
      x-schemaName: BaseOrderLineItemAdjustment
      properties:
        item:
          type: object
        item_id:
          type: string
          title: item_id
          description: The ID of the item this adjustment applies to.
        id:
          type: string
          title: id
          description: The adjustment's ID.
        code:
          type: string
          title: code
          description: The adjustment's code.
        amount:
          type: number
          title: amount
          description: The adjustment's amount.
        order_id:
          type: string
          title: order_id
          description: The ID of the associated order.
        description:
          type: string
          title: description
          description: The adjustment's description.
        promotion_id:
          type: string
          title: promotion_id
          description: The ID of the promotion that this applies on the order's item.
        provider_id:
          type: string
          title: provider_id
          description: The adjustment's provider ID.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the adjustment was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the adjustment was updated.
      required:
        - item
        - item_id
        - id
        - amount
        - order_id
        - created_at
        - updated_at
    BaseOrderLineItemTaxLine:
      type: object
      description: The tax line's tax lines.
      x-schemaName: BaseOrderLineItemTaxLine
      properties:
        item:
          type: object
        item_id:
          type: string
          title: item_id
          description: The ID of the associated line item.
        total:
          type: number
          title: total
          description: The tax line's total including promotions.
        subtotal:
          type: number
          title: subtotal
          description: The tax line's subtotal excluding promotions.
        id:
          type: string
          title: id
          description: The tax line's ID.
        description:
          type: string
          title: description
          description: The tax line's description.
        tax_rate_id:
          type: string
          title: tax_rate_id
          description: The ID of the applied tax rate.
        code:
          type: string
          title: code
          description: The code that the tax rate is identified by.
        rate:
          type: number
          title: rate
          description: The rate to charge.
        provider_id:
          type: string
          title: provider_id
          description: The ID of the tax provider used to calculate the tax line.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the tax line was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the tax line was updated.
      required:
        - item
        - item_id
        - total
        - subtotal
        - id
        - code
        - rate
        - created_at
        - updated_at
    BaseOrderShippingDetail:
      type: object
      description: Details of changes to a shipping method.
      x-schemaName: BaseOrderShippingDetail
      required:
        - id
        - shipping_method_id
        - shipping_method
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The ID of the new changes to the shipping method.
        shipping_method_id:
          type: string
          title: shipping_method_id
          description: The ID of the shipping method.
        shipping_method:
          type: object
        claim_id:
          type: string
          title: claim_id
          description: The ID of the associated claim.
        exchange_id:
          type: string
          title: exchange_id
          description: The ID of the associated exchange.
        return_id:
          type: string
          title: return_id
          description: The ID of the associated return.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the shipping method change was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the shipping method change was updated.
    BaseOrderShippingMethod:
      type: object
      description: The shipping method's details.
      x-schemaName: BaseOrderShippingMethod
      required:
        - id
        - order_id
        - name
        - amount
        - is_tax_inclusive
        - shipping_option_id
        - data
        - metadata
        - original_total
        - original_subtotal
        - original_tax_total
        - total
        - subtotal
        - tax_total
        - discount_total
        - discount_tax_total
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The shipping method's ID.
        order_id:
          type: string
          title: order_id
          description: The ID of the order the shipping method belongs to.
        name:
          type: string
          title: name
          description: The shipping method's name.
        description:
          type: string
          title: description
          description: The shipping method's description.
        amount:
          type: number
          title: amount
          description: The shipping method's amount.
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: Whether the shipping method's amount includes applied taxes.
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the shipping option this method was created from.
        data:
          type: object
          description: The shipping method's data, useful for fulfillment provider handling its fulfillment.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property
        metadata:
          type: object
          description: The shipping method's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        tax_lines:
          type: array
          description: The shipping method's tax lines.
          items:
            $ref: '#/components/schemas/BaseOrderShippingMethodTaxLine'
        adjustments:
          type: array
          description: The shipping method's adjustments.
          items:
            $ref: '#/components/schemas/BaseOrderShippingMethodAdjustment'
        original_total:
          type: number
          title: original_total
          description: The shipping method's total including taxes, excluding promotions.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The shipping method's total excluding taxes, including promotions.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The shipping method's total taxes excluding promotions.
        total:
          type: number
          title: total
          description: The shipping method's total including taxes and promotions.
        subtotal:
          type: number
          title: subtotal
          description: The shipping method's total excluding taxes, including promotions.
        tax_total:
          type: number
          title: tax_total
          description: The shipping method's tax total including promotions.
        discount_total:
          type: number
          title: discount_total
          description: The total discounts applied on the shipping method.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The taxes applied on the discount amount.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the shipping method was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the shipping method was updated.
        detail:
          $ref: '#/components/schemas/BaseOrderShippingDetail'
    BaseOrderShippingMethodAdjustment:
      type: object
      description: The adjustment's adjustments.
      x-schemaName: BaseOrderShippingMethodAdjustment
      properties:
        shipping_method:
          type: object
        shipping_method_id:
          type: string
          title: shipping_method_id
          description: The ID of the shipping method this adjustment applies on.
        id:
          type: string
          title: id
          description: The adjustment's ID.
        code:
          type: string
          title: code
          description: The adjustment's code.
        amount:
          type: number
          title: amount
          description: The adjustment's amount.
        order_id:
          type: string
          title: order_id
          description: The ID of the associated order.
        description:
          type: string
          title: description
          description: The adjustment's description.
        promotion_id:
          type: string
          title: promotion_id
          description: The ID of the promotion applied by this adjustment.
        provider_id:
          type: string
          title: provider_id
          description: The adjustment's provider ID.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the adjustment was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the adjustment was updated.
      required:
        - shipping_method
        - shipping_method_id
        - id
        - amount
        - order_id
        - created_at
        - updated_at
    BaseOrderShippingMethodTaxLine:
      type: object
      description: The tax line's details.
      x-schemaName: BaseOrderShippingMethodTaxLine
      properties:
        shipping_method:
          type: object
        shipping_method_id:
          type: string
          title: shipping_method_id
          description: The ID of the shipping method this tax line belongs to.
        total:
          type: number
          title: total
          description: The shipping method's total including taxes and promotions.
        subtotal:
          type: number
          title: subtotal
          description: The shipping method's total excluding taxes, including promotions.
        id:
          type: string
          title: id
          description: The tax line's ID.
        description:
          type: string
          title: description
          description: The tax line's description.
        tax_rate_id:
          type: string
          title: tax_rate_id
          description: The ID of the applied tax rate.
        code:
          type: string
          title: code
          description: The code that the tax rate is identified by.
        rate:
          type: number
          title: rate
          description: The rate to charge.
        provider_id:
          type: string
          title: provider_id
          description: The ID of the tax provider handling the tax calculation.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the tax line was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the tax line was updated.
      required:
        - shipping_method
        - shipping_method_id
        - total
        - subtotal
        - id
        - code
        - rate
        - created_at
        - updated_at
    BaseOrderSummary:
      type: object
      description: The order's summary details.
      x-schemaName: BaseOrderSummary
      required:
        - pending_difference
        - current_order_total
        - original_order_total
        - transaction_total
        - paid_total
        - refunded_total
        - accounting_total
      properties:
        paid_total:
          type: number
          title: paid_total
          description: The total amount paid.
        refunded_total:
          type: number
          title: refunded_total
          description: The total amount refunded.
        pending_difference:
          type: number
          title: pending_difference
          description: The difference pending to be processed. If negative, the customer needs a refund. Otherwise, additional payment is required from the customer.
        current_order_total:
          type: number
          title: current_order_total
          description: The order's current total, could be the total after a change in the order.
        original_order_total:
          type: number
          title: original_order_total
          description: The order's original total.
        transaction_total:
          type: number
          title: transaction_total
          description: The total of the transactions made on the order.
        accounting_total:
          type: number
          title: accounting_total
          description: The order's total without the credit-line total.
    BaseOrderTransaction:
      type: object
      description: An order transaction's details.
      x-schemaName: BaseOrderTransaction
      required:
        - id
        - order_id
        - amount
        - currency_code
        - reference
        - reference_id
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The transaction's ID.
        order_id:
          type: string
          title: order_id
          description: The ID of the order this transaction belongs to.
        amount:
          type: number
          title: amount
          description: The transaction's amount.
        currency_code:
          type: string
          title: currency_code
          description: The transaction's currency code.
          example: usd
        reference:
          type: string
          title: reference
          description: The name of a table that this transaction references. If this transaction is for captured payment, its value is `capture`. If this transaction is for refunded payment, its value is `refund`.
          enum:
            - capture
            - refund
        reference_id:
          type: string
          title: reference_id
          description: The ID of the referenced record in the referenced table.
        metadata:
          type: object
          description: The transaction's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date that the transaction was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date that the transaction was updated.
    BasePayment:
      type: object
      description: The payment's details.
      x-schemaName: BasePayment
      required:
        - id
        - amount
        - currency_code
        - provider_id
      properties:
        id:
          type: string
          title: id
          description: The payment's ID.
        amount:
          type: number
          title: amount
          description: The payment's amount.
        authorized_amount:
          type: number
          title: authorized_amount
          description: The amount authorized of the payment.
        currency_code:
          type: string
          title: currency_code
          description: The payment's currency code.
        provider_id:
          type: string
          title: provider_id
          description: The ID of the payment provider used to process this payment.
        data:
          type: object
          description: The payment's data, useful for processing by the payment provider.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/payment/payment#whats-a-payment
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the payment was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the payment was updated.
        captured_at:
          type: string
          format: date-time
          title: captured_at
          description: The date the payment was captured.
        canceled_at:
          type: string
          format: date-time
          title: canceled_at
          description: The date the payment was canceled.
        captured_amount:
          type: number
          title: captured_amount
          description: The captured amount of the payment.
        refunded_amount:
          type: number
          title: captured_amount
          description: The refunded amount of the payment.
        captures:
          type: array
          description: The details of payment captures.
          items:
            $ref: '#/components/schemas/BaseCapture'
        refunds:
          type: array
          description: The details of payment refunds.
          items:
            $ref: '#/components/schemas/BaseRefund'
        payment_collection:
          type: object
        payment_session:
          type: object
    BasePaymentCollection:
      type: object
      description: The payment collection's details.
      x-schemaName: BasePaymentCollection
      required:
        - id
        - currency_code
        - amount
        - status
        - payment_providers
      properties:
        id:
          type: string
          title: id
          description: The payment collection's ID.
        currency_code:
          type: string
          title: currency_code
          description: The payment collection's currency code.
        amount:
          type: number
          title: amount
          description: The total amount to be paid.
        authorized_amount:
          type: number
          title: authorized_amount
          description: The total authorized amount of the collection's payments.
        captured_amount:
          type: number
          title: captured_amount
          description: The total captured amount of the collection's payments.
        refunded_amount:
          type: number
          title: refunded_amount
          description: The total refunded amount of the collection's payments.
        completed_at:
          type: string
          format: date-time
          title: completed_at
          description: The date the payment collection was completed.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the payment collection was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the payment collection was updated.
        metadata:
          type: object
          description: The payment collection's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        status:
          type: string
          description: The payment collection's status.
          enum:
            - canceled
            - not_paid
            - awaiting
            - authorized
            - partially_authorized
            - completed
            - failed
        payment_providers:
          type: array
          description: The payment provider used to process the collection's payments and sessions.
          items:
            $ref: '#/components/schemas/BasePaymentProvider'
        payment_sessions:
          type: array
          description: The payment collection's payment sessions.
          items:
            $ref: '#/components/schemas/BasePaymentSession'
        payments:
          type: array
          description: The payment collection's payments.
          items:
            $ref: '#/components/schemas/BasePayment'
    BasePaymentProvider:
      type: object
      description: The payment provider's details.
      x-schemaName: BasePaymentProvider
      required:
        - id
      properties:
        id:
          type: string
          title: id
          description: The payment provider's ID.
    BasePaymentSession:
      type: object
      description: The payment session's details.
      x-schemaName: BasePaymentSession
      required:
        - id
        - amount
        - currency_code
        - provider_id
        - data
        - status
      properties:
        id:
          type: string
          title: id
          description: The payment session's ID.
        amount:
          type: number
          title: amount
          description: The payment session's amount.
        currency_code:
          type: string
          title: currency_code
          description: The payment session's currency code.
          example: usd
        provider_id:
          type: string
          title: provider_id
          description: The ID of the payment provider processing this session.
        data:
          type: object
          description: The payment session's data, useful for the payment provider processing the payment.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/payment/payment-session#data-property
        context:
          type: object
          description: The context around the payment, such as the customer's details.
          example:
            customer:
              id: cus_123
        status:
          type: string
          description: The payment session's status.
          enum:
            - error
            - authorized
            - canceled
            - captured
            - pending
            - requires_more
        authorized_at:
          type: string
          title: authorized_at
          description: The date the payment session was authorized.
          format: date-time
        payment_collection:
          type: object
        payment:
          $ref: '#/components/schemas/BasePayment'
    BaseProduct:
      type: object
      description: The product's details.
      x-schemaName: BaseProduct
      required:
        - id
        - title
        - handle
        - subtitle
        - description
        - is_giftcard
        - status
        - thumbnail
        - width
        - weight
        - length
        - height
        - origin_country
        - hs_code
        - mid_code
        - material
        - collection_id
        - type_id
        - variants
        - options
        - images
        - discountable
        - external_id
        - created_at
        - updated_at
        - deleted_at
      properties:
        collection:
          $ref: '#/components/schemas/BaseCollection'
        categories:
          type: array
          description: The product's categories.
          items:
            $ref: '#/components/schemas/BaseProductCategory'
        variants:
          type: array
          description: The product's variants.
          items:
            type: object
        type:
          $ref: '#/components/schemas/BaseProductType'
        tags:
          type: array
          description: The product's tags.
          items:
            $ref: '#/components/schemas/BaseProductTag'
        length:
          type: number
          title: length
          description: The product's length.
        title:
          type: string
          title: title
          description: The product's title.
        status:
          type: string
          description: The product's status.
          enum:
            - draft
            - proposed
            - published
            - rejected
        options:
          type: array
          description: The product's options.
          items:
            $ref: '#/components/schemas/BaseProductOption'
        description:
          type: string
          title: description
          description: The product's description.
        id:
          type: string
          title: id
          description: The product's ID.
        metadata:
          type: object
          description: The product's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the product was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the product was updated.
        handle:
          type: string
          title: handle
          description: The product's unique handle.
        subtitle:
          type: string
          title: subtitle
          description: The product's subtitle.
        is_giftcard:
          type: boolean
          title: is_giftcard
          description: Whether the product is a gift card.
        thumbnail:
          type: string
          title: thumbnail
          description: The product's thumbnail.
        width:
          type: number
          title: width
          description: The product's width.
        weight:
          type: number
          title: weight
          description: The product's weight.
        height:
          type: number
          title: height
          description: The product's height.
        origin_country:
          type: string
          title: origin_country
          description: The product's origin country.
        hs_code:
          type: string
          title: hs_code
          description: The product's HS code.
        mid_code:
          type: string
          title: mid_code
          description: The product's MID code.
        material:
          type: string
          title: material
          description: The product's material.
        collection_id:
          type: string
          title: collection_id
          description: The ID of the collection that the product belongs to.
        type_id:
          type: string
          title: type_id
          description: The ID of the product's type.
        images:
          type: array
          description: The product's images.
          items:
            $ref: '#/components/schemas/BaseProductImage'
        discountable:
          type: boolean
          title: discountable
          description: Whether discounts can be applied on the product.
        external_id:
          type: string
          title: external_id
          description: The ID of a product in an external system, such as an ERP or CMS.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the product was deleted.
    BaseProductCategory:
      type: object
      description: The product category's details.
      x-schemaName: BaseProductCategory
      required:
        - id
        - name
        - description
        - handle
        - is_active
        - is_internal
        - rank
        - parent_category_id
        - parent_category
        - category_children
        - created_at
        - updated_at
        - deleted_at
      properties:
        category_children:
          type: array
          description: The category's children.
          items:
            $ref: '#/components/schemas/AdminProductCategory'
        parent_category:
          $ref: '#/components/schemas/AdminProductCategory'
        products:
          type: array
          description: The category's products.
          items:
            type: object
        name:
          type: string
          title: name
          description: The category's name.
        description:
          type: string
          title: description
          description: The category's description.
        id:
          type: string
          title: id
          description: The category's ID.
        metadata:
          type: object
          description: The category's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the category was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the category was updated.
        handle:
          type: string
          title: handle
          description: The category's unique handle.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the category was deleted.
        is_active:
          type: boolean
          title: is_active
          description: Whether the category is active. If disabled, the category isn't shown in the storefront.
        is_internal:
          type: boolean
          title: is_internal
          description: Whether the category is internal. If enabled, the category is only seen by admin users.
        rank:
          type: number
          title: rank
          description: The category's rank among sibling categories.
        parent_category_id:
          type: string
          title: parent_category_id
          description: The ID of the category's parent.
    BaseProductImage:
      type: object
      description: The image's details.
      x-schemaName: BaseProductImage
      properties:
        id:
          type: string
          title: id
          description: The image's ID.
        url:
          type: string
          title: url
          description: The image's URL.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the image was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the image was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the image was deleted.
        metadata:
          type: object
          description: The image's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/admin#manage-metadata
            description: Learn how to manage metadata
        rank:
          type: number
          title: rank
          description: The image's rank among its sibling images.
      required:
        - id
        - url
        - rank
    BaseProductOption:
      type: object
      description: The product option's details.
      x-schemaName: BaseProductOption
      required:
        - id
        - title
      properties:
        id:
          type: string
          title: id
          description: The product option's ID.
        title:
          type: string
          title: title
          description: The product option's title.
        product:
          type: object
        product_id:
          type: string
          title: product_id
          description: The ID of the product this option belongs to.
        values:
          type: array
          description: The product option's values.
          items:
            $ref: '#/components/schemas/BaseProductOptionValue'
        metadata:
          type: object
          description: The product option's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the product option was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the product option was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the product option was deleted.
    BaseProductOptionValue:
      type: object
      description: The product option value's details.
      x-schemaName: BaseProductOptionValue
      required:
        - id
        - value
      properties:
        id:
          type: string
          title: id
          description: The value's ID.
        value:
          type: string
          title: value
          description: The value.
        option:
          type: object
        option_id:
          type: string
          title: option_id
          description: The ID of the option this value belongs to.
        metadata:
          type: object
          description: The value's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the value was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the value was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the value was deleted.
    BaseProductTag:
      type: object
      description: The product tag's details.
      x-schemaName: BaseProductTag
      required:
        - id
        - value
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The tag's ID.
        value:
          type: string
          title: value
          description: The tag's value.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the tag was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the tag was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the tag was deleted.
        metadata:
          type: object
          description: The tag's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
    BaseProductType:
      type: object
      description: The product type's details.
      x-schemaName: BaseProductType
      required:
        - id
        - value
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The type's ID.
        value:
          type: string
          title: value
          description: The type's value.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the type was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the type was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the type was deleted.
        metadata:
          type: object
          description: The type's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
    BaseProductVariant:
      type: object
      description: The product variant's details.
      x-schemaName: BaseProductVariant
      required:
        - id
        - title
        - sku
        - barcode
        - ean
        - upc
        - thumbnail
        - images
        - allow_backorder
        - manage_inventory
        - hs_code
        - origin_country
        - mid_code
        - material
        - weight
        - length
        - height
        - width
        - options
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The variant's ID.
        title:
          type: string
          title: title
          description: The variant's title.
        sku:
          type: string
          title: sku
          description: The variant's SKU.
        barcode:
          type: string
          title: barcode
          description: The variant's barcode.
        ean:
          type: string
          title: ean
          description: The variant's EAN code.
        upc:
          type: string
          title: upc
          description: The variant's UPC.
        allow_backorder:
          type: boolean
          title: allow_backorder
          description: Whether the variant can be ordered even if it's out of stock.
        manage_inventory:
          type: boolean
          title: manage_inventory
          description: Whether the Medusa application manages the variant's inventory quantity and availablility. If disabled, the variant is always considered in stock.
        inventory_quantity:
          type: number
          title: inventory_quantity
          description: The variant's inventory quantity. This is only included if you pass in the `fields` query parameter a `+variants.inventory_quantity` parameter.
        hs_code:
          type: string
          title: hs_code
          description: The variant's HS code.
        origin_country:
          type: string
          title: origin_country
          description: The variant's origin country.
        mid_code:
          type: string
          title: mid_code
          description: The variant's MID code.
        material:
          type: string
          title: material
          description: The variant's material.
        weight:
          type: number
          title: weight
          description: The variant's weight.
        length:
          type: number
          title: length
          description: The variant's length.
        height:
          type: number
          title: height
          description: The variant's height.
        width:
          type: number
          title: width
          description: The variant's width.
        variant_rank:
          type: number
          title: variant_rank
          description: The variant's rank among its sibling variants.
        options:
          type: array
          description: The variant's option values.
          items:
            $ref: '#/components/schemas/BaseProductOptionValue'
        product:
          $ref: '#/components/schemas/BaseProduct'
        product_id:
          type: string
          title: product_id
          description: The ID of the product that the variant belongs to.
        calculated_price:
          $ref: '#/components/schemas/BaseCalculatedPriceSet'
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the variant was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the variant was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the variant was deleted.
        metadata:
          type: object
          description: The variant's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        thumbnail:
          type: string
          title: thumbnail
          description: The variant's thumbnail.
        images:
          type: array
          description: The variant's images.
          items:
            $ref: '#/components/schemas/BaseProductImage'
    BasePromotionRuleValue:
      type: object
      description: The rule value's details.
      x-schemaName: BasePromotionRuleValue
      required:
        - id
      properties:
        id:
          type: string
          title: id
          description: The value's ID.
        value:
          type: string
          title: value
          description: The value.
    BaseRefund:
      type: object
      description: The refund's details.
      x-schemaName: BaseRefund
      required:
        - id
        - amount
        - created_at
        - payment
      properties:
        id:
          type: string
          title: id
          description: The refund's ID.
        amount:
          type: number
          title: amount
          description: The refund's amount.
        refund_reason_id:
          type: string
          title: refund_reason_id
          description: The ID of the refund reason.
        note:
          type: string
          title: note
          description: More details about the refund.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the refund was created.
        created_by:
          type: string
          title: created_by
          description: The ID of the user that created the refund.
        payment:
          type: object
        refund_reason:
          $ref: '#/components/schemas/BaseRefundReason'
    BaseRefundReason:
      type: object
      description: The refund reason's details.
      x-schemaName: BaseRefundReason
      required:
        - id
        - label
        - code
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The refund reason's ID.
        label:
          type: string
          title: label
          description: The refund reason's label.
        description:
          type: string
          title: description
          description: The refund reason's description.
        metadata:
          type: object
          description: The refund reason's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the refund reason was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the refund reason was updated.
        code:
          type: string
          title: code
          description: The refund reason's code.
    BaseRegion:
      type: object
      description: The region's details.
      x-schemaName: BaseRegion
      required:
        - id
        - name
        - currency_code
      properties:
        id:
          type: string
          title: id
          description: The region's ID.
        name:
          type: string
          title: name
          description: The region's name.
        currency_code:
          type: string
          title: currency_code
          description: The region's currency code.
        automatic_taxes:
          type: boolean
          title: automatic_taxes
          description: The region's automatic taxes.
        countries:
          type: array
          description: The region's countries.
          items:
            $ref: '#/components/schemas/BaseRegionCountry'
        payment_providers:
          type: array
          description: The region's payment providers.
          items:
            $ref: '#/components/schemas/AdminPaymentProvider'
        metadata:
          type: object
          description: The region's metadata.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The region's created at.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The region's updated at.
    BaseRegionCountry:
      type: object
      description: The country's details.
      x-schemaName: BaseRegionCountry
      properties:
        id:
          type: string
          title: id
          description: The country's ID.
        iso_2:
          type: string
          title: iso_2
          description: The country's iso 2.
          example: us
        iso_3:
          type: string
          title: iso_3
          description: The country's iso 3.
          example: usa
        num_code:
          type: string
          title: num_code
          description: The country's num code.
          example: 840
        name:
          type: string
          title: name
          description: The country's name.
        display_name:
          type: string
          title: display_name
          description: The country's display name.
      required:
        - id
    BaseRuleOperatorOptions:
      type: object
      description: The operator's details.
      x-schemaName: BaseRuleOperatorOptions
      required:
        - id
        - value
        - label
      properties:
        id:
          type: string
          title: id
          description: The operator's ID.
          example: in
        value:
          type: string
          title: value
          description: The operator's value.
          example: in
        label:
          type: string
          title: label
          description: The operator's label.
          example: In
    BaseShippingMethodAdjustment:
      type: object
      description: The adjustment's details.
      x-schemaName: BaseShippingMethodAdjustment
      required:
        - shipping_method
        - shipping_method_id
        - id
        - amount
        - cart_id
        - created_at
        - updated_at
      properties:
        shipping_method:
          type: object
        shipping_method_id:
          type: string
          title: shipping_method_id
          description: The ID of the shipping method the adjustment is applied on.
        id:
          type: string
          title: id
          description: The adjustment's ID.
        code:
          type: string
          title: code
          description: The adjustment's code.
        amount:
          type: number
          title: amount
          description: The adjustment's amount.
        cart_id:
          type: string
          title: cart_id
          description: The ID of the associated cart.
        description:
          type: string
          title: description
          description: The adjustment's description.
        promotion_id:
          type: string
          title: promotion_id
          description: The ID of the promotion applied by this adjustment.
        provider_id:
          type: string
          title: provider_id
          description: The adjustment's provider ID.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the adjustment was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the adjustment was updated.
    BaseShippingMethodTaxLine:
      type: object
      description: The tax line's details.
      x-schemaName: BaseShippingMethodTaxLine
      required:
        - shipping_method
        - shipping_method_id
        - total
        - subtotal
        - id
        - code
        - rate
        - created_at
        - updated_at
      properties:
        shipping_method:
          type: object
        shipping_method_id:
          type: string
          title: shipping_method_id
          description: The ID of this shipping method the tax line belongs to.
        total:
          type: number
          title: total
          description: The method's total including taxes and promotions.
        subtotal:
          type: number
          title: subtotal
          description: The method's total excluding taxes, including promotions.
        id:
          type: string
          title: id
          description: The tax line's ID.
        description:
          type: string
          title: description
          description: The tax line's description.
        tax_rate_id:
          type: string
          title: tax_rate_id
          description: The ID of the applied tax rate.
        code:
          type: string
          title: code
          description: The code that the rate is identified by.
        rate:
          type: number
          title: rate
          description: The rate to charge.
        provider_id:
          type: string
          title: provider_id
          description: The ID of the tax provider that calculated the taxes.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the tax line was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the tax line was updated.
    CampaignResponse:
      type: object
      description: The campaign's details.
      x-schemaName: CampaignResponse
      required:
        - id
        - name
        - description
        - currency
        - campaign_identifier
        - starts_at
        - ends_at
        - budget
      properties:
        id:
          type: string
          title: id
          description: The campaign's ID.
        name:
          type: string
          title: name
          description: The campaign's name.
        description:
          type: string
          title: description
          description: The campaign's description.
        currency:
          type: string
          title: currency
          description: The campaign's currency.
        campaign_identifier:
          type: string
          title: campaign_identifier
          description: The campaign's campaign identifier.
        starts_at:
          type: string
          title: starts_at
          description: The campaign's starts at.
        ends_at:
          type: string
          title: ends_at
          description: The campaign's ends at.
        budget:
          type: object
          description: The campaign's budget.
          required:
            - id
            - type
            - currency_code
            - limit
            - used
          properties:
            id:
              type: string
              title: id
              description: The budget's ID.
            type:
              type: string
              enum:
                - spend
                - usage
            currency_code:
              type: string
              title: currency_code
              description: The budget's currency code.
            limit:
              type: number
              title: limit
              description: The budget's limit.
            used:
              type: number
              title: used
              description: The budget's used.
    CreateAddress:
      type: object
      description: The address to create.
      x-schemaName: CreateAddress
      properties:
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer this address belongs to.
        company:
          type: string
          title: company
          description: The address's company.
        first_name:
          type: string
          title: first_name
          description: The address's first name.
        last_name:
          type: string
          title: last_name
          description: The address's last name.
        address_1:
          type: string
          title: address_1
          description: The address's first line.
        address_2:
          type: string
          title: address_2
          description: The address's second line.
        city:
          type: string
          title: city
          description: The address's city.
        country_code:
          type: string
          title: country_code
          description: The address's country code.
          example: us
        province:
          type: string
          title: province
          description: The address's ISO 3166-2 province code. Must be lower-case.
          example: us-ca
          externalDocs:
            url: https://en.wikipedia.org/wiki/ISO_3166-2
            description: Learn more about ISO 3166-2
        postal_code:
          type: string
          title: postal_code
          description: The address's postal code.
        phone:
          type: string
          title: phone
          description: The address's phone.
        metadata:
          type: object
          description: The address's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
    CustomerGroupInCustomerFilters:
      type: object
      description: Filter by customer groups to get their associated customers.
      x-schemaName: CustomerGroupInCustomerFilters
      required:
        - id
        - name
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          oneOf:
            - type: string
              title: id
              description: Filter by a group's ID.
            - type: array
              description: Filter by group IDs.
              items:
                type: string
                title: id
                description: A group's ID.
        name:
          oneOf:
            - type: string
              title: name
              description: Filter by a group's name.
            - type: array
              description: Filter by group names.
              items:
                type: string
                title: name
                description: A group's name.
        created_at:
          type: object
          description: Filter by the group's creation date.
          properties:
            $and:
              type: array
              description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
              items:
                type: object
              title: $and
            $or:
              type: array
              description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
              items:
                type: object
              title: $or
            $eq:
              oneOf:
                - type: string
                  title: $eq
                  description: Filter by an exact match.
                - type: array
                  description: Filter by exact matches.
                  items:
                    type: string
                    title: $eq
                    description: Filter by an exact match.
            $ne:
              type: string
              title: $ne
              description: Filter by values not equal to this parameter.
            $in:
              type: array
              description: Filter by values in this array.
              items:
                type: string
                title: $in
                description: Filter by values in this array.
            $nin:
              type: array
              description: Filter by values not in this array.
              items:
                type: string
                title: $nin
                description: Filter by values not in this array.
            $not:
              oneOf:
                - type: string
                  title: $not
                  description: Filter by values not matching the conditions in this parameter.
                - type: object
                  description: Filter by values not matching the conditions in this parameter.
                - type: array
                  description: Filter by values not matching the conditions in this parameter.
                  items:
                    type: string
                    title: $not
                    description: Filter by values not matching the conditions in this parameter.
            $gt:
              type: string
              title: $gt
              description: Filter by values greater than this parameter. Useful for numbers and dates only.
            $gte:
              type: string
              title: $gte
              description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
            $lt:
              type: string
              title: $lt
              description: Filter by values less than this parameter. Useful for numbers and dates only.
            $lte:
              type: string
              title: $lte
              description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
            $like:
              type: string
              title: $like
              description: Apply a `like` filter. Useful for strings only.
            $re:
              type: string
              title: $re
              description: Apply a regex filter. Useful for strings only.
            $ilike:
              type: string
              title: $ilike
              description: Apply a case-insensitive `like` filter. Useful for strings only.
            $fulltext:
              type: string
              title: $fulltext
              description: Filter to apply on full-text properties.
            $overlap:
              type: array
              description: Filter arrays that have overlapping values with this parameter.
              items:
                type: string
                title: $overlap
                description: Filter arrays that have overlapping values with this parameter.
            $contains:
              type: array
              description: Filter arrays that contain some of the values of this parameter.
              items:
                type: string
                title: $contains
                description: Filter arrays that contain some of the values of this parameter.
            $contained:
              type: array
              description: Filter arrays that contain all values of this parameter.
              items:
                type: string
                title: $contained
                description: Filter arrays that contain all values of this parameter.
            $exists:
              type: boolean
              title: $exists
              description: Filter by whether a value for this parameter exists (not `null`).
        updated_at:
          type: object
          description: Filter by the group's update date.
          properties:
            $and:
              type: array
              description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
              items:
                type: object
              title: $and
            $or:
              type: array
              description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
              items:
                type: object
              title: $or
            $eq:
              oneOf:
                - type: string
                  title: $eq
                  description: Filter by an exact match.
                - type: array
                  description: Filter by exact matches.
                  items:
                    type: string
                    title: $eq
                    description: Filter by an exact match.
            $ne:
              type: string
              title: $ne
              description: Filter by values not equal to this parameter.
            $in:
              type: array
              description: Filter by values in this array.
              items:
                type: string
                title: $in
                description: Filter by values in this array.
            $nin:
              type: array
              description: Filter by values not in this array.
              items:
                type: string
                title: $nin
                description: Filter by values not in this array.
            $not:
              oneOf:
                - type: string
                  title: $not
                  description: Filter by values not matching the conditions in this parameter.
                - type: object
                  description: Filter by values not matching the conditions in this parameter.
                - type: array
                  description: Filter by values not matching the conditions in this parameter.
                  items:
                    type: string
                    title: $not
                    description: Filter by values not matching the conditions in this parameter.
            $gt:
              type: string
              title: $gt
              description: Filter by values greater than this parameter. Useful for numbers and dates only.
            $gte:
              type: string
              title: $gte
              description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
            $lt:
              type: string
              title: $lt
              description: Filter by values less than this parameter. Useful for numbers and dates only.
            $lte:
              type: string
              title: $lte
              description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
            $like:
              type: string
              title: $like
              description: Apply a `like` filter. Useful for strings only.
            $re:
              type: string
              title: $re
              description: Apply a regex filter. Useful for strings only.
            $ilike:
              type: string
              title: $ilike
              description: Apply a case-insensitive `like` filter. Useful for strings only.
            $fulltext:
              type: string
              title: $fulltext
              description: Filter to apply on full-text properties.
            $overlap:
              type: array
              description: Filter arrays that have overlapping values with this parameter.
              items:
                type: string
                title: $overlap
                description: Filter arrays that have overlapping values with this parameter.
            $contains:
              type: array
              description: Filter arrays that contain some of the values of this parameter.
              items:
                type: string
                title: $contains
                description: Filter arrays that contain some of the values of this parameter.
            $contained:
              type: array
              description: Filter arrays that contain all values of this parameter.
              items:
                type: string
                title: $contained
                description: Filter arrays that contain all values of this parameter.
            $exists:
              type: boolean
              title: $exists
              description: Filter by whether a value for this parameter exists (not `null`).
        deleted_at:
          type: object
          description: Filter by the group's deletion date.
          properties:
            $and:
              type: array
              description: Join query parameters with an AND condition. Each object's content is the same type as the expected query parameters.
              items:
                type: object
              title: $and
            $or:
              type: array
              description: Join query parameters with an OR condition. Each object's content is the same type as the expected query parameters.
              items:
                type: object
              title: $or
            $eq:
              oneOf:
                - type: string
                  title: $eq
                  description: Filter by an exact match.
                - type: array
                  description: Filter by exact matches.
                  items:
                    type: string
                    title: $eq
                    description: Filter by an exact match.
            $ne:
              type: string
              title: $ne
              description: Filter by values not equal to this parameter.
            $in:
              type: array
              description: Filter by values in this array.
              items:
                type: string
                title: $in
                description: Filter by values in this array.
            $nin:
              type: array
              description: Filter by values not in this array.
              items:
                type: string
                title: $nin
                description: Filter by values not in this array.
            $not:
              oneOf:
                - type: string
                  title: $not
                  description: Filter by values not matching the conditions in this parameter.
                - type: object
                  description: Filter by values not matching the conditions in this parameter.
                - type: array
                  description: Filter by values not matching the conditions in this parameter.
                  items:
                    type: string
                    title: $not
                    description: Filter by values not matching the conditions in this parameter.
            $gt:
              type: string
              title: $gt
              description: Filter by values greater than this parameter. Useful for numbers and dates only.
            $gte:
              type: string
              title: $gte
              description: Filter by values greater than or equal to this parameter. Useful for numbers and dates only.
            $lt:
              type: string
              title: $lt
              description: Filter by values less than this parameter. Useful for numbers and dates only.
            $lte:
              type: string
              title: $lte
              description: Filter by values less than or equal to this parameter. Useful for numbers and dates only.
            $like:
              type: string
              title: $like
              description: Apply a `like` filter. Useful for strings only.
            $re:
              type: string
              title: $re
              description: Apply a regex filter. Useful for strings only.
            $ilike:
              type: string
              title: $ilike
              description: Apply a case-insensitive `like` filter. Useful for strings only.
            $fulltext:
              type: string
              title: $fulltext
              description: Filter to apply on full-text properties.
            $overlap:
              type: array
              description: Filter arrays that have overlapping values with this parameter.
              items:
                type: string
                title: $overlap
                description: Filter arrays that have overlapping values with this parameter.
            $contains:
              type: array
              description: Filter arrays that contain some of the values of this parameter.
              items:
                type: string
                title: $contains
                description: Filter arrays that contain some of the values of this parameter.
            $contained:
              type: array
              description: Filter arrays that contain all values of this parameter.
              items:
                type: string
                title: $contained
                description: Filter arrays that contain all values of this parameter.
            $exists:
              type: boolean
              title: $exists
              description: Filter by whether a value for this parameter exists (not `null`).
    Error:
      title: Response Error
      type: object
      properties:
        code:
          type: string
          description: A slug code to indicate the type of the error.
          enum:
            - invalid_state_error
            - invalid_request_error
            - api_error
            - unknown_error
        message:
          type: string
          description: Description of the error that occurred.
          example: first_name must be a string
        type:
          type: string
          description: A slug indicating the type of the error.
          enum:
            - QueryRunnerAlreadyReleasedError
            - TransactionAlreadyStartedError
            - TransactionNotStartedError
            - conflict
            - unauthorized
            - payment_authorization_error
            - duplicate_error
            - not_allowed
            - invalid_data
            - not_found
            - database_error
            - unexpected_state
            - invalid_argument
            - unknown_error
    IndexInfo:
      type: object
      description: The index's metadata information.
      x-schemaName: IndexInfo
      required:
        - id
        - entity
        - status
        - fields
        - updated_at
        - last_synced_key
      properties:
        id:
          type: string
          title: id
          description: The index's ID.
        entity:
          type: string
          title: entity
          description: The index's entity.
        status:
          type: string
          description: The index's syncing or ingesting status.
          enum:
            - pending
            - error
            - done
            - processing
        fields:
          type: array
          description: The index's fields.
          items:
            type: string
            title: fields
            description: The index's fields.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the index was last updated.
        last_synced_key:
          type: string
          title: last_synced_key
          description: The key of the last index sync.
    InventoryLevel:
      type: object
      description: The inventory level's details
      x-schemaName: InventoryLevel
      required:
        - id
        - inventory_item_id
        - location_id
        - stocked_quantity
        - reserved_quantity
        - available_quantity
        - incoming_quantity
      properties:
        id:
          type: string
          title: id
          description: The inventory level's ID.
        inventory_item_id:
          type: string
          title: inventory_item_id
          description: The ID of the associated inventory item.
        location_id:
          type: string
          title: location_id
          description: The ID of the associated location.
        stocked_quantity:
          type: number
          title: stocked_quantity
          description: The inventory level's stocked quantity.
        reserved_quantity:
          type: number
          title: reserved_quantity
          description: The inventory level's reserved quantity.
        available_quantity:
          type: number
          title: available_quantity
          description: The inventory level's available quantity.
        incoming_quantity:
          type: number
          title: incoming_quantity
          description: The inventory level's incoming quantity.
        metadata:
          type: object
          description: The inventory level's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
    Order:
      type: object
      description: The order change's order.
      x-schemaName: Order
      required:
        - id
        - version
        - display_id
        - status
        - currency_code
        - created_at
        - updated_at
        - original_item_total
        - original_item_subtotal
        - original_item_tax_total
        - item_total
        - item_subtotal
        - item_tax_total
        - item_discount_total
        - original_total
        - original_subtotal
        - original_tax_total
        - total
        - subtotal
        - tax_total
        - discount_subtotal
        - discount_total
        - discount_tax_total
        - credit_line_total
        - gift_card_total
        - gift_card_tax_total
        - shipping_total
        - shipping_subtotal
        - shipping_tax_total
        - shipping_discount_total
        - original_shipping_total
        - original_shipping_subtotal
        - original_shipping_tax_total
      properties:
        id:
          type: string
          title: id
          description: The order's ID.
        version:
          type: number
          title: version
          description: The order's version.
        order_change:
          type: object
        status:
          type: string
          description: The order's status.
          enum:
            - canceled
            - requires_action
            - pending
            - completed
            - draft
            - archived
        region_id:
          type: string
          title: region_id
          description: The ID of the region the order belongs to.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer that placed the order.
        sales_channel_id:
          type: string
          title: sales_channel_id
          description: The ID of the sales channel the order was placed in.
        email:
          type: string
          title: email
          description: The email of the customer that placed the order.
          format: email
        currency_code:
          type: string
          title: currency_code
          description: The order's currency code.
          example: usd
        shipping_address:
          $ref: '#/components/schemas/OrderAddress'
        billing_address:
          $ref: '#/components/schemas/OrderAddress'
        items:
          type: array
          description: The order's items.
          items:
            $ref: '#/components/schemas/OrderLineItem'
        shipping_methods:
          type: array
          description: The order's shipping methods.
          items:
            $ref: '#/components/schemas/OrderShippingMethod'
        transactions:
          type: array
          description: The order's transactions.
          items:
            $ref: '#/components/schemas/OrderTransaction'
        summary:
          type: object
          description: The order's summary.
          properties:
            pending_difference:
              type: number
              title: pending_difference
              description: The remaining amount to be paid or refunded.
            current_order_total:
              type: number
              title: current_order_total
              description: The order's current total.
            original_order_total:
              type: number
              title: original_order_total
              description: The order's total before any changes.
            transaction_total:
              type: number
              title: transaction_total
              description: The total of the transactions (payments and refunds) made on the order.
            paid_total:
              type: number
              title: paid_total
              description: The total paid amount.
            refunded_total:
              type: number
              title: refunded_total
              description: The total refunded amount.
            credit_line_total:
              type: number
              title: credit_line_total
              description: The total credit line amount.
            accounting_total:
              type: number
              title: accounting_total
              description: The total amount for accounting purposes.
            raw_pending_difference:
              type: object
              description: The summary's raw pending difference.
            raw_current_order_total:
              type: object
              description: The summary's raw current order total.
            raw_original_order_total:
              type: object
              description: The summary's raw original order total.
            raw_transaction_total:
              type: object
              description: The summary's raw transaction total.
            raw_paid_total:
              type: object
              description: The summary's raw paid total.
            raw_refunded_total:
              type: object
              description: The summary's raw refunded total.
            raw_credit_line_total:
              type: object
              description: The summary's raw credit line total.
            raw_accounting_total:
              type: object
              description: The summary's raw accounting total.
          required:
            - pending_difference
            - current_order_total
            - original_order_total
            - transaction_total
            - paid_total
            - refunded_total
            - credit_line_total
            - accounting_total
            - raw_pending_difference
            - raw_current_order_total
            - raw_original_order_total
            - raw_transaction_total
            - raw_paid_total
            - raw_refunded_total
            - raw_credit_line_total
            - raw_accounting_total
        metadata:
          type: object
          description: The order's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        canceled_at:
          type: string
          format: date-time
          title: canceled_at
          description: The date the order was canceled.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the order was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the order was updated.
        original_item_total:
          type: number
          title: original_item_total
          description: The order items' total including taxes, excluding promotions.
        original_item_subtotal:
          type: number
          title: original_item_subtotal
          description: The order items' total excluding taxes, including promotions.
        original_item_tax_total:
          type: number
          title: original_item_tax_total
          description: The taxes total for order items, excluding promotions.
        item_total:
          type: number
          title: item_total
          description: The order items' total including taxes and promotions.
        item_subtotal:
          type: number
          title: item_subtotal
          description: The order items' total excluding taxes, including promotions.
        item_tax_total:
          type: number
          title: item_tax_total
          description: The tax total of the order items including promotions.
        original_total:
          type: number
          title: original_total
          description: The order's total including taxes, excluding promotions.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The order's total excluding taxes, including promotions.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The tax total of the order excluding promotions.
        total:
          type: number
          title: total
          description: The order's total including taxes and promotions.
        subtotal:
          type: number
          title: subtotal
          description: The order's subtotal excluding taxes, including promotions.
        tax_total:
          type: number
          title: tax_total
          description: The tax total of the order including promotions.
        discount_subtotal:
          type: number
          title: discount_subtotal
          description: The total discount excluding taxes.
        discount_total:
          type: number
          title: discount_total
          description: The total discount including taxes.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The tax total applied on the discount.
        gift_card_total:
          type: number
          title: gift_card_total
          description: The order's gift card total.
        gift_card_tax_total:
          type: number
          title: gift_card_tax_total
          description: The order's gift card tax total.
        shipping_total:
          type: number
          title: shipping_total
          description: The order's shipping total including taxes and promotions.
        shipping_subtotal:
          type: number
          title: shipping_subtotal
          description: The order's shipping total excluding taxes, including promotions.
        shipping_tax_total:
          type: number
          title: shipping_tax_total
          description: The total taxes of the order's shipping including taxes.
        original_shipping_total:
          type: number
          title: original_shipping_total
          description: The order's shipping total including taxes, excluding promotions.
        original_shipping_subtotal:
          type: number
          title: original_shipping_subtotal
          description: The order's shipping total excluding taxes, including promotions.
        original_shipping_tax_total:
          type: number
          title: original_shipping_tax_total
          description: The total taxes of the order's shipping excluding promotions.
        display_id:
          type: number
          title: display_id
          description: The order's display ID.
        credit_lines:
          type: array
          description: The order's credit lines, useful to add additional payment amounts for an order.
          items:
            $ref: '#/components/schemas/OrderCreditLine'
        is_draft_order:
          type: boolean
          title: is_draft_order
          description: Whether the order is a draft order.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the order was deleted.
        credit_line_total:
          type: number
          title: credit_line_total
          description: The order's credit line total.
        item_discount_total:
          type: number
          title: item_discount_total
          description: The total discount amount applied on the order's items.
        shipping_discount_total:
          type: number
          title: shipping_discount_total
          description: The total discount amount applied on the order's shipping.
        custom_display_id:
          type: string
          title: custom_display_id
          description: The custom display ID of the order.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/order/custom-display-id
        locale:
          type: string
          title: locale
          description: The order's locale in [BCP 47](https://gist.github.com/typpo/b2b828a35e683b9bf8db91b5404f1bd1) format.
          example: en-US
    OrderAddress:
      type: object
      description: The address's details.
      x-schemaName: OrderAddress
      required:
        - id
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The address's ID.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer the address belongs to.
        first_name:
          type: string
          title: first_name
          description: The address's first name.
        last_name:
          type: string
          title: last_name
          description: The address's last name.
        phone:
          type: string
          title: phone
          description: The address's phone.
        company:
          type: string
          title: company
          description: The address's company.
        address_1:
          type: string
          title: address_1
          description: The address's first line.
        address_2:
          type: string
          title: address_2
          description: The address's second line.
        city:
          type: string
          title: city
          description: The address's city.
        country_code:
          type: string
          title: country_code
          description: The address's country code.
          example: us
        province:
          type: string
          title: province
          description: The address's lower-case ISO 3166-2 province code.
          example: us-ca
          externalDocs:
            url: https://en.wikipedia.org/wiki/ISO_3166-2
            description: Learn more about ISO 3166-2
        postal_code:
          type: string
          title: postal_code
          description: The address's postal code.
        metadata:
          type: object
          description: The address's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the address was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the address was updated.
    OrderChange:
      type: object
      description: The order change's details.
      x-schemaName: OrderChange
      required:
        - id
        - version
        - order_id
        - return_id
        - exchange_id
        - claim_id
        - order
        - return_order
        - exchange
        - claim
        - actions
        - status
        - requested_by
        - requested_at
        - confirmed_by
        - confirmed_at
        - declined_by
        - declined_reason
        - metadata
        - declined_at
        - canceled_by
        - canceled_at
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The order change's ID.
        version:
          type: number
          title: version
          description: The order change's version. This will be the order's version when the change is applied.
        change_type:
          type: string
          description: The order change's type.
          enum:
            - return
            - exchange
            - claim
            - edit
        order_id:
          type: string
          title: order_id
          description: The ID of the order this change applies on.
        return_id:
          type: string
          title: return_id
          description: The ID of the associated return.
        exchange_id:
          type: string
          title: exchange_id
          description: The ID of the associated exchange.
        claim_id:
          type: string
          title: claim_id
          description: The ID of the associated claim.
        order:
          type: object
        return_order:
          type: object
        exchange:
          $ref: '#/components/schemas/OrderExchange'
        claim:
          $ref: '#/components/schemas/OrderClaim'
        actions:
          type: array
          description: The order change's actions.
          items:
            $ref: '#/components/schemas/OrderChangeAction'
        status:
          type: string
          description: The order change's status.
          enum:
            - canceled
            - requested
            - pending
            - confirmed
            - declined
        requested_by:
          type: string
          title: requested_by
          description: The ID of the user that requested the change.
        requested_at:
          type: string
          title: requested_at
          description: The date the order change was requested.
          format: date-time
        confirmed_by:
          type: string
          title: confirmed_by
          description: The ID of the user that confirmed the order change.
        confirmed_at:
          type: string
          title: confirmed_at
          description: The date the order change was confirmed.
          format: date-time
        declined_by:
          type: string
          title: declined_by
          description: The ID of the user that declined the order change.
        declined_reason:
          type: string
          title: declined_reason
          description: The reason the order change was declined.
        metadata:
          type: object
          description: The order change's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        declined_at:
          type: string
          title: declined_at
          description: The date the order change was declined.
          format: date-time
        canceled_by:
          type: string
          title: canceled_by
          description: The ID of the user that canceled the order change.
        canceled_at:
          type: string
          title: canceled_at
          description: The date the order change was canceled.
          format: date-time
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the order change was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the order change was updated.
        carry_over_promotions:
          type: boolean
          title: carry_over_promotions
          description: Whether promotions from the original order should be carried over to the order change (specifically, exchanges).
    OrderChangeAction:
      type: object
      description: The order change action's details.
      x-schemaName: OrderChangeAction
      required:
        - id
        - order_change_id
        - order_change
        - order_id
        - return_id
        - claim_id
        - exchange_id
        - order
        - reference
        - reference_id
        - action
        - details
        - internal_note
        - ordering
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The action's ID.
        order_change_id:
          type: string
          title: order_change_id
          description: The ID of the order change that the action belongs to.
        order_change:
          type: object
        order_id:
          type: string
          title: order_id
          description: The ID of the order the associated change is for.
        return_id:
          type: string
          title: return_id
          description: The ID of the associated return.
        claim_id:
          type: string
          title: claim_id
          description: The ID of the associated claim.
        exchange_id:
          type: string
          title: exchange_id
          description: The ID of the associated exchange.
        order:
          $ref: '#/components/schemas/Order'
        reference:
          type: string
          title: reference
          description: The name of the table this action applies on.
          enum:
            - claim
            - exchange
            - return
            - order_shipping_method
        reference_id:
          type: string
          title: reference_id
          description: The ID of the record in the referenced table.
        action:
          type: string
          description: The applied action.
          enum:
            - CANCEL_RETURN_ITEM
            - FULFILL_ITEM
            - DELIVER_ITEM
            - CANCEL_ITEM_FULFILLMENT
            - ITEM_ADD
            - ITEM_REMOVE
            - ITEM_UPDATE
            - RECEIVE_DAMAGED_RETURN_ITEM
            - RECEIVE_RETURN_ITEM
            - RETURN_ITEM
            - SHIPPING_ADD
            - SHIPPING_REMOVE
            - SHIP_ITEM
            - WRITE_OFF_ITEM
            - REINSTATE_ITEM
        details:
          type: object
          description: The action's details.
          example:
            reference_id: 123
            quantity: 1
        internal_note:
          type: string
          title: internal_note
          description: A note that's viewed only by admin users.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the action was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the action was updated.
        ordering:
          type: number
          title: ordering
          description: The action's ordering among other actions in the same order change.
    OrderClaim:
      type: object
      description: The order change's claim.
      x-schemaName: OrderClaim
      required:
        - id
        - type
        - order_id
        - order_version
        - display_id
        - claim_items
        - additional_items
        - metadata
      properties:
        id:
          type: string
          title: id
          description: The claim's ID.
        order_id:
          type: string
          title: order_id
          description: The ID of the order associated with the claim.
        claim_items:
          type: array
          description: The order items targetted by the claim.
          items:
            $ref: '#/components/schemas/BaseClaimItem'
        additional_items:
          type: array
          description: The outbound or new items of the claim.
          items:
            $ref: '#/components/schemas/BaseClaimItem'
        return:
          type: object
        return_id:
          type: string
          title: return_id
          description: The ID of the associated return.
        no_notification:
          type: boolean
          title: no_notification
          description: Whether the customer should be notified about changes in the claim.
        refund_amount:
          type: number
          title: refund_amount
          description: The amount to be refunded.
        display_id:
          type: number
          title: display_id
          description: The claim's display ID.
        shipping_methods:
          type: array
          description: The claim's shipping methods.
          items:
            $ref: '#/components/schemas/OrderShippingMethod'
        transactions:
          type: array
          description: The claim's transactions.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/order/transactions
            description: Learn more about transactions of orders and associated models.
          items:
            $ref: '#/components/schemas/OrderTransaction'
        metadata:
          type: object
          description: The claim's metadata, used to store custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The claim's creation date.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The claim's update date.
        type:
          type: string
          description: The claim's type.
          enum:
            - replace
            - refund
        order:
          $ref: '#/components/schemas/Order'
        order_version:
          type: number
          title: order_version
          description: The claim's order version.
        raw_refund_amount:
          oneOf:
            - type: string
              title: raw_refund_amount
              description: The claim's raw refund amount.
            - type: number
              title: raw_refund_amount
              description: The claim's raw refund amount.
            - type: string
              title: raw_refund_amount
              description: The claim's raw refund amount.
            - type: number
              title: raw_refund_amount
              description: The claim's raw refund amount.
        created_by:
          type: string
          title: created_by
          description: The ID of the user that created the claim.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the claim was deleted.
        canceled_at:
          type: string
          title: canceled_at
          description: The date the claim was canceled.
          format: date-time
    OrderCreditLine:
      type: object
      description: The credit line's details.
      x-schemaName: OrderCreditLine
      required:
        - id
        - order_id
        - order
        - amount
        - reference
        - reference_id
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The credit line's ID.
        order_id:
          type: string
          title: order_id
          description: The ID of the associated order.
        order:
          type: object
        reference:
          type: string
          title: reference
          description: The table that this credit line references. For example, `payment_collection`.
        reference_id:
          type: string
          title: reference_id
          description: The ID of the record in the referenced table. For example, `paycol_123`.
        metadata:
          type: object
          description: The credit line's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the credit line was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the credit line was updated.
        amount:
          type: number
          title: amount
          description: The credit line's amount.
    OrderExchange:
      type: object
      description: The order change's exchange.
      x-schemaName: OrderExchange
      required:
        - id
        - order_id
        - order_version
        - display_id
        - additional_items
        - metadata
      properties:
        order_id:
          type: string
          title: order_id
          description: The ID of the order the exchange is created for.
        additional_items:
          type: array
          description: The new items (outbound) sent by the exchange.
          items:
            $ref: '#/components/schemas/BaseExchangeItem'
        no_notification:
          type: boolean
          title: no_notification
          description: Whether to send the customer notifications when the exchange is updated.
        difference_due:
          type: number
          title: difference_due
          description: The amount to be exchanged or refunded. If the amount is negative, it must be refunded. If positive, additional payment is required from the customer.
        return:
          $ref: '#/components/schemas/Return'
        return_id:
          type: string
          title: return_id
          description: The ID of the associated exchange.
        id:
          type: string
          title: id
          description: The exchange's ID.
        display_id:
          type: number
          title: display_id
          description: The exchange's display ID.
        shipping_methods:
          type: array
          description: The shipping methods used to send the new (outbound) items.
          items:
            $ref: '#/components/schemas/OrderShippingMethod'
        transactions:
          type: array
          description: The exchange's transactions.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/order/transactions
          items:
            $ref: '#/components/schemas/OrderTransaction'
        metadata:
          type: object
          description: The exchange's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date that the exchange was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date that the exchange was updated.
        order:
          $ref: '#/components/schemas/Order'
        order_version:
          type: number
          title: order_version
          description: The version of the order when the exchange is applied.
        raw_difference_due:
          oneOf:
            - type: string
              title: raw_difference_due
              description: The exchange's raw difference due.
            - type: number
              title: raw_difference_due
              description: The exchange's raw difference due.
            - type: string
              title: raw_difference_due
              description: The exchange's raw difference due.
            - type: number
              title: raw_difference_due
              description: The exchange's raw difference due.
        allow_backorder:
          type: boolean
          title: allow_backorder
          description: Whether variants that are out of stock can be added to the exchange as outbound items.
        created_by:
          type: string
          title: created_by
          description: The ID of the user that created the exchange.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the exchange was deleted.
        canceled_at:
          type: string
          title: canceled_at
          description: The date the exchange was canceled.
          format: date-time
    OrderItem:
      type: object
      description: The order item's detail.
      x-schemaName: OrderItem
      required:
        - id
        - item_id
        - item
        - quantity
        - fulfilled_quantity
        - delivered_quantity
        - shipped_quantity
        - return_requested_quantity
        - return_received_quantity
        - return_dismissed_quantity
        - written_off_quantity
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The item's ID.
        item_id:
          type: string
          title: item_id
          description: The ID of the associated line item.
        item:
          type: object
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        fulfilled_quantity:
          type: number
          title: fulfilled_quantity
          description: The item's fulfilled quantity.
        delivered_quantity:
          type: number
          title: delivered_quantity
          description: The item's delivered quantity.
        shipped_quantity:
          type: number
          title: shipped_quantity
          description: The item's shipped quantity.
        return_requested_quantity:
          type: number
          title: return_requested_quantity
          description: The item's quantity that's requested to be returned.
        return_received_quantity:
          type: number
          title: return_received_quantity
          description: The item's quantity that's received through a return.
        return_dismissed_quantity:
          type: number
          title: return_dismissed_quantity
          description: The item's quantity that's returned but dismissed because it's damaged.
        written_off_quantity:
          type: number
          title: written_off_quantity
          description: The item's quantity that's removed due to an order change.
        metadata:
          type: object
          description: The item's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the item was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the item was updated.
    OrderLineItem:
      type: object
      description: The order line item's details.
      x-schemaName: OrderLineItem
      required:
        - id
        - title
        - requires_shipping
        - is_discountable
        - is_giftcard
        - is_tax_inclusive
        - unit_price
        - quantity
        - detail
        - created_at
        - updated_at
        - original_total
        - original_subtotal
        - original_tax_total
        - item_total
        - item_subtotal
        - item_tax_total
        - total
        - subtotal
        - tax_total
        - discount_total
        - discount_tax_total
        - refundable_total
        - refundable_total_per_unit
      properties:
        id:
          type: string
          title: id
          description: The item's ID.
        title:
          type: string
          title: title
          description: The item's title.
        subtitle:
          type: string
          title: subtitle
          description: The item's subtitle.
        thumbnail:
          type: string
          title: thumbnail
          description: The item's thumbnail URL.
        variant_id:
          type: string
          title: variant_id
          description: The ID of the associated variant.
        product_id:
          type: string
          title: product_id
          description: The ID of the associated product.
        product_title:
          type: string
          title: product_title
          description: The item's product title.
        product_description:
          type: string
          title: product_description
          description: The item's product description.
        product_subtitle:
          type: string
          title: product_subtitle
          description: The item's product subtitle.
        product_type:
          type: string
          title: product_type
          description: The ID of the associated product's type.
        product_collection:
          type: string
          title: product_collection
          description: The ID of the associated product's collection.
        product_handle:
          type: string
          title: product_handle
          description: The item's product handle.
        variant_sku:
          type: string
          title: variant_sku
          description: The item's variant SKU.
        variant_barcode:
          type: string
          title: variant_barcode
          description: The item's variant barcode.
        variant_title:
          type: string
          title: variant_title
          description: The item's variant title.
        variant_option_values:
          type: object
          description: The associated variant's values for the associated product's options.
          example:
            Color: Red
        requires_shipping:
          type: boolean
          title: requires_shipping
          description: Whether the item requires shipping.
        is_discountable:
          type: boolean
          title: is_discountable
          description: Whether the item is discountable.
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: Whether the item's price includes taxes.
        compare_at_unit_price:
          type: number
          title: compare_at_unit_price
          description: The original price of the item before a promotion or sale.
        unit_price:
          type: number
          title: unit_price
          description: The item's price for a single quantity.
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        tax_lines:
          type: array
          description: The item's tax lines.
          items:
            $ref: '#/components/schemas/OrderLineItemTaxLine'
        adjustments:
          type: array
          description: The item's adjustments.
          items:
            $ref: '#/components/schemas/OrderLineItemAdjustment'
        detail:
          $ref: '#/components/schemas/OrderItem'
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the item was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the item was updated.
        metadata:
          type: object
          description: The item's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        original_total:
          type: number
          title: original_total
          description: The item's total including taxes and promotions.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The item's total excluding taxes, including promotions.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The total taxes of the item excluding promotions.
        item_total:
          type: number
          title: item_total
          description: The item's total for a single quantity, including taxes and promotions.
        item_subtotal:
          type: number
          title: item_subtotal
          description: The item's total for a single quantity, excluding taxes and including promotions.
        item_tax_total:
          type: number
          title: item_tax_total
          description: The total taxes of a single quantity of the item, including promotions.
        total:
          type: number
          title: total
          description: The item's total including taxes and promotions.
        subtotal:
          type: number
          title: subtotal
          description: The item's total excluding taxes, including promotions.
        tax_total:
          type: number
          title: tax_total
          description: The total taxes of the item, including promotions.
        discount_total:
          type: number
          title: discount_total
          description: The item's discount total.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The total taxes on the discounted amount.
        refundable_total:
          type: number
          title: refundable_total
          description: The total amount of the item that can be refunded.
        refundable_total_per_unit:
          type: number
          title: refundable_total_per_unit
          description: The total amount that can be refunded of a single quantity of the item.
        product_type_id:
          type: string
          title: product_type_id
          description: The ID of the associated product's type.
        is_giftcard:
          type: boolean
          title: is_giftcard
          description: Whether the item is a gift card.
    OrderLineItemAdjustment:
      type: object
      description: The line item adjustment's details.
      x-schemaName: OrderLineItemAdjustment
      required:
        - item
        - item_id
        - id
        - amount
        - order_id
        - created_at
        - updated_at
      properties:
        item:
          type: object
        item_id:
          type: string
          title: item_id
          description: The ID of the item this adjustment is for.
        id:
          type: string
          title: id
          description: The adjustment's ID.
        code:
          type: string
          title: code
          description: The adjustment's code.
        amount:
          type: number
          title: amount
          description: The adjustment's amount.
        order_id:
          type: string
          title: order_id
          description: The ID of the associated order.
        description:
          type: string
          title: description
          description: The adjustment's description.
        promotion_id:
          type: string
          title: promotion_id
          description: The ID of the promotion applied by this adjustment.
        provider_id:
          type: string
          title: provider_id
          description: The adjustment's provider ID.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the adjustment was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the adjustment was updated.
    OrderLineItemTaxLine:
      type: object
      description: The line item tax line's details.
      x-schemaName: OrderLineItemTaxLine
      required:
        - item
        - item_id
        - total
        - subtotal
        - id
        - code
        - rate
        - created_at
        - updated_at
      properties:
        item:
          type: object
        item_id:
          type: string
          title: item_id
          description: The ID of the line item that the tax line belongs to.
        total:
          type: number
          title: total
          description: The item's total including taxes and promotions.
        subtotal:
          type: number
          title: subtotal
          description: The item's total excluding taxes, including promotions.
        id:
          type: string
          title: id
          description: The tax line's ID.
        description:
          type: string
          title: description
          description: The tax line's description.
        tax_rate_id:
          type: string
          title: tax_rate_id
          description: The ID of the applied tax rate.
        code:
          type: string
          title: code
          description: The code that the tax rate is identified by.
        rate:
          type: number
          title: rate
          description: The rate to charge.
        provider_id:
          type: string
          title: provider_id
          description: The ID of the tax provider used to calculate the tax lines.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the tax line was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the tax line was updated.
    OrderReturnItem:
      type: object
      description: The item's items.
      x-schemaName: OrderReturnItem
      required:
        - id
        - return_id
        - order_id
        - item_id
        - quantity
      properties:
        id:
          type: string
          title: id
          description: The return item's ID.
        quantity:
          type: number
          title: quantity
          description: The return item's quantity.
        received_quantity:
          type: number
          title: received_quantity
          description: The received quantity of the item. This quantity is added to the stocked inventory quantity of the item.
        reason_id:
          type: string
          title: reason_id
          description: The ID of the return reason associated with the item.
        item_id:
          type: string
          title: item_id
          description: The ID of the associated order item.
        return_id:
          type: string
          title: return_id
          description: The ID of the return this return item belongs to.
        metadata:
          type: object
          description: The return item's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        order_id:
          type: string
          title: order_id
          description: The ID of the order the return belongs to.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the item was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the item was updated.
        damaged_quantity:
          type: number
          title: damaged_quantity
          description: The item's damaged quantity.
    OrderShippingMethod:
      type: object
      description: The shipping method's details.
      x-schemaName: OrderShippingMethod
      required:
        - id
        - order_id
        - name
        - amount
        - is_tax_inclusive
        - created_at
        - updated_at
        - original_total
        - original_subtotal
        - original_tax_total
        - total
        - subtotal
        - tax_total
        - discount_total
        - discount_tax_total
      properties:
        id:
          type: string
          title: id
          description: The shipping method's ID.
        order_id:
          type: string
          title: order_id
          description: The ID of the order that the shipping method belongs to.
        name:
          type: string
          title: name
          description: The shipping method's name.
        description:
          type: string
          title: description
          description: The shipping method's description.
        amount:
          type: number
          title: amount
          description: The shipping method's amount.
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: Whether the shipping method's amount includes taxes.
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the shipping option this method was created from.
        data:
          type: object
          description: The shipping method's data, useful for the fulfillment provider handling the fulfillment.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/order/concepts#data-property
        metadata:
          type: object
          description: The shipping method's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        tax_lines:
          type: array
          description: The shipping method's tax lines.
          items:
            $ref: '#/components/schemas/OrderShippingMethodTaxLine'
        adjustments:
          type: array
          description: The shipping method's adjustments.
          items:
            $ref: '#/components/schemas/OrderShippingMethodAdjustment'
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the shipping method was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the shipping method was updated.
        original_total:
          type: number
          title: original_total
          description: The shipping method's total including taxes, excluding promotions.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The shipping method's subtotal excluding taxes, including promotions.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The total taxes of the shipping method excluding promotions.
        total:
          type: number
          title: total
          description: The shipping method's total including taxes and promotions.
        subtotal:
          type: number
          title: subtotal
          description: The shipping method's total excluding taxes, including promotions.
        tax_total:
          type: number
          title: tax_total
          description: The total taxes of the shipping method, including promotions.
        discount_total:
          type: number
          title: discount_total
          description: The shipping method's discount total.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The total taxes of the discount amount.
    OrderShippingMethodAdjustment:
      type: object
      description: The shipping method adjustment's details.
      x-schemaName: OrderShippingMethodAdjustment
      required:
        - shipping_method
        - shipping_method_id
        - id
        - amount
        - order_id
        - created_at
        - updated_at
      properties:
        shipping_method:
          type: object
        shipping_method_id:
          type: string
          title: shipping_method_id
          description: The ID of the shipping method this adjustment is for.
        id:
          type: string
          title: id
          description: The adjustment's ID.
        code:
          type: string
          title: code
          description: The adjustment's code.
        amount:
          type: number
          title: amount
          description: The adjustment's amount.
        order_id:
          type: string
          title: order_id
          description: The ID of the associated order.
        description:
          type: string
          title: description
          description: The adjustment's description.
        promotion_id:
          type: string
          title: promotion_id
          description: The ID of the promotion this adjustment applies.
        provider_id:
          type: string
          title: provider_id
          description: The adjustment's provider ID.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the adjustment was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the adjustment was updated.
    OrderShippingMethodTaxLine:
      type: object
      description: The shipping method tax line's details.
      x-schemaName: OrderShippingMethodTaxLine
      required:
        - shipping_method
        - shipping_method_id
        - total
        - subtotal
        - id
        - code
        - rate
        - created_at
        - updated_at
      properties:
        shipping_method:
          type: object
        shipping_method_id:
          type: string
          title: shipping_method_id
          description: The ID of the shipping method that this tax line is for.
        total:
          type: number
          title: total
          description: The shipping method's total including taxes and promotions.
        subtotal:
          type: number
          title: subtotal
          description: The shipping method's total excluding taxes, including promotions.
        id:
          type: string
          title: id
          description: The tax line's ID.
        description:
          type: string
          title: description
          description: The tax line's description.
        tax_rate_id:
          type: string
          title: tax_rate_id
          description: The ID of the applied tax rate.
        code:
          type: string
          title: code
          description: The code that the tax rate is identified by.
        rate:
          type: number
          title: rate
          description: The rate to charge.
        provider_id:
          type: string
          title: provider_id
          description: The ID of the tax provider used to calculate taxes.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the tax line was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the tax line was updated.
    OrderTransaction:
      type: object
      description: The transaction's details.
      x-schemaName: OrderTransaction
      required:
        - id
        - order_id
        - version
        - order
        - amount
        - currency_code
        - reference
        - reference_id
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The transaction's ID.
        order_id:
          type: string
          title: order_id
          description: The ID of the order this transaction belongs to.
        amount:
          type: number
          title: amount
          description: The transaction's amount.
        currency_code:
          type: string
          title: currency_code
          description: The transaction's currency code.
          example: usd
        reference:
          type: string
          title: reference
          description: The name of a table that this transaction references. If this transaction is for captured payment, its value is `capture`. If this transaction is for refunded payment, its value is `refund`.
          enum:
            - capture
            - refund
        reference_id:
          type: string
          title: reference_id
          description: The ID of the referenced record in the referenced table.
        metadata:
          type: object
          description: The transaction's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date that the transaction was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date that the transaction was updated.
        order:
          type: object
        version:
          type: number
          title: version
          description: The order version that the transaction belongs to.
    RefundReasonResponse:
      type: object
      description: The refund reason's details.
      x-schemaName: RefundReasonResponse
      required:
        - refund_reason
      properties:
        refund_reason:
          $ref: '#/components/schemas/AdminRefundReason'
    Return:
      type: object
      description: The return's details.
      x-schemaName: Return
      required:
        - id
        - status
        - order_id
        - items
        - display_id
        - metadata
      properties:
        id:
          type: string
          title: id
          description: The return's ID.
        status:
          type: string
          description: The return's status.
          enum:
            - canceled
            - requested
            - received
            - partially_received
        refund_amount:
          type: number
          title: refund_amount
          description: The amount refunded by this return.
        order_id:
          type: string
          title: order_id
          description: The ID of the associated order.
        items:
          type: array
          description: The return's items.
          items:
            $ref: '#/components/schemas/OrderReturnItem'
        shipping_methods:
          type: array
          description: The return's shipping methods.
          items:
            $ref: '#/components/schemas/OrderShippingMethod'
        transactions:
          type: array
          description: The return's transactions.
          items:
            $ref: '#/components/schemas/OrderTransaction'
        metadata:
          type: object
          description: The return's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the return was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the return was updated.
        canceled_at:
          type: string
          title: canceled_at
          description: The date the return was canceled.
          format: date-time
        raw_refund_amount:
          oneOf:
            - type: string
              title: raw_refund_amount
              description: The return order's raw refund amount.
            - type: number
              title: raw_refund_amount
              description: The return order's raw refund amount.
            - type: string
              title: raw_refund_amount
              description: The return order's raw refund amount.
            - type: number
              title: raw_refund_amount
              description: The return order's raw refund amount.
        order:
          $ref: '#/components/schemas/Order'
        exchange_id:
          type: string
          title: exchange_id
          description: The ID of the exchange this return belongs to, if any.
        exchange:
          type: object
        claim_id:
          type: string
          title: claim_id
          description: The ID of the claim this return belongs to, if any.
        claim:
          $ref: '#/components/schemas/OrderClaim'
        display_id:
          type: number
          title: display_id
          description: The return order's display ID.
        location_id:
          type: string
          title: location_id
          description: The ID of the stock location the items are returned to.
        no_notification:
          type: boolean
          title: no_notification
          description: Whether to notify the customer about changes in the return.
        created_by:
          type: string
          title: created_by
          description: The ID of the user that created the return.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the return was deleted.
        requested_at:
          type: string
          title: requested_at
          description: The date the return was requested.
          format: date-time
        received_at:
          type: string
          title: received_at
          description: The date the return was received.
          format: date-time
    StoreAcceptOrderTransfer:
      type: object
      description: The details of accepting the order transfer.
      x-schemaName: StoreAcceptOrderTransfer
      required:
        - token
      properties:
        token:
          type: string
          title: token
          description: The order transfer's token issued when the transfer was requested.
    StoreAddGiftCardToCart:
      type: object
      description: The details to add a gift card to the cart.
      x-schemaName: StoreAddGiftCardToCart
      required:
        - code
      properties:
        code:
          type: string
          title: code
          description: The gift card's code.
    StoreAddStoreCreditsToCart:
      type: object
      description: The details to add store credits to the cart.
      x-schemaName: StoreAddStoreCreditsToCart
      required:
        - amount
      properties:
        amount:
          type: number
          title: amount
          description: The amount of store credits to add to the cart.
    StoreCalculatedPrice:
      type: object
      description: The shipping option's calculated price.
      x-schemaName: StoreCalculatedPrice
      required:
        - id
        - calculated_amount
        - original_amount
        - original_amount_with_tax
        - original_amount_without_tax
        - currency_code
      properties:
        id:
          type: string
          title: id
          description: The ID of the price set from which the price was selected.
        is_calculated_price_price_list:
          type: boolean
          title: is_calculated_price_price_list
          description: Whether the calculated price belongs to a price list.
        is_calculated_price_tax_inclusive:
          type: boolean
          title: is_calculated_price_tax_inclusive
          description: Whether the calculated price is tax inclusive.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/pricing/tax-inclusive-pricing
        calculated_amount:
          type: number
          title: calculated_amount
          description: The amount of the calculated price, or `null` if there isn't a calculated price. This is the amount shown to the customer.
        calculated_amount_with_tax:
          type: number
          title: calculated_amount_with_tax
          description: The `calculated_amount` with taxes applied.
        calculated_amount_without_tax:
          type: number
          title: calculated_amount_without_tax
          description: The `calculated_amount` without taxes applied.
        is_original_price_price_list:
          type: boolean
          title: is_original_price_price_list
          description: Whether the original price belongs to a price list.
        is_original_price_tax_inclusive:
          type: boolean
          title: is_original_price_tax_inclusive
          description: Whether the original price is tax inclusive.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/pricing/tax-inclusive-pricing
        original_amount:
          type: number
          title: original_amount
          description: The amount of the original price, or `null` if there isn't an original price. This amount is useful to compare with the `calculated_amount`, such as to check for discounted value.
        currency_code:
          type: string
          title: currency_code
          description: The currency code of the calculated price, or `null` if there isn't a calculated price.
        calculated_price:
          type: object
          description: The calculated price's details.
          required:
            - id
            - price_list_id
            - price_list_type
            - min_quantity
            - max_quantity
          properties:
            id:
              type: string
              title: id
              description: The ID of the price.
            price_list_id:
              type: string
              title: price_list_id
              description: The ID of the associated price list.
            price_list_type:
              type: string
              title: price_list_type
              description: The price list's type. For example, `sale` or `override`.
            min_quantity:
              type: number
              title: min_quantity
              description: The minimum quantity required in the cart for the price to apply.
            max_quantity:
              type: number
              title: max_quantity
              description: The maximum quantity required in the cart for the price to apply.
        original_price:
          type: object
          description: The origin price's details.
          required:
            - id
            - price_list_id
            - price_list_type
            - min_quantity
            - max_quantity
          properties:
            id:
              type: string
              title: id
              description: The ID of the price.
            price_list_id:
              type: string
              title: price_list_id
              description: The ID of the associated price list.
            price_list_type:
              type: string
              title: price_list_type
              description: The price list's type. For example, `sale` or `override`.
            min_quantity:
              type: number
              title: min_quantity
              description: The minimum quantity required in the cart for the price to apply.
            max_quantity:
              type: number
              title: max_quantity
              description: The maximum quantity required in the cart for the price to apply.
        original_amount_with_tax:
          type: number
          title: original_amount_with_tax
          description: The original amount with taxes applied.
        original_amount_without_tax:
          type: number
          title: original_amount_without_tax
          description: The original amount without taxes.
    StoreCart:
      type: object
      description: The cart's details.
      x-schemaName: StoreCart
      required:
        - promotions
        - id
        - currency_code
        - original_item_total
        - original_item_subtotal
        - original_item_tax_total
        - item_total
        - item_subtotal
        - item_tax_total
        - original_total
        - original_subtotal
        - original_tax_total
        - total
        - subtotal
        - tax_total
        - discount_total
        - discount_tax_total
        - gift_card_total
        - gift_card_tax_total
        - shipping_total
        - shipping_subtotal
        - shipping_tax_total
        - original_shipping_total
        - original_shipping_subtotal
        - original_shipping_tax_total
      properties:
        id:
          type: string
          title: id
          description: The cart's ID.
        region:
          $ref: '#/components/schemas/StoreRegion'
        region_id:
          type: string
          title: region_id
          description: The ID of the region the cart belongs to.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer the cart belongs to.
        sales_channel_id:
          type: string
          title: sales_channel_id
          description: The ID of the cart's sales channel. Only products that belong to the same sales channel can be added to the cart. The created order will be associated with the same sales channel.
        email:
          type: string
          title: email
          description: The email of the customer the cart belongs to.
          format: email
        currency_code:
          type: string
          title: currency_code
          description: The cart's currency code.
          example: usd
        shipping_address:
          $ref: '#/components/schemas/StoreCartAddress'
        billing_address:
          $ref: '#/components/schemas/StoreCartAddress'
        items:
          type: array
          description: The cart's items.
          items:
            $ref: '#/components/schemas/StoreCartLineItem'
        shipping_methods:
          type: array
          description: The cart's shipping methods.
          items:
            $ref: '#/components/schemas/StoreCartShippingMethod'
        payment_collection:
          $ref: '#/components/schemas/StorePaymentCollection'
        metadata:
          type: object
          description: The cart's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the cart was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the cart was updated.
        original_item_total:
          type: number
          title: original_item_total
          description: The sum of all line items' original totals before discounts, including taxes.
        original_item_subtotal:
          type: number
          title: original_item_subtotal
          description: The sum of all line items' original subtotals before discounts, excluding taxes.
        original_item_tax_total:
          type: number
          title: original_item_tax_total
          description: The sum of all line items' original tax totals before discounts.
        item_total:
          type: number
          title: item_total
          description: The sum of all line items' totals after discounts, including taxes.
        item_subtotal:
          type: number
          title: item_subtotal
          description: The sum of all line items' subtotals before discounts, excluding taxes.
        item_tax_total:
          type: number
          title: item_tax_total
          description: The sum of all line items' tax totals after discounts.
        original_total:
          type: number
          title: original_total
          description: The cart's total before discounts, including taxes. Calculated as the sum of `original_item_total` and `original_shipping_total`.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The cart's subtotal before discounts, excluding taxes. Calculated as the sum of `original_item_subtotal` and `original_shipping_subtotal`.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The cart's tax total before discounts. Calculated as the sum of `original_item_tax_total` and `original_shipping_tax_total`.
        total:
          type: number
          title: total
          description: The cart's final total after discounts and credit lines, including taxes.
        subtotal:
          type: number
          title: subtotal
          description: The cart's subtotal before discounts, excluding taxes. Calculated as the sum of `item_subtotal` and `shipping_subtotal`.
        tax_total:
          type: number
          title: tax_total
          description: The cart's tax total after discounts. Calculated as the sum of `item_tax_total` and `shipping_tax_total`.
        discount_total:
          type: number
          title: discount_total
          description: The total amount of discounts applied to the cart, including the tax portion of discounts.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The total amount of discounts applied to the cart's tax. Represents the tax portion of discounts.
        gift_card_total:
          type: number
          title: gift_card_total
          description: The total gift card amount applied on the cart.
        gift_card_tax_total:
          type: number
          title: gift_card_tax_total
          description: The total taxes applied on the gift card amount.
        shipping_total:
          type: number
          title: shipping_total
          description: The sum of all shipping methods' totals after discounts, including taxes.
        shipping_subtotal:
          type: number
          title: shipping_subtotal
          description: The sum of all shipping methods' subtotals before discounts, excluding taxes.
        shipping_tax_total:
          type: number
          title: shipping_tax_total
          description: The sum of all shipping methods' tax totals after discounts.
        original_shipping_total:
          type: number
          title: original_shipping_total
          description: The sum of all shipping methods' original totals before discounts, including taxes.
        original_shipping_subtotal:
          type: number
          title: original_shipping_subtotal
          description: The sum of all shipping methods' original subtotals before discounts, excluding taxes.
        original_shipping_tax_total:
          type: number
          title: original_shipping_tax_total
          description: The sum of all shipping methods' original tax totals before discounts.
        promotions:
          type: array
          description: The cart's promotions.
          items:
            $ref: '#/components/schemas/StoreCartPromotion'
        completed_at:
          type: string
          title: completed_at
          description: The date the cart was completed.
          format: date-time
    StoreCartAddPromotion:
      type: object
      description: The promotion's details.
      required:
        - promo_codes
      properties:
        promo_codes:
          type: array
          description: Promotion codes to add to the cart.
          items:
            type: string
            title: promo_codes
            description: A promotion code.
      x-schemaName: StoreCartAddPromotion
    StoreCartAddress:
      type: object
      description: The address's details.
      x-schemaName: StoreCartAddress
      required:
        - id
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The address's ID.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer the address belongs to.
        first_name:
          type: string
          title: first_name
          description: The address's first name.
        last_name:
          type: string
          title: last_name
          description: The address's last name.
        phone:
          type: string
          title: phone
          description: The address's phone.
        company:
          type: string
          title: company
          description: The address's company.
        address_1:
          type: string
          title: address_1
          description: The address's first line.
        address_2:
          type: string
          title: address_2
          description: The address's second line.
        city:
          type: string
          title: city
          description: The address's city.
        country_code:
          type: string
          title: country_code
          description: The address's country code.
          example: us
        province:
          type: string
          title: province
          description: The address's lower-case ISO 3166-2 province code.
          example: us-ca
          externalDocs:
            url: https://en.wikipedia.org/wiki/ISO_3166-2
            description: Learn more about ISO 3166-2
        postal_code:
          type: string
          title: postal_code
          description: The address's postal code.
        metadata:
          type: object
          description: The address's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          title: created_at
          description: The date the address was created.
          format: date-time
        updated_at:
          type: string
          title: updated_at
          description: The date the address was updated.
          format: date-time
    StoreCartLineItem:
      type: object
      description: The item's details.
      x-schemaName: StoreCartLineItem
      required:
        - cart
        - title
        - id
        - requires_shipping
        - is_discountable
        - is_tax_inclusive
        - unit_price
        - quantity
        - cart_id
      properties:
        id:
          type: string
          title: id
          description: The item's ID.
        title:
          type: string
          title: title
          description: The item's title.
        subtitle:
          type: string
          title: subtitle
          description: The item's subtitle.
        thumbnail:
          type: string
          title: thumbnail
          description: The item's thumbnail URL.
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        product:
          $ref: '#/components/schemas/StoreProduct'
        product_id:
          type: string
          title: product_id
          description: The ID of the associated product.
        product_title:
          type: string
          title: product_title
          description: The item's product title.
        product_description:
          type: string
          title: product_description
          description: The item's product description.
        product_subtitle:
          type: string
          title: product_subtitle
          description: The item's product subtitle.
        product_type:
          type: string
          title: product_type
          description: The ID of the associated product's type.
        product_collection:
          type: string
          title: product_collection
          description: The ID of the associated product's collection.
        product_handle:
          type: string
          title: product_handle
          description: The item's product handle.
        variant:
          $ref: '#/components/schemas/StoreProductVariant'
        variant_id:
          type: string
          title: variant_id
          description: The ID of the associated product variant.
        variant_sku:
          type: string
          title: variant_sku
          description: The item's variant SKU.
        variant_barcode:
          type: string
          title: variant_barcode
          description: The item's variant barcode.
        variant_title:
          type: string
          title: variant_title
          description: The item's variant title.
        variant_option_values:
          type: object
          description: The associated variant's value for the product's options.
          example:
            Color: Red
        requires_shipping:
          type: boolean
          title: requires_shipping
          description: Whether the item requires shipping.
        is_discountable:
          type: boolean
          title: is_discountable
          description: Whether the item is discountable.
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: Whether the item's price includes taxes.
        compare_at_unit_price:
          type: number
          title: compare_at_unit_price
          description: The original price of the item before a promotion or sale.
        unit_price:
          type: number
          title: unit_price
          description: The price of a single quantity of the item.
        tax_lines:
          type: array
          description: The item's tax lines.
          items:
            allOf:
              - type: object
                description: The tax line's details.
                x-schemaName: BaseLineItemTaxLine
                required:
                  - item
                  - item_id
                  - total
                  - subtotal
                  - id
                  - code
                  - rate
                  - created_at
                  - updated_at
                properties:
                  item:
                    type: object
                    title: item
                    description: The details of the item that the tax line belongs to.
                  item_id:
                    type: string
                    title: item_id
                    description: The ID of the line item this tax line belongs to.
                  total:
                    type: number
                    title: total
                    description: The item's total including taxes and promotions.
                  subtotal:
                    type: number
                    title: subtotal
                    description: The item's total excluding taxes, including promotions.
                  id:
                    type: string
                    title: id
                    description: The tax line's ID.
                  description:
                    type: string
                    title: description
                    description: The tax line's description.
                  tax_rate_id:
                    type: string
                    title: tax_rate_id
                    description: The ID of the applied tax rate.
                  code:
                    type: string
                    title: code
                    description: The code that the tax rate is identified by.
                  rate:
                    type: number
                    title: rate
                    description: The charged rate.
                  provider_id:
                    type: string
                    title: provider_id
                    description: The ID of the tax provider used to calculate the tax line.
                  created_at:
                    type: string
                    format: date-time
                    title: created_at
                    description: The date the tax line was created.
                  updated_at:
                    type: string
                    format: date-time
                    title: updated_at
                    description: The date the tax line was updated.
              - type: object
                description: The tax line's details.
                required:
                  - item
                properties:
                  item:
                    type: object
                    title: item
                    description: The details of the item that the tax line belongs to.
            description: The tax line's details
        adjustments:
          type: array
          description: The item's adjustments.
          items:
            allOf:
              - type: object
                description: The adjustment's details.
                x-schemaName: BaseLineItemAdjustment
                required:
                  - item
                  - item_id
                  - id
                  - amount
                  - cart_id
                  - created_at
                  - updated_at
                properties:
                  item:
                    type: object
                    title: item
                    description: The details of the item that the adjustment belongs to.
                  item_id:
                    type: string
                    title: item_id
                    description: The ID of the item that the adjustment belongs to.
                  id:
                    type: string
                    title: id
                    description: The adjustment's ID.
                  code:
                    type: string
                    title: code
                    description: The adjustment's code.
                  amount:
                    type: number
                    title: amount
                    description: The adjustment's amount.
                  cart_id:
                    type: string
                    title: cart_id
                    description: The ID of the associated cart.
                  description:
                    type: string
                    title: description
                    description: The adjustment's description.
                  promotion_id:
                    type: string
                    title: promotion_id
                    description: The ID of the applied promotion.
                  provider_id:
                    type: string
                    title: provider_id
                    description: The adjustment's provider ID.
                  created_at:
                    type: string
                    format: date-time
                    title: created_at
                    description: The date the adjustment was created.
                  updated_at:
                    type: string
                    format: date-time
                    title: updated_at
                    description: The date the adjustment was updated.
              - type: object
                description: The adjustment's details.
                required:
                  - item
                properties:
                  item:
                    type: object
                    title: item
                    description: The details of the item that the adjustment belongs to.
            description: The adjustment's details.
        cart:
          type: object
        cart_id:
          type: string
          title: cart_id
          description: The ID of the cart that the line item belongs to.
        metadata:
          type: object
          description: The item's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          title: created_at
          description: The date the item was created.
          format: date-time
        updated_at:
          type: string
          title: updated_at
          description: The date the item was updated.
          format: date-time
        deleted_at:
          type: string
          title: deleted_at
          description: The date the item was deleted.
          format: date-time
        original_total:
          type: number
          title: original_total
          description: The line item's original total before discounts, including taxes. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The line item's original subtotal before discounts, excluding taxes. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The line item's original tax total before discounts. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide.
        item_total:
          type: number
          title: item_total
          description: The line item's total after discounts, including taxes. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide.
        item_subtotal:
          type: number
          title: item_subtotal
          description: The line item's subtotal before discounts, excluding taxes. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide.
        item_tax_total:
          type: number
          title: item_tax_total
          description: The line item's tax total after discounts. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide.
        total:
          type: number
          title: total
          description: The line item's total after discounts, including taxes. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide.
        subtotal:
          type: number
          title: subtotal
          description: The line item's subtotal before discounts, excluding taxes. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide.
        tax_total:
          type: number
          title: tax_total
          description: The line item's tax total after discounts. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide.
        discount_total:
          type: number
          title: discount_total
          description: The total amount of discounts applied to the line item, including the tax portion of discounts. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The total amount of discounts applied to the line item's tax. Represents the tax portion of discounts. This field is only available if you expand the `items.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-cart-item-totals) guide.
    StoreCartPromotion:
      type: object
      description: The promotion's promotions.
      x-schemaName: StoreCartPromotion
      required:
        - id
      properties:
        id:
          type: string
          title: id
          description: The promotion's ID.
        code:
          type: string
          title: code
          description: The promotion's code.
        is_automatic:
          type: boolean
          title: is_automatic
          description: The promotion's is automatic.
        application_method:
          type: object
          description: The promotion's application method.
          required:
            - value
            - type
            - currency_code
          properties:
            value:
              type: string
              title: value
              description: The application method's value.
            type:
              type: string
              description: The application method's type.
              enum:
                - fixed
                - percentage
            currency_code:
              type: string
              title: currency_code
              description: The application method's currency code.
    StoreCartRemovePromotion:
      type: object
      description: The promotion code to remove from the cart.
      x-schemaName: StoreCartRemovePromotion
      required:
        - promo_codes
      properties:
        promo_codes:
          type: array
          description: The promotion code to remove from the cart.
          items:
            type: string
            title: promo_codes
            description: A promotion code to remove from the cart.
    StoreCartResponse:
      type: object
      description: The cart's details.
      x-schemaName: StoreCartResponse
      required:
        - cart
      properties:
        cart:
          $ref: '#/components/schemas/StoreCart'
    StoreCartShippingMethod:
      type: object
      description: A cart's shipping method.
      x-schemaName: StoreCartShippingMethod
      required:
        - id
        - cart_id
        - name
        - amount
        - is_tax_inclusive
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The shipping method's ID.
        cart_id:
          type: string
          title: cart_id
          description: The ID of the cart this shipping method belongs to.
        name:
          type: string
          title: name
          description: The shipping method's name.
        description:
          type: string
          title: description
          description: The shipping method's description.
        amount:
          type: number
          title: amount
          description: The shipping method's amount.
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: Whether the shipping method's amount is tax inclusive.
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the shipping option this method was created from.
        data:
          type: object
          description: The shipping method's data, useful for fulfillment handling by third-party services.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/cart/concepts#data-property
        metadata:
          type: object
          description: The shipping method's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        tax_lines:
          type: array
          description: The shipping method's tax lines.
          items:
            allOf:
              - type: object
                description: The tax line's details
                x-schemaName: BaseShippingMethodTaxLine
                required:
                  - shipping_method
                  - shipping_method_id
                  - total
                  - subtotal
                  - id
                  - code
                  - rate
                  - created_at
                  - updated_at
                properties:
                  shipping_method:
                    type: object
                    title: shipping_method
                    description: The details of the method that the tax line belongs to.
                  shipping_method_id:
                    type: string
                    title: shipping_method_id
                    description: The ID of the shipping method this tax line belongs to.
                  total:
                    type: number
                    title: total
                    description: The method's total including taxes and promotions.
                  subtotal:
                    type: number
                    title: subtotal
                    description: The method's total excluding taxes, including promotions.
                  id:
                    type: string
                    title: id
                    description: The tax line's ID.
                  description:
                    type: string
                    title: description
                    description: The tax line's description.
                  tax_rate_id:
                    type: string
                    title: tax_rate_id
                    description: The ID of the applied tax rate.
                  code:
                    type: string
                    title: code
                    description: The code that the tax rate is identified by.
                  rate:
                    type: number
                    title: rate
                    description: The charged rate.
                  provider_id:
                    type: string
                    title: provider_id
                    description: The ID of the tax provider used to calculate the tax line.
                  created_at:
                    type: string
                    format: date-time
                    title: created_at
                    description: The date the tax line was created.
                  updated_at:
                    type: string
                    format: date-time
                    title: updated_at
                    description: The date the tax line was updated.
              - type: object
                description: The tax line's details.
                required:
                  - shipping_method
                properties:
                  shipping_method:
                    type: object
                    title: shipping_method
                    description: The details of the method that the tax line belongs to.
            description: The tax line's details.
        adjustments:
          type: array
          description: The shipping method's adjustments, such as applied promotions.
          items:
            allOf:
              - type: object
                description: The adjustment's details.
                x-schemaName: BaseShippingMethodAdjustment
                required:
                  - shipping_method
                  - shipping_method_id
                  - id
                  - amount
                  - cart_id
                  - created_at
                  - updated_at
                properties:
                  shipping_method:
                    type: object
                    title: shipping_method
                    description: The details of the method that the adjustment belongs to.
                  id:
                    type: string
                    title: id
                    description: The adjustment's ID.
                  code:
                    type: string
                    title: code
                    description: The adjustment's code.
                  amount:
                    type: number
                    title: amount
                    description: The adjustment's amount.
                  cart_id:
                    type: string
                    title: cart_id
                    description: The ID of the associated cart.
                  description:
                    type: string
                    title: description
                    description: The adjustment's description.
                  promotion_id:
                    type: string
                    title: promotion_id
                    description: The ID of the applied promotion.
                  provider_id:
                    type: string
                    title: provider_id
                    description: The adjustment's provider ID.
                  created_at:
                    type: string
                    format: date-time
                    title: created_at
                    description: The date the adjustment was created.
                  updated_at:
                    type: string
                    format: date-time
                    title: updated_at
                    description: The date the adjustment was updated.
              - type: object
                description: The adjustment's details.
                required:
                  - shipping_method
                properties:
                  shipping_method:
                    type: object
                    title: shipping_method
                    description: The details of the method that the adjustment belongs to.
            description: The adjustment's details.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the shipping method was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the shipping method was updated.
        original_total:
          type: number
          title: original_total
          description: The shipping method's original total before discounts, including taxes. This field is only available if you expand the `shipping_methods.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-shipping-method-totals) guide.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The shipping method's original subtotal before discounts, excluding taxes. This field is only available if you expand the `shipping_methods.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-shipping-method-totals) guide.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The shipping method's original tax total before discounts. This field is only available if you expand the `shipping_methods.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-shipping-method-totals) guide.
        total:
          type: number
          title: total
          description: The shipping method's total after discounts, including taxes. This field is only available if you expand the `shipping_methods.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-shipping-method-totals) guide.
        subtotal:
          type: number
          title: subtotal
          description: The shipping method's subtotal before discounts, excluding taxes. This field is only available if you expand the `shipping_methods.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-shipping-method-totals) guide.
        tax_total:
          type: number
          title: tax_total
          description: The shipping method's tax total after discounts. This field is only available if you expand the `shipping_methods.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-shipping-method-totals) guide.
        discount_total:
          type: number
          title: discount_total
          description: The total amount of discounts applied to the shipping method, including the tax portion of discounts. This field is only available if you expand the `shipping_methods.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-shipping-method-totals) guide.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The total amount of discounts applied to the shipping method's tax. Represents the tax portion of discounts. This field is only available if you expand the `shipping_methods.*` relation. Learn more in the [Cart Totals](https://docs.medusajs.com/resources/storefront-development/cart/totals#retrieve-and-show-shipping-method-totals) guide.
    StoreCartShippingOption:
      type: object
      description: The shipping option's details.
      x-schemaName: StoreCartShippingOption
      required:
        - id
        - name
        - price_type
        - service_zone_id
        - shipping_profile_id
        - provider_id
        - data
        - type
        - provider
        - amount
        - prices
        - calculated_price
        - insufficient_inventory
      properties:
        id:
          type: string
          title: id
          description: The shipping option's ID.
        name:
          type: string
          title: name
          description: The shipping option's name.
        price_type:
          type: string
          description: The shipping option's price type. If it's `flat`, the price is fixed and is set in the `prices` property. If it's `calculated`, the price is calculated on checkout by the associated fulfillment provider.
          enum:
            - flat
            - calculated
        service_zone_id:
          type: string
          title: service_zone_id
          description: The ID of the service zone the shipping option belongs to.
        provider_id:
          type: string
          title: provider_id
          description: The ID of the fulfillment provider handling this option.
        provider:
          type: object
          description: The fulfillment provider's details.
          required:
            - id
            - is_enabled
          properties:
            id:
              type: string
              title: id
              description: The provider's ID.
            is_enabled:
              type: boolean
              title: is_enabled
              description: Whether the provider is enabled.
        type:
          type: object
          description: The shipping option type's details.
          required:
            - id
            - label
            - description
            - code
          properties:
            id:
              type: string
              title: id
              description: The type's ID.
            label:
              type: string
              title: label
              description: The type's label.
            description:
              type: string
              title: description
              description: The type's description.
            code:
              type: string
              title: code
              description: The type's code.
        shipping_profile_id:
          type: string
          title: shipping_profile_id
          description: The ID of the associated shipping profile.
        amount:
          type: number
          title: amount
          description: The shipping option's amount.
        data:
          type: object
          description: The shipping option's data, useful for the provider handling fulfillment.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property
        prices:
          type: array
          description: The shipping option's prices.
          items:
            $ref: '#/components/schemas/StorePrice'
        calculated_price:
          $ref: '#/components/schemas/StoreCalculatedPrice'
        insufficient_inventory:
          type: boolean
          title: insufficient_inventory
          description: Whether the shipping option's location doesn't have sufficient quantity for any of the cart's items.
    StoreClaimStoreCreditAccountParams:
      type: object
      description: The details of claiming the credit.
      x-schemaName: StoreClaimStoreCreditAccountParams
      required:
        - code
      properties:
        code:
          type: string
          title: code
          description: The code of the store credit account to claim.
    StoreClaimStoreCreditAccountResponse:
      type: object
      description: The claimed store credit account's details.
      x-schemaName: StoreClaimStoreCreditAccountResponse
      required:
        - store_credit_account
      properties:
        store_credit_account:
          $ref: '#/components/schemas/StoreStoreCreditAccount'
    StoreCollection:
      type: object
      description: The collection's details.
      x-schemaName: StoreCollection
      required:
        - title
        - id
        - metadata
        - created_at
        - updated_at
        - handle
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The collection's ID.
        title:
          type: string
          title: title
          description: The collection's title.
        handle:
          type: string
          title: handle
          description: The collection's handle.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the collection was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the collection was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the collection was deleted.
        products:
          type: array
          description: The collection's products.
          items:
            type: object
        metadata:
          type: object
          description: The collection's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
    StoreCollectionResponse:
      type: object
      description: The collection's details.
      x-schemaName: StoreCollectionResponse
      required:
        - collection
      properties:
        collection:
          $ref: '#/components/schemas/StoreCollection'
    StoreCreateCart:
      type: object
      description: The details of the cart to be created.
      x-schemaName: StoreCreateCart
      properties:
        region_id:
          type: string
          title: region_id
          description: The ID of the cart's region. This affects the prices and currency of the cart.
        shipping_address:
          $ref: '#/components/schemas/StoreCartAddress'
        billing_address:
          $ref: '#/components/schemas/StoreCartAddress'
        email:
          type: string
          title: email
          description: The email of the cart's customer.
          format: email
        currency_code:
          type: string
          title: currency_code
          description: The cart's currency code. If not provided, the region's currency is used. This affects prices in the cart, as well.
          example: usd
        items:
          type: array
          description: The cart's items.
          items:
            $ref: '#/components/schemas/StoreCartLineItem'
        sales_channel_id:
          type: string
          title: sales_channel_id
          description: The ID of the sales channel that cart is created in. Only products available in that sales channel can be added to the cart. If not provided, the store's default sales channel is associated with the cart instead.
        metadata:
          type: object
          description: The cart's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
    StoreCreateCustomer:
      type: object
      description: The details of the customer to create.
      x-schemaName: StoreCreateCustomer
      required:
        - email
      properties:
        email:
          type: string
          title: email
          description: The customer's email.
          format: email
        company_name:
          type: string
          title: company_name
          description: The customer's company name.
        first_name:
          type: string
          title: first_name
          description: The customer's first name.
        last_name:
          type: string
          title: last_name
          description: The customer's last name.
        phone:
          type: string
          title: phone
          description: The customer's phone.
        metadata:
          type: object
          description: The customer's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
    StoreCreateCustomerAddress:
      type: object
      description: The address's details.
      properties:
        first_name:
          type: string
          title: first_name
          description: The customer's first name.
        last_name:
          type: string
          title: last_name
          description: The customer's last name.
        phone:
          type: string
          title: phone
          description: The customer's phone.
        company:
          type: string
          title: company
          description: The address's company.
        address_1:
          type: string
          title: address_1
          description: The address's first line.
        address_2:
          type: string
          title: address_2
          description: The address's second line.
        city:
          type: string
          title: city
          description: The address's city.
        country_code:
          type: string
          title: country_code
          description: The address's country code.
        province:
          type: string
          title: province
          description: The address's ISO 3166-2 province code. Must be lower-case.
          example: us-ca
          externalDocs:
            url: https://en.wikipedia.org/wiki/ISO_3166-2
            description: Learn more about ISO 3166-2
        postal_code:
          type: string
          title: postal_code
          description: The address's postal code.
        address_name:
          type: string
          title: address_name
          description: The address's name.
        is_default_shipping:
          type: boolean
          title: is_default_shipping
          description: Whether the address is used by default for shipping during checkout.
        is_default_billing:
          type: boolean
          title: is_default_billing
          description: Whether the address is used by default for billing during checkout.
        metadata:
          type: object
          description: Holds custom key-value pairs.
      x-schemaName: StoreCreateCustomerAddress
    StoreCreatePaymentCollection:
      type: object
      description: The details of the payment collection to create.
      x-schemaName: StoreCreatePaymentCollection
      required:
        - cart_id
      properties:
        cart_id:
          type: string
          title: cart_id
          description: The ID of the cart this payment collection is for.
    StoreCreateReturn:
      type: object
      description: The details of the return to create.
      x-schemaName: StoreCreateReturn
      required:
        - order_id
        - items
        - return_shipping
      properties:
        order_id:
          type: string
          title: order_id
          description: The ID of the order this return is created for.
        items:
          type: array
          description: The return's items.
          items:
            $ref: '#/components/schemas/StoreCreateReturnItem'
        return_shipping:
          $ref: '#/components/schemas/StoreCreateReturnShipping'
        note:
          type: string
          title: note
          description: A note with more details about the return.
        receive_now:
          type: boolean
          title: receive_now
          description: Whether to mark the return as received.
        location_id:
          type: string
          title: location_id
          description: The ID of the location that items are returned to.
    StoreCreateReturnItem:
      type: object
      description: The details of the line item to create.
      x-schemaName: StoreCreateReturnItem
      required:
        - id
        - quantity
      properties:
        id:
          type: string
          title: id
          description: The item's ID.
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        reason_id:
          type: string
          title: reason_id
          description: The ID of the associated return reason.
        note:
          type: string
          title: note
          description: A note with more details about the returned item.
    StoreCreateReturnShipping:
      type: object
      description: The return's shipping details.
      x-schemaName: StoreCreateReturnShipping
      required:
        - option_id
      properties:
        option_id:
          type: string
          title: option_id
          description: The ID of the shipping option to use.
        price:
          type: number
          title: price
          description: The shipping's price.
    StoreCurrency:
      type: object
      description: The currency's details.
      x-schemaName: StoreCurrency
      required:
        - code
        - symbol
        - symbol_native
        - name
        - decimal_digits
        - rounding
        - created_at
        - updated_at
        - deleted_at
      properties:
        code:
          type: string
          title: code
          description: The currency's code.
          example: usd
        symbol:
          type: string
          title: symbol
          description: The currency's symbol.
        symbol_native:
          type: string
          title: symbol_native
          description: The currency's symbol native.
        name:
          type: string
          title: name
          description: The currency's name.
        decimal_digits:
          type: number
          title: decimal_digits
          description: The currency's decimal digits.
        rounding:
          type: number
          title: rounding
          description: The currency's rounding.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the currency was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the currency was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the currency was deleted.
    StoreCurrencyListResponse:
      type: object
      description: The paginated list of currencies.
      x-schemaName: StoreCurrencyListResponse
      required:
        - limit
        - offset
        - count
        - currencies
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total count of items.
        currencies:
          type: array
          description: The list of currencies.
          items:
            $ref: '#/components/schemas/StoreCurrency'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    StoreCurrencyResponse:
      type: object
      description: The currency's details.
      x-schemaName: StoreCurrencyResponse
      required:
        - currency
      properties:
        currency:
          $ref: '#/components/schemas/StoreCurrency'
    StoreCustomer:
      type: object
      description: The customer's details.
      x-schemaName: StoreCustomer
      required:
        - addresses
        - id
        - email
        - company_name
        - first_name
        - last_name
        - default_billing_address_id
        - default_shipping_address_id
      properties:
        id:
          type: string
          title: id
          description: The customer's ID.
        email:
          type: string
          title: email
          description: The customer's email.
          format: email
        default_billing_address_id:
          type: string
          title: default_billing_address_id
          description: The ID of the address used for billing by default.
        default_shipping_address_id:
          type: string
          title: default_shipping_address_id
          description: The ID of the address used for shipping by default.
        company_name:
          type: string
          title: company_name
          description: The customer's company name.
        first_name:
          type: string
          title: first_name
          description: The customer's first name.
        last_name:
          type: string
          title: last_name
          description: The customer's last name.
        addresses:
          type: array
          description: The customer's addresses.
          items:
            $ref: '#/components/schemas/StoreCustomerAddress'
        phone:
          type: string
          title: phone
          description: The customer's phone.
        metadata:
          type: object
          description: The customer's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the customer was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the customer was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the customer was deleted.
    StoreCustomerAddress:
      type: object
      description: The customer address's details
      x-schemaName: StoreCustomerAddress
      required:
        - id
        - address_name
        - is_default_shipping
        - is_default_billing
        - customer_id
        - company
        - first_name
        - last_name
        - address_1
        - address_2
        - city
        - country_code
        - province
        - postal_code
        - phone
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The address's ID.
        address_name:
          type: string
          title: address_name
          description: The address's name.
        is_default_shipping:
          type: boolean
          title: is_default_shipping
          description: Whether the address is used for shipping by default.
        is_default_billing:
          type: boolean
          title: is_default_billing
          description: Whether the address is used for billing by default.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer the address belongs to.
        company:
          type: string
          title: company
          description: The address's company.
        first_name:
          type: string
          title: first_name
          description: The address's first name.
        last_name:
          type: string
          title: last_name
          description: The address's last name.
        address_1:
          type: string
          title: address_1
          description: The address's first line.
        address_2:
          type: string
          title: address_2
          description: The address's second line.
        city:
          type: string
          title: city
          description: The address's city.
        country_code:
          type: string
          title: country_code
          description: The address's country code.
          example: usd
        province:
          type: string
          title: province
          description: The address's lower-case ISO 3166-2 province code.
          example: us-ca
          externalDocs:
            url: https://en.wikipedia.org/wiki/ISO_3166-2
            description: Learn more about ISO 3166-2
        postal_code:
          type: string
          title: postal_code
          description: The address's postal code.
        phone:
          type: string
          title: phone
          description: The address's phone.
        metadata:
          type: object
          description: The address's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the address was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the address was updated.
    StoreCustomerAddressListResponse:
      type: object
      description: The paginated list of customer addresses.
      x-schemaName: StoreCustomerAddressListResponse
      required:
        - limit
        - offset
        - count
        - addresses
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total number of items.
        addresses:
          type: array
          description: The list of addresses.
          items:
            $ref: '#/components/schemas/StoreCustomerAddress'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    StoreCustomerAddressResponse:
      type: object
      description: The address's details.
      x-schemaName: StoreCustomerAddressResponse
      required:
        - address
      properties:
        address:
          $ref: '#/components/schemas/StoreCustomerAddress'
    StoreCustomerResponse:
      type: object
      description: The customer's details.
      x-schemaName: StoreCustomerResponse
      required:
        - customer
      properties:
        customer:
          $ref: '#/components/schemas/StoreCustomer'
    StoreDeclineOrderTransfer:
      type: object
      description: The details of declining the order transfer request.
      x-schemaName: StoreDeclineOrderTransfer
      required:
        - token
      properties:
        token:
          type: string
          title: token
          description: The order transfer's token issued when the transfer was requested.
    StoreGiftCard:
      type: object
      description: The gift card's details.
      x-schemaName: StoreGiftCard
      required:
        - customer
        - line_item
        - id
        - code
        - status
        - value
        - currency_code
        - customer_id
        - reference_id
        - note
        - reference
        - expires_at
        - created_at
        - updated_at
      properties:
        customer:
          $ref: '#/components/schemas/StoreCustomer'
        line_item:
          $ref: '#/components/schemas/StoreOrderLineItem'
        id:
          type: string
          title: id
          description: The gift card's ID.
        code:
          type: string
          title: code
          description: The gift card's code.
        status:
          type: string
          description: The gift card's status.
          enum:
            - pending
            - redeemed
        value:
          type: number
          title: value
          description: The gift card's amount.
        currency_code:
          type: string
          title: currency_code
          description: The gift card's currency code.
          example: usd
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer that the gift card belongs to.
        reference_id:
          type: string
          title: reference_id
          description: The gift card's reference ID.
        note:
          type: string
          title: note
          description: A note with more information about the gift card.
        reference:
          type: string
          title: reference
          description: The gift card's reference.
        expires_at:
          type: string
          title: expires_at
          description: The date the gift card expires.
          format: date-time
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the gift card was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the gift card was updated.
    StoreInitializePaymentSession:
      type: object
      description: The payment session's details.
      required:
        - provider_id
      properties:
        provider_id:
          type: string
          title: provider_id
          description: The ID of the payment provider the customer chose.
          example: pp_stripe_stripe
        data:
          type: object
          description: Any data necessary for the payment provider to process the payment.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/payment/payment-session#data-property
            description: Learn more about the payment session's data property
      x-schemaName: StoreInitializePaymentSession
    StoreLocale:
      type: object
      description: The store locale's details.
      x-schemaName: StoreLocale
      required:
        - code
        - name
      properties:
        code:
          type: string
          title: code
          description: The locale's code in [BCP 47 format](https://gist.github.com/typpo/b2b828a35e683b9bf8db91b5404f1bd1).
          example: en-US
        name:
          type: string
          title: name
          description: The locale's display name.
          example: English (United States)
    StoreLocaleListResponse:
      type: object
      description: The list of supported locales in the store.
      x-schemaName: StoreLocaleListResponse
      required:
        - locales
      properties:
        locales:
          type: array
          description: The list of supported locales in the store.
          items:
            $ref: '#/components/schemas/StoreLocale'
    StoreOrder:
      type: object
      description: The order's details.
      x-schemaName: StoreOrder
      required:
        - items
        - shipping_methods
        - status
        - id
        - region_id
        - customer_id
        - sales_channel_id
        - email
        - currency_code
        - payment_status
        - fulfillment_status
        - summary
        - created_at
        - updated_at
        - original_item_total
        - original_item_subtotal
        - original_item_tax_total
        - item_total
        - item_subtotal
        - item_tax_total
        - item_discount_total
        - original_total
        - original_subtotal
        - original_tax_total
        - total
        - subtotal
        - tax_total
        - discount_total
        - discount_tax_total
        - gift_card_total
        - gift_card_tax_total
        - shipping_total
        - shipping_subtotal
        - shipping_tax_total
        - shipping_discount_total
        - original_shipping_total
        - original_shipping_subtotal
        - original_shipping_tax_total
        - credit_line_total
      properties:
        id:
          type: string
          title: id
          description: The order's ID.
        region_id:
          type: string
          title: region_id
          description: The ID of the associated region.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer that placed the order.
        sales_channel_id:
          type: string
          title: sales_channel_id
          description: The ID of the sales channel the order was placed in.
        email:
          type: string
          title: email
          description: The email of the customer that placed the order.
          format: email
        currency_code:
          type: string
          title: currency_code
          description: The order's currency code.
          example: usd
        display_id:
          type: number
          title: display_id
          description: The order's display ID.
        shipping_address:
          $ref: '#/components/schemas/StoreOrderAddress'
        billing_address:
          $ref: '#/components/schemas/StoreOrderAddress'
        items:
          type: array
          description: The order's items.
          items:
            $ref: '#/components/schemas/StoreOrderLineItem'
        shipping_methods:
          type: array
          description: The order's shipping methods.
          items:
            $ref: '#/components/schemas/StoreOrderShippingMethod'
        payment_collections:
          type: array
          description: The order's payment collections.
          items:
            $ref: '#/components/schemas/StorePaymentCollection'
        payment_status:
          type: string
          description: The order's payment status.
          enum:
            - canceled
            - not_paid
            - awaiting
            - authorized
            - partially_authorized
            - captured
            - partially_captured
            - partially_refunded
            - refunded
            - requires_action
        fulfillments:
          type: array
          description: The order's fulfillments.
          items:
            $ref: '#/components/schemas/StoreOrderFulfillment'
        fulfillment_status:
          type: string
          description: The order's fulfillment status.
          enum:
            - canceled
            - not_fulfilled
            - partially_fulfilled
            - fulfilled
            - partially_shipped
            - shipped
            - partially_delivered
            - delivered
        summary:
          $ref: '#/components/schemas/BaseOrderSummary'
        metadata:
          type: object
          description: The order's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the order was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the order was updated.
        original_item_total:
          type: number
          title: original_item_total
          description: The sum of all line items' original totals before discounts, including taxes.
        original_item_subtotal:
          type: number
          title: original_item_subtotal
          description: The sum of all line items' original subtotals before discounts, excluding taxes.
        original_item_tax_total:
          type: number
          title: original_item_tax_total
          description: The sum of all line items' original tax totals before discounts.
        item_total:
          type: number
          title: item_total
          description: The sum of all line items' totals after discounts, including taxes.
        item_subtotal:
          type: number
          title: item_subtotal
          description: The sum of all line items' subtotals before discounts, excluding taxes.
        item_tax_total:
          type: number
          title: item_tax_total
          description: The sum of all line items' tax totals after discounts.
        original_total:
          type: number
          title: original_total
          description: The order's total before discounts, including taxes. Calculated as the sum of `original_item_total` and `original_shipping_total`.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The order's subtotal before discounts, excluding taxes. Calculated as the sum of `original_item_subtotal` and `original_shipping_subtotal`.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The order's tax total before discounts. Calculated as the sum of `original_item_tax_total` and `original_shipping_tax_total`.
        total:
          type: number
          title: total
          description: The order's final total after discounts and credit lines, including taxes.
        subtotal:
          type: number
          title: subtotal
          description: The order's subtotal before discounts, excluding taxes. Calculated as the sum of `item_subtotal` and `shipping_subtotal`.
        tax_total:
          type: number
          title: tax_total
          description: The order's tax total after discounts. Calculated as the sum of `item_tax_total` and `shipping_tax_total`.
        discount_total:
          type: number
          title: discount_total
          description: The total amount of discounts applied to the order, including the tax portion of discounts.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The total amount of discounts applied to the order's tax. Represents the tax portion of discounts.
        gift_card_total:
          type: number
          title: gift_card_total
          description: The order's gift card total.
        gift_card_tax_total:
          type: number
          title: gift_card_tax_total
          description: The total taxes applied on the gift card's amount.
        shipping_total:
          type: number
          title: shipping_total
          description: The sum of all shipping methods' totals after discounts, including taxes.
        shipping_subtotal:
          type: number
          title: shipping_subtotal
          description: The sum of all shipping methods' subtotals before discounts, excluding taxes.
        shipping_tax_total:
          type: number
          title: shipping_tax_total
          description: The sum of all shipping methods' tax totals after discounts.
        original_shipping_total:
          type: number
          title: original_shipping_total
          description: The sum of all shipping methods' original totals before discounts, including taxes.
        original_shipping_subtotal:
          type: number
          title: original_shipping_subtotal
          description: The sum of all shipping methods' original subtotals before discounts, excluding taxes.
        original_shipping_tax_total:
          type: number
          title: original_shipping_tax_total
          description: The sum of all shipping methods' original tax totals before discounts.
        customer:
          $ref: '#/components/schemas/StoreCustomer'
        transactions:
          type: array
          description: The order's transactions.
          items:
            $ref: '#/components/schemas/BaseOrderTransaction'
        status:
          type: string
          title: status
          description: The order's status.
        credit_line_total:
          type: number
          title: credit_line_total
          description: The total amount of credit lines applied to the order, including taxes. Subtracted from the final total.
        item_discount_total:
          type: number
          title: item_discount_total
          description: The sum of all discounts applied to line items, including the tax portion of discounts.
        shipping_discount_total:
          type: number
          title: shipping_discount_total
          description: The sum of all discounts applied to shipping methods, including the tax portion of discounts.
        custom_display_id:
          type: string
          title: custom_display_id
          description: The custom display ID of the order.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/order/custom-display-id
    StoreOrderAddress:
      type: object
      description: An order address
      x-schemaName: StoreOrderAddress
      required:
        - id
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The address's ID.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer this address belongs to.
        first_name:
          type: string
          title: first_name
          description: The address's first name.
        last_name:
          type: string
          title: last_name
          description: The address's last name.
        phone:
          type: string
          title: phone
          description: The address's phone.
        company:
          type: string
          title: company
          description: The address's company.
        address_1:
          type: string
          title: address_1
          description: The address's first line.
        address_2:
          type: string
          title: address_2
          description: The address's second line.
        city:
          type: string
          title: city
          description: The address's city.
        country_code:
          type: string
          title: country_code
          description: The address's country code.
          example: us
        country:
          $ref: '#/components/schemas/StoreRegionCountry'
        province:
          type: string
          title: province
          description: The address's lower-case ISO 3166-2 province code.
          example: us-ca
          externalDocs:
            url: https://en.wikipedia.org/wiki/ISO_3166-2
            description: Learn more about ISO 3166-2
        postal_code:
          type: string
          title: postal_code
          description: The address's postal code.
        metadata:
          type: object
          description: The address's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the address was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the address was updated.
    StoreOrderFulfillment:
      type: object
      description: The fulfillment's details.
      x-schemaName: StoreOrderFulfillment
      required:
        - id
        - location_id
        - packed_at
        - shipped_at
        - delivered_at
        - canceled_at
        - requires_shipping
        - data
        - provider_id
        - shipping_option_id
        - metadata
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The fulfillment's ID.
        location_id:
          type: string
          title: location_id
          description: The ID of the location the items are fulfilled from.
        packed_at:
          type: string
          title: packed_at
          description: The date the items were packed.
          format: date-time
        shipped_at:
          type: string
          title: shipped_at
          description: The date the items were shipped.
          format: date-time
        delivered_at:
          type: string
          title: delivered_at
          description: The date the items were delivered.
          format: date-time
        canceled_at:
          type: string
          title: canceled_at
          description: The date the items were canceled.
          format: date-time
        data:
          type: object
          description: Data useful for the fulfillment provider handling it. This is taken from the associated shipping option.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property
        provider_id:
          type: string
          title: provider_id
          description: The ID of the fulfillment provider used to handle the fulfillment.
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the associated shipping option.
        metadata:
          type: object
          description: The fulfillment's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the fulfillment was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the fulfillment was updated.
        requires_shipping:
          type: boolean
          title: requires_shipping
          description: The fulfillment's requires shipping.
    StoreOrderLineItem:
      type: object
      description: The item's details.
      x-schemaName: StoreOrderLineItem
      required:
        - detail
        - title
        - id
        - metadata
        - created_at
        - updated_at
        - item_total
        - item_subtotal
        - item_tax_total
        - original_total
        - original_subtotal
        - original_tax_total
        - total
        - subtotal
        - tax_total
        - discount_total
        - discount_tax_total
        - subtitle
        - thumbnail
        - variant_id
        - product_id
        - product_title
        - product_description
        - product_subtitle
        - product_type_id
        - product_type
        - product_collection
        - product_handle
        - variant_sku
        - variant_barcode
        - variant_title
        - variant_option_values
        - requires_shipping
        - is_discountable
        - is_tax_inclusive
        - unit_price
        - quantity
        - refundable_total
        - refundable_total_per_unit
      properties:
        id:
          type: string
          title: id
          description: The item's ID.
        title:
          type: string
          title: title
          description: The item's title.
        subtitle:
          type: string
          title: subtitle
          description: The item's subtitle.
        thumbnail:
          type: string
          title: thumbnail
          description: The URL of the item's thumbnail.
        variant:
          $ref: '#/components/schemas/StoreProductVariant'
        variant_id:
          type: string
          title: variant_id
          description: The ID of the associated variant.
        product:
          $ref: '#/components/schemas/StoreProduct'
        product_id:
          type: string
          title: product_id
          description: The ID of the associated product.
        product_title:
          type: string
          title: product_title
          description: The item's product title.
        product_description:
          type: string
          title: product_description
          description: The item's product description.
        product_subtitle:
          type: string
          title: product_subtitle
          description: The item's product subtitle.
        product_type:
          type: string
          title: product_type
          description: The item's product type.
        product_collection:
          type: string
          title: product_collection
          description: The ID of the collection the item's product belongs to.
        product_handle:
          type: string
          title: product_handle
          description: The item's product handle.
        variant_sku:
          type: string
          title: variant_sku
          description: The item's variant SKU.
        variant_barcode:
          type: string
          title: variant_barcode
          description: The item's variant barcode.
        variant_title:
          type: string
          title: variant_title
          description: The item's variant title.
        variant_option_values:
          type: object
          description: The values of the item variant's options.
          example:
            Color: Blue
        requires_shipping:
          type: boolean
          title: requires_shipping
          description: Whether the item requires shipping.
        is_discountable:
          type: boolean
          title: is_discountable
          description: Whether the item is discountable.
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: Whether the item is tax inclusive.
        compare_at_unit_price:
          type: number
          title: compare_at_unit_price
          description: The original price of the item before a promotion or sale.
        unit_price:
          type: number
          title: unit_price
          description: The item's unit price.
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        tax_lines:
          type: array
          description: The item's tax lines.
          items:
            allOf:
              - type: object
                description: The tax line's tax lines.
                x-schemaName: BaseOrderLineItemTaxLine
                required:
                  - item
                  - item_id
                  - total
                  - subtotal
                  - id
                  - code
                  - rate
                  - created_at
                  - updated_at
                properties:
                  item:
                    type: object
                    description: The tax line's item.
                    x-schemaName: BaseOrderLineItem
                    required:
                      - id
                      - title
                      - subtitle
                      - thumbnail
                      - variant_id
                      - product_id
                      - product_title
                      - product_description
                      - product_subtitle
                      - product_type
                      - product_collection
                      - product_handle
                      - variant_sku
                      - variant_barcode
                      - variant_title
                      - variant_option_values
                      - requires_shipping
                      - is_discountable
                      - is_tax_inclusive
                      - unit_price
                      - quantity
                      - detail
                      - created_at
                      - updated_at
                      - metadata
                      - original_total
                      - original_subtotal
                      - original_tax_total
                      - item_total
                      - item_subtotal
                      - item_tax_total
                      - total
                      - subtotal
                      - tax_total
                      - discount_total
                      - discount_tax_total
                      - refundable_total
                      - refundable_total_per_unit
                    properties:
                      id:
                        type: string
                        title: id
                        description: The item's ID.
                      title:
                        type: string
                        title: title
                        description: The item's title.
                      subtitle:
                        type: string
                        title: subtitle
                        description: The item's subtitle.
                      thumbnail:
                        type: string
                        title: thumbnail
                        description: The item's thumbnail.
                      variant:
                        type: object
                        description: The item's variant.
                        x-schemaName: BaseProductVariant
                        required:
                          - id
                          - title
                          - sku
                          - barcode
                          - ean
                          - upc
                          - allow_backorder
                          - manage_inventory
                          - hs_code
                          - origin_country
                          - mid_code
                          - material
                          - weight
                          - length
                          - height
                          - width
                          - options
                          - created_at
                          - updated_at
                          - deleted_at
                        properties:
                          id:
                            type: string
                            title: id
                            description: The variant's ID.
                          title:
                            type: string
                            title: title
                            description: The variant's title.
                          sku:
                            type: string
                            title: sku
                            description: The variant's sku.
                          barcode:
                            type: string
                            title: barcode
                            description: The variant's barcode.
                          ean:
                            type: string
                            title: ean
                            description: The variant's ean.
                          upc:
                            type: string
                            title: upc
                            description: The variant's upc.
                          allow_backorder:
                            type: boolean
                            title: allow_backorder
                            description: The variant's allow backorder.
                          manage_inventory:
                            type: boolean
                            title: manage_inventory
                            description: The variant's manage inventory.
                          inventory_quantity:
                            type: number
                            title: inventory_quantity
                            description: The variant's inventory quantity.
                          hs_code:
                            type: string
                            title: hs_code
                            description: The variant's hs code.
                          origin_country:
                            type: string
                            title: origin_country
                            description: The variant's origin country.
                          mid_code:
                            type: string
                            title: mid_code
                            description: The variant's mid code.
                          material:
                            type: string
                            title: material
                            description: The variant's material.
                          weight:
                            type: number
                            title: weight
                            description: The variant's weight.
                          length:
                            type: number
                            title: length
                            description: The variant's length.
                          height:
                            type: number
                            title: height
                            description: The variant's height.
                          width:
                            type: number
                            title: width
                            description: The variant's width.
                          variant_rank:
                            type: number
                            title: variant_rank
                            description: The variant's variant rank.
                          options:
                            type: array
                            description: The variant's options.
                            items:
                              type: object
                              description: The option's options.
                              x-schemaName: BaseProductOptionValue
                          product:
                            type: object
                            description: The variant's product.
                            x-schemaName: BaseProduct
                          product_id:
                            type: string
                            title: product_id
                            description: The variant's product id.
                          calculated_price:
                            type: object
                            description: The variant's calculated price.
                            x-schemaName: BaseCalculatedPriceSet
                          created_at:
                            type: string
                            format: date-time
                            title: created_at
                            description: The variant's created at.
                          updated_at:
                            type: string
                            format: date-time
                            title: updated_at
                            description: The variant's updated at.
                          deleted_at:
                            type: string
                            format: date-time
                            title: deleted_at
                            description: The variant's deleted at.
                          metadata:
                            type: object
                            description: The variant's metadata.
                            externalDocs:
                              url: https://docs.medusajs.com/api/store#manage-metadata
                              description: Learn how to manage metadata
                      variant_id:
                        type: string
                        title: variant_id
                        description: The item's variant id.
                      product:
                        type: object
                        description: The item's product.
                        x-schemaName: BaseProduct
                        required:
                          - id
                          - title
                          - handle
                          - subtitle
                          - description
                          - is_giftcard
                          - status
                          - thumbnail
                          - width
                          - weight
                          - length
                          - height
                          - origin_country
                          - hs_code
                          - mid_code
                          - material
                          - collection_id
                          - type_id
                          - variants
                          - options
                          - images
                          - discountable
                          - external_id
                          - created_at
                          - updated_at
                          - deleted_at
                        properties:
                          id:
                            type: string
                            title: id
                            description: The product's ID.
                          title:
                            type: string
                            title: title
                            description: The product's title.
                          handle:
                            type: string
                            title: handle
                            description: The product's handle.
                          subtitle:
                            type: string
                            title: subtitle
                            description: The product's subtitle.
                          description:
                            type: string
                            title: description
                            description: The product's description.
                          is_giftcard:
                            type: boolean
                            title: is_giftcard
                            description: The product's is giftcard.
                          status:
                            type: string
                            description: The product's status.
                            enum:
                              - draft
                              - proposed
                              - published
                              - rejected
                          thumbnail:
                            type: string
                            title: thumbnail
                            description: The product's thumbnail.
                          width:
                            type: number
                            title: width
                            description: The product's width.
                          weight:
                            type: number
                            title: weight
                            description: The product's weight.
                          length:
                            type: number
                            title: length
                            description: The product's length.
                          height:
                            type: number
                            title: height
                            description: The product's height.
                          origin_country:
                            type: string
                            title: origin_country
                            description: The product's origin country.
                          hs_code:
                            type: string
                            title: hs_code
                            description: The product's hs code.
                          mid_code:
                            type: string
                            title: mid_code
                            description: The product's mid code.
                          material:
                            type: string
                            title: material
                            description: The product's material.
                          collection:
                            type: object
                            description: The product's collection.
                            x-schemaName: BaseCollection
                          collection_id:
                            type: string
                            title: collection_id
                            description: The product's collection id.
                          categories:
                            type: array
                            description: The product's categories.
                            items:
                              type: object
                              description: The category's categories.
                              x-schemaName: BaseProductCategory
                          type:
                            type: object
                            description: The product's type.
                            x-schemaName: BaseProduct
                          type_id:
                            type: string
                            title: type_id
                            description: The product's type id.
                          tags:
                            type: array
                            description: The product's tags.
                            items:
                              type: object
                              description: The tag's tags.
                              x-schemaName: BaseProductTag
                          variants:
                            type: array
                            description: The product's variants.
                            items:
                              type: object
                              description: The variant's variants.
                              x-schemaName: BaseProductVariant
                          options:
                            type: array
                            description: The product's options.
                            items:
                              type: object
                              description: The option's options.
                              x-schemaName: BaseProductOption
                          images:
                            type: array
                            description: The product's images.
                            items:
                              type: object
                              description: The image's images.
                              x-schemaName: BaseProductImage
                          discountable:
                            type: boolean
                            title: discountable
                            description: The product's discountable.
                          external_id:
                            type: string
                            title: external_id
                            description: The product's external id.
                          created_at:
                            type: string
                            format: date-time
                            title: created_at
                            description: The product's created at.
                          updated_at:
                            type: string
                            format: date-time
                            title: updated_at
                            description: The product's updated at.
                          deleted_at:
                            type: string
                            format: date-time
                            title: deleted_at
                            description: The product's deleted at.
                          metadata:
                            type: object
                            description: The product's metadata.
                            externalDocs:
                              url: https://docs.medusajs.com/api/store#manage-metadata
                              description: Learn how to manage metadata
                      product_id:
                        type: string
                        title: product_id
                        description: The item's product id.
                      product_title:
                        type: string
                        title: product_title
                        description: The item's product title.
                      product_description:
                        type: string
                        title: product_description
                        description: The item's product description.
                      product_subtitle:
                        type: string
                        title: product_subtitle
                        description: The item's product subtitle.
                      product_type:
                        type: string
                        title: product_type
                        description: The item's product type.
                      product_collection:
                        type: string
                        title: product_collection
                        description: The item's product collection.
                      product_handle:
                        type: string
                        title: product_handle
                        description: The item's product handle.
                      variant_sku:
                        type: string
                        title: variant_sku
                        description: The item's variant sku.
                      variant_barcode:
                        type: string
                        title: variant_barcode
                        description: The item's variant barcode.
                      variant_title:
                        type: string
                        title: variant_title
                        description: The item's variant title.
                      variant_option_values:
                        type: object
                        description: The item's variant option values.
                      requires_shipping:
                        type: boolean
                        title: requires_shipping
                        description: The item's requires shipping.
                      is_discountable:
                        type: boolean
                        title: is_discountable
                        description: The item's is discountable.
                      is_tax_inclusive:
                        type: boolean
                        title: is_tax_inclusive
                        description: The item's is tax inclusive.
                      compare_at_unit_price:
                        type: number
                        title: compare_at_unit_price
                        description: The item's compare at unit price.
                      unit_price:
                        type: number
                        title: unit_price
                        description: The item's unit price.
                      quantity:
                        type: number
                        title: quantity
                        description: The item's quantity.
                      tax_lines:
                        type: array
                        description: The item's tax lines.
                        items:
                          type: object
                          description: The tax line's tax lines.
                          x-schemaName: BaseOrderLineItemTaxLine
                          required:
                            - item
                            - item_id
                            - total
                            - subtotal
                            - id
                            - code
                            - rate
                            - created_at
                            - updated_at
                          properties:
                            item:
                              type: object
                              description: The tax line's item.
                              x-schemaName: BaseOrderLineItem
                            item_id:
                              type: string
                              title: item_id
                              description: The tax line's item id.
                            total:
                              type: number
                              title: total
                              description: The tax line's total.
                            subtotal:
                              type: number
                              title: subtotal
                              description: The tax line's subtotal.
                            id:
                              type: string
                              title: id
                              description: The tax line's ID.
                            description:
                              type: string
                              title: description
                              description: The tax line's description.
                            tax_rate_id:
                              type: string
                              title: tax_rate_id
                              description: The tax line's tax rate id.
                            code:
                              type: string
                              title: code
                              description: The tax line's code.
                            rate:
                              type: number
                              title: rate
                              description: The tax line's rate.
                            provider_id:
                              type: string
                              title: provider_id
                              description: The tax line's provider id.
                            created_at:
                              type: string
                              format: date-time
                              title: created_at
                              description: The tax line's created at.
                            updated_at:
                              type: string
                              format: date-time
                              title: updated_at
                              description: The tax line's updated at.
                      adjustments:
                        type: array
                        description: The item's adjustments.
                        items:
                          type: object
                          description: The adjustment's adjustments.
                          x-schemaName: BaseOrderLineItemAdjustment
                          required:
                            - item
                            - item_id
                            - id
                            - amount
                            - order_id
                            - created_at
                            - updated_at
                          properties:
                            item:
                              type: object
                              description: The adjustment's item.
                              x-schemaName: BaseOrderLineItem
                            item_id:
                              type: string
                              title: item_id
                              description: The adjustment's item id.
                            id:
                              type: string
                              title: id
                              description: The adjustment's ID.
                            code:
                              type: string
                              title: code
                              description: The adjustment's code.
                            amount:
                              type: number
                              title: amount
                              description: The adjustment's amount.
                            order_id:
                              type: string
                              title: order_id
                              description: The adjustment's order id.
                            description:
                              type: string
                              title: description
                              description: The adjustment's description.
                            promotion_id:
                              type: string
                              title: promotion_id
                              description: The adjustment's promotion id.
                            provider_id:
                              type: string
                              title: provider_id
                              description: The adjustment's provider id.
                            created_at:
                              type: string
                              format: date-time
                              title: created_at
                              description: The adjustment's created at.
                            updated_at:
                              type: string
                              format: date-time
                              title: updated_at
                              description: The adjustment's updated at.
                      detail:
                        type: object
                        description: The item's detail.
                        x-schemaName: BaseOrderItemDetail
                        required:
                          - id
                          - item_id
                          - item
                          - quantity
                          - fulfilled_quantity
                          - delivered_quantity
                          - shipped_quantity
                          - return_requested_quantity
                          - return_received_quantity
                          - return_dismissed_quantity
                          - written_off_quantity
                          - metadata
                          - created_at
                          - updated_at
                        properties:
                          id:
                            type: string
                            title: id
                            description: The detail's ID.
                          item_id:
                            type: string
                            title: item_id
                            description: The detail's item id.
                          item:
                            type: object
                            description: The detail's item.
                            x-schemaName: BaseOrderLineItem
                          quantity:
                            type: number
                            title: quantity
                            description: The detail's quantity.
                          fulfilled_quantity:
                            type: number
                            title: fulfilled_quantity
                            description: The detail's fulfilled quantity.
                          delivered_quantity:
                            type: number
                            title: delivered_quantity
                            description: The detail's delivered quantity.
                          shipped_quantity:
                            type: number
                            title: shipped_quantity
                            description: The detail's shipped quantity.
                          return_requested_quantity:
                            type: number
                            title: return_requested_quantity
                            description: The detail's return requested quantity.
                          return_received_quantity:
                            type: number
                            title: return_received_quantity
                            description: The detail's return received quantity.
                          return_dismissed_quantity:
                            type: number
                            title: return_dismissed_quantity
                            description: The detail's return dismissed quantity.
                          written_off_quantity:
                            type: number
                            title: written_off_quantity
                            description: The detail's written off quantity.
                          metadata:
                            type: object
                            description: The detail's metadata.
                            externalDocs:
                              url: https://docs.medusajs.com/api/store#manage-metadata
                              description: Learn how to manage metadata
                          created_at:
                            type: string
                            format: date-time
                            title: created_at
                            description: The detail's created at.
                          updated_at:
                            type: string
                            format: date-time
                            title: updated_at
                            description: The detail's updated at.
                      created_at:
                        type: string
                        format: date-time
                        title: created_at
                        description: The item's created at.
                      updated_at:
                        type: string
                        format: date-time
                        title: updated_at
                        description: The item's updated at.
                      metadata:
                        type: object
                        description: The item's metadata.
                        externalDocs:
                          url: https://docs.medusajs.com/api/store#manage-metadata
                          description: Learn how to manage metadata
                      original_total:
                        type: number
                        title: original_total
                        description: The item's original total.
                      original_subtotal:
                        type: number
                        title: original_subtotal
                        description: The item's original subtotal.
                      original_tax_total:
                        type: number
                        title: original_tax_total
                        description: The item's original tax total.
                      item_total:
                        type: number
                        title: item_total
                        description: The item's item total.
                      item_subtotal:
                        type: number
                        title: item_subtotal
                        description: The item's item subtotal.
                      item_tax_total:
                        type: number
                        title: item_tax_total
                        description: The item's item tax total.
                      total:
                        type: number
                        title: total
                        description: The item's total.
                      subtotal:
                        type: number
                        title: subtotal
                        description: The item's subtotal.
                      tax_total:
                        type: number
                        title: tax_total
                        description: The item's tax total.
                      discount_total:
                        type: number
                        title: discount_total
                        description: The item's discount total.
                      discount_tax_total:
                        type: number
                        title: discount_tax_total
                        description: The item's discount tax total.
                      refundable_total:
                        type: number
                        title: refundable_total
                        description: The item's refundable total.
                      refundable_total_per_unit:
                        type: number
                        title: refundable_total_per_unit
                        description: The item's refundable total per unit.
                  item_id:
                    type: string
                    title: item_id
                    description: The tax line's item id.
                  total:
                    type: number
                    title: total
                    description: The tax line's total.
                  subtotal:
                    type: number
                    title: subtotal
                    description: The tax line's subtotal.
                  id:
                    type: string
                    title: id
                    description: The tax line's ID.
                  description:
                    type: string
                    title: description
                    description: The tax line's description.
                  tax_rate_id:
                    type: string
                    title: tax_rate_id
                    description: The tax line's tax rate id.
                  code:
                    type: string
                    title: code
                    description: The tax line's code.
                  rate:
                    type: number
                    title: rate
                    description: The tax line's rate.
                  provider_id:
                    type: string
                    title: provider_id
                    description: The tax line's provider id.
                  created_at:
                    type: string
                    format: date-time
                    title: created_at
                    description: The tax line's created at.
                  updated_at:
                    type: string
                    format: date-time
                    title: updated_at
                    description: The tax line's updated at.
              - type: object
                description: The tax line's tax lines.
                required:
                  - item
                properties:
                  item:
                    type: object
                    description: The tax line's item.
                    x-schemaName: StoreOrderLineItem
                    required:
                      - detail
                      - title
                      - id
                      - metadata
                      - created_at
                      - updated_at
                      - item_total
                      - item_subtotal
                      - item_tax_total
                      - original_total
                      - original_subtotal
                      - original_tax_total
                      - total
                      - subtotal
                      - tax_total
                      - discount_total
                      - discount_tax_total
                      - subtitle
                      - thumbnail
                      - variant_id
                      - product_id
                      - product_title
                      - product_description
                      - product_subtitle
                      - product_type
                      - product_collection
                      - product_handle
                      - variant_sku
                      - variant_barcode
                      - variant_title
                      - variant_option_values
                      - requires_shipping
                      - is_discountable
                      - is_tax_inclusive
                      - unit_price
                      - quantity
                      - refundable_total
                      - refundable_total_per_unit
                    properties:
                      variant:
                        type: object
                        description: The item's variant.
                        x-schemaName: StoreProductVariant
                        required:
                          - options
                          - length
                          - title
                          - id
                          - created_at
                          - updated_at
                          - width
                          - weight
                          - height
                          - origin_country
                          - hs_code
                          - mid_code
                          - material
                          - deleted_at
                          - sku
                          - barcode
                          - ean
                          - upc
                          - allow_backorder
                          - manage_inventory
                        properties:
                          options:
                            type: array
                            description: The variant's options.
                            items:
                              type: object
                              description: The option's options.
                              x-schemaName: StoreProductOptionValue
                          product:
                            type: object
                            description: The variant's product.
                            x-schemaName: StoreProduct
                          length:
                            type: number
                            title: length
                            description: The variant's length.
                          title:
                            type: string
                            title: title
                            description: The variant's title.
                          id:
                            type: string
                            title: id
                            description: The variant's ID.
                          metadata:
                            type: object
                            description: The variant's metadata.
                            externalDocs:
                              url: https://docs.medusajs.com/api/store#manage-metadata
                              description: Learn how to manage metadata
                          created_at:
                            type: string
                            format: date-time
                            title: created_at
                            description: The variant's created at.
                          updated_at:
                            type: string
                            format: date-time
                            title: updated_at
                            description: The variant's updated at.
                          product_id:
                            type: string
                            title: product_id
                            description: The variant's product id.
                          width:
                            type: number
                            title: width
                            description: The variant's width.
                          weight:
                            type: number
                            title: weight
                            description: The variant's weight.
                          height:
                            type: number
                            title: height
                            description: The variant's height.
                          origin_country:
                            type: string
                            title: origin_country
                            description: The variant's origin country.
                          hs_code:
                            type: string
                            title: hs_code
                            description: The variant's hs code.
                          mid_code:
                            type: string
                            title: mid_code
                            description: The variant's mid code.
                          material:
                            type: string
                            title: material
                            description: The variant's material.
                          deleted_at:
                            type: string
                            format: date-time
                            title: deleted_at
                            description: The variant's deleted at.
                          sku:
                            type: string
                            title: sku
                            description: The variant's sku.
                          barcode:
                            type: string
                            title: barcode
                            description: The variant's barcode.
                          ean:
                            type: string
                            title: ean
                            description: The variant's ean.
                          upc:
                            type: string
                            title: upc
                            description: The variant's upc.
                          allow_backorder:
                            type: boolean
                            title: allow_backorder
                            description: The variant's allow backorder.
                          manage_inventory:
                            type: boolean
                            title: manage_inventory
                            description: The variant's manage inventory.
                          inventory_quantity:
                            type: number
                            title: inventory_quantity
                            description: The variant's inventory quantity.
                          variant_rank:
                            type: number
                            title: variant_rank
                            description: The variant's variant rank.
                          calculated_price:
                            type: object
                            description: The variant's calculated price.
                            x-schemaName: BaseCalculatedPriceSet
                      product:
                        type: object
                        description: The item's product.
                        x-schemaName: StoreProduct
                        required:
                          - variants
                          - options
                          - images
                          - length
                          - title
                          - status
                          - description
                          - id
                          - created_at
                          - updated_at
                          - subtitle
                          - thumbnail
                          - handle
                          - is_giftcard
                          - width
                          - weight
                          - height
                          - origin_country
                          - hs_code
                          - mid_code
                          - material
                          - collection_id
                          - type_id
                          - discountable
                          - external_id
                          - deleted_at
                        properties:
                          collection:
                            type: object
                            description: The product's collection.
                            x-schemaName: StoreCollection
                          categories:
                            type: array
                            description: The product's categories.
                            items:
                              type: object
                              description: The category's categories.
                              x-schemaName: StoreProductCategory
                          variants:
                            type: array
                            description: The product's variants.
                            items:
                              type: object
                              description: The variant's variants.
                              x-schemaName: StoreProductVariant
                          type:
                            type: object
                            description: The product's type.
                            x-schemaName: StoreProduct
                          tags:
                            type: array
                            description: The product's tags.
                            items:
                              type: object
                              description: The tag's tags.
                              x-schemaName: StoreProductTag
                          options:
                            type: array
                            description: The product's options.
                            items:
                              type: object
                              description: The option's options.
                              x-schemaName: StoreProductOption
                          images:
                            type: array
                            description: The product's images.
                            items:
                              type: object
                              description: The image's images.
                              x-schemaName: StoreProductImage
                          length:
                            type: number
                            title: length
                            description: The product's length.
                          title:
                            type: string
                            title: title
                            description: The product's title.
                          status:
                            type: string
                            description: The product's status.
                            enum:
                              - draft
                              - proposed
                              - published
                              - rejected
                          description:
                            type: string
                            title: description
                            description: The product's description.
                          id:
                            type: string
                            title: id
                            description: The product's ID.
                          metadata:
                            type: object
                            description: The product's metadata.
                            externalDocs:
                              url: https://docs.medusajs.com/api/store#manage-metadata
                              description: Learn how to manage metadata
                          created_at:
                            type: string
                            format: date-time
                            title: created_at
                            description: The product's created at.
                          updated_at:
                            type: string
                            format: date-time
                            title: updated_at
                            description: The product's updated at.
                          subtitle:
                            type: string
                            title: subtitle
                            description: The product's subtitle.
                          thumbnail:
                            type: string
                            title: thumbnail
                            description: The product's thumbnail.
                          handle:
                            type: string
                            title: handle
                            description: The product's handle.
                          is_giftcard:
                            type: boolean
                            title: is_giftcard
                            description: The product's is giftcard.
                          width:
                            type: number
                            title: width
                            description: The product's width.
                          weight:
                            type: number
                            title: weight
                            description: The product's weight.
                          height:
                            type: number
                            title: height
                            description: The product's height.
                          origin_country:
                            type: string
                            title: origin_country
                            description: The product's origin country.
                          hs_code:
                            type: string
                            title: hs_code
                            description: The product's hs code.
                          mid_code:
                            type: string
                            title: mid_code
                            description: The product's mid code.
                          material:
                            type: string
                            title: material
                            description: The product's material.
                          collection_id:
                            type: string
                            title: collection_id
                            description: The product's collection id.
                          type_id:
                            type: string
                            title: type_id
                            description: The product's type id.
                          discountable:
                            type: boolean
                            title: discountable
                            description: The product's discountable.
                          external_id:
                            type: string
                            title: external_id
                            description: The product's external id.
                          deleted_at:
                            type: string
                            format: date-time
                            title: deleted_at
                            description: The product's deleted at.
                      tax_lines:
                        type: array
                        description: The item's tax lines.
                        items:
                          allOf:
                            - type: object
                              description: The tax line's tax lines.
                              x-schemaName: BaseOrderLineItemTaxLine
                              required:
                                - item
                                - item_id
                                - total
                                - subtotal
                                - id
                                - code
                                - rate
                                - created_at
                                - updated_at
                              properties:
                                item:
                                  type: object
                                  description: The tax line's item.
                                  x-schemaName: BaseOrderLineItem
                                item_id:
                                  type: string
                                  title: item_id
                                  description: The tax line's item id.
                                total:
                                  type: number
                                  title: total
                                  description: The tax line's total.
                                subtotal:
                                  type: number
                                  title: subtotal
                                  description: The tax line's subtotal.
                                id:
                                  type: string
                                  title: id
                                  description: The tax line's ID.
                                description:
                                  type: string
                                  title: description
                                  description: The tax line's description.
                                tax_rate_id:
                                  type: string
                                  title: tax_rate_id
                                  description: The tax line's tax rate id.
                                code:
                                  type: string
                                  title: code
                                  description: The tax line's code.
                                rate:
                                  type: number
                                  title: rate
                                  description: The tax line's rate.
                                provider_id:
                                  type: string
                                  title: provider_id
                                  description: The tax line's provider id.
                                created_at:
                                  type: string
                                  format: date-time
                                  title: created_at
                                  description: The tax line's created at.
                                updated_at:
                                  type: string
                                  format: date-time
                                  title: updated_at
                                  description: The tax line's updated at.
                            - type: object
                              description: The tax line's tax lines.
                              required:
                                - item
                              properties:
                                item:
                                  type: object
                                  description: The tax line's item.
                                  x-schemaName: StoreOrderLineItem
                      adjustments:
                        type: array
                        description: The item's adjustments.
                        items:
                          allOf:
                            - type: object
                              description: The adjustment's adjustments.
                              x-schemaName: BaseOrderLineItemAdjustment
                              required:
                                - item
                                - item_id
                                - id
                                - amount
                                - order_id
                                - created_at
                                - updated_at
                              properties:
                                item:
                                  type: object
                                  description: The adjustment's item.
                                  x-schemaName: BaseOrderLineItem
                                item_id:
                                  type: string
                                  title: item_id
                                  description: The adjustment's item id.
                                id:
                                  type: string
                                  title: id
                                  description: The adjustment's ID.
                                code:
                                  type: string
                                  title: code
                                  description: The adjustment's code.
                                amount:
                                  type: number
                                  title: amount
                                  description: The adjustment's amount.
                                order_id:
                                  type: string
                                  title: order_id
                                  description: The adjustment's order id.
                                description:
                                  type: string
                                  title: description
                                  description: The adjustment's description.
                                promotion_id:
                                  type: string
                                  title: promotion_id
                                  description: The adjustment's promotion id.
                                provider_id:
                                  type: string
                                  title: provider_id
                                  description: The adjustment's provider id.
                                created_at:
                                  type: string
                                  format: date-time
                                  title: created_at
                                  description: The adjustment's created at.
                                updated_at:
                                  type: string
                                  format: date-time
                                  title: updated_at
                                  description: The adjustment's updated at.
                            - type: object
                              description: The adjustment's adjustments.
                              required:
                                - item
                              properties:
                                item:
                                  type: object
                                  description: The adjustment's item.
                                  x-schemaName: StoreOrderLineItem
                      detail:
                        allOf:
                          - type: object
                            description: The item's detail.
                            x-schemaName: BaseOrderItemDetail
                            required:
                              - id
                              - item_id
                              - item
                              - quantity
                              - fulfilled_quantity
                              - delivered_quantity
                              - shipped_quantity
                              - return_requested_quantity
                              - return_received_quantity
                              - return_dismissed_quantity
                              - written_off_quantity
                              - metadata
                              - created_at
                              - updated_at
                            properties:
                              id:
                                type: string
                                title: id
                                description: The detail's ID.
                              item_id:
                                type: string
                                title: item_id
                                description: The detail's item id.
                              item:
                                type: object
                                description: The detail's item.
                                x-schemaName: BaseOrderLineItem
                              quantity:
                                type: number
                                title: quantity
                                description: The detail's quantity.
                              fulfilled_quantity:
                                type: number
                                title: fulfilled_quantity
                                description: The detail's fulfilled quantity.
                              delivered_quantity:
                                type: number
                                title: delivered_quantity
                                description: The detail's delivered quantity.
                              shipped_quantity:
                                type: number
                                title: shipped_quantity
                                description: The detail's shipped quantity.
                              return_requested_quantity:
                                type: number
                                title: return_requested_quantity
                                description: The detail's return requested quantity.
                              return_received_quantity:
                                type: number
                                title: return_received_quantity
                                description: The detail's return received quantity.
                              return_dismissed_quantity:
                                type: number
                                title: return_dismissed_quantity
                                description: The detail's return dismissed quantity.
                              written_off_quantity:
                                type: number
                                title: written_off_quantity
                                description: The detail's written off quantity.
                              metadata:
                                type: object
                                description: The detail's metadata.
                                externalDocs:
                                  url: https://docs.medusajs.com/api/store#manage-metadata
                                  description: Learn how to manage metadata
                              created_at:
                                type: string
                                format: date-time
                                title: created_at
                                description: The detail's created at.
                              updated_at:
                                type: string
                                format: date-time
                                title: updated_at
                                description: The detail's updated at.
                          - type: object
                            description: The item's detail.
                            required:
                              - item
                            properties:
                              item:
                                type: object
                                description: The detail's item.
                                x-schemaName: StoreOrderLineItem
                      title:
                        type: string
                        title: title
                        description: The item's title.
                      id:
                        type: string
                        title: id
                        description: The item's ID.
                      metadata:
                        type: object
                        description: The item's metadata.
                        externalDocs:
                          url: https://docs.medusajs.com/api/store#manage-metadata
                          description: Learn how to manage metadata
                      created_at:
                        type: string
                        format: date-time
                        title: created_at
                        description: The item's created at.
                      updated_at:
                        type: string
                        format: date-time
                        title: updated_at
                        description: The item's updated at.
                      item_total:
                        type: number
                        title: item_total
                        description: The item's item total.
                      item_subtotal:
                        type: number
                        title: item_subtotal
                        description: The item's item subtotal.
                      item_tax_total:
                        type: number
                        title: item_tax_total
                        description: The item's item tax total.
                      original_total:
                        type: number
                        title: original_total
                        description: The item's original total.
                      original_subtotal:
                        type: number
                        title: original_subtotal
                        description: The item's original subtotal.
                      original_tax_total:
                        type: number
                        title: original_tax_total
                        description: The item's original tax total.
                      total:
                        type: number
                        title: total
                        description: The item's total.
                      subtotal:
                        type: number
                        title: subtotal
                        description: The item's subtotal.
                      tax_total:
                        type: number
                        title: tax_total
                        description: The item's tax total.
                      discount_total:
                        type: number
                        title: discount_total
                        description: The item's discount total.
                      discount_tax_total:
                        type: number
                        title: discount_tax_total
                        description: The item's discount tax total.
                      subtitle:
                        type: string
                        title: subtitle
                        description: The item's subtitle.
                      thumbnail:
                        type: string
                        title: thumbnail
                        description: The item's thumbnail.
                      variant_id:
                        type: string
                        title: variant_id
                        description: The item's variant id.
                      product_id:
                        type: string
                        title: product_id
                        description: The item's product id.
                      product_title:
                        type: string
                        title: product_title
                        description: The item's product title.
                      product_description:
                        type: string
                        title: product_description
                        description: The item's product description.
                      product_subtitle:
                        type: string
                        title: product_subtitle
                        description: The item's product subtitle.
                      product_type:
                        type: string
                        title: product_type
                        description: The item's product type.
                      product_collection:
                        type: string
                        title: product_collection
                        description: The item's product collection.
                      product_handle:
                        type: string
                        title: product_handle
                        description: The item's product handle.
                      variant_sku:
                        type: string
                        title: variant_sku
                        description: The item's variant sku.
                      variant_barcode:
                        type: string
                        title: variant_barcode
                        description: The item's variant barcode.
                      variant_title:
                        type: string
                        title: variant_title
                        description: The item's variant title.
                      variant_option_values:
                        type: object
                        description: The item's variant option values.
                      requires_shipping:
                        type: boolean
                        title: requires_shipping
                        description: The item's requires shipping.
                      is_discountable:
                        type: boolean
                        title: is_discountable
                        description: The item's is discountable.
                      is_tax_inclusive:
                        type: boolean
                        title: is_tax_inclusive
                        description: The item's is tax inclusive.
                      compare_at_unit_price:
                        type: number
                        title: compare_at_unit_price
                        description: The item's compare at unit price.
                      unit_price:
                        type: number
                        title: unit_price
                        description: The item's unit price.
                      quantity:
                        type: number
                        title: quantity
                        description: The item's quantity.
                      refundable_total:
                        type: number
                        title: refundable_total
                        description: The item's refundable total.
                      refundable_total_per_unit:
                        type: number
                        title: refundable_total_per_unit
                        description: The item's refundable total per unit.
            description: The tax line's tax lines.
        adjustments:
          type: array
          description: The item's adjustments.
          items:
            allOf:
              - type: object
                description: The adjustment's adjustments.
                x-schemaName: BaseOrderLineItemAdjustment
                required:
                  - item
                  - item_id
                  - id
                  - amount
                  - order_id
                  - created_at
                  - updated_at
                properties:
                  item:
                    type: object
                    description: The adjustment's item.
                    x-schemaName: BaseOrderLineItem
                    required:
                      - id
                      - title
                      - subtitle
                      - thumbnail
                      - variant_id
                      - product_id
                      - product_title
                      - product_description
                      - product_subtitle
                      - product_type
                      - product_collection
                      - product_handle
                      - variant_sku
                      - variant_barcode
                      - variant_title
                      - variant_option_values
                      - requires_shipping
                      - is_discountable
                      - is_tax_inclusive
                      - unit_price
                      - quantity
                      - detail
                      - created_at
                      - updated_at
                      - metadata
                      - original_total
                      - original_subtotal
                      - original_tax_total
                      - item_total
                      - item_subtotal
                      - item_tax_total
                      - total
                      - subtotal
                      - tax_total
                      - discount_total
                      - discount_tax_total
                      - refundable_total
                      - refundable_total_per_unit
                    properties:
                      id:
                        type: string
                        title: id
                        description: The item's ID.
                      title:
                        type: string
                        title: title
                        description: The item's title.
                      subtitle:
                        type: string
                        title: subtitle
                        description: The item's subtitle.
                      thumbnail:
                        type: string
                        title: thumbnail
                        description: The item's thumbnail.
                      variant:
                        type: object
                        description: The item's variant.
                        x-schemaName: BaseProductVariant
                        required:
                          - id
                          - title
                          - sku
                          - barcode
                          - ean
                          - upc
                          - allow_backorder
                          - manage_inventory
                          - hs_code
                          - origin_country
                          - mid_code
                          - material
                          - weight
                          - length
                          - height
                          - width
                          - options
                          - created_at
                          - updated_at
                          - deleted_at
                        properties:
                          id:
                            type: string
                            title: id
                            description: The variant's ID.
                          title:
                            type: string
                            title: title
                            description: The variant's title.
                          sku:
                            type: string
                            title: sku
                            description: The variant's sku.
                          barcode:
                            type: string
                            title: barcode
                            description: The variant's barcode.
                          ean:
                            type: string
                            title: ean
                            description: The variant's ean.
                          upc:
                            type: string
                            title: upc
                            description: The variant's upc.
                          allow_backorder:
                            type: boolean
                            title: allow_backorder
                            description: The variant's allow backorder.
                          manage_inventory:
                            type: boolean
                            title: manage_inventory
                            description: The variant's manage inventory.
                          inventory_quantity:
                            type: number
                            title: inventory_quantity
                            description: The variant's inventory quantity.
                          hs_code:
                            type: string
                            title: hs_code
                            description: The variant's hs code.
                          origin_country:
                            type: string
                            title: origin_country
                            description: The variant's origin country.
                          mid_code:
                            type: string
                            title: mid_code
                            description: The variant's mid code.
                          material:
                            type: string
                            title: material
                            description: The variant's material.
                          weight:
                            type: number
                            title: weight
                            description: The variant's weight.
                          length:
                            type: number
                            title: length
                            description: The variant's length.
                          height:
                            type: number
                            title: height
                            description: The variant's height.
                          width:
                            type: number
                            title: width
                            description: The variant's width.
                          variant_rank:
                            type: number
                            title: variant_rank
                            description: The variant's variant rank.
                          options:
                            type: array
                            description: The variant's options.
                            items:
                              type: object
                              description: The option's options.
                              x-schemaName: BaseProductOptionValue
                          product:
                            type: object
                            description: The variant's product.
                            x-schemaName: BaseProduct
                          product_id:
                            type: string
                            title: product_id
                            description: The variant's product id.
                          calculated_price:
                            type: object
                            description: The variant's calculated price.
                            x-schemaName: BaseCalculatedPriceSet
                          created_at:
                            type: string
                            format: date-time
                            title: created_at
                            description: The variant's created at.
                          updated_at:
                            type: string
                            format: date-time
                            title: updated_at
                            description: The variant's updated at.
                          deleted_at:
                            type: string
                            format: date-time
                            title: deleted_at
                            description: The variant's deleted at.
                          metadata:
                            type: object
                            description: The variant's metadata.
                            externalDocs:
                              url: https://docs.medusajs.com/api/store#manage-metadata
                              description: Learn how to manage metadata
                      variant_id:
                        type: string
                        title: variant_id
                        description: The item's variant id.
                      product:
                        type: object
                        description: The item's product.
                        x-schemaName: BaseProduct
                        required:
                          - id
                          - title
                          - handle
                          - subtitle
                          - description
                          - is_giftcard
                          - status
                          - thumbnail
                          - width
                          - weight
                          - length
                          - height
                          - origin_country
                          - hs_code
                          - mid_code
                          - material
                          - collection_id
                          - type_id
                          - variants
                          - options
                          - images
                          - discountable
                          - external_id
                          - created_at
                          - updated_at
                          - deleted_at
                        properties:
                          id:
                            type: string
                            title: id
                            description: The product's ID.
                          title:
                            type: string
                            title: title
                            description: The product's title.
                          handle:
                            type: string
                            title: handle
                            description: The product's handle.
                          subtitle:
                            type: string
                            title: subtitle
                            description: The product's subtitle.
                          description:
                            type: string
                            title: description
                            description: The product's description.
                          is_giftcard:
                            type: boolean
                            title: is_giftcard
                            description: The product's is giftcard.
                          status:
                            type: string
                            description: The product's status.
                            enum:
                              - draft
                              - proposed
                              - published
                              - rejected
                          thumbnail:
                            type: string
                            title: thumbnail
                            description: The product's thumbnail.
                          width:
                            type: number
                            title: width
                            description: The product's width.
                          weight:
                            type: number
                            title: weight
                            description: The product's weight.
                          length:
                            type: number
                            title: length
                            description: The product's length.
                          height:
                            type: number
                            title: height
                            description: The product's height.
                          origin_country:
                            type: string
                            title: origin_country
                            description: The product's origin country.
                          hs_code:
                            type: string
                            title: hs_code
                            description: The product's hs code.
                          mid_code:
                            type: string
                            title: mid_code
                            description: The product's mid code.
                          material:
                            type: string
                            title: material
                            description: The product's material.
                          collection:
                            type: object
                            description: The product's collection.
                            x-schemaName: BaseCollection
                          collection_id:
                            type: string
                            title: collection_id
                            description: The product's collection id.
                          categories:
                            type: array
                            description: The product's categories.
                            items:
                              type: object
                              description: The category's categories.
                              x-schemaName: BaseProductCategory
                          type:
                            type: object
                            description: The product's type.
                            x-schemaName: BaseProduct
                          type_id:
                            type: string
                            title: type_id
                            description: The product's type id.
                          tags:
                            type: array
                            description: The product's tags.
                            items:
                              type: object
                              description: The tag's tags.
                              x-schemaName: BaseProductTag
                          variants:
                            type: array
                            description: The product's variants.
                            items:
                              type: object
                              description: The variant's variants.
                              x-schemaName: BaseProductVariant
                          options:
                            type: array
                            description: The product's options.
                            items:
                              type: object
                              description: The option's options.
                              x-schemaName: BaseProductOption
                          images:
                            type: array
                            description: The product's images.
                            items:
                              type: object
                              description: The image's images.
                              x-schemaName: BaseProductImage
                          discountable:
                            type: boolean
                            title: discountable
                            description: The product's discountable.
                          external_id:
                            type: string
                            title: external_id
                            description: The product's external id.
                          created_at:
                            type: string
                            format: date-time
                            title: created_at
                            description: The product's created at.
                          updated_at:
                            type: string
                            format: date-time
                            title: updated_at
                            description: The product's updated at.
                          deleted_at:
                            type: string
                            format: date-time
                            title: deleted_at
                            description: The product's deleted at.
                          metadata:
                            type: object
                            description: The product's metadata.
                            externalDocs:
                              url: https://docs.medusajs.com/api/store#manage-metadata
                              description: Learn how to manage metadata
                      product_id:
                        type: string
                        title: product_id
                        description: The item's product id.
                      product_title:
                        type: string
                        title: product_title
                        description: The item's product title.
                      product_description:
                        type: string
                        title: product_description
                        description: The item's product description.
                      product_subtitle:
                        type: string
                        title: product_subtitle
                        description: The item's product subtitle.
                      product_type:
                        type: string
                        title: product_type
                        description: The item's product type.
                      product_collection:
                        type: string
                        title: product_collection
                        description: The item's product collection.
                      product_handle:
                        type: string
                        title: product_handle
                        description: The item's product handle.
                      variant_sku:
                        type: string
                        title: variant_sku
                        description: The item's variant sku.
                      variant_barcode:
                        type: string
                        title: variant_barcode
                        description: The item's variant barcode.
                      variant_title:
                        type: string
                        title: variant_title
                        description: The item's variant title.
                      variant_option_values:
                        type: object
                        description: The item's variant option values.
                      requires_shipping:
                        type: boolean
                        title: requires_shipping
                        description: The item's requires shipping.
                      is_discountable:
                        type: boolean
                        title: is_discountable
                        description: The item's is discountable.
                      is_tax_inclusive:
                        type: boolean
                        title: is_tax_inclusive
                        description: The item's is tax inclusive.
                      compare_at_unit_price:
                        type: number
                        title: compare_at_unit_price
                        description: The item's compare at unit price.
                      unit_price:
                        type: number
                        title: unit_price
                        description: The item's unit price.
                      quantity:
                        type: number
                        title: quantity
                        description: The item's quantity.
                      tax_lines:
                        type: array
                        description: The item's tax lines.
                        items:
                          type: object
                          description: The tax line's tax lines.
                          x-schemaName: BaseOrderLineItemTaxLine
                          required:
                            - item
                            - item_id
                            - total
                            - subtotal
                            - id
                            - code
                            - rate
                            - created_at
                            - updated_at
                          properties:
                            item:
                              type: object
                              description: The tax line's item.
                              x-schemaName: BaseOrderLineItem
                            item_id:
                              type: string
                              title: item_id
                              description: The tax line's item id.
                            total:
                              type: number
                              title: total
                              description: The tax line's total.
                            subtotal:
                              type: number
                              title: subtotal
                              description: The tax line's subtotal.
                            id:
                              type: string
                              title: id
                              description: The tax line's ID.
                            description:
                              type: string
                              title: description
                              description: The tax line's description.
                            tax_rate_id:
                              type: string
                              title: tax_rate_id
                              description: The tax line's tax rate id.
                            code:
                              type: string
                              title: code
                              description: The tax line's code.
                            rate:
                              type: number
                              title: rate
                              description: The tax line's rate.
                            provider_id:
                              type: string
                              title: provider_id
                              description: The tax line's provider id.
                            created_at:
                              type: string
                              format: date-time
                              title: created_at
                              description: The tax line's created at.
                            updated_at:
                              type: string
                              format: date-time
                              title: updated_at
                              description: The tax line's updated at.
                      adjustments:
                        type: array
                        description: The item's adjustments.
                        items:
                          type: object
                          description: The adjustment's adjustments.
                          x-schemaName: BaseOrderLineItemAdjustment
                          required:
                            - item
                            - item_id
                            - id
                            - amount
                            - order_id
                            - created_at
                            - updated_at
                          properties:
                            item:
                              type: object
                              description: The adjustment's item.
                              x-schemaName: BaseOrderLineItem
                            item_id:
                              type: string
                              title: item_id
                              description: The adjustment's item id.
                            id:
                              type: string
                              title: id
                              description: The adjustment's ID.
                            code:
                              type: string
                              title: code
                              description: The adjustment's code.
                            amount:
                              type: number
                              title: amount
                              description: The adjustment's amount.
                            order_id:
                              type: string
                              title: order_id
                              description: The adjustment's order id.
                            description:
                              type: string
                              title: description
                              description: The adjustment's description.
                            promotion_id:
                              type: string
                              title: promotion_id
                              description: The adjustment's promotion id.
                            provider_id:
                              type: string
                              title: provider_id
                              description: The adjustment's provider id.
                            created_at:
                              type: string
                              format: date-time
                              title: created_at
                              description: The adjustment's created at.
                            updated_at:
                              type: string
                              format: date-time
                              title: updated_at
                              description: The adjustment's updated at.
                      detail:
                        type: object
                        description: The item's detail.
                        x-schemaName: BaseOrderItemDetail
                        required:
                          - id
                          - item_id
                          - item
                          - quantity
                          - fulfilled_quantity
                          - delivered_quantity
                          - shipped_quantity
                          - return_requested_quantity
                          - return_received_quantity
                          - return_dismissed_quantity
                          - written_off_quantity
                          - metadata
                          - created_at
                          - updated_at
                        properties:
                          id:
                            type: string
                            title: id
                            description: The detail's ID.
                          item_id:
                            type: string
                            title: item_id
                            description: The detail's item id.
                          item:
                            type: object
                            description: The detail's item.
                            x-schemaName: BaseOrderLineItem
                          quantity:
                            type: number
                            title: quantity
                            description: The detail's quantity.
                          fulfilled_quantity:
                            type: number
                            title: fulfilled_quantity
                            description: The detail's fulfilled quantity.
                          delivered_quantity:
                            type: number
                            title: delivered_quantity
                            description: The detail's delivered quantity.
                          shipped_quantity:
                            type: number
                            title: shipped_quantity
                            description: The detail's shipped quantity.
                          return_requested_quantity:
                            type: number
                            title: return_requested_quantity
                            description: The detail's return requested quantity.
                          return_received_quantity:
                            type: number
                            title: return_received_quantity
                            description: The detail's return received quantity.
                          return_dismissed_quantity:
                            type: number
                            title: return_dismissed_quantity
                            description: The detail's return dismissed quantity.
                          written_off_quantity:
                            type: number
                            title: written_off_quantity
                            description: The detail's written off quantity.
                          metadata:
                            type: object
                            description: The detail's metadata.
                            externalDocs:
                              url: https://docs.medusajs.com/api/store#manage-metadata
                              description: Learn how to manage metadata
                          created_at:
                            type: string
                            format: date-time
                            title: created_at
                            description: The detail's created at.
                          updated_at:
                            type: string
                            format: date-time
                            title: updated_at
                            description: The detail's updated at.
                      created_at:
                        type: string
                        format: date-time
                        title: created_at
                        description: The item's created at.
                      updated_at:
                        type: string
                        format: date-time
                        title: updated_at
                        description: The item's updated at.
                      metadata:
                        type: object
                        description: The item's metadata.
                        externalDocs:
                          url: https://docs.medusajs.com/api/store#manage-metadata
                          description: Learn how to manage metadata
                      original_total:
                        type: number
                        title: original_total
                        description: The item's original total.
                      original_subtotal:
                        type: number
                        title: original_subtotal
                        description: The item's original subtotal.
                      original_tax_total:
                        type: number
                        title: original_tax_total
                        description: The item's original tax total.
                      item_total:
                        type: number
                        title: item_total
                        description: The item's item total.
                      item_subtotal:
                        type: number
                        title: item_subtotal
                        description: The item's item subtotal.
                      item_tax_total:
                        type: number
                        title: item_tax_total
                        description: The item's item tax total.
                      total:
                        type: number
                        title: total
                        description: The item's total.
                      subtotal:
                        type: number
                        title: subtotal
                        description: The item's subtotal.
                      tax_total:
                        type: number
                        title: tax_total
                        description: The item's tax total.
                      discount_total:
                        type: number
                        title: discount_total
                        description: The item's discount total.
                      discount_tax_total:
                        type: number
                        title: discount_tax_total
                        description: The item's discount tax total.
                      refundable_total:
                        type: number
                        title: refundable_total
                        description: The item's refundable total.
                      refundable_total_per_unit:
                        type: number
                        title: refundable_total_per_unit
                        description: The item's refundable total per unit.
                  item_id:
                    type: string
                    title: item_id
                    description: The adjustment's item id.
                  id:
                    type: string
                    title: id
                    description: The adjustment's ID.
                  code:
                    type: string
                    title: code
                    description: The adjustment's code.
                  amount:
                    type: number
                    title: amount
                    description: The adjustment's amount.
                  order_id:
                    type: string
                    title: order_id
                    description: The adjustment's order id.
                  description:
                    type: string
                    title: description
                    description: The adjustment's description.
                  promotion_id:
                    type: string
                    title: promotion_id
                    description: The adjustment's promotion id.
                  provider_id:
                    type: string
                    title: provider_id
                    description: The adjustment's provider id.
                  created_at:
                    type: string
                    format: date-time
                    title: created_at
                    description: The adjustment's created at.
                  updated_at:
                    type: string
                    format: date-time
                    title: updated_at
                    description: The adjustment's updated at.
              - type: object
                description: The adjustment's adjustments.
                required:
                  - item
                properties:
                  item:
                    type: object
                    description: The adjustment's item.
                    x-schemaName: StoreOrderLineItem
                    required:
                      - detail
                      - title
                      - id
                      - metadata
                      - created_at
                      - updated_at
                      - item_total
                      - item_subtotal
                      - item_tax_total
                      - original_total
                      - original_subtotal
                      - original_tax_total
                      - total
                      - subtotal
                      - tax_total
                      - discount_total
                      - discount_tax_total
                      - subtitle
                      - thumbnail
                      - variant_id
                      - product_id
                      - product_title
                      - product_description
                      - product_subtitle
                      - product_type
                      - product_collection
                      - product_handle
                      - variant_sku
                      - variant_barcode
                      - variant_title
                      - variant_option_values
                      - requires_shipping
                      - is_discountable
                      - is_tax_inclusive
                      - unit_price
                      - quantity
                      - refundable_total
                      - refundable_total_per_unit
                    properties:
                      variant:
                        type: object
                        description: The item's variant.
                        x-schemaName: StoreProductVariant
                        required:
                          - options
                          - length
                          - title
                          - id
                          - created_at
                          - updated_at
                          - width
                          - weight
                          - height
                          - origin_country
                          - hs_code
                          - mid_code
                          - material
                          - deleted_at
                          - sku
                          - barcode
                          - ean
                          - upc
                          - allow_backorder
                          - manage_inventory
                        properties:
                          options:
                            type: array
                            description: The variant's options.
                            items:
                              type: object
                              description: The option's options.
                              x-schemaName: StoreProductOptionValue
                          product:
                            type: object
                            description: The variant's product.
                            x-schemaName: StoreProduct
                          length:
                            type: number
                            title: length
                            description: The variant's length.
                          title:
                            type: string
                            title: title
                            description: The variant's title.
                          id:
                            type: string
                            title: id
                            description: The variant's ID.
                          metadata:
                            type: object
                            description: The variant's metadata.
                            externalDocs:
                              url: https://docs.medusajs.com/api/store#manage-metadata
                              description: Learn how to manage metadata
                          created_at:
                            type: string
                            format: date-time
                            title: created_at
                            description: The variant's created at.
                          updated_at:
                            type: string
                            format: date-time
                            title: updated_at
                            description: The variant's updated at.
                          product_id:
                            type: string
                            title: product_id
                            description: The variant's product id.
                          width:
                            type: number
                            title: width
                            description: The variant's width.
                          weight:
                            type: number
                            title: weight
                            description: The variant's weight.
                          height:
                            type: number
                            title: height
                            description: The variant's height.
                          origin_country:
                            type: string
                            title: origin_country
                            description: The variant's origin country.
                          hs_code:
                            type: string
                            title: hs_code
                            description: The variant's hs code.
                          mid_code:
                            type: string
                            title: mid_code
                            description: The variant's mid code.
                          material:
                            type: string
                            title: material
                            description: The variant's material.
                          deleted_at:
                            type: string
                            format: date-time
                            title: deleted_at
                            description: The variant's deleted at.
                          sku:
                            type: string
                            title: sku
                            description: The variant's sku.
                          barcode:
                            type: string
                            title: barcode
                            description: The variant's barcode.
                          ean:
                            type: string
                            title: ean
                            description: The variant's ean.
                          upc:
                            type: string
                            title: upc
                            description: The variant's upc.
                          allow_backorder:
                            type: boolean
                            title: allow_backorder
                            description: The variant's allow backorder.
                          manage_inventory:
                            type: boolean
                            title: manage_inventory
                            description: The variant's manage inventory.
                          inventory_quantity:
                            type: number
                            title: inventory_quantity
                            description: The variant's inventory quantity.
                          variant_rank:
                            type: number
                            title: variant_rank
                            description: The variant's variant rank.
                          calculated_price:
                            type: object
                            description: The variant's calculated price.
                            x-schemaName: BaseCalculatedPriceSet
                      product:
                        type: object
                        description: The item's product.
                        x-schemaName: StoreProduct
                        required:
                          - variants
                          - options
                          - images
                          - length
                          - title
                          - status
                          - description
                          - id
                          - created_at
                          - updated_at
                          - subtitle
                          - thumbnail
                          - handle
                          - is_giftcard
                          - width
                          - weight
                          - height
                          - origin_country
                          - hs_code
                          - mid_code
                          - material
                          - collection_id
                          - type_id
                          - discountable
                          - external_id
                          - deleted_at
                        properties:
                          collection:
                            type: object
                            description: The product's collection.
                            x-schemaName: StoreCollection
                          categories:
                            type: array
                            description: The product's categories.
                            items:
                              type: object
                              description: The category's categories.
                              x-schemaName: StoreProductCategory
                          variants:
                            type: array
                            description: The product's variants.
                            items:
                              type: object
                              description: The variant's variants.
                              x-schemaName: StoreProductVariant
                          type:
                            type: object
                            description: The product's type.
                            x-schemaName: StoreProduct
                          tags:
                            type: array
                            description: The product's tags.
                            items:
                              type: object
                              description: The tag's tags.
                              x-schemaName: StoreProductTag
                          options:
                            type: array
                            description: The product's options.
                            items:
                              type: object
                              description: The option's options.
                              x-schemaName: StoreProductOption
                          images:
                            type: array
                            description: The product's images.
                            items:
                              type: object
                              description: The image's images.
                              x-schemaName: StoreProductImage
                          length:
                            type: number
                            title: length
                            description: The product's length.
                          title:
                            type: string
                            title: title
                            description: The product's title.
                          status:
                            type: string
                            description: The product's status.
                            enum:
                              - draft
                              - proposed
                              - published
                              - rejected
                          description:
                            type: string
                            title: description
                            description: The product's description.
                          id:
                            type: string
                            title: id
                            description: The product's ID.
                          metadata:
                            type: object
                            description: The product's metadata.
                            externalDocs:
                              url: https://docs.medusajs.com/api/store#manage-metadata
                              description: Learn how to manage metadata
                          created_at:
                            type: string
                            format: date-time
                            title: created_at
                            description: The product's created at.
                          updated_at:
                            type: string
                            format: date-time
                            title: updated_at
                            description: The product's updated at.
                          subtitle:
                            type: string
                            title: subtitle
                            description: The product's subtitle.
                          thumbnail:
                            type: string
                            title: thumbnail
                            description: The product's thumbnail.
                          handle:
                            type: string
                            title: handle
                            description: The product's handle.
                          is_giftcard:
                            type: boolean
                            title: is_giftcard
                            description: The product's is giftcard.
                          width:
                            type: number
                            title: width
                            description: The product's width.
                          weight:
                            type: number
                            title: weight
                            description: The product's weight.
                          height:
                            type: number
                            title: height
                            description: The product's height.
                          origin_country:
                            type: string
                            title: origin_country
                            description: The product's origin country.
                          hs_code:
                            type: string
                            title: hs_code
                            description: The product's hs code.
                          mid_code:
                            type: string
                            title: mid_code
                            description: The product's mid code.
                          material:
                            type: string
                            title: material
                            description: The product's material.
                          collection_id:
                            type: string
                            title: collection_id
                            description: The product's collection id.
                          type_id:
                            type: string
                            title: type_id
                            description: The product's type id.
                          discountable:
                            type: boolean
                            title: discountable
                            description: The product's discountable.
                          external_id:
                            type: string
                            title: external_id
                            description: The product's external id.
                          deleted_at:
                            type: string
                            format: date-time
                            title: deleted_at
                            description: The product's deleted at.
                      tax_lines:
                        type: array
                        description: The item's tax lines.
                        items:
                          allOf:
                            - type: object
                              description: The tax line's tax lines.
                              x-schemaName: BaseOrderLineItemTaxLine
                              required:
                                - item
                                - item_id
                                - total
                                - subtotal
                                - id
                                - code
                                - rate
                                - created_at
                                - updated_at
                              properties:
                                item:
                                  type: object
                                  description: The tax line's item.
                                  x-schemaName: BaseOrderLineItem
                                item_id:
                                  type: string
                                  title: item_id
                                  description: The tax line's item id.
                                total:
                                  type: number
                                  title: total
                                  description: The tax line's total.
                                subtotal:
                                  type: number
                                  title: subtotal
                                  description: The tax line's subtotal.
                                id:
                                  type: string
                                  title: id
                                  description: The tax line's ID.
                                description:
                                  type: string
                                  title: description
                                  description: The tax line's description.
                                tax_rate_id:
                                  type: string
                                  title: tax_rate_id
                                  description: The tax line's tax rate id.
                                code:
                                  type: string
                                  title: code
                                  description: The tax line's code.
                                rate:
                                  type: number
                                  title: rate
                                  description: The tax line's rate.
                                provider_id:
                                  type: string
                                  title: provider_id
                                  description: The tax line's provider id.
                                created_at:
                                  type: string
                                  format: date-time
                                  title: created_at
                                  description: The tax line's created at.
                                updated_at:
                                  type: string
                                  format: date-time
                                  title: updated_at
                                  description: The tax line's updated at.
                            - type: object
                              description: The tax line's tax lines.
                              required:
                                - item
                              properties:
                                item:
                                  type: object
                                  description: The tax line's item.
                                  x-schemaName: StoreOrderLineItem
                      adjustments:
                        type: array
                        description: The item's adjustments.
                        items:
                          allOf:
                            - type: object
                              description: The adjustment's adjustments.
                              x-schemaName: BaseOrderLineItemAdjustment
                              required:
                                - item
                                - item_id
                                - id
                                - amount
                                - order_id
                                - created_at
                                - updated_at
                              properties:
                                item:
                                  type: object
                                  description: The adjustment's item.
                                  x-schemaName: BaseOrderLineItem
                                item_id:
                                  type: string
                                  title: item_id
                                  description: The adjustment's item id.
                                id:
                                  type: string
                                  title: id
                                  description: The adjustment's ID.
                                code:
                                  type: string
                                  title: code
                                  description: The adjustment's code.
                                amount:
                                  type: number
                                  title: amount
                                  description: The adjustment's amount.
                                order_id:
                                  type: string
                                  title: order_id
                                  description: The adjustment's order id.
                                description:
                                  type: string
                                  title: description
                                  description: The adjustment's description.
                                promotion_id:
                                  type: string
                                  title: promotion_id
                                  description: The adjustment's promotion id.
                                provider_id:
                                  type: string
                                  title: provider_id
                                  description: The adjustment's provider id.
                                created_at:
                                  type: string
                                  format: date-time
                                  title: created_at
                                  description: The adjustment's created at.
                                updated_at:
                                  type: string
                                  format: date-time
                                  title: updated_at
                                  description: The adjustment's updated at.
                            - type: object
                              description: The adjustment's adjustments.
                              required:
                                - item
                              properties:
                                item:
                                  type: object
                                  description: The adjustment's item.
                                  x-schemaName: StoreOrderLineItem
                      detail:
                        allOf:
                          - type: object
                            description: The item's detail.
                            x-schemaName: BaseOrderItemDetail
                            required:
                              - id
                              - item_id
                              - item
                              - quantity
                              - fulfilled_quantity
                              - delivered_quantity
                              - shipped_quantity
                              - return_requested_quantity
                              - return_received_quantity
                              - return_dismissed_quantity
                              - written_off_quantity
                              - metadata
                              - created_at
                              - updated_at
                            properties:
                              id:
                                type: string
                                title: id
                                description: The detail's ID.
                              item_id:
                                type: string
                                title: item_id
                                description: The detail's item id.
                              item:
                                type: object
                                description: The detail's item.
                                x-schemaName: BaseOrderLineItem
                              quantity:
                                type: number
                                title: quantity
                                description: The detail's quantity.
                              fulfilled_quantity:
                                type: number
                                title: fulfilled_quantity
                                description: The detail's fulfilled quantity.
                              delivered_quantity:
                                type: number
                                title: delivered_quantity
                                description: The detail's delivered quantity.
                              shipped_quantity:
                                type: number
                                title: shipped_quantity
                                description: The detail's shipped quantity.
                              return_requested_quantity:
                                type: number
                                title: return_requested_quantity
                                description: The detail's return requested quantity.
                              return_received_quantity:
                                type: number
                                title: return_received_quantity
                                description: The detail's return received quantity.
                              return_dismissed_quantity:
                                type: number
                                title: return_dismissed_quantity
                                description: The detail's return dismissed quantity.
                              written_off_quantity:
                                type: number
                                title: written_off_quantity
                                description: The detail's written off quantity.
                              metadata:
                                type: object
                                description: The detail's metadata.
                                externalDocs:
                                  url: https://docs.medusajs.com/api/store#manage-metadata
                                  description: Learn how to manage metadata
                              created_at:
                                type: string
                                format: date-time
                                title: created_at
                                description: The detail's created at.
                              updated_at:
                                type: string
                                format: date-time
                                title: updated_at
                                description: The detail's updated at.
                          - type: object
                            description: The item's detail.
                            required:
                              - item
                            properties:
                              item:
                                type: object
                                description: The detail's item.
                                x-schemaName: StoreOrderLineItem
                      title:
                        type: string
                        title: title
                        description: The item's title.
                      id:
                        type: string
                        title: id
                        description: The item's ID.
                      metadata:
                        type: object
                        description: The item's metadata.
                        externalDocs:
                          url: https://docs.medusajs.com/api/store#manage-metadata
                          description: Learn how to manage metadata
                      created_at:
                        type: string
                        format: date-time
                        title: created_at
                        description: The item's created at.
                      updated_at:
                        type: string
                        format: date-time
                        title: updated_at
                        description: The item's updated at.
                      item_total:
                        type: number
                        title: item_total
                        description: The item's item total.
                      item_subtotal:
                        type: number
                        title: item_subtotal
                        description: The item's item subtotal.
                      item_tax_total:
                        type: number
                        title: item_tax_total
                        description: The item's item tax total.
                      original_total:
                        type: number
                        title: original_total
                        description: The item's original total.
                      original_subtotal:
                        type: number
                        title: original_subtotal
                        description: The item's original subtotal.
                      original_tax_total:
                        type: number
                        title: original_tax_total
                        description: The item's original tax total.
                      total:
                        type: number
                        title: total
                        description: The item's total.
                      subtotal:
                        type: number
                        title: subtotal
                        description: The item's subtotal.
                      tax_total:
                        type: number
                        title: tax_total
                        description: The item's tax total.
                      discount_total:
                        type: number
                        title: discount_total
                        description: The item's discount total.
                      discount_tax_total:
                        type: number
                        title: discount_tax_total
                        description: The item's discount tax total.
                      subtitle:
                        type: string
                        title: subtitle
                        description: The item's subtitle.
                      thumbnail:
                        type: string
                        title: thumbnail
                        description: The item's thumbnail.
                      variant_id:
                        type: string
                        title: variant_id
                        description: The item's variant id.
                      product_id:
                        type: string
                        title: product_id
                        description: The item's product id.
                      product_title:
                        type: string
                        title: product_title
                        description: The item's product title.
                      product_description:
                        type: string
                        title: product_description
                        description: The item's product description.
                      product_subtitle:
                        type: string
                        title: product_subtitle
                        description: The item's product subtitle.
                      product_type:
                        type: string
                        title: product_type
                        description: The item's product type.
                      product_collection:
                        type: string
                        title: product_collection
                        description: The item's product collection.
                      product_handle:
                        type: string
                        title: product_handle
                        description: The item's product handle.
                      variant_sku:
                        type: string
                        title: variant_sku
                        description: The item's variant sku.
                      variant_barcode:
                        type: string
                        title: variant_barcode
                        description: The item's variant barcode.
                      variant_title:
                        type: string
                        title: variant_title
                        description: The item's variant title.
                      variant_option_values:
                        type: object
                        description: The item's variant option values.
                      requires_shipping:
                        type: boolean
                        title: requires_shipping
                        description: The item's requires shipping.
                      is_discountable:
                        type: boolean
                        title: is_discountable
                        description: The item's is discountable.
                      is_tax_inclusive:
                        type: boolean
                        title: is_tax_inclusive
                        description: The item's is tax inclusive.
                      compare_at_unit_price:
                        type: number
                        title: compare_at_unit_price
                        description: The item's compare at unit price.
                      unit_price:
                        type: number
                        title: unit_price
                        description: The item's unit price.
                      quantity:
                        type: number
                        title: quantity
                        description: The item's quantity.
                      refundable_total:
                        type: number
                        title: refundable_total
                        description: The item's refundable total.
                      refundable_total_per_unit:
                        type: number
                        title: refundable_total_per_unit
                        description: The item's refundable total per unit.
            description: The adjustment's details.
        detail:
          allOf:
            - $ref: '#/components/schemas/BaseOrderItemDetail'
            - type: object
              description: The item's detail.
              required:
                - item
              properties:
                item:
                  type: object
                  description: The detail's item.
                  x-schemaName: StoreOrderLineItem
                  required:
                    - detail
                    - title
                    - id
                    - metadata
                    - created_at
                    - updated_at
                    - item_total
                    - item_subtotal
                    - item_tax_total
                    - original_total
                    - original_subtotal
                    - original_tax_total
                    - total
                    - subtotal
                    - tax_total
                    - discount_total
                    - discount_tax_total
                    - subtitle
                    - thumbnail
                    - variant_id
                    - product_id
                    - product_title
                    - product_description
                    - product_subtitle
                    - product_type
                    - product_collection
                    - product_handle
                    - variant_sku
                    - variant_barcode
                    - variant_title
                    - variant_option_values
                    - requires_shipping
                    - is_discountable
                    - is_tax_inclusive
                    - unit_price
                    - quantity
                    - refundable_total
                    - refundable_total_per_unit
                  properties:
                    variant:
                      type: object
                      description: The item's variant.
                      x-schemaName: StoreProductVariant
                      required:
                        - options
                        - length
                        - title
                        - id
                        - created_at
                        - updated_at
                        - width
                        - weight
                        - height
                        - origin_country
                        - hs_code
                        - mid_code
                        - material
                        - deleted_at
                        - sku
                        - barcode
                        - ean
                        - upc
                        - allow_backorder
                        - manage_inventory
                      properties:
                        options:
                          type: array
                          description: The variant's options.
                          items:
                            type: object
                            description: The option's options.
                            x-schemaName: StoreProductOptionValue
                        product:
                          type: object
                          description: The variant's product.
                          x-schemaName: StoreProduct
                        length:
                          type: number
                          title: length
                          description: The variant's length.
                        title:
                          type: string
                          title: title
                          description: The variant's title.
                        id:
                          type: string
                          title: id
                          description: The variant's ID.
                        metadata:
                          type: object
                          description: The variant's metadata.
                          externalDocs:
                            url: https://docs.medusajs.com/api/store#manage-metadata
                            description: Learn how to manage metadata
                        created_at:
                          type: string
                          format: date-time
                          title: created_at
                          description: The variant's created at.
                        updated_at:
                          type: string
                          format: date-time
                          title: updated_at
                          description: The variant's updated at.
                        product_id:
                          type: string
                          title: product_id
                          description: The variant's product id.
                        width:
                          type: number
                          title: width
                          description: The variant's width.
                        weight:
                          type: number
                          title: weight
                          description: The variant's weight.
                        height:
                          type: number
                          title: height
                          description: The variant's height.
                        origin_country:
                          type: string
                          title: origin_country
                          description: The variant's origin country.
                        hs_code:
                          type: string
                          title: hs_code
                          description: The variant's hs code.
                        mid_code:
                          type: string
                          title: mid_code
                          description: The variant's mid code.
                        material:
                          type: string
                          title: material
                          description: The variant's material.
                        deleted_at:
                          type: string
                          format: date-time
                          title: deleted_at
                          description: The variant's deleted at.
                        sku:
                          type: string
                          title: sku
                          description: The variant's sku.
                        barcode:
                          type: string
                          title: barcode
                          description: The variant's barcode.
                        ean:
                          type: string
                          title: ean
                          description: The variant's ean.
                        upc:
                          type: string
                          title: upc
                          description: The variant's upc.
                        allow_backorder:
                          type: boolean
                          title: allow_backorder
                          description: The variant's allow backorder.
                        manage_inventory:
                          type: boolean
                          title: manage_inventory
                          description: The variant's manage inventory.
                        inventory_quantity:
                          type: number
                          title: inventory_quantity
                          description: The variant's inventory quantity.
                        variant_rank:
                          type: number
                          title: variant_rank
                          description: The variant's variant rank.
                        calculated_price:
                          type: object
                          description: The variant's calculated price.
                          x-schemaName: BaseCalculatedPriceSet
                    product:
                      type: object
                      description: The item's product.
                      x-schemaName: StoreProduct
                      required:
                        - variants
                        - options
                        - images
                        - length
                        - title
                        - status
                        - description
                        - id
                        - created_at
                        - updated_at
                        - subtitle
                        - thumbnail
                        - handle
                        - is_giftcard
                        - width
                        - weight
                        - height
                        - origin_country
                        - hs_code
                        - mid_code
                        - material
                        - collection_id
                        - type_id
                        - discountable
                        - external_id
                        - deleted_at
                      properties:
                        collection:
                          type: object
                          description: The product's collection.
                          x-schemaName: StoreCollection
                        categories:
                          type: array
                          description: The product's categories.
                          items:
                            type: object
                            description: The category's categories.
                            x-schemaName: StoreProductCategory
                        variants:
                          type: array
                          description: The product's variants.
                          items:
                            type: object
                            description: The variant's variants.
                            x-schemaName: StoreProductVariant
                        type:
                          type: object
                          description: The product's type.
                          x-schemaName: StoreProduct
                        tags:
                          type: array
                          description: The product's tags.
                          items:
                            type: object
                            description: The tag's tags.
                            x-schemaName: StoreProductTag
                        options:
                          type: array
                          description: The product's options.
                          items:
                            type: object
                            description: The option's options.
                            x-schemaName: StoreProductOption
                        images:
                          type: array
                          description: The product's images.
                          items:
                            type: object
                            description: The image's images.
                            x-schemaName: StoreProductImage
                        length:
                          type: number
                          title: length
                          description: The product's length.
                        title:
                          type: string
                          title: title
                          description: The product's title.
                        status:
                          type: string
                          description: The product's status.
                          enum:
                            - draft
                            - proposed
                            - published
                            - rejected
                        description:
                          type: string
                          title: description
                          description: The product's description.
                        id:
                          type: string
                          title: id
                          description: The product's ID.
                        metadata:
                          type: object
                          description: The product's metadata.
                          externalDocs:
                            url: https://docs.medusajs.com/api/store#manage-metadata
                            description: Learn how to manage metadata
                        created_at:
                          type: string
                          format: date-time
                          title: created_at
                          description: The product's created at.
                        updated_at:
                          type: string
                          format: date-time
                          title: updated_at
                          description: The product's updated at.
                        subtitle:
                          type: string
                          title: subtitle
                          description: The product's subtitle.
                        thumbnail:
                          type: string
                          title: thumbnail
                          description: The product's thumbnail.
                        handle:
                          type: string
                          title: handle
                          description: The product's handle.
                        is_giftcard:
                          type: boolean
                          title: is_giftcard
                          description: The product's is giftcard.
                        width:
                          type: number
                          title: width
                          description: The product's width.
                        weight:
                          type: number
                          title: weight
                          description: The product's weight.
                        height:
                          type: number
                          title: height
                          description: The product's height.
                        origin_country:
                          type: string
                          title: origin_country
                          description: The product's origin country.
                        hs_code:
                          type: string
                          title: hs_code
                          description: The product's hs code.
                        mid_code:
                          type: string
                          title: mid_code
                          description: The product's mid code.
                        material:
                          type: string
                          title: material
                          description: The product's material.
                        collection_id:
                          type: string
                          title: collection_id
                          description: The product's collection id.
                        type_id:
                          type: string
                          title: type_id
                          description: The product's type id.
                        discountable:
                          type: boolean
                          title: discountable
                          description: The product's discountable.
                        external_id:
                          type: string
                          title: external_id
                          description: The product's external id.
                        deleted_at:
                          type: string
                          format: date-time
                          title: deleted_at
                          description: The product's deleted at.
                    tax_lines:
                      type: array
                      description: The item's tax lines.
                      items:
                        allOf:
                          - type: object
                            description: The tax line's tax lines.
                            x-schemaName: BaseOrderLineItemTaxLine
                            required:
                              - item
                              - item_id
                              - total
                              - subtotal
                              - id
                              - code
                              - rate
                              - created_at
                              - updated_at
                            properties:
                              item:
                                type: object
                                description: The tax line's item.
                                x-schemaName: BaseOrderLineItem
                              item_id:
                                type: string
                                title: item_id
                                description: The tax line's item id.
                              total:
                                type: number
                                title: total
                                description: The tax line's total.
                              subtotal:
                                type: number
                                title: subtotal
                                description: The tax line's subtotal.
                              id:
                                type: string
                                title: id
                                description: The tax line's ID.
                              description:
                                type: string
                                title: description
                                description: The tax line's description.
                              tax_rate_id:
                                type: string
                                title: tax_rate_id
                                description: The tax line's tax rate id.
                              code:
                                type: string
                                title: code
                                description: The tax line's code.
                              rate:
                                type: number
                                title: rate
                                description: The tax line's rate.
                              provider_id:
                                type: string
                                title: provider_id
                                description: The tax line's provider id.
                              created_at:
                                type: string
                                format: date-time
                                title: created_at
                                description: The tax line's created at.
                              updated_at:
                                type: string
                                format: date-time
                                title: updated_at
                                description: The tax line's updated at.
                          - type: object
                            description: The tax line's tax lines.
                            required:
                              - item
                            properties:
                              item:
                                type: object
                                description: The tax line's item.
                                x-schemaName: StoreOrderLineItem
                    adjustments:
                      type: array
                      description: The item's adjustments.
                      items:
                        allOf:
                          - type: object
                            description: The adjustment's adjustments.
                            x-schemaName: BaseOrderLineItemAdjustment
                            required:
                              - item
                              - item_id
                              - id
                              - amount
                              - order_id
                              - created_at
                              - updated_at
                            properties:
                              item:
                                type: object
                                description: The adjustment's item.
                                x-schemaName: BaseOrderLineItem
                              item_id:
                                type: string
                                title: item_id
                                description: The adjustment's item id.
                              id:
                                type: string
                                title: id
                                description: The adjustment's ID.
                              code:
                                type: string
                                title: code
                                description: The adjustment's code.
                              amount:
                                type: number
                                title: amount
                                description: The adjustment's amount.
                              order_id:
                                type: string
                                title: order_id
                                description: The adjustment's order id.
                              description:
                                type: string
                                title: description
                                description: The adjustment's description.
                              promotion_id:
                                type: string
                                title: promotion_id
                                description: The adjustment's promotion id.
                              provider_id:
                                type: string
                                title: provider_id
                                description: The adjustment's provider id.
                              created_at:
                                type: string
                                format: date-time
                                title: created_at
                                description: The adjustment's created at.
                              updated_at:
                                type: string
                                format: date-time
                                title: updated_at
                                description: The adjustment's updated at.
                          - type: object
                            description: The adjustment's adjustments.
                            required:
                              - item
                            properties:
                              item:
                                type: object
                                description: The adjustment's item.
                                x-schemaName: StoreOrderLineItem
                    detail:
                      allOf:
                        - type: object
                          description: The item's detail.
                          x-schemaName: BaseOrderItemDetail
                          required:
                            - id
                            - item_id
                            - item
                            - quantity
                            - fulfilled_quantity
                            - delivered_quantity
                            - shipped_quantity
                            - return_requested_quantity
                            - return_received_quantity
                            - return_dismissed_quantity
                            - written_off_quantity
                            - metadata
                            - created_at
                            - updated_at
                          properties:
                            id:
                              type: string
                              title: id
                              description: The detail's ID.
                            item_id:
                              type: string
                              title: item_id
                              description: The detail's item id.
                            item:
                              type: object
                              description: The detail's item.
                              x-schemaName: BaseOrderLineItem
                            quantity:
                              type: number
                              title: quantity
                              description: The detail's quantity.
                            fulfilled_quantity:
                              type: number
                              title: fulfilled_quantity
                              description: The detail's fulfilled quantity.
                            delivered_quantity:
                              type: number
                              title: delivered_quantity
                              description: The detail's delivered quantity.
                            shipped_quantity:
                              type: number
                              title: shipped_quantity
                              description: The detail's shipped quantity.
                            return_requested_quantity:
                              type: number
                              title: return_requested_quantity
                              description: The detail's return requested quantity.
                            return_received_quantity:
                              type: number
                              title: return_received_quantity
                              description: The detail's return received quantity.
                            return_dismissed_quantity:
                              type: number
                              title: return_dismissed_quantity
                              description: The detail's return dismissed quantity.
                            written_off_quantity:
                              type: number
                              title: written_off_quantity
                              description: The detail's written off quantity.
                            metadata:
                              type: object
                              description: The detail's metadata.
                              externalDocs:
                                url: https://docs.medusajs.com/api/store#manage-metadata
                                description: Learn how to manage metadata
                            created_at:
                              type: string
                              format: date-time
                              title: created_at
                              description: The detail's created at.
                            updated_at:
                              type: string
                              format: date-time
                              title: updated_at
                              description: The detail's updated at.
                        - type: object
                          description: The item's detail.
                          required:
                            - item
                          properties:
                            item:
                              type: object
                              description: The detail's item.
                              x-schemaName: StoreOrderLineItem
                    title:
                      type: string
                      title: title
                      description: The item's title.
                    id:
                      type: string
                      title: id
                      description: The item's ID.
                    metadata:
                      type: object
                      description: The item's metadata.
                      externalDocs:
                        url: https://docs.medusajs.com/api/store#manage-metadata
                        description: Learn how to manage metadata
                    created_at:
                      type: string
                      format: date-time
                      title: created_at
                      description: The item's created at.
                    updated_at:
                      type: string
                      format: date-time
                      title: updated_at
                      description: The item's updated at.
                    item_total:
                      type: number
                      title: item_total
                      description: The item's item total.
                    item_subtotal:
                      type: number
                      title: item_subtotal
                      description: The item's item subtotal.
                    item_tax_total:
                      type: number
                      title: item_tax_total
                      description: The item's item tax total.
                    original_total:
                      type: number
                      title: original_total
                      description: The item's original total.
                    original_subtotal:
                      type: number
                      title: original_subtotal
                      description: The item's original subtotal.
                    original_tax_total:
                      type: number
                      title: original_tax_total
                      description: The item's original tax total.
                    total:
                      type: number
                      title: total
                      description: The item's total.
                    subtotal:
                      type: number
                      title: subtotal
                      description: The item's subtotal.
                    tax_total:
                      type: number
                      title: tax_total
                      description: The item's tax total.
                    discount_total:
                      type: number
                      title: discount_total
                      description: The item's discount total.
                    discount_tax_total:
                      type: number
                      title: discount_tax_total
                      description: The item's discount tax total.
                    subtitle:
                      type: string
                      title: subtitle
                      description: The item's subtitle.
                    thumbnail:
                      type: string
                      title: thumbnail
                      description: The item's thumbnail.
                    variant_id:
                      type: string
                      title: variant_id
                      description: The item's variant id.
                    product_id:
                      type: string
                      title: product_id
                      description: The item's product id.
                    product_title:
                      type: string
                      title: product_title
                      description: The item's product title.
                    product_description:
                      type: string
                      title: product_description
                      description: The item's product description.
                    product_subtitle:
                      type: string
                      title: product_subtitle
                      description: The item's product subtitle.
                    product_type:
                      type: string
                      title: product_type
                      description: The item's product type.
                    product_collection:
                      type: string
                      title: product_collection
                      description: The item's product collection.
                    product_handle:
                      type: string
                      title: product_handle
                      description: The item's product handle.
                    variant_sku:
                      type: string
                      title: variant_sku
                      description: The item's variant sku.
                    variant_barcode:
                      type: string
                      title: variant_barcode
                      description: The item's variant barcode.
                    variant_title:
                      type: string
                      title: variant_title
                      description: The item's variant title.
                    variant_option_values:
                      type: object
                      description: The item's variant option values.
                    requires_shipping:
                      type: boolean
                      title: requires_shipping
                      description: The item's requires shipping.
                    is_discountable:
                      type: boolean
                      title: is_discountable
                      description: The item's is discountable.
                    is_tax_inclusive:
                      type: boolean
                      title: is_tax_inclusive
                      description: The item's is tax inclusive.
                    compare_at_unit_price:
                      type: number
                      title: compare_at_unit_price
                      description: The item's compare at unit price.
                    unit_price:
                      type: number
                      title: unit_price
                      description: The item's unit price.
                    quantity:
                      type: number
                      title: quantity
                      description: The item's quantity.
                    refundable_total:
                      type: number
                      title: refundable_total
                      description: The item's refundable total.
                    refundable_total_per_unit:
                      type: number
                      title: refundable_total_per_unit
                      description: The item's refundable total per unit.
          description: The item's detail.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the item was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the item was updated.
        metadata:
          type: object
          description: The item's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        original_total:
          type: number
          title: original_total
          description: The item's total including taxes, excluding promotions.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The item's total excluding taxes, including promotions.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The total taxes of the item, excluding promotions.
        item_total:
          type: number
          title: item_total
          description: The total taxes of the item, including promotions.
        item_subtotal:
          type: number
          title: item_subtotal
          description: The item's total excluding taxes, including promotions.
        item_tax_total:
          type: number
          title: item_tax_total
          description: The total taxes of the item, including promotions.
        total:
          type: number
          title: total
          description: The item's total, including taxes and promotions.
        subtotal:
          type: number
          title: subtotal
          description: The item's subtotal excluding taxes, including promotions.
        tax_total:
          type: number
          title: tax_total
          description: The tax total of the item including promotions.
        discount_total:
          type: number
          title: discount_total
          description: The total discount amount of the item.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The total taxes applied on the discounted amount.
        refundable_total:
          type: number
          title: refundable_total
          description: The total refundable amount of the item's total.
        refundable_total_per_unit:
          type: number
          title: refundable_total_per_unit
          description: The total refundable amount of the item's total for a single quantity.
        product_type_id:
          type: string
          title: product_type_id
          description: The ID of the associated product's type.
    StoreOrderResponse:
      type: object
      description: The order's details.
      x-schemaName: StoreOrderResponse
      required:
        - order
      properties:
        order:
          $ref: '#/components/schemas/StoreOrder'
    StoreOrderShippingMethod:
      type: object
      description: The shipping method's details.
      x-schemaName: StoreOrderShippingMethod
      required:
        - id
        - order_id
        - name
        - amount
        - is_tax_inclusive
        - shipping_option_id
        - data
        - metadata
        - original_total
        - original_subtotal
        - original_tax_total
        - total
        - subtotal
        - tax_total
        - discount_total
        - discount_tax_total
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The shipping method's ID.
        order_id:
          type: string
          title: order_id
          description: The ID of the order the shipping method belongs to.
        name:
          type: string
          title: name
          description: The shipping method's name.
        description:
          type: string
          title: description
          description: The shipping method's description.
        amount:
          type: number
          title: amount
          description: The shipping method's amount.
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: Whether the shipping method's amount includes applied taxes.
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the shipping option this method was created from.
        data:
          type: object
          description: The shipping method's data, useful for fulfillment provider handling its fulfillment.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property
        metadata:
          type: object
          description: The shipping method's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        tax_lines:
          type: array
          description: The shipping method's tax lines.
          items:
            allOf:
              - type: object
                description: The tax line's tax lines.
                x-schemaName: BaseOrderShippingMethodTaxLine
                required:
                  - shipping_method
                  - shipping_method_id
                  - total
                  - subtotal
                  - id
                  - code
                  - rate
                  - created_at
                  - updated_at
                properties:
                  shipping_method:
                    type: object
                    description: The tax line's shipping method.
                    x-schemaName: BaseOrderShippingMethod
                    required:
                      - id
                      - order_id
                      - name
                      - amount
                      - is_tax_inclusive
                      - shipping_option_id
                      - data
                      - metadata
                      - original_total
                      - original_subtotal
                      - original_tax_total
                      - total
                      - subtotal
                      - tax_total
                      - discount_total
                      - discount_tax_total
                      - created_at
                      - updated_at
                    properties:
                      id:
                        type: string
                        title: id
                        description: The shipping method's ID.
                      order_id:
                        type: string
                        title: order_id
                        description: The shipping method's order id.
                      name:
                        type: string
                        title: name
                        description: The shipping method's name.
                      description:
                        type: string
                        title: description
                        description: The shipping method's description.
                      amount:
                        type: number
                        title: amount
                        description: The shipping method's amount.
                      is_tax_inclusive:
                        type: boolean
                        title: is_tax_inclusive
                        description: The shipping method's is tax inclusive.
                      shipping_option_id:
                        type: string
                        title: shipping_option_id
                        description: The shipping method's shipping option id.
                      data:
                        type: object
                        description: The shipping method's data.
                      metadata:
                        type: object
                        description: The shipping method's metadata.
                        externalDocs:
                          url: https://docs.medusajs.com/api/store#manage-metadata
                          description: Learn how to manage metadata
                      tax_lines:
                        type: array
                        description: The shipping method's tax lines.
                        items:
                          type: object
                          description: The tax line's tax lines.
                          x-schemaName: BaseOrderShippingMethodTaxLine
                          required:
                            - shipping_method
                            - shipping_method_id
                            - total
                            - subtotal
                            - id
                            - code
                            - rate
                            - created_at
                            - updated_at
                          properties:
                            shipping_method:
                              type: object
                              description: The tax line's shipping method.
                              x-schemaName: BaseOrderShippingMethod
                            shipping_method_id:
                              type: string
                              title: shipping_method_id
                              description: The tax line's shipping method id.
                            total:
                              type: number
                              title: total
                              description: The tax line's total.
                            subtotal:
                              type: number
                              title: subtotal
                              description: The tax line's subtotal.
                            id:
                              type: string
                              title: id
                              description: The tax line's ID.
                            description:
                              type: string
                              title: description
                              description: The tax line's description.
                            tax_rate_id:
                              type: string
                              title: tax_rate_id
                              description: The tax line's tax rate id.
                            code:
                              type: string
                              title: code
                              description: The tax line's code.
                            rate:
                              type: number
                              title: rate
                              description: The tax line's rate.
                            provider_id:
                              type: string
                              title: provider_id
                              description: The tax line's provider id.
                            created_at:
                              type: string
                              format: date-time
                              title: created_at
                              description: The tax line's created at.
                            updated_at:
                              type: string
                              format: date-time
                              title: updated_at
                              description: The tax line's updated at.
                      adjustments:
                        type: array
                        description: The shipping method's adjustments.
                        items:
                          type: object
                          description: The adjustment's adjustments.
                          x-schemaName: BaseOrderShippingMethodAdjustment
                          required:
                            - shipping_method
                            - shipping_method_id
                            - id
                            - amount
                            - order_id
                            - created_at
                            - updated_at
                          properties:
                            shipping_method:
                              type: object
                              description: The adjustment's shipping method.
                              x-schemaName: BaseOrderShippingMethod
                            shipping_method_id:
                              type: string
                              title: shipping_method_id
                              description: The adjustment's shipping method id.
                            id:
                              type: string
                              title: id
                              description: The adjustment's ID.
                            code:
                              type: string
                              title: code
                              description: The adjustment's code.
                            amount:
                              type: number
                              title: amount
                              description: The adjustment's amount.
                            order_id:
                              type: string
                              title: order_id
                              description: The adjustment's order id.
                            description:
                              type: string
                              title: description
                              description: The adjustment's description.
                            promotion_id:
                              type: string
                              title: promotion_id
                              description: The adjustment's promotion id.
                            provider_id:
                              type: string
                              title: provider_id
                              description: The adjustment's provider id.
                            created_at:
                              type: string
                              format: date-time
                              title: created_at
                              description: The adjustment's created at.
                            updated_at:
                              type: string
                              format: date-time
                              title: updated_at
                              description: The adjustment's updated at.
                      original_total:
                        type: number
                        title: original_total
                        description: The shipping method's original total.
                      original_subtotal:
                        type: number
                        title: original_subtotal
                        description: The shipping method's original subtotal.
                      original_tax_total:
                        type: number
                        title: original_tax_total
                        description: The shipping method's original tax total.
                      total:
                        type: number
                        title: total
                        description: The shipping method's total.
                      detail:
                        type: object
                        description: The shipping method's detail.
                        x-schemaName: BaseOrderShippingDetail
                        required:
                          - id
                          - shipping_method_id
                          - shipping_method
                          - created_at
                          - updated_at
                        properties:
                          id:
                            type: string
                            title: id
                            description: The detail's ID.
                          shipping_method_id:
                            type: string
                            title: shipping_method_id
                            description: The detail's shipping method id.
                          shipping_method:
                            type: object
                            description: The detail's shipping method.
                            x-schemaName: BaseOrderShippingMethod
                          claim_id:
                            type: string
                            title: claim_id
                            description: The detail's claim id.
                          exchange_id:
                            type: string
                            title: exchange_id
                            description: The detail's exchange id.
                          return_id:
                            type: string
                            title: return_id
                            description: The detail's return id.
                          created_at:
                            type: string
                            format: date-time
                            title: created_at
                            description: The detail's created at.
                          updated_at:
                            type: string
                            format: date-time
                            title: updated_at
                            description: The detail's updated at.
                      subtotal:
                        type: number
                        title: subtotal
                        description: The shipping method's subtotal.
                      tax_total:
                        type: number
                        title: tax_total
                        description: The shipping method's tax total.
                      discount_total:
                        type: number
                        title: discount_total
                        description: The shipping method's discount total.
                      discount_tax_total:
                        type: number
                        title: discount_tax_total
                        description: The shipping method's discount tax total.
                      created_at:
                        type: string
                        format: date-time
                        title: created_at
                        description: The shipping method's created at.
                      updated_at:
                        type: string
                        format: date-time
                        title: updated_at
                        description: The shipping method's updated at.
                  shipping_method_id:
                    type: string
                    title: shipping_method_id
                    description: The tax line's shipping method id.
                  total:
                    type: number
                    title: total
                    description: The tax line's total.
                  subtotal:
                    type: number
                    title: subtotal
                    description: The tax line's subtotal.
                  id:
                    type: string
                    title: id
                    description: The tax line's ID.
                  description:
                    type: string
                    title: description
                    description: The tax line's description.
                  tax_rate_id:
                    type: string
                    title: tax_rate_id
                    description: The tax line's tax rate id.
                  code:
                    type: string
                    title: code
                    description: The tax line's code.
                  rate:
                    type: number
                    title: rate
                    description: The tax line's rate.
                  provider_id:
                    type: string
                    title: provider_id
                    description: The tax line's provider id.
                  created_at:
                    type: string
                    format: date-time
                    title: created_at
                    description: The tax line's created at.
                  updated_at:
                    type: string
                    format: date-time
                    title: updated_at
                    description: The tax line's updated at.
              - type: object
                description: The tax line's tax lines.
                required:
                  - shipping_method
                properties:
                  shipping_method:
                    type: object
                    description: The tax line's shipping method.
                    x-schemaName: StoreOrderShippingMethod
                    required:
                      - id
                      - order_id
                      - name
                      - amount
                      - is_tax_inclusive
                      - shipping_option_id
                      - data
                      - metadata
                      - original_total
                      - original_subtotal
                      - original_tax_total
                      - total
                      - subtotal
                      - tax_total
                      - discount_total
                      - discount_tax_total
                      - created_at
                      - updated_at
                    properties:
                      tax_lines:
                        type: array
                        description: The shipping method's tax lines.
                        items:
                          allOf:
                            - type: object
                              description: The tax line's tax lines.
                              x-schemaName: BaseOrderShippingMethodTaxLine
                              required:
                                - shipping_method
                                - shipping_method_id
                                - total
                                - subtotal
                                - id
                                - code
                                - rate
                                - created_at
                                - updated_at
                              properties:
                                shipping_method:
                                  type: object
                                  description: The tax line's shipping method.
                                  x-schemaName: BaseOrderShippingMethod
                                shipping_method_id:
                                  type: string
                                  title: shipping_method_id
                                  description: The tax line's shipping method id.
                                total:
                                  type: number
                                  title: total
                                  description: The tax line's total.
                                subtotal:
                                  type: number
                                  title: subtotal
                                  description: The tax line's subtotal.
                                id:
                                  type: string
                                  title: id
                                  description: The tax line's ID.
                                description:
                                  type: string
                                  title: description
                                  description: The tax line's description.
                                tax_rate_id:
                                  type: string
                                  title: tax_rate_id
                                  description: The tax line's tax rate id.
                                code:
                                  type: string
                                  title: code
                                  description: The tax line's code.
                                rate:
                                  type: number
                                  title: rate
                                  description: The tax line's rate.
                                provider_id:
                                  type: string
                                  title: provider_id
                                  description: The tax line's provider id.
                                created_at:
                                  type: string
                                  format: date-time
                                  title: created_at
                                  description: The tax line's created at.
                                updated_at:
                                  type: string
                                  format: date-time
                                  title: updated_at
                                  description: The tax line's updated at.
                            - type: object
                              description: The tax line's tax lines.
                              required:
                                - shipping_method
                              properties:
                                shipping_method:
                                  type: object
                                  description: The tax line's shipping method.
                                  x-schemaName: StoreOrderShippingMethod
                      adjustments:
                        type: array
                        description: The shipping method's adjustments.
                        items:
                          allOf:
                            - type: object
                              description: The adjustment's adjustments.
                              x-schemaName: BaseOrderShippingMethodAdjustment
                              required:
                                - shipping_method
                                - shipping_method_id
                                - id
                                - amount
                                - order_id
                                - created_at
                                - updated_at
                              properties:
                                shipping_method:
                                  type: object
                                  description: The adjustment's shipping method.
                                  x-schemaName: BaseOrderShippingMethod
                                shipping_method_id:
                                  type: string
                                  title: shipping_method_id
                                  description: The adjustment's shipping method id.
                                id:
                                  type: string
                                  title: id
                                  description: The adjustment's ID.
                                code:
                                  type: string
                                  title: code
                                  description: The adjustment's code.
                                amount:
                                  type: number
                                  title: amount
                                  description: The adjustment's amount.
                                order_id:
                                  type: string
                                  title: order_id
                                  description: The adjustment's order id.
                                description:
                                  type: string
                                  title: description
                                  description: The adjustment's description.
                                promotion_id:
                                  type: string
                                  title: promotion_id
                                  description: The adjustment's promotion id.
                                provider_id:
                                  type: string
                                  title: provider_id
                                  description: The adjustment's provider id.
                                created_at:
                                  type: string
                                  format: date-time
                                  title: created_at
                                  description: The adjustment's created at.
                                updated_at:
                                  type: string
                                  format: date-time
                                  title: updated_at
                                  description: The adjustment's updated at.
                            - type: object
                              description: The adjustment's adjustments.
                              required:
                                - shipping_method
                              properties:
                                shipping_method:
                                  type: object
                                  description: The adjustment's shipping method.
                                  x-schemaName: StoreOrderShippingMethod
                      detail:
                        allOf:
                          - type: object
                            description: The shipping method's detail.
                            x-schemaName: BaseOrderShippingDetail
                            required:
                              - id
                              - shipping_method_id
                              - shipping_method
                              - created_at
                              - updated_at
                            properties:
                              id:
                                type: string
                                title: id
                                description: The detail's ID.
                              shipping_method_id:
                                type: string
                                title: shipping_method_id
                                description: The detail's shipping method id.
                              shipping_method:
                                type: object
                                description: The detail's shipping method.
                                x-schemaName: BaseOrderShippingMethod
                              claim_id:
                                type: string
                                title: claim_id
                                description: The detail's claim id.
                              exchange_id:
                                type: string
                                title: exchange_id
                                description: The detail's exchange id.
                              return_id:
                                type: string
                                title: return_id
                                description: The detail's return id.
                              created_at:
                                type: string
                                format: date-time
                                title: created_at
                                description: The detail's created at.
                              updated_at:
                                type: string
                                format: date-time
                                title: updated_at
                                description: The detail's updated at.
                          - type: object
                            description: The shipping method's detail.
                            required:
                              - shipping_method
                            properties:
                              shipping_method:
                                type: object
                                description: The detail's shipping method.
                                x-schemaName: StoreOrderShippingMethod
                      id:
                        type: string
                        title: id
                        description: The shipping method's ID.
                      order_id:
                        type: string
                        title: order_id
                        description: The shipping method's order id.
                      name:
                        type: string
                        title: name
                        description: The shipping method's name.
                      description:
                        type: string
                        title: description
                        description: The shipping method's description.
                      amount:
                        type: number
                        title: amount
                        description: The shipping method's amount.
                      is_tax_inclusive:
                        type: boolean
                        title: is_tax_inclusive
                        description: The shipping method's is tax inclusive.
                      shipping_option_id:
                        type: string
                        title: shipping_option_id
                        description: The shipping method's shipping option id.
                      data:
                        type: object
                        description: The shipping method's data.
                      metadata:
                        type: object
                        description: The shipping method's metadata.
                        externalDocs:
                          url: https://docs.medusajs.com/api/store#manage-metadata
                          description: Learn how to manage metadata
                      original_total:
                        type: number
                        title: original_total
                        description: The shipping method's original total.
                      original_subtotal:
                        type: number
                        title: original_subtotal
                        description: The shipping method's original subtotal.
                      original_tax_total:
                        type: number
                        title: original_tax_total
                        description: The shipping method's original tax total.
                      total:
                        type: number
                        title: total
                        description: The shipping method's total.
                      subtotal:
                        type: number
                        title: subtotal
                        description: The shipping method's subtotal.
                      tax_total:
                        type: number
                        title: tax_total
                        description: The shipping method's tax total.
                      discount_total:
                        type: number
                        title: discount_total
                        description: The shipping method's discount total.
                      discount_tax_total:
                        type: number
                        title: discount_tax_total
                        description: The shipping method's discount tax total.
                      created_at:
                        type: string
                        format: date-time
                        title: created_at
                        description: The shipping method's created at.
                      updated_at:
                        type: string
                        format: date-time
                        title: updated_at
                        description: The shipping method's updated at.
            description: The tax line's details.
        adjustments:
          type: array
          description: The shipping method's adjustments.
          items:
            allOf:
              - type: object
                description: The adjustment's adjustments.
                x-schemaName: BaseOrderShippingMethodAdjustment
                required:
                  - shipping_method
                  - shipping_method_id
                  - id
                  - amount
                  - order_id
                  - created_at
                  - updated_at
                properties:
                  shipping_method:
                    type: object
                    description: The adjustment's shipping method.
                    x-schemaName: BaseOrderShippingMethod
                    required:
                      - id
                      - order_id
                      - name
                      - amount
                      - is_tax_inclusive
                      - shipping_option_id
                      - data
                      - metadata
                      - original_total
                      - original_subtotal
                      - original_tax_total
                      - total
                      - subtotal
                      - tax_total
                      - discount_total
                      - discount_tax_total
                      - created_at
                      - updated_at
                    properties:
                      id:
                        type: string
                        title: id
                        description: The shipping method's ID.
                      order_id:
                        type: string
                        title: order_id
                        description: The shipping method's order id.
                      name:
                        type: string
                        title: name
                        description: The shipping method's name.
                      description:
                        type: string
                        title: description
                        description: The shipping method's description.
                      amount:
                        type: number
                        title: amount
                        description: The shipping method's amount.
                      is_tax_inclusive:
                        type: boolean
                        title: is_tax_inclusive
                        description: The shipping method's is tax inclusive.
                      shipping_option_id:
                        type: string
                        title: shipping_option_id
                        description: The shipping method's shipping option id.
                      data:
                        type: object
                        description: The shipping method's data.
                      metadata:
                        type: object
                        description: The shipping method's metadata.
                        externalDocs:
                          url: https://docs.medusajs.com/api/store#manage-metadata
                          description: Learn how to manage metadata
                      tax_lines:
                        type: array
                        description: The shipping method's tax lines.
                        items:
                          type: object
                          description: The tax line's tax lines.
                          x-schemaName: BaseOrderShippingMethodTaxLine
                          required:
                            - shipping_method
                            - shipping_method_id
                            - total
                            - subtotal
                            - id
                            - code
                            - rate
                            - created_at
                            - updated_at
                          properties:
                            shipping_method:
                              type: object
                              description: The tax line's shipping method.
                              x-schemaName: BaseOrderShippingMethod
                            shipping_method_id:
                              type: string
                              title: shipping_method_id
                              description: The tax line's shipping method id.
                            total:
                              type: number
                              title: total
                              description: The tax line's total.
                            subtotal:
                              type: number
                              title: subtotal
                              description: The tax line's subtotal.
                            id:
                              type: string
                              title: id
                              description: The tax line's ID.
                            description:
                              type: string
                              title: description
                              description: The tax line's description.
                            tax_rate_id:
                              type: string
                              title: tax_rate_id
                              description: The tax line's tax rate id.
                            code:
                              type: string
                              title: code
                              description: The tax line's code.
                            rate:
                              type: number
                              title: rate
                              description: The tax line's rate.
                            provider_id:
                              type: string
                              title: provider_id
                              description: The tax line's provider id.
                            created_at:
                              type: string
                              format: date-time
                              title: created_at
                              description: The tax line's created at.
                            updated_at:
                              type: string
                              format: date-time
                              title: updated_at
                              description: The tax line's updated at.
                      adjustments:
                        type: array
                        description: The shipping method's adjustments.
                        items:
                          type: object
                          description: The adjustment's adjustments.
                          x-schemaName: BaseOrderShippingMethodAdjustment
                          required:
                            - shipping_method
                            - shipping_method_id
                            - id
                            - amount
                            - order_id
                            - created_at
                            - updated_at
                          properties:
                            shipping_method:
                              type: object
                              description: The adjustment's shipping method.
                              x-schemaName: BaseOrderShippingMethod
                            shipping_method_id:
                              type: string
                              title: shipping_method_id
                              description: The adjustment's shipping method id.
                            id:
                              type: string
                              title: id
                              description: The adjustment's ID.
                            code:
                              type: string
                              title: code
                              description: The adjustment's code.
                            amount:
                              type: number
                              title: amount
                              description: The adjustment's amount.
                            order_id:
                              type: string
                              title: order_id
                              description: The adjustment's order id.
                            description:
                              type: string
                              title: description
                              description: The adjustment's description.
                            promotion_id:
                              type: string
                              title: promotion_id
                              description: The adjustment's promotion id.
                            provider_id:
                              type: string
                              title: provider_id
                              description: The adjustment's provider id.
                            created_at:
                              type: string
                              format: date-time
                              title: created_at
                              description: The adjustment's created at.
                            updated_at:
                              type: string
                              format: date-time
                              title: updated_at
                              description: The adjustment's updated at.
                      original_total:
                        type: number
                        title: original_total
                        description: The shipping method's original total.
                      original_subtotal:
                        type: number
                        title: original_subtotal
                        description: The shipping method's original subtotal.
                      original_tax_total:
                        type: number
                        title: original_tax_total
                        description: The shipping method's original tax total.
                      total:
                        type: number
                        title: total
                        description: The shipping method's total.
                      detail:
                        type: object
                        description: The shipping method's detail.
                        x-schemaName: BaseOrderShippingDetail
                        required:
                          - id
                          - shipping_method_id
                          - shipping_method
                          - created_at
                          - updated_at
                        properties:
                          id:
                            type: string
                            title: id
                            description: The detail's ID.
                          shipping_method_id:
                            type: string
                            title: shipping_method_id
                            description: The detail's shipping method id.
                          shipping_method:
                            type: object
                            description: The detail's shipping method.
                            x-schemaName: BaseOrderShippingMethod
                          claim_id:
                            type: string
                            title: claim_id
                            description: The detail's claim id.
                          exchange_id:
                            type: string
                            title: exchange_id
                            description: The detail's exchange id.
                          return_id:
                            type: string
                            title: return_id
                            description: The detail's return id.
                          created_at:
                            type: string
                            format: date-time
                            title: created_at
                            description: The detail's created at.
                          updated_at:
                            type: string
                            format: date-time
                            title: updated_at
                            description: The detail's updated at.
                      subtotal:
                        type: number
                        title: subtotal
                        description: The shipping method's subtotal.
                      tax_total:
                        type: number
                        title: tax_total
                        description: The shipping method's tax total.
                      discount_total:
                        type: number
                        title: discount_total
                        description: The shipping method's discount total.
                      discount_tax_total:
                        type: number
                        title: discount_tax_total
                        description: The shipping method's discount tax total.
                      created_at:
                        type: string
                        format: date-time
                        title: created_at
                        description: The shipping method's created at.
                      updated_at:
                        type: string
                        format: date-time
                        title: updated_at
                        description: The shipping method's updated at.
                  shipping_method_id:
                    type: string
                    title: shipping_method_id
                    description: The adjustment's shipping method id.
                  id:
                    type: string
                    title: id
                    description: The adjustment's ID.
                  code:
                    type: string
                    title: code
                    description: The adjustment's code.
                  amount:
                    type: number
                    title: amount
                    description: The adjustment's amount.
                  order_id:
                    type: string
                    title: order_id
                    description: The adjustment's order id.
                  description:
                    type: string
                    title: description
                    description: The adjustment's description.
                  promotion_id:
                    type: string
                    title: promotion_id
                    description: The adjustment's promotion id.
                  provider_id:
                    type: string
                    title: provider_id
                    description: The adjustment's provider id.
                  created_at:
                    type: string
                    format: date-time
                    title: created_at
                    description: The adjustment's created at.
                  updated_at:
                    type: string
                    format: date-time
                    title: updated_at
                    description: The adjustment's updated at.
              - type: object
                description: The adjustment's adjustments.
                required:
                  - shipping_method
                properties:
                  shipping_method:
                    type: object
                    description: The adjustment's shipping method.
                    x-schemaName: StoreOrderShippingMethod
                    required:
                      - id
                      - order_id
                      - name
                      - amount
                      - is_tax_inclusive
                      - shipping_option_id
                      - data
                      - metadata
                      - original_total
                      - original_subtotal
                      - original_tax_total
                      - total
                      - subtotal
                      - tax_total
                      - discount_total
                      - discount_tax_total
                      - created_at
                      - updated_at
                    properties:
                      tax_lines:
                        type: array
                        description: The shipping method's tax lines.
                        items:
                          allOf:
                            - type: object
                              description: The tax line's tax lines.
                              x-schemaName: BaseOrderShippingMethodTaxLine
                              required:
                                - shipping_method
                                - shipping_method_id
                                - total
                                - subtotal
                                - id
                                - code
                                - rate
                                - created_at
                                - updated_at
                              properties:
                                shipping_method:
                                  type: object
                                  description: The tax line's shipping method.
                                  x-schemaName: BaseOrderShippingMethod
                                shipping_method_id:
                                  type: string
                                  title: shipping_method_id
                                  description: The tax line's shipping method id.
                                total:
                                  type: number
                                  title: total
                                  description: The tax line's total.
                                subtotal:
                                  type: number
                                  title: subtotal
                                  description: The tax line's subtotal.
                                id:
                                  type: string
                                  title: id
                                  description: The tax line's ID.
                                description:
                                  type: string
                                  title: description
                                  description: The tax line's description.
                                tax_rate_id:
                                  type: string
                                  title: tax_rate_id
                                  description: The tax line's tax rate id.
                                code:
                                  type: string
                                  title: code
                                  description: The tax line's code.
                                rate:
                                  type: number
                                  title: rate
                                  description: The tax line's rate.
                                provider_id:
                                  type: string
                                  title: provider_id
                                  description: The tax line's provider id.
                                created_at:
                                  type: string
                                  format: date-time
                                  title: created_at
                                  description: The tax line's created at.
                                updated_at:
                                  type: string
                                  format: date-time
                                  title: updated_at
                                  description: The tax line's updated at.
                            - type: object
                              description: The tax line's tax lines.
                              required:
                                - shipping_method
                              properties:
                                shipping_method:
                                  type: object
                                  description: The tax line's shipping method.
                                  x-schemaName: StoreOrderShippingMethod
                      adjustments:
                        type: array
                        description: The shipping method's adjustments.
                        items:
                          allOf:
                            - type: object
                              description: The adjustment's adjustments.
                              x-schemaName: BaseOrderShippingMethodAdjustment
                              required:
                                - shipping_method
                                - shipping_method_id
                                - id
                                - amount
                                - order_id
                                - created_at
                                - updated_at
                              properties:
                                shipping_method:
                                  type: object
                                  description: The adjustment's shipping method.
                                  x-schemaName: BaseOrderShippingMethod
                                shipping_method_id:
                                  type: string
                                  title: shipping_method_id
                                  description: The adjustment's shipping method id.
                                id:
                                  type: string
                                  title: id
                                  description: The adjustment's ID.
                                code:
                                  type: string
                                  title: code
                                  description: The adjustment's code.
                                amount:
                                  type: number
                                  title: amount
                                  description: The adjustment's amount.
                                order_id:
                                  type: string
                                  title: order_id
                                  description: The adjustment's order id.
                                description:
                                  type: string
                                  title: description
                                  description: The adjustment's description.
                                promotion_id:
                                  type: string
                                  title: promotion_id
                                  description: The adjustment's promotion id.
                                provider_id:
                                  type: string
                                  title: provider_id
                                  description: The adjustment's provider id.
                                created_at:
                                  type: string
                                  format: date-time
                                  title: created_at
                                  description: The adjustment's created at.
                                updated_at:
                                  type: string
                                  format: date-time
                                  title: updated_at
                                  description: The adjustment's updated at.
                            - type: object
                              description: The adjustment's adjustments.
                              required:
                                - shipping_method
                              properties:
                                shipping_method:
                                  type: object
                                  description: The adjustment's shipping method.
                                  x-schemaName: StoreOrderShippingMethod
                      detail:
                        allOf:
                          - type: object
                            description: The shipping method's detail.
                            x-schemaName: BaseOrderShippingDetail
                            required:
                              - id
                              - shipping_method_id
                              - shipping_method
                              - created_at
                              - updated_at
                            properties:
                              id:
                                type: string
                                title: id
                                description: The detail's ID.
                              shipping_method_id:
                                type: string
                                title: shipping_method_id
                                description: The detail's shipping method id.
                              shipping_method:
                                type: object
                                description: The detail's shipping method.
                                x-schemaName: BaseOrderShippingMethod
                              claim_id:
                                type: string
                                title: claim_id
                                description: The detail's claim id.
                              exchange_id:
                                type: string
                                title: exchange_id
                                description: The detail's exchange id.
                              return_id:
                                type: string
                                title: return_id
                                description: The detail's return id.
                              created_at:
                                type: string
                                format: date-time
                                title: created_at
                                description: The detail's created at.
                              updated_at:
                                type: string
                                format: date-time
                                title: updated_at
                                description: The detail's updated at.
                          - type: object
                            description: The shipping method's detail.
                            required:
                              - shipping_method
                            properties:
                              shipping_method:
                                type: object
                                description: The detail's shipping method.
                                x-schemaName: StoreOrderShippingMethod
                      id:
                        type: string
                        title: id
                        description: The shipping method's ID.
                      order_id:
                        type: string
                        title: order_id
                        description: The shipping method's order id.
                      name:
                        type: string
                        title: name
                        description: The shipping method's name.
                      description:
                        type: string
                        title: description
                        description: The shipping method's description.
                      amount:
                        type: number
                        title: amount
                        description: The shipping method's amount.
                      is_tax_inclusive:
                        type: boolean
                        title: is_tax_inclusive
                        description: The shipping method's is tax inclusive.
                      shipping_option_id:
                        type: string
                        title: shipping_option_id
                        description: The shipping method's shipping option id.
                      data:
                        type: object
                        description: The shipping method's data.
                      metadata:
                        type: object
                        description: The shipping method's metadata.
                        externalDocs:
                          url: https://docs.medusajs.com/api/store#manage-metadata
                          description: Learn how to manage metadata
                      original_total:
                        type: number
                        title: original_total
                        description: The shipping method's original total.
                      original_subtotal:
                        type: number
                        title: original_subtotal
                        description: The shipping method's original subtotal.
                      original_tax_total:
                        type: number
                        title: original_tax_total
                        description: The shipping method's original tax total.
                      total:
                        type: number
                        title: total
                        description: The shipping method's total.
                      subtotal:
                        type: number
                        title: subtotal
                        description: The shipping method's subtotal.
                      tax_total:
                        type: number
                        title: tax_total
                        description: The shipping method's tax total.
                      discount_total:
                        type: number
                        title: discount_total
                        description: The shipping method's discount total.
                      discount_tax_total:
                        type: number
                        title: discount_tax_total
                        description: The shipping method's discount tax total.
                      created_at:
                        type: string
                        format: date-time
                        title: created_at
                        description: The shipping method's created at.
                      updated_at:
                        type: string
                        format: date-time
                        title: updated_at
                        description: The shipping method's updated at.
            description: The adjustment's adjustments.
        original_total:
          type: number
          title: original_total
          description: The shipping method's total including taxes, excluding promotions.
        original_subtotal:
          type: number
          title: original_subtotal
          description: The shipping method's total excluding taxes, including promotions.
        original_tax_total:
          type: number
          title: original_tax_total
          description: The shipping method's total taxes excluding promotions.
        total:
          type: number
          title: total
          description: The shipping method's total including taxes and promotions.
        subtotal:
          type: number
          title: subtotal
          description: The shipping method's total excluding taxes, including promotions.
        tax_total:
          type: number
          title: tax_total
          description: The shipping method's tax total including promotions.
        discount_total:
          type: number
          title: discount_total
          description: The total discounts applied on the shipping method.
        discount_tax_total:
          type: number
          title: discount_tax_total
          description: The taxes applied on the discount amount.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the shipping method was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the shipping method was updated.
        detail:
          allOf:
            - $ref: '#/components/schemas/BaseOrderShippingDetail'
            - type: object
              description: The shipping method's detail.
              required:
                - shipping_method
              properties:
                shipping_method:
                  type: object
                  description: The detail's shipping method.
                  x-schemaName: StoreOrderShippingMethod
                  required:
                    - id
                    - order_id
                    - name
                    - amount
                    - is_tax_inclusive
                    - shipping_option_id
                    - data
                    - metadata
                    - original_total
                    - original_subtotal
                    - original_tax_total
                    - total
                    - subtotal
                    - tax_total
                    - discount_total
                    - discount_tax_total
                    - created_at
                    - updated_at
                  properties:
                    tax_lines:
                      type: array
                      description: The shipping method's tax lines.
                      items:
                        allOf:
                          - type: object
                            description: The tax line's tax lines.
                            x-schemaName: BaseOrderShippingMethodTaxLine
                            required:
                              - shipping_method
                              - shipping_method_id
                              - total
                              - subtotal
                              - id
                              - code
                              - rate
                              - created_at
                              - updated_at
                            properties:
                              shipping_method:
                                type: object
                                description: The tax line's shipping method.
                                x-schemaName: BaseOrderShippingMethod
                              shipping_method_id:
                                type: string
                                title: shipping_method_id
                                description: The tax line's shipping method id.
                              total:
                                type: number
                                title: total
                                description: The tax line's total.
                              subtotal:
                                type: number
                                title: subtotal
                                description: The tax line's subtotal.
                              id:
                                type: string
                                title: id
                                description: The tax line's ID.
                              description:
                                type: string
                                title: description
                                description: The tax line's description.
                              tax_rate_id:
                                type: string
                                title: tax_rate_id
                                description: The tax line's tax rate id.
                              code:
                                type: string
                                title: code
                                description: The tax line's code.
                              rate:
                                type: number
                                title: rate
                                description: The tax line's rate.
                              provider_id:
                                type: string
                                title: provider_id
                                description: The tax line's provider id.
                              created_at:
                                type: string
                                format: date-time
                                title: created_at
                                description: The tax line's created at.
                              updated_at:
                                type: string
                                format: date-time
                                title: updated_at
                                description: The tax line's updated at.
                          - type: object
                            description: The tax line's tax lines.
                            required:
                              - shipping_method
                            properties:
                              shipping_method:
                                type: object
                                description: The tax line's shipping method.
                                x-schemaName: StoreOrderShippingMethod
                    adjustments:
                      type: array
                      description: The shipping method's adjustments.
                      items:
                        allOf:
                          - type: object
                            description: The adjustment's adjustments.
                            x-schemaName: BaseOrderShippingMethodAdjustment
                            required:
                              - shipping_method
                              - shipping_method_id
                              - id
                              - amount
                              - order_id
                              - created_at
                              - updated_at
                            properties:
                              shipping_method:
                                type: object
                                description: The adjustment's shipping method.
                                x-schemaName: BaseOrderShippingMethod
                              shipping_method_id:
                                type: string
                                title: shipping_method_id
                                description: The adjustment's shipping method id.
                              id:
                                type: string
                                title: id
                                description: The adjustment's ID.
                              code:
                                type: string
                                title: code
                                description: The adjustment's code.
                              amount:
                                type: number
                                title: amount
                                description: The adjustment's amount.
                              order_id:
                                type: string
                                title: order_id
                                description: The adjustment's order id.
                              description:
                                type: string
                                title: description
                                description: The adjustment's description.
                              promotion_id:
                                type: string
                                title: promotion_id
                                description: The adjustment's promotion id.
                              provider_id:
                                type: string
                                title: provider_id
                                description: The adjustment's provider id.
                              created_at:
                                type: string
                                format: date-time
                                title: created_at
                                description: The adjustment's created at.
                              updated_at:
                                type: string
                                format: date-time
                                title: updated_at
                                description: The adjustment's updated at.
                          - type: object
                            description: The adjustment's adjustments.
                            required:
                              - shipping_method
                            properties:
                              shipping_method:
                                type: object
                                description: The adjustment's shipping method.
                                x-schemaName: StoreOrderShippingMethod
                    detail:
                      allOf:
                        - type: object
                          description: The shipping method's detail.
                          x-schemaName: BaseOrderShippingDetail
                          required:
                            - id
                            - shipping_method_id
                            - shipping_method
                            - created_at
                            - updated_at
                          properties:
                            id:
                              type: string
                              title: id
                              description: The detail's ID.
                            shipping_method_id:
                              type: string
                              title: shipping_method_id
                              description: The detail's shipping method id.
                            shipping_method:
                              type: object
                              description: The detail's shipping method.
                              x-schemaName: BaseOrderShippingMethod
                            claim_id:
                              type: string
                              title: claim_id
                              description: The detail's claim id.
                            exchange_id:
                              type: string
                              title: exchange_id
                              description: The detail's exchange id.
                            return_id:
                              type: string
                              title: return_id
                              description: The detail's return id.
                            created_at:
                              type: string
                              format: date-time
                              title: created_at
                              description: The detail's created at.
                            updated_at:
                              type: string
                              format: date-time
                              title: updated_at
                              description: The detail's updated at.
                        - type: object
                          description: The shipping method's detail.
                          required:
                            - shipping_method
                          properties:
                            shipping_method:
                              type: object
                              description: The detail's shipping method.
                              x-schemaName: StoreOrderShippingMethod
                    id:
                      type: string
                      title: id
                      description: The shipping method's ID.
                    order_id:
                      type: string
                      title: order_id
                      description: The shipping method's order id.
                    name:
                      type: string
                      title: name
                      description: The shipping method's name.
                    description:
                      type: string
                      title: description
                      description: The shipping method's description.
                    amount:
                      type: number
                      title: amount
                      description: The shipping method's amount.
                    is_tax_inclusive:
                      type: boolean
                      title: is_tax_inclusive
                      description: The shipping method's is tax inclusive.
                    shipping_option_id:
                      type: string
                      title: shipping_option_id
                      description: The shipping method's shipping option id.
                    data:
                      type: object
                      description: The shipping method's data.
                    metadata:
                      type: object
                      description: The shipping method's metadata.
                      externalDocs:
                        url: https://docs.medusajs.com/api/store#manage-metadata
                        description: Learn how to manage metadata
                    original_total:
                      type: number
                      title: original_total
                      description: The shipping method's original total.
                    original_subtotal:
                      type: number
                      title: original_subtotal
                      description: The shipping method's original subtotal.
                    original_tax_total:
                      type: number
                      title: original_tax_total
                      description: The shipping method's original tax total.
                    total:
                      type: number
                      title: total
                      description: The shipping method's total.
                    subtotal:
                      type: number
                      title: subtotal
                      description: The shipping method's subtotal.
                    tax_total:
                      type: number
                      title: tax_total
                      description: The shipping method's tax total.
                    discount_total:
                      type: number
                      title: discount_total
                      description: The shipping method's discount total.
                    discount_tax_total:
                      type: number
                      title: discount_tax_total
                      description: The shipping method's discount tax total.
                    created_at:
                      type: string
                      format: date-time
                      title: created_at
                      description: The shipping method's created at.
                    updated_at:
                      type: string
                      format: date-time
                      title: updated_at
                      description: The shipping method's updated at.
          description: Details of changes to a shipping method.
    StorePaymentCollection:
      type: object
      description: The payment collection's details.
      x-schemaName: StorePaymentCollection
      required:
        - payment_providers
        - id
        - currency_code
        - amount
        - status
      properties:
        id:
          type: string
          title: id
          description: The payment collection's ID.
        currency_code:
          type: string
          title: currency_code
          description: The payment collection's currency code.
        amount:
          type: number
          title: amount
          description: The total amount to be paid.
        authorized_amount:
          type: number
          title: authorized_amount
          description: The total authorized amount of the collection's payments.
        captured_amount:
          type: number
          title: captured_amount
          description: The total captured amount of the collection's payments.
        refunded_amount:
          type: number
          title: refunded_amount
          description: The total refunded amount of the collection's payments.
        completed_at:
          type: string
          format: date-time
          title: completed_at
          description: The date the payment collection was completed.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the payment collection was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the payment collection was updated.
        metadata:
          type: object
          description: The payment collection's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        status:
          type: string
          description: The payment collection's status.
          enum:
            - canceled
            - not_paid
            - awaiting
            - authorized
            - partially_authorized
        payment_providers:
          type: array
          description: The payment provider used to process the collection's payments and sessions.
          items:
            $ref: '#/components/schemas/StorePaymentProvider'
        payment_sessions:
          type: array
          description: The payment collection's payment sessions.
          items:
            $ref: '#/components/schemas/StorePaymentSession'
        payments:
          type: array
          description: The payment collection's payments.
          items:
            $ref: '#/components/schemas/BasePayment'
    StorePaymentCollectionResponse:
      type: object
      description: The payment collection's details.
      x-schemaName: StorePaymentCollectionResponse
      required:
        - payment_collection
      properties:
        payment_collection:
          $ref: '#/components/schemas/StorePaymentCollection'
    StorePaymentProvider:
      type: object
      description: The payment provider's details
      x-schemaName: StorePaymentProvider
      required:
        - id
      properties:
        id:
          type: string
          title: id
          description: The payment provider's ID.
    StorePaymentSession:
      type: object
      description: The payment session's details.
      x-schemaName: StorePaymentSession
      properties:
        id:
          type: string
          title: id
          description: The payment session's ID.
        amount:
          type: number
          title: amount
          description: The payment session's amount.
        currency_code:
          type: string
          title: currency_code
          description: The payment session's currency code.
          example: usd
        provider_id:
          type: string
          title: provider_id
          description: The ID of the payment provider processing this session.
        data:
          type: object
          description: The payment session's data, useful for the payment provider processing the payment.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/payment/payment-session#data-property
        context:
          type: object
          description: The context around the payment, such as the customer's details.
          example:
            customer:
              id: cus_123
        status:
          type: string
          description: The payment session's status.
          enum:
            - authorized
            - captured
            - canceled
            - pending
            - requires_more
            - error
        authorized_at:
          type: string
          title: authorized_at
          description: The date the payment session was authorized.
          format: date-time
        payment_collection:
          type: object
        payment:
          $ref: '#/components/schemas/BasePayment'
      required:
        - id
        - amount
        - currency_code
        - provider_id
        - data
        - status
    StorePrice:
      type: object
      description: The price's details.
      x-schemaName: StorePrice
      required:
        - id
        - currency_code
        - amount
        - min_quantity
        - max_quantity
      properties:
        id:
          type: string
          title: id
          description: The price's ID.
        currency_code:
          type: string
          title: currency_code
          description: The price's ISO 2 currency code.
          example: usd
        amount:
          type: number
          title: amount
          description: The price's amount.
        min_quantity:
          type: number
          title: min_quantity
          description: The minimum quantity required in the cart for the price to apply.
        max_quantity:
          type: number
          title: max_quantity
          description: The maximum quantity required in the cart for the price to apply.
        price_rules:
          type: array
          description: The price's rules.
          items:
            $ref: '#/components/schemas/StorePriceRule'
    StorePriceRule:
      type: object
      description: The price rule's details.
      x-schemaName: StorePriceRule
      required:
        - id
        - attribute
        - operator
        - value
      properties:
        id:
          type: string
          title: id
          description: The price rule's ID.
        attribute:
          type: string
          title: attribute
          description: The price rule's attribute.
        operator:
          type: string
          description: The price rule's operator.
          enum:
            - gt
            - lt
            - eq
            - lte
            - gte
        value:
          type: string
          title: value
          description: The price rule's value.
    StoreProduct:
      type: object
      description: The product's details.
      x-schemaName: StoreProduct
      required:
        - variants
        - options
        - images
        - length
        - title
        - status
        - description
        - id
        - created_at
        - updated_at
        - subtitle
        - thumbnail
        - handle
        - is_giftcard
        - width
        - weight
        - height
        - origin_country
        - hs_code
        - mid_code
        - material
        - collection_id
        - type_id
        - discountable
        - external_id
        - deleted_at
      properties:
        categories:
          type: array
          description: The product's categories.
          items:
            type: object
        type:
          $ref: '#/components/schemas/StoreProductType'
        length:
          type: number
          title: length
          description: The product's length.
        title:
          type: string
          title: title
          description: The product's title.
        status:
          type: string
          description: The product's status.
          enum:
            - draft
            - proposed
            - published
            - rejected
        options:
          type: array
          description: The product's options.
          items:
            $ref: '#/components/schemas/StoreProductOption'
        description:
          type: string
          title: description
          description: The product's description.
        id:
          type: string
          title: id
          description: The product's ID.
        metadata:
          type: object
          description: The product's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the product was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the product was updated.
        variants:
          type: array
          description: The product's variants.
          items:
            $ref: '#/components/schemas/StoreProductVariant'
        handle:
          type: string
          title: handle
          description: The product's handle.
        subtitle:
          type: string
          title: subtitle
          description: The product's subtitle.
        is_giftcard:
          type: boolean
          title: is_giftcard
          description: Whether the product is a gift card.
        thumbnail:
          type: string
          title: thumbnail
          description: The product's thumbnail URL.
        width:
          type: number
          title: width
          description: The product's width.
        weight:
          type: number
          title: weight
          description: The product's weight.
        height:
          type: number
          title: height
          description: The product's height.
        origin_country:
          type: string
          title: origin_country
          description: The product's origin country.
        hs_code:
          type: string
          title: hs_code
          description: The product's HS code.
        mid_code:
          type: string
          title: mid_code
          description: The product's MID code.
        material:
          type: string
          title: material
          description: The product's material.
        collection:
          $ref: '#/components/schemas/StoreCollection'
        collection_id:
          type: string
          title: collection_id
          description: The ID of the collection that the product belongs to.
        type_id:
          type: string
          title: type_id
          description: The ID of the product's type.
        tags:
          type: array
          description: The product's tags.
          items:
            $ref: '#/components/schemas/StoreProductTag'
        images:
          type: array
          description: The product's images.
          items:
            $ref: '#/components/schemas/StoreProductImage'
        discountable:
          type: boolean
          title: discountable
          description: Whether the product can be discounted.
        external_id:
          type: string
          title: external_id
          description: The ID of the product in an external service or system.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the product was deleted.
    StoreProductCategory:
      type: object
      description: The category's details.
      x-schemaName: StoreProductCategory
      required:
        - id
        - name
        - description
        - handle
        - rank
        - parent_category_id
        - parent_category
        - category_children
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The category's ID.
        name:
          type: string
          title: name
          description: The category's name.
        description:
          type: string
          title: description
          description: The category's description.
        handle:
          type: string
          title: handle
          description: The category's handle.
        rank:
          type: number
          title: rank
          description: The category's rank.
        parent_category_id:
          type: string
          title: parent_category_id
          description: The ID of the category's parent.
        parent_category:
          type: object
        category_children:
          type: array
          description: The category's children.
          items:
            type: object
        metadata:
          type: object
          description: The category's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the category was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the category was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the category was deleted.
        products:
          type: array
          description: The category's products.
          items:
            $ref: '#/components/schemas/StoreProduct'
    StoreProductCategoryListResponse:
      type: object
      description: The paginated list of product categories.
      x-schemaName: StoreProductCategoryListResponse
      required:
        - limit
        - offset
        - count
        - product_categories
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items skipped before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total number of items.
        product_categories:
          type: array
          description: The list of product categories.
          items:
            $ref: '#/components/schemas/StoreProductCategory'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    StoreProductCategoryResponse:
      type: object
      description: The product category's details.
      x-schemaName: StoreProductCategoryResponse
      required:
        - product_category
      properties:
        product_category:
          $ref: '#/components/schemas/StoreProductCategory'
    StoreProductImage:
      type: object
      description: The image's details.
      x-schemaName: StoreProductImage
      required:
        - id
        - url
        - rank
      properties:
        id:
          type: string
          title: id
          description: The image's ID.
        url:
          type: string
          title: url
          description: The image's URL.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the image was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the image was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the image was deleted.
        metadata:
          type: object
          description: The image's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        rank:
          type: number
          title: rank
          description: The image's rank among its sibling images
    StoreProductListResponse:
      type: object
      description: The paginated list of products.
      x-schemaName: StoreProductListResponse
      allOf:
        - type: object
          description: Pagination details
          required:
            - limit
            - offset
            - count
          properties:
            limit:
              type: number
              title: limit
              description: The maximum number of items returned.
            offset:
              type: number
              title: offset
              description: The number of items skipped before retrieving the returned items.
            count:
              type: number
              title: count
              description: The total count of items.
            estimate_count:
              type: number
              title: estimate_count
              description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
              x-featureFlag: index_engine
        - type: object
          description: The list of products.
          required:
            - products
          properties:
            products:
              type: array
              description: The list of products.
              items:
                $ref: '#/components/schemas/StoreProduct'
    StoreProductOption:
      type: object
      description: The product option's details.
      x-schemaName: StoreProductOption
      properties:
        id:
          type: string
          title: id
          description: The option's ID.
        title:
          type: string
          title: title
          description: The option's title.
        product:
          type: object
        product_id:
          type: string
          title: product_id
          description: The ID of the product this option belongs to.
        values:
          type: array
          description: The option's values.
          items:
            $ref: '#/components/schemas/StoreProductOptionValue'
        metadata:
          type: object
          description: The option's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the product option was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the product option was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the product option was deleted.
      required:
        - title
        - id
    StoreProductOptionValue:
      type: object
      description: The product option value's details.
      x-schemaName: StoreProductOptionValue
      required:
        - value
        - id
      properties:
        id:
          type: string
          title: id
          description: The value's ID.
        value:
          type: string
          title: value
          description: The value.
        option:
          type: object
        option_id:
          type: string
          title: option_id
          description: The ID of the option this value belongs to.
        metadata:
          type: object
          description: The value's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the value was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the value was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the value was deleted.
    StoreProductResponse:
      type: object
      description: The product's details.
      x-schemaName: StoreProductResponse
      required:
        - product
      properties:
        product:
          $ref: '#/components/schemas/StoreProduct'
    StoreProductTag:
      type: object
      description: The tag's details.
      x-schemaName: StoreProductTag
      properties:
        id:
          type: string
          title: id
          description: The tag's ID.
        value:
          type: string
          title: value
          description: The tag's value.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the tag was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the tag was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the tag was deleted.
        metadata:
          type: object
          description: The tag's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
      required:
        - id
        - value
        - created_at
        - updated_at
    StoreProductTagListResponse:
      type: object
      description: The paginated list of product tags.
      x-schemaName: StoreProductTagListResponse
      required:
        - limit
        - offset
        - count
        - product_tags
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items to skip before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total number of items available.
        product_tags:
          type: array
          description: The list of product tags.
          items:
            $ref: '#/components/schemas/StoreProductTag'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    StoreProductTagResponse:
      type: object
      description: The product tag's details.
      x-schemaName: StoreProductTagResponse
      required:
        - product_tag
      properties:
        product_tag:
          $ref: '#/components/schemas/StoreProductTag'
    StoreProductType:
      type: object
      description: The product type's details.
      x-schemaName: StoreProductType
      required:
        - id
        - value
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The product type's ID.
        metadata:
          type: object
          description: The product type's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the product type was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the product type was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the product type was deleted.
        value:
          type: string
          title: value
          description: The type's value.
    StoreProductTypeListResponse:
      type: object
      description: The paginated list of product types.
      x-schemaName: StoreProductTypeListResponse
      required:
        - limit
        - offset
        - count
        - product_types
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of items returned.
        offset:
          type: number
          title: offset
          description: The number of items to skip before retrieving the returned items.
        count:
          type: number
          title: count
          description: The total number of items available.
        product_types:
          type: array
          description: The list of product types.
          items:
            $ref: '#/components/schemas/StoreProductType'
        estimate_count:
          type: number
          title: estimate_count
          description: The estimated count retrieved from the PostgreSQL query planner, which may be inaccurate.
          x-featureFlag: index_engine
    StoreProductTypeResponse:
      type: object
      description: The product type's details.
      x-schemaName: StoreProductTypeResponse
      required:
        - product_type
      properties:
        product_type:
          $ref: '#/components/schemas/StoreProductType'
    StoreProductVariant:
      type: object
      description: The variant's details.
      x-schemaName: StoreProductVariant
      properties:
        options:
          type: array
          description: The variant's options.
          items:
            $ref: '#/components/schemas/StoreProductOptionValue'
        product:
          type: object
        length:
          type: number
          title: length
          description: The variant's length.
        title:
          type: string
          title: title
          description: The variant's title.
        metadata:
          type: object
          description: The variant's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        id:
          type: string
          title: id
          description: The variant's ID.
        width:
          type: number
          title: width
          description: The variant's width.
        weight:
          type: number
          title: weight
          description: The variant's weight.
        height:
          type: number
          title: height
          description: The variant's height.
        origin_country:
          type: string
          title: origin_country
          description: The variant's origin country.
        hs_code:
          type: string
          title: hs_code
          description: The variant's HS code.
        mid_code:
          type: string
          title: mid_code
          description: The variant's MID code.
        material:
          type: string
          title: material
          description: The variant's material.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the variant was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the variant was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the variant was deleted.
        product_id:
          type: string
          title: product_id
          description: The ID of the product this variant belongs to.
        sku:
          type: string
          title: sku
          description: The variant's SKU.
        barcode:
          type: string
          title: barcode
          description: The variant's barcode.
        ean:
          type: string
          title: ean
          description: The variant's EAN.
        upc:
          type: string
          title: upc
          description: The variant's UPC.
        allow_backorder:
          type: boolean
          title: allow_backorder
          description: Whether the variant can be ordered even if it's not in stock.
        manage_inventory:
          type: boolean
          title: manage_inventory
          description: Whether Medusa manages the variant's inventory. If disabled, the variant is always considered in stock.
          externalDocs:
            url: https://docs.medusajs.com/resources/storefront-development/products/inventory
            description: 'Storefront guide: How to retrieve a product variant''s inventory details.'
        inventory_quantity:
          type: number
          title: inventory_quantity
          description: The variant's inventory quantity. This property is only available if you pass `+variants.inventory_quantity` in the `fields` query parameter.
          externalDocs:
            url: https://docs.medusajs.com/resources/storefront-development/products/inventory
            description: 'Storefront guide: How to retrieve a product variant''s inventory details.'
        variant_rank:
          type: number
          title: variant_rank
          description: The variant's rank among its siblings.
        calculated_price:
          $ref: '#/components/schemas/BaseCalculatedPriceSet'
        thumbnail:
          type: string
          title: thumbnail
          description: The variant's thumbnail.
        images:
          type: array
          description: The variant's images.
          items:
            $ref: '#/components/schemas/BaseProductImage'
      required:
        - options
        - title
        - length
        - id
        - created_at
        - updated_at
        - thumbnail
        - width
        - weight
        - height
        - origin_country
        - hs_code
        - mid_code
        - material
        - images
        - deleted_at
        - manage_inventory
        - allow_backorder
        - ean
        - upc
        - barcode
        - sku
    StoreRegion:
      type: object
      description: The region's details.
      x-schemaName: StoreRegion
      required:
        - id
        - name
        - currency_code
      properties:
        id:
          type: string
          title: id
          description: The region's ID.
        name:
          type: string
          title: name
          description: The region's name.
        currency_code:
          type: string
          title: currency_code
          description: The region's currency code.
          example: usd
        automatic_taxes:
          type: boolean
          title: automatic_taxes
          description: Whether taxes are calculated automatically during checkout for carts that belong to this region.
        countries:
          type: array
          description: The region's countries.
          items:
            $ref: '#/components/schemas/BaseRegionCountry'
        payment_providers:
          type: array
          description: The region's payment providers.
          items:
            $ref: '#/components/schemas/AdminPaymentProvider'
        metadata:
          type: object
          description: The region's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the region was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the region was updated.
    StoreRegionCountry:
      type: object
      description: The country's details.
      x-schemaName: StoreRegionCountry
      required:
        - id
      properties:
        id:
          type: string
          title: id
          description: The country's ID.
        iso_2:
          type: string
          title: iso_2
          description: The country's ISO 2.
          example: us
        iso_3:
          type: string
          title: iso_3
          description: The country's ISO 3.
          example: usa
        num_code:
          type: string
          title: num_code
          description: The country's num code.
          example: 840
        name:
          type: string
          title: name
          description: The country's name.
        display_name:
          type: string
          title: display_name
          description: The country's display name.
    StoreRemoveGiftCardFromCart:
      type: object
      description: The details to remove a gift card from the cart.
      x-schemaName: StoreRemoveGiftCardFromCart
      required:
        - code
      properties:
        code:
          type: string
          title: code
          description: The gift card code to remove from the cart.
    StoreRequestOrderTransfer:
      type: object
      description: The details of requesting the order transfer.
      x-schemaName: StoreRequestOrderTransfer
      properties:
        description:
          type: string
          title: description
          description: The transfer's description, which can be shown to the other customer receiving the request.
    StoreReturn:
      type: object
      description: The return's details.
      x-schemaName: StoreReturn
      required:
        - items
        - id
        - display_id
        - created_at
        - order_id
        - canceled_at
        - received_at
      properties:
        items:
          type: array
          description: The return's items.
          items:
            $ref: '#/components/schemas/StoreReturnItem'
        status:
          type: string
          description: The return's status.
          enum:
            - received
            - canceled
            - requested
            - open
            - partially_received
        id:
          type: string
          title: id
          description: The return's ID.
        display_id:
          type: number
          title: display_id
          description: The return's display ID.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the return was created.
        order_id:
          type: string
          title: order_id
          description: The ID of the order this return belongs to.
        location_id:
          type: string
          title: location_id
          description: The ID of the location the return items are being returned to.
        canceled_at:
          type: string
          title: canceled_at
          description: The date the return was canceled.
        exchange_id:
          type: string
          title: exchange_id
          description: The ID of the associated exchange.
        claim_id:
          type: string
          title: claim_id
          description: The ID of the associated claim.
        refund_amount:
          type: number
          title: refund_amount
          description: The amount to be refunded.
        received_at:
          type: string
          title: received_at
          description: The date the return items were received.
    StoreReturnItem:
      type: object
      description: The return item's details.
      x-schemaName: StoreReturnItem
      required:
        - id
        - quantity
        - received_quantity
        - damaged_quantity
        - item_id
        - return_id
      properties:
        id:
          type: string
          title: id
          description: The item's ID.
        quantity:
          type: number
          title: quantity
          description: The item's quantity.
        received_quantity:
          type: number
          title: received_quantity
          description: The item's received quantity.
        damaged_quantity:
          type: number
          title: damaged_quantity
          description: The item's damaged quantity.
        reason_id:
          type: string
          title: reason_id
          description: The ID of the item's reason.
        note:
          type: string
          title: note
          description: A note with more details on why the item is returned.
        item_id:
          type: string
          title: item_id
          description: The ID of the item in the order.
        return_id:
          type: string
          title: return_id
          description: The ID of the return this item belongs to.
        metadata:
          type: object
          description: The item's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
    StoreReturnReason:
      type: object
      description: The return reason's details.
      x-schemaName: StoreReturnReason
      required:
        - id
        - value
        - label
        - created_at
        - updated_at
      properties:
        id:
          type: string
          title: id
          description: The return reason's ID.
        value:
          type: string
          title: value
          description: The return reason's value.
        label:
          type: string
          title: label
          description: The return reason's label.
        description:
          type: string
          title: description
          description: The return reason's description.
        metadata:
          type: object
          description: The return reason's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the return reason was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the return reason was updated.
    StoreReturnReasonResponse:
      type: object
      description: The return reason's details.
      x-schemaName: StoreReturnReasonResponse
      required:
        - return_reason
      properties:
        return_reason:
          $ref: '#/components/schemas/StoreReturnReason'
    StoreReturnResponse:
      type: object
      description: The return's details.
      x-schemaName: StoreReturnResponse
      required:
        - return
      properties:
        return:
          $ref: '#/components/schemas/StoreReturn'
    StoreShippingOption:
      type: object
      description: The shipping option's details.
      x-schemaName: StoreShippingOption
      required:
        - id
        - name
        - price_type
        - service_zone_id
        - provider_id
        - provider
        - shipping_option_type_id
        - type
        - shipping_profile_id
        - amount
        - is_tax_inclusive
        - data
        - metadata
      properties:
        id:
          type: string
          title: id
          description: The shipping option's ID.
        name:
          type: string
          title: name
          description: The shipping option's name.
        price_type:
          type: string
          description: The shipping option's price type. If it's `flat`, the price is fixed and is set in the `prices` property. If it's `calculated`, the price is calculated on checkout by the associated fulfillment provider.
          enum:
            - flat
            - calculated
        service_zone_id:
          type: string
          title: service_zone_id
          description: The ID of the service zone the shipping option belongs to.
        provider_id:
          type: string
          title: provider_id
          description: The ID of the fulfillment provider handling this option.
        provider:
          $ref: '#/components/schemas/BaseFulfillmentProvider'
        shipping_option_type_id:
          type: string
          title: shipping_option_type_id
          description: The ID of the shipping option's type.
        type:
          $ref: '#/components/schemas/StoreShippingOptionType'
        shipping_profile_id:
          type: string
          title: shipping_profile_id
          description: The ID of the associated shipping profile.
        amount:
          type: number
          title: amount
          description: The shipping option's amount.
        is_tax_inclusive:
          type: boolean
          title: is_tax_inclusive
          description: Whether the amount includes taxes.
        data:
          type: object
          description: The shipping option's data, useful for the provider handling fulfillment.
          externalDocs:
            url: https://docs.medusajs.com/resources/commerce-modules/fulfillment/shipping-option#data-property
        metadata:
          type: object
          description: The shipping option's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
    StoreShippingOptionListResponse:
      type: object
      description: The list of shipping options.
      x-schemaName: StoreShippingOptionListResponse
      required:
        - shipping_options
      properties:
        shipping_options:
          type: array
          description: The list of shipping options.
          items:
            allOf:
              - $ref: '#/components/schemas/StoreCartShippingOption'
              - type: object
                description: The shipping option's details.
                required:
                  - service_zone
                properties:
                  service_zone:
                    type: object
                    description: The shipping option's service zone.
                    required:
                      - id
                      - fulfillment_set_id
                      - fulfillment_set
                    properties:
                      id:
                        type: string
                        title: id
                        description: The service zone's ID.
                      fulfillment_set_id:
                        type: string
                        title: fulfillment_set_id
                        description: The ID of the service zone's fulfillment set.
                      fulfillment_set:
                        type: object
                        description: The service zone's fulfillment set.
                        required:
                          - id
                          - type
                          - location
                        properties:
                          id:
                            type: string
                            title: id
                            description: The fulfillment set's ID.
                          type:
                            type: string
                            title: type
                            description: The fulfillment set's type.
                          location:
                            type: object
                            description: The fulfillment set's location details.
                            required:
                              - id
                              - address
                            properties:
                              id:
                                type: string
                                title: id
                                description: The location's ID.
                              address:
                                type: object
                                description: The location's address.
                                x-schemaName: StoreFulfillmentAddress
                                required:
                                  - id
                                  - company
                                  - address_1
                                  - address_2
                                  - city
                                  - country_code
                                  - province
                                  - postal_code
                                  - phone
                                  - metadata
                                  - created_at
                                  - updated_at
                                  - deleted_at
                                properties:
                                  id:
                                    type: string
                                    title: id
                                    description: The address's ID.
                                  company:
                                    type: string
                                    title: company
                                    description: The address's company.
                                  address_1:
                                    type: string
                                    title: address_1
                                    description: The first line of the address.
                                  address_2:
                                    type: string
                                    title: address_2
                                    description: The second line of the address.
                                  city:
                                    type: string
                                    title: city
                                    description: The address's city.
                                  country_code:
                                    type: string
                                    title: country_code
                                    description: The address's country code.
                                    example: us
                                  province:
                                    type: string
                                    title: province
                                    description: The address's province.
                                  postal_code:
                                    type: string
                                    title: postal_code
                                    description: The address's postal code.
                                  phone:
                                    type: string
                                    title: phone
                                    description: The address's phone.
                                  metadata:
                                    type: object
                                    description: The address's metadata. Can hold custom key-value pairs.
                                  created_at:
                                    type: string
                                    format: date-time
                                    title: created_at
                                    description: The date the address was created.
                                  updated_at:
                                    type: string
                                    format: date-time
                                    title: updated_at
                                    description: The date the address was updated.
                                  deleted_at:
                                    type: string
                                    format: date-time
                                    title: deleted_at
                                    description: The date the address was deleted.
            description: The shipping option's details.
    StoreShippingOptionResponse:
      type: object
      description: The shipping option's details.
      x-schemaName: StoreShippingOptionResponse
      required:
        - shipping_option
      properties:
        shipping_option:
          $ref: '#/components/schemas/StoreCartShippingOption'
    StoreShippingOptionType:
      type: object
      description: The shipping option type's details.
      x-schemaName: StoreShippingOptionType
      required:
        - id
        - label
        - description
        - code
        - shipping_option_id
        - created_at
        - updated_at
        - deleted_at
      properties:
        id:
          type: string
          title: id
          description: The type's ID.
        label:
          type: string
          title: label
          description: The type's label.
        description:
          type: string
          title: description
          description: The type's description.
        code:
          type: string
          title: code
          description: The type's code.
        shipping_option_id:
          type: string
          title: shipping_option_id
          description: The ID of the associated shipping option.
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the type was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the type was updated.
        deleted_at:
          type: string
          format: date-time
          title: deleted_at
          description: The date the type was deleted.
    StoreStoreCreditAccount:
      type: object
      description: The store credit account's details.
      x-schemaName: StoreStoreCreditAccount
      required:
        - customer
        - id
        - currency_code
        - credits
        - debits
        - balance
        - metadata
        - created_at
        - updated_at
      properties:
        customer:
          $ref: '#/components/schemas/StoreCustomer'
        id:
          type: string
          title: id
          description: The store credit account's ID.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer that the store credit account belongs to.
        currency_code:
          type: string
          title: currency_code
          description: The store credit account's currency code.
          example: usd
        credits:
          type: number
          title: credits
          description: The account's credits.
        debits:
          type: number
          title: debits
          description: The account's debits.
        balance:
          type: number
          title: balance
          description: The store credit account's balance.
        metadata:
          type: object
          description: The store credit account's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
        created_at:
          type: string
          format: date-time
          title: created_at
          description: The date the store credit account was created.
        updated_at:
          type: string
          format: date-time
          title: updated_at
          description: The date the store credit account was updated.
        code:
          type: string
          title: code
          description: The store credit account's code.
    StoreStoreCreditAccountResponse:
      type: object
      description: The store credit account's details.
      x-schemaName: StoreStoreCreditAccountResponse
      required:
        - store_credit_account
      properties:
        store_credit_account:
          $ref: '#/components/schemas/StoreStoreCreditAccount'
    StoreStoreCreditAccountsResponse:
      type: object
      description: The paginated list of store credit accounts.
      x-schemaName: StoreStoreCreditAccountsResponse
      required:
        - limit
        - offset
        - count
        - store_credit_accounts
      properties:
        limit:
          type: number
          title: limit
          description: The maximum number of store credit accounts to return.
        offset:
          type: number
          title: offset
          description: The number of store credit accounts to skip before retrieving the results.
        count:
          type: number
          title: count
          description: The total number of store credit accounts available.
        store_credit_accounts:
          type: array
          description: The list of store credit accounts.
          items:
            $ref: '#/components/schemas/StoreStoreCreditAccount'
        estimate_count:
          type: number
          title: estimate_count
          description: The store credit account's estimate count.
          x-featureFlag: index_engine
    StoreUpdateCustomer:
      type: object
      description: The details to update in the customer.
      x-schemaName: StoreUpdateCustomer
      properties:
        company_name:
          type: string
          title: company_name
          description: The customer's company name.
        first_name:
          type: string
          title: first_name
          description: The customer's first name.
        last_name:
          type: string
          title: last_name
          description: The customer's last name.
        phone:
          type: string
          title: phone
          description: The customer's phone.
        metadata:
          type: object
          description: The customer's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
    StoreUpdateCustomerAddress:
      type: object
      description: The properties to update in the address.
      properties:
        first_name:
          type: string
          title: first_name
          description: The customer's first name.
        last_name:
          type: string
          title: last_name
          description: The customer's last name.
        phone:
          type: string
          title: phone
          description: The customer's phone.
        company:
          type: string
          title: company
          description: The address's company.
        address_1:
          type: string
          title: address_1
          description: The address's first line.
        address_2:
          type: string
          title: address_2
          description: The address's second line.
        city:
          type: string
          title: city
          description: The address's city.
        country_code:
          type: string
          title: country_code
          description: The address's country code.
        province:
          type: string
          title: province
          description: The address's ISO 3166-2 province code. Must be lower-case.
          example: us-ca
          externalDocs:
            url: https://en.wikipedia.org/wiki/ISO_3166-2
            description: Learn more about ISO 3166-2
        postal_code:
          type: string
          title: postal_code
          description: The address's postal code.
        address_name:
          type: string
          title: address_name
          description: The address's name.
        is_default_shipping:
          type: boolean
          title: is_default_shipping
          description: Whether the address is used by default for shipping during checkout.
        is_default_billing:
          type: boolean
          title: is_default_billing
          description: Whether the address is used by default for billing during checkout.
        metadata:
          type: object
          description: Holds custom key-value pairs.
      x-schemaName: StoreUpdateCustomerAddress
    UpdateAddress:
      type: object
      description: The details to update in the address.
      x-schemaName: UpdateAddress
      required:
        - id
      properties:
        id:
          type: string
          title: id
          description: The ID of an existing address to update.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer that this address belongs to.
        company:
          type: string
          title: company
          description: The address's company.
        first_name:
          type: string
          title: first_name
          description: The address's first name.
        last_name:
          type: string
          title: last_name
          description: The address's last name.
        address_1:
          type: string
          title: address_1
          description: The address's first line.
        address_2:
          type: string
          title: address_2
          description: The address's second line.
        city:
          type: string
          title: city
          description: The address's city.
        country_code:
          type: string
          title: country_code
          description: The address's country code.
          example: usd
        province:
          type: string
          title: province
          description: The address's ISO 3166-2 province code. Must be lower-case.
          example: us-ca
          externalDocs:
            url: https://en.wikipedia.org/wiki/ISO_3166-2
            description: Learn more about ISO 3166-2
        postal_code:
          type: string
          title: postal_code
          description: The address's postal code.
        phone:
          type: string
          title: phone
          description: The address's phone.
        metadata:
          type: object
          description: The address's metadata, can hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
    UpdateCartData:
      type: object
      description: The details to update in a cart.
      x-schemaName: UpdateCartData
      properties:
        region_id:
          type: string
          title: region_id
          description: The ID of the associated region. This can affect the prices and currency code of the cart.
        customer_id:
          type: string
          title: customer_id
          description: The ID of the customer that the cart belongs to.
        sales_channel_id:
          type: string
          title: sales_channel_id
          description: The ID of the associated sales channel. Only products available in this channel can be added to the cart.
        email:
          type: string
          title: email
          description: The email of the customer that the cart belongs to.
          format: email
        currency_code:
          type: string
          title: currency_code
          description: The cart's currency code.
          example: usd
        shipping_address_id:
          type: string
          title: shipping_address_id
          description: The ID of the cart's shipping address.
        billing_address_id:
          type: string
          title: billing_address_id
          description: The ID of the cart's billing address.
        billing_address:
          oneOf:
            - $ref: '#/components/schemas/CreateAddress'
            - $ref: '#/components/schemas/UpdateAddress'
        shipping_address:
          oneOf:
            - $ref: '#/components/schemas/CreateAddress'
            - $ref: '#/components/schemas/UpdateAddress'
        metadata:
          type: object
          description: The cart's metadata, ca hold custom key-value pairs.
          externalDocs:
            url: https://docs.medusajs.com/api/store#manage-metadata
            description: Learn how to manage metadata
    WorkflowExecutionContext:
      type: object
      description: The workflow execution's context.
      x-schemaName: WorkflowExecutionContext
      required:
        - compensate
        - errors
      properties:
        data:
          type: object
          description: The context's data.
          properties:
            invoke:
              type: object
              description: The step's invokation details.
              required:
                - output
              additionalProperties:
                type: object
                properties:
                  output:
                    type: object
                    description: The invokation's details.
                    required:
                      - output
                      - compensateInput
                    properties:
                      output:
                        description: the step's output
                      compensateInput:
                        description: the compensation function's input.
            payload:
              description: the payload of the transaction.
          required:
            - invoke
        compensate:
          type: object
          description: The context's compensate.
        errors:
          type: array
          description: The context's errors.
          items:
            type: object
            description: The error's details.
            properties:
              error:
                type: object
                description: The error's details.
              action:
                type: string
                title: action
                description: The error's action.
              handlerType:
                type: string
                title: handlerType
                description: The error's handler type.
            required:
              - error
              - action
              - handlerType
  responses:
    default_error:
      description: Default Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: unknown_error
            message: An unknown error occurred.
            type: unknown_error
    invalid_state_error:
      description: Invalid State Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: unknown_error
            message: The request conflicted with another request. You may retry the request with the provided Idempotency-Key.
            type: QueryRunnerAlreadyReleasedError
    invalid_request_error:
      description: Invalid Request Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: invalid_request_error
            message: Discount with code TEST already exists.
            type: duplicate_error
    not_found_error:
      description: Not Found Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Entity with id 1 was not found
            type: not_found
    400_error:
      description: Client Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            not_allowed:
              $ref: '#/components/examples/not_allowed_error'
            invalid_data:
              $ref: '#/components/examples/invalid_data_error'
    500_error:
      description: Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            database:
              $ref: '#/components/examples/database_error'
            unexpected_state:
              $ref: '#/components/examples/unexpected_state_error'
            invalid_argument:
              $ref: '#/components/examples/invalid_argument_error'
            default_error:
              $ref: '#/components/examples/default_error'
    unauthorized:
      description: User is not authorized. Must log in first
      content:
        text/plain:
          schema:
            type: string
            default: Unauthorized
            example: Unauthorized
    incorrect_credentials:
      description: User does not exist or incorrect credentials
      content:
        text/plain:
          schema:
            type: string
            default: Unauthorized
            example: Unauthorized
  examples:
    not_allowed_error:
      summary: Not Allowed Error
      value:
        message: Discount must be set to dynamic
        type: not_allowed
    invalid_data_error:
      summary: Invalid Data Error
      value:
        message: first_name must be a string
        type: invalid_data
    multiple_errors:
      summary: Multiple Errors
      value:
        message: Provided request body contains errors. Please check the data and retry the request
        errors:
          - message: first_name must be a string
            type: invalid_data
          - message: Discount must be set to dynamic
            type: not_allowed
    database_error:
      summary: Database Error
      value:
        code: api_error
        message: An error occured while hashing password
        type: database_error
    unexpected_state_error:
      summary: Unexpected State Error
      value:
        message: cart.total must be defined
        type: unexpected_state
    invalid_argument_error:
      summary: Invalid Argument Error
      value:
        message: cart.total must be defined
        type: unexpected_state
    default_error:
      summary: Default Error
      value:
        code: unknown_error
        message: An unknown error occurred.
        type: unknown_error
  securitySchemes:
    jwt_token:
      type: http
      x-displayName: JWT Token
      scheme: bearer
    cookie_auth:
      type: apiKey
      x-displayName: Cookie Session ID
      in: cookie
      name: connect.sid
    reset_password:
      type: http
      x-displayName: Reset Password Token
      scheme: bearer
      x-is-auth: false
