Lokki Online Store API

The Online Store API from Lokki — 34 operation(s) for online store.

Operations 37

GET /v2/online-store/cart/{slug} #
POST /v2/online-store/cart #
GET /v2/online-store/delivery/distance/{lat}/{lng} #
GET /v2/online-store/items/{companyId} #
GET /v2/online-store/raw-items/{companyId} #
GET /v2/online-store/items-featured/{companyId} #
GET /v2/online-store/allRawItems/{companyId}/{rentalType} #
GET /v2/online-store/items-day/{companyId} #
GET /v2/online-store/item-price/{companyId}/{productId}/{itemType} #
GET /v2/online-store/product-models/{companyId}/{rentalType} #
GET /v2/online-store/product-availability/{companyId}/{productId} #
GET /v2/online-store/product-availability-v2/{companyId}/{productId} #
GET /v2/online-store/maximum-product-availability/{companyId}/{productId} #
GET /v2/online-store/maximumproduct-availability/{companyId}/{productId} #
GET /v2/online-store/order #
POST /v2/online-store/order #
POST /v2/online-store/payOnSite #
POST /v2/online-store/checkout-deposit-retry/stripe #
DELETE /v2/online-store/checkout #
GET /v2/online-store/decathlon-connect/getSignInUrl #
GET /v2/online-store/session/files #
POST /v2/online-store/session/files #
POST /v2/online-store/log-survey-documents #
GET /v2/online-store/order/{orderId}/{companyId} #
GET /v2/online-store/order/{orderId}/{companyId}/availability #
GET /v2/online-store/product-survey/{id} #
GET /v2/online-store/product-survey #
POST /v2/online-store/order-cancel/{orderRequestId} #
GET /v2/online-store/ancv/qr-code/{preTransactionId} #
GET /v2/online-store/version/{slug} #
GET /v2/online-store/online-store-text/{companyId} #
GET /v2/online-store/getItemInsuranceInfo/{companyId} #
GET /v2/online-store/isDocumentStateGenerating/{orderId} #
GET /v2/online-store/isEventDocumentStateGenerating/{orderEventId} #
POST /v2/online-store/checkout/stripe #
DELETE /v2/online-store/checkout/stripe #
POST /v2/online-store/checkout/ancv #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/lokki-online-store-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

lokki-online-store-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lokki Online Store API
  description: The main API powering the Lokki Dashboard and Online Store
  version: '2.0'
  contact: {}
servers: []
security:
- x-access-token: []
tags:
- name: Online Store
paths:
  /v2/online-store/cart/{slug}:
    get:
      operationId: getOnlineStoreCart
      parameters:
      - name: slug
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CartDto'
      tags:
      - Online Store
  /v2/online-store/cart:
    post:
      operationId: setOnlineStoreCart
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CartDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CartDto'
      tags:
      - Online Store
  /v2/online-store/delivery/distance/{lat}/{lng}:
    get:
      operationId: getOnlineStoreDeliveryDistance
      parameters:
      - name: lat
        required: true
        in: path
        schema:
          type: number
      - name: lng
        required: true
        in: path
        schema:
          type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: number
      tags:
      - Online Store
  /v2/online-store/items/{companyId}:
    get:
      operationId: listOnlineStoreItems
      parameters:
      - name: companyId
        required: true
        in: path
        schema:
          type: string
      - name: startDate
        required: true
        in: query
        schema:
          format: date-time
          type: string
      - name: endDate
        required: true
        in: query
        schema:
          format: date-time
          type: string
      - name: universe
        required: false
        in: query
        schema:
          type: string
      - name: excludeOrderId
        required: false
        in: query
        schema:
          type: string
      - name: allowWithoutPrice
        required: false
        in: query
        schema:
          type: boolean
      - name: noSearchOnlineAvailability
        required: false
        in: query
        schema:
          type: boolean
      - name: focusItemId
        required: false
        in: query
        schema:
          type: string
      - name: rentalType
        required: false
        in: query
        schema:
          enum:
          - LCD
          - LLD
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnlineStoreItemListDto'
      tags:
      - Online Store
  /v2/online-store/raw-items/{companyId}:
    get:
      operationId: getOnlineStoreRawItems
      parameters:
      - name: companyId
        required: true
        in: path
        schema:
          type: string
      - name: itemIds
        required: true
        in: query
        schema:
          type: array
          items:
            type: string
      - name: rentalType
        required: false
        in: query
        schema:
          enum:
          - LCD
          - LLD
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RawOnlineStoreItemListDto'
      tags:
      - Online Store
  /v2/online-store/items-featured/{companyId}:
    get:
      operationId: listOnlineStoreItemsFeatured
      parameters:
      - name: companyId
        required: true
        in: path
        schema:
          type: string
      - name: featuredIds
        required: true
        in: query
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RawOnlineStoreItemListDto'
      tags:
      - Online Store
  /v2/online-store/allRawItems/{companyId}/{rentalType}:
    get:
      operationId: listAllRawOnlineStoreItems
      parameters:
      - name: companyId
        required: true
        in: path
        schema:
          type: string
      - name: rentalType
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RawOnlineStoreItemListDto'
      tags:
      - Online Store
  /v2/online-store/items-day/{companyId}:
    get:
      operationId: listOnlineStoreItemsDay
      parameters:
      - name: companyId
        required: true
        in: path
        schema:
          type: string
      - name: startDate
        required: true
        in: query
        schema:
          format: date-time
          type: string
      - name: endDate
        required: true
        in: query
        schema:
          format: date-time
          type: string
      - name: universe
        required: false
        in: query
        schema:
          type: string
      - name: excludeOrderId
        required: false
        in: query
        schema:
          type: string
      - name: allowWithoutPrice
        required: false
        in: query
        schema:
          type: boolean
      - name: noSearchOnlineAvailability
        required: false
        in: query
        schema:
          type: boolean
      - name: focusItemId
        required: false
        in: query
        schema:
          type: string
      - name: rentalType
        required: false
        in: query
        schema:
          enum:
          - LCD
          - LLD
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnlineStoreItemListDto'
      tags:
      - Online Store
  /v2/online-store/item-price/{companyId}/{productId}/{itemType}:
    get:
      operationId: onlineStoreItemPrice
      parameters:
      - name: companyId
        required: true
        in: path
        schema:
          type: string
      - name: productId
        required: true
        in: path
        schema:
          type: string
      - name: itemType
        required: true
        in: path
        schema:
          type: string
      - name: startDate
        required: true
        in: query
        schema:
          format: date-time
          type: string
      - name: endDate
        required: true
        in: query
        schema:
          format: date-time
          type: string
      - name: rentalType
        required: false
        in: query
        schema:
          enum:
          - LCD
          - LLD
          type: string
      - name: lowSeason
        required: false
        in: query
        schema:
          type: boolean
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnlineStoreItemPriceDto'
      tags:
      - Online Store
  /v2/online-store/product-models/{companyId}/{rentalType}:
    get:
      operationId: listOnlineStoreProductModels
      parameters:
      - name: companyId
        required: true
        in: path
        schema:
          type: string
      - name: rentalType
        required: true
        in: path
        schema:
          type: string
      - name: filterByProductPrice
        required: false
        in: query
        schema:
          type: boolean
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProductModelDto'
      tags:
      - Online Store
  /v2/online-store/product-availability/{companyId}/{productId}:
    get:
      operationId: getProductAvailabilityByDateRange
      parameters:
      - name: companyId
        required: true
        in: path
        schema:
          type: string
      - name: productId
        required: true
        in: path
        schema:
          type: string
      - name: startDate
        required: true
        in: query
        schema:
          format: date-time
          type: string
      - name: endDate
        required: true
        in: query
        schema:
          format: date-time
          type: string
      - name: hours
        required: true
        in: query
        schema:
          type: number
      - name: minutes
        required: true
        in: query
        schema:
          type: number
      - name: universe
        required: false
        in: query
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OnlineStoreItemSlotDto'
      tags:
      - Online Store
  /v2/online-store/product-availability-v2/{companyId}/{productId}:
    get:
      operationId: getProductAvailabilityByDateRangeV2
      parameters:
      - name: companyId
        required: true
        in: path
        schema:
          type: string
      - name: productId
        required: true
        in: path
        schema:
          type: string
      - name: startDate
        required: true
        in: query
        schema:
          format: date-time
          type: string
      - name: endDate
        required: true
        in: query
        schema:
          format: date-time
          type: string
      - name: maxMonthRange
        required: false
        in: query
        schema:
          type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OnlineStoreItemSlotDto'
      tags:
      - Online Store
  /v2/online-store/maximum-product-availability/{companyId}/{productId}:
    get:
      operationId: getMaximumProductAvailabilityFromStartDate
      parameters:
      - name: companyId
        required: true
        in: path
        schema:
          type: string
      - name: productId
        required: true
        in: path
        schema:
          type: string
      - name: startDate
        required: true
        in: query
        schema:
          format: date-time
          type: string
      - name: startDateSearch
        required: true
        in: query
        schema:
          format: date-time
          type: string
      - name: endDateSearch
        required: true
        in: query
        schema:
          format: date-time
          type: string
      - name: nbItems
        required: true
        in: query
        schema:
          type: number
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaxProductAvailabilityDto'
      tags:
      - Online Store
  /v2/online-store/maximumproduct-availability/{companyId}/{productId}:
    get:
      operationId: getProductDayTimeAvailability
      parameters:
      - name: companyId
        required: true
        in: path
        schema:
          type: string
      - name: productId
        required: true
        in: path
        schema:
          type: string
      - name: date
        required: true
        in: query
        schema:
          format: date-time
          type: string
      - name: type
        required: true
        in: query
        schema:
          enum:
          - start
          - end
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProductDayTimeAvailabilityDto'
      tags:
      - Online Store
  /v2/online-store/order:
    get:
      operationId: getCreatedOrder
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatedOrderDto'
      tags:
      - Online Store
    post:
      operationId: createOnlineStoreOrder
      parameters: []
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                type: string
      tags:
      - Online Store
  /v2/online-store/payOnSite:
    post:
      operationId: payOnSite
      parameters: []
      responses:
        '201':
          description: ''
      tags:
      - Online Store
  /v2/online-store/checkout-deposit-retry/stripe:
    post:
      operationId: initiateOnlineStoreRetryStripeCheckoutDeposit
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnlineStoreRetryStripeCheckoutDeposit'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnlineStoreStripeCheckoutResultDto'
      tags:
      - Online Store
  /v2/online-store/checkout:
    delete:
      operationId: resetOnlineStoreCheckout
      parameters: []
      responses:
        '200':
          description: ''
      tags:
      - Online Store
  /v2/online-store/decathlon-connect/getSignInUrl:
    get:
      operationId: getSignInUrlDecathlonConnect
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UrlDto'
      tags:
      - Online Store
  /v2/online-store/session/files:
    get:
      operationId: getManySessionFiles
      parameters: []
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/SessionFile'
      tags:
      - Online Store
    post:
      operationId: uploadManySessionFiles
      parameters: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadDocumentDto'
      responses:
        '201':
          description: ''
      tags:
      - Online Store
  /v2/online-store/log-survey-documents:
    post:
      operationId: logSurveyDocuments
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnlineStoreLogSurveyDocumentsDto'
      responses:
        '201':
          description: ''
      tags:
      - Online Store
  /v2/online-store/order/{orderId}/{companyId}:
    get:
      operationId: getOnlineStoreOrder
      parameters:
      - name: orderId
        required: true
        in: path
        schema:
          type: string
      - name: companyId
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnlineStoreOrderResult'
      tags:
      - Online Store
  /v2/online-store/order/{orderId}/{companyId}/availability:
    get:
      operationId: getOnlineStoreOrderProductsAvailable
      parameters:
      - name: orderId
        required: true
        in: path
        schema:
          type: string
      - name: companyId
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AvailableProduct'
      tags:
      - Online Store
  /v2/online-store/product-survey/{id}:
    get:
      operationId: getOneProductSurveyFromOnlineStore
      parameters:
      - name: id
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductSurvey'
      tags:
      - Online Store
  /v2/online-store/product-survey:
    get:
      operationId: getManyProductSurveysFromOnlineStore
      parameters:
      - name: ids
        required: true
        in: query
        schema:
          type: array
          items:
            type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProductSurvey'
      tags:
      - Online Store
  /v2/online-store/order-cancel/{orderRequestId}:
    post:
      operationId: orderRequestCancelRequest
      parameters:
      - name: orderRequestId
        required: true
        in: path
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelOrderInfosDto'
      responses:
        '201':
          description: ''
      tags:
      - Online Store
  /v2/online-store/ancv/qr-code/{preTransactionId}:
    get:
      operationId: getOnlineStoreAncvQrCodePaymentStatus
      parameters:
      - name: preTransactionId
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetQrCodePaymentStatusResponseDto'
      tags:
      - Online Store
  /v2/online-store/version/{slug}:
    get:
      operationId: getOnlineStoreVersion
      parameters:
      - name: slug
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
      tags:
      - Online Store
  /v2/online-store/online-store-text/{companyId}:
    get:
      operationId: getOnlineStoreTextFromOnlineStore
      parameters:
      - name: companyId
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OnlineStoreText'
      tags:
      - Online Store
  /v2/online-store/getItemInsuranceInfo/{companyId}:
    get:
      operationId: getItemInsuranceInfo
      parameters:
      - name: companyId
        required: true
        in: path
        schema:
          type: string
      - name: productIds
        required: true
        in: query
        schema:
          type: array
          items:
            type: string
      - name: startDate
        required: true
        in: query
        schema:
          type: string
      - name: endDate
        required: true
        in: query
        schema:
          type: string
      - name: isLLD
        required: true
        in: query
        schema:
          type: boolean
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTulipProductInsuranceInfoResponseDto'
      tags:
      - Online Store
  /v2/online-store/isDocumentStateGenerating/{orderId}:
    get:
      operationId: isOnlineStoreDocumentStateGenerating
      parameters:
      - name: orderId
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IsDocumentStateGeneratingDto'
      tags:
      - Online Store
  /v2/online-store/isEventDocumentStateGenerating/{orderEventId}:
    get:
      operationId: isOnlineStoreEventDocumentStateGenerating
      parameters:
      - name: orderEventId
        required: true
        in: path
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IsDocumentStateGeneratingDto'
      tags:
      - Online Store
  /v2/online-store/checkout/stripe:
    post:
      operationId: initStripeCheckout
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnlineStoreInitCheckoutDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StripePaymentResultDto'
      tags:
      - Online Store
    delete:
      operationId: cancelStripeCheckout
      parameters: []
      responses:
        '200':
          description: ''
      tags:
      - Online Store
  /v2/online-store/checkout/ancv:
    post:
      operationId: initAncvCheckout
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnlineStoreInitCheckoutDto'
      responses:
        '201':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InitAncvCheckResponseDto'
      tags:
      - Online Store
components:
  schemas:
    OnlineStoreServiceDto:
      type: object
      properties:
        priceModels:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/PriceModelSpecificDuration'
            - $ref: '#/components/schemas/PriceModelRangeDuration'
            - $ref: '#/components/schemas/PriceModelLLDDuration'
        type:
          type: string
          default: service
          enum:
          - service
        category:
          type: string
        tags:
          type: array
          items:
            $ref: '#/components/schemas/OnlineStoreProductTags'
        isRelatedProducts:
          type: boolean
        relatedProducts:
          type: array
          items:
            type: string
        hideOnOnlineStore:
          type: boolean
        isAssuranceTulip:
          type: boolean
        productModel:
          type: string
        rentalType:
          enum:
          - LCD
          - LLD
          type: string
        id:
          type: string
        name:
          type: string
        onlineStoreName:
          $ref: '#/components/schemas/LocalizedContent'
        price:
          type: number
        imageUrl:
          type: array
          items:
            type: string
        videoLink:
          type: string
        attachedFiles:
          type: array
          items:
            $ref: '#/components/schemas/AttachedFile'
        description:
          $ref: '#/components/schemas/LocalizedContent'
        rank:
          type: number
        productSurveyId:
          type: string
        vat:
          type: number
      required:
      - type
      - category
      - tags
      - isRelatedProducts
      - relatedProducts
      - hideOnOnlineStore
      - isAssuranceTulip
      - productModel
      - rentalType
      - id
      - name
      - onlineStoreName
      - price
      - imageUrl
      - videoLink
      - attachedFiles
      - description
      - rank
      - productSurveyId
      - vat
    ProductSurveyField:
      type: object
      properties:
        id:
          type: string
        value:
          type: string
        type:
          type: string
          enum:
          - TEXT
          - SELECT
          - MULTIPLE_SELECT
          - DOCUMENT
        selectAnswers:
          type: array
          items:
            type: string
      required:
      - id
      - value
      - type
      - selectAnswers
    OfflinePayment:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/OfflinePaymentProvider'
        method:
          enum:
          - CARD
          - CASH
          - CHECK
          - CHECK_VACANCES
          - TRANSFER
          - SQUARE_TERMINAL
          - OTHER
          type: string
        refundedPaymentId:
          type: string
        refundReason:
          enum:
          - DUPLICATE
          - FRAUDULENT
          - REQUESTED_BY_CUSTOMER
          - OTHER
          type: string
      required:
      - type
      - method
    OrderRequestDocument:
      type: object
      properties:
        documentId:
          type: string
        documentModelId:
          type: string
        name:
          type: string
        createdDate:
          format: date-time
          type: string
        key:
          type: string
        isEmailSend:
          type: boolean
        isSigned:
          type: boolean
        error:
          type: boolean
      required:
      - error
    ProductField:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        value:
          type: string
        isTagged:
          type: boolean
      required:
      - id
      - name
      - value
      - isTagged
    ShifterInfo:
      type: object
      properties:
        shifterId:
          type: string
        status:
          type: string
          enum:
          - IMPORTED
          - TO_IMPORT
          - NONE
        importedDate:
          format: date-time
          type:
          - string
          - 'null'
      required:
      - shifterId
      - status
      - importedDate
    RawOnlineStoreProductDto:
      type: object
      properties:
        type:
          type: string
          default: product
          enum:
          - product
        priceModels:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/PriceModelSpecificDuration'
            - $ref: '#/components/schemas/PriceModelRangeDuration'
            - $ref: '#/components/schemas/PriceModelLLDDuration'
        bailPrice:
          type: number
        relatedProducts:
          type: array
          items:
            type: string
        isRelatedProduct:
          type: boolean
        category:
          type: string
        productModel:
          type: string
        verticalCategory:
          $ref: '#/components/schemas/RawOnlineStoreVerticalCategoryDto'
        tags:
          type: array
          items:
            $ref: '#/components/schemas/OnlineStoreProductTags'
        insurance:
          $ref: '#/components/schemas/ProductInsurance'
        subProducts:
          type: array
          items:
            $ref: '#/components/schemas/RawOnlineStoreSubProductDto'
        id:
          type: string
        name:
          type: string
        onlineStoreName:
          $ref: '#/components/schemas/LocalizedContent'
        imageUrl:
          type: array
          items:
            type: string
        videoLink:
          type: string
        description:
          $ref: '#/components/schemas/LocalizedContent'
        rank:
          type: number
        productSurveyId:
          type: string
        vat:
          type: number
        onlineAvailability:
          type: boolean
        isAvailable:
          type: boolean
        hideOnOnlineStore:
          type: boolean
      required:
      - type
      - priceModels
      - bailPrice
      - relatedProducts
      - isRelatedProduct
      - category
      - productModel
      - verticalCategory
      - tags
      - insurance
      - subProducts
      - id
      - name
      - onlineStoreName
      - imageUrl
      - videoLink
      - description
      - rank
      - productSurveyId
      - vat
      - onlineAvailability
      - isAvailable
      - hideOnOnlineStore
    CartItemDiscount:
      type: object
      properties:
        discountType:
          type: string
          enum:
          - AMOUNT
          - PERCENTAGE
        amount:
          type: number
      required:
      - discountType
      - amount
    CartCustomerField:
      type: object
      properties:
        id:
          type: string
        label:
          $ref: '#/components/schemas/LocalizedContent'
        value:
          type: string
      required:
      - id
      - label
      - value
    PackCategory:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        productModelId:
          type: string
        fieldId:
          type: string
      required:
      - id
      - name
      - productModelId
      - fieldId
    TulipInfos:
      type: object
      properties:
        address:
          type: string
        zipcode:
          type: string
        city:
          type: string
        managerFirstName:
          type: string
        managerLastName:
          type: string
        sirenNumber:
          type: string
      required:
      - address
      - zipcode
      - city
      - managerFirstName
      - managerLastName
      - sirenNumber
    CartRentalPoint:
      type: object
      properties:
        departure:
          type: string
        arrival:
          type: string
      required:
      - departure
      - arrival
    StripePaymentLongTermDepositType:
      type: string
      enum:
      - LONG_TERM_DEPOSIT
    RawOnlineStoreServiceDto:
      type: object
      properties:
        type:
          type: string
          default: service
          enum:
          - service
        priceModels:
          type: array
          items:
            oneOf:
            - $ref: '#/components/schemas/PriceModelSpecificDuration'
            - $ref: '#/components/schemas/PriceModelRangeDuration'
            - $ref: '#/components/schemas/PriceModelLLDDuration'
        category:
          type: string
        tags:
          type: array
          items:
            $ref: '#/components/schemas/OnlineStoreProductTags'
        isRelatedProducts:
          type: boolean
        relatedProducts:
          type: array
          items:
            type: string
        isAssuranceTulip:
          type: boolean
        productModel:
          type: string
        verticalCategory:
          $ref: '#/components/schemas/RawOnlineStoreVerticalCategoryDto'
        id:
          type: string
        name:
          type: string
        onlineStoreName:
          $ref: '#/components/schemas/LocalizedContent'
        imageUrl:
          type: array
          items:
            type: string
        videoLink:
          type: string
        description:
          $ref: '#/components/schemas/LocalizedContent'
        rank:
          type: number
        productSurveyId:
          type: string
        vat:
          type: number
        onlineAvailability:
          type: boolean
        isAvailable:
          type: boolean
        hideOnOnlineStore:
          type: boolean
      required:
      - type
      - priceModels
      - category
      - tags
      - isRelatedProducts
      - relatedProducts
      - isAssuranceTulip
      - productModel
      - verticalCategory
      - id
      - name
      - onlineStoreName
      - imageUrl
      - videoLink
      - description
      - rank
      - productSurveyId
      - vat
      - onlineAvailability
      - isAvailable
      - hideOnOnlineStore
    ProductModelLLDPrice:
      type: object
      properties:
        type:
          type: string
          default: LLD
          enum:
          - LLD
        label:
          $ref: '#/components/schemas/LocalizedContent'
        calendarMonths:
          type: number
        id:
          type: string
      required:
      - type
      - label
      - calendarMonths
      - id
    GetTulipProductInsuranceI

# --- truncated at 32 KB (114 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lokki/refs/heads/main/openapi/lokki-online-store-api-openapi.yml