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

# Create Scenario

> Create Scenario



## OpenAPI

````yaml /openapi/openapi_orderrouting.json post /commerce/orders/orderrouting/api/v1/strategies/{strategyID}/scenarios
openapi: 3.0.1
info:
  description: |-
    <div id="overview_ORDERROUTING">
                <h2>ORDER ROUTING</h2>
                <p>Although the <a href="/developer-guides/order-routing">Order Routing
                        interface</a> is the best place to configure order routing rules, some
                    aspects of routing can be managed through REST API calls when convenient.</p>
                <p>Use the <strong>Data List</strong> resource to define the cases for which routing filters are applied.</p>
                <p>Use the <strong>Routing Filter</strong> resource to configure sets of rules that filter out fulfillers that do not match given order criteria.</p>
                <p>Use the <strong>Routing Group</strong> resource to manage and sort location groups specifically in context of routing
                    preferences.</p>
                <p>Use the general <strong>Routing</strong> resource to test your order routing configurations, such as by retrieving a list of eligible fulfillers for a certain order based on set
                    routing rules or obtain a log of order routing decisions.</p>
            </div>
  title: Order Routing
  version: 0.0.1
servers:
  - description: Kibo Base URL
    url: '{baseUrl}/api'
    variables:
      baseUrl:
        default: https://t1000000.sb.usc1.gcp.kibocommerce.com
        description: Base URL
security:
  - bearerAuth: []
tags:
  - description: Classic UI API - Tenant-level routing configuration
    name: OrderRoutingTenant
  - description: Classic UI API - Manage custom data lists
    name: OrderRoutingDataList
  - description: Classic UI API - Order Routing Settings configuration
    name: OrderRoutingSettings
  - description: New UI API - Manage routing scenarios
    name: OrderRoutingScenario
  - description: Classic UI API - Location information
    name: OrderRoutingLocation
  - description: Classic UI API - Environment configuration
    name: OrderRoutingEnvironment
  - description: New UI API - Export and import strategies
    name: OrderRoutingStrategyExport
  - description: Classic UI API - Post-routing actions
    name: OrderRoutingAfterAction
  - description: New UI API - Filter data for routing scenarios
    name: OrderRoutingFilterData
  - description: New UI API - Manage routing strategies
    name: OrderRoutingStrategy
  - description: New UI API - Manage custom data lists for filtering
    name: OrderRoutingCustomDataList
  - description: Classic UI API - Manage routing groups
    name: OrderRoutingGroup
  - description: Classic UI API - Configure sorting rules
    name: OrderRoutingSort
  - description: Classic UI API - Routing testing and debugging
    name: Routing
  - description: New UI API - Estimated delivery date routing
    name: OrderRoutingEDD
  - description: Classic UI API - Site-specific routing configuration
    name: OrderRoutingSite
  - description: Classic UI API - Configure routing filters
    name: OrderRoutingFilter
paths:
  /commerce/orders/orderrouting/api/v1/strategies/{strategyID}/scenarios:
    post:
      tags:
        - OrderRoutingScenario
      summary: Create Scenario
      description: Create Scenario
      parameters:
        - in: header
          name: x-vol-tenant
          required: true
          schema:
            format: int32
            type: integer
        - in: header
          name: x-vol-site
          required: true
          schema:
            format: int32
            type: integer
        - in: path
          name: strategyID
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpsertScenarioRequest'
        required: true
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ScenarioResponse'
          description: OK
        '400':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Bad Request
        '403':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Forbidden
        '409':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Conflict
        '410':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Gone
        '500':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/APIErrorResponse'
          description: Internal Server Error
components:
  schemas:
    UpsertScenarioRequest:
      properties:
        active:
          type: boolean
        defaultGroup:
          type: boolean
        description:
          type: string
        filterLogicalGroups:
          items:
            $ref: '#/components/schemas/ScenarioFilterLogicalGroupUpsertRequest'
          type: array
        filters:
          items:
            $ref: '#/components/schemas/ScenarioFilterUpsertRequest'
          type: array
        locations:
          items:
            type: string
          type: array
        name:
          type: string
        noMatch:
          enum:
            - LINE_ITEM_SPLIT_ASSIGN_IF_FULFILLED
            - LINE_ITEM_SPLIT_CANCEL_WITHOUT_INVENTORY
            - QUANTITY_SPLIT_ASSIGN_IF_FULFILLED
            - QUANTITY_SPLIT_CANCEL_WITHOUT_INVENTORY
            - CANCEL_ORDER
            - ASSIGN_TO_CUSTOMER_CARE
            - ASSIGN_TO_GROUP
            - LINE_ITEM_SPLIT_ASSIGN_CUSTOMER_CARE_WITHOUT_INVENTORY
            - QUANTITY_SPLIT_ASSIGN_CUSTOMER_CARE_WITHOUT_INVENTORY
            - SEND_ORDER_TO_BIDDING
            - LINE_ITEM_SPLIT_BACKORDER_WITHOUT_INVENTORY
            - QUANTITY_SPLIT_BACKORDER_WITHOUT_INVENTORY
            - ASSIGN_TO_BACKORDER
          type: string
        partialMatch:
          enum:
            - LINE_ITEM_SPLIT_ASSIGN_IF_FULFILLED
            - LINE_ITEM_SPLIT_CANCEL_WITHOUT_INVENTORY
            - QUANTITY_SPLIT_ASSIGN_IF_FULFILLED
            - QUANTITY_SPLIT_CANCEL_WITHOUT_INVENTORY
            - CANCEL_ORDER
            - ASSIGN_TO_CUSTOMER_CARE
            - ASSIGN_TO_GROUP
            - LINE_ITEM_SPLIT_ASSIGN_CUSTOMER_CARE_WITHOUT_INVENTORY
            - QUANTITY_SPLIT_ASSIGN_CUSTOMER_CARE_WITHOUT_INVENTORY
            - SEND_ORDER_TO_BIDDING
            - LINE_ITEM_SPLIT_BACKORDER_WITHOUT_INVENTORY
            - QUANTITY_SPLIT_BACKORDER_WITHOUT_INVENTORY
            - ASSIGN_TO_BACKORDER
          type: string
        primarySorting:
          enum:
            - RANK
            - DISTANCE
            - LTD
            - COST
            - RANDOM
            - DATA_SET
            - LOWEST_AVAILABLE
            - HIGHEST_AVAILABLE
            - EXCESS_COUNT
            - EXCESS_PERCENTAGE
          type: string
        restartAttemptForNoMatch:
          enum:
            - START_AT_BEGINNING
            - CURRENT_GROUP
            - GROUP_RANK
          type: string
        restartAttemptForPartialAssignment:
          enum:
            - START_AT_BEGINNING
            - CURRENT_GROUP
            - GROUP_RANK
          type: string
        restartGroupIdForNoMatch:
          format: int32
          type: integer
        restartGroupIdForPartialAssignment:
          format: int32
          type: integer
        secondarySorting:
          enum:
            - RANK
            - DISTANCE
            - LTD
            - COST
            - RANDOM
            - DATA_SET
            - LOWEST_AVAILABLE
            - HIGHEST_AVAILABLE
            - EXCESS_COUNT
            - EXCESS_PERCENTAGE
          type: string
        unselectedLocations:
          items:
            type: string
          type: array
      required:
        - name
      type: object
    ScenarioResponse:
      properties:
        active:
          type: boolean
        defaultGroup:
          type: boolean
        description:
          type: string
        filterLogicalGroups:
          items:
            $ref: '#/components/schemas/ScenarioFilterLogicalGroupResponse'
          type: array
        filters:
          items:
            $ref: '#/components/schemas/ScenarioFilterResponse'
          type: array
        locations:
          items:
            type: string
          type: array
        name:
          type: string
        noMatch:
          enum:
            - LINE_ITEM_SPLIT_ASSIGN_IF_FULFILLED
            - LINE_ITEM_SPLIT_CANCEL_WITHOUT_INVENTORY
            - QUANTITY_SPLIT_ASSIGN_IF_FULFILLED
            - QUANTITY_SPLIT_CANCEL_WITHOUT_INVENTORY
            - CANCEL_ORDER
            - ASSIGN_TO_CUSTOMER_CARE
            - ASSIGN_TO_GROUP
            - LINE_ITEM_SPLIT_ASSIGN_CUSTOMER_CARE_WITHOUT_INVENTORY
            - QUANTITY_SPLIT_ASSIGN_CUSTOMER_CARE_WITHOUT_INVENTORY
            - SEND_ORDER_TO_BIDDING
            - LINE_ITEM_SPLIT_BACKORDER_WITHOUT_INVENTORY
            - QUANTITY_SPLIT_BACKORDER_WITHOUT_INVENTORY
            - ASSIGN_TO_BACKORDER
          type: string
        partialMatch:
          enum:
            - LINE_ITEM_SPLIT_ASSIGN_IF_FULFILLED
            - LINE_ITEM_SPLIT_CANCEL_WITHOUT_INVENTORY
            - QUANTITY_SPLIT_ASSIGN_IF_FULFILLED
            - QUANTITY_SPLIT_CANCEL_WITHOUT_INVENTORY
            - CANCEL_ORDER
            - ASSIGN_TO_CUSTOMER_CARE
            - ASSIGN_TO_GROUP
            - LINE_ITEM_SPLIT_ASSIGN_CUSTOMER_CARE_WITHOUT_INVENTORY
            - QUANTITY_SPLIT_ASSIGN_CUSTOMER_CARE_WITHOUT_INVENTORY
            - SEND_ORDER_TO_BIDDING
            - LINE_ITEM_SPLIT_BACKORDER_WITHOUT_INVENTORY
            - QUANTITY_SPLIT_BACKORDER_WITHOUT_INVENTORY
            - ASSIGN_TO_BACKORDER
          type: string
        primarySorting:
          enum:
            - RANK
            - DISTANCE
            - LTD
            - COST
            - RANDOM
            - DATA_SET
            - LOWEST_AVAILABLE
            - HIGHEST_AVAILABLE
            - EXCESS_COUNT
            - EXCESS_PERCENTAGE
          type: string
        rank:
          format: int32
          type: integer
        restartAttemptForNoMatch:
          enum:
            - START_AT_BEGINNING
            - CURRENT_GROUP
            - GROUP_RANK
          type: string
        restartAttemptForPartialAssignment:
          enum:
            - START_AT_BEGINNING
            - CURRENT_GROUP
            - GROUP_RANK
          type: string
        restartGroupIdForNoMatch:
          format: int32
          type: integer
        restartGroupIdForPartialAssignment:
          format: int32
          type: integer
        scenarioID:
          format: int32
          type: integer
        secondarySorting:
          enum:
            - RANK
            - DISTANCE
            - LTD
            - COST
            - RANDOM
            - DATA_SET
            - LOWEST_AVAILABLE
            - HIGHEST_AVAILABLE
            - EXCESS_COUNT
            - EXCESS_PERCENTAGE
          type: string
        strategyID:
          type: string
        unselectedLocations:
          items:
            type: string
          type: array
      type: object
    APIErrorResponse:
      properties:
        additionalInfo:
          type: string
        errorMessage:
          type: string
      type: object
    ScenarioFilterLogicalGroupUpsertRequest:
      properties:
        filterLogicalGroupID:
          format: int32
          type: integer
        logicalOperator:
          enum:
            - AND
            - OR
          type: string
        orderIndex:
          format: int32
          type: integer
        parentOrderIndex:
          format: int32
          type: integer
      required:
        - logicalOperator
        - orderIndex
      type: object
    ScenarioFilterUpsertRequest:
      properties:
        booleanOperator:
          enum:
            - filter.logic.equal
            - filter.logic.not.equal
            - filter.logic.greater.than
            - filter.logic.less.than
            - filter.logic.greater.or.equal
            - filter.logic.less.or.equal
            - filter.logic.in
            - filter.logic.not.in
            - filter.logic.between
            - filter.logic.starts.with
            - filter.logic.ends.with
            - filter.logic.contains
            - filter.logic.does.not.contain
            - filter.logic.equal
            - filter.logic.not.equal
            - filter.logic.in
            - filter.logic.not.in
            - filter.logic.subset
          type: string
        changed:
          type: boolean
        customValue:
          type: object
        customValueUnit:
          type: string
        dataListID:
          format: int32
          type: integer
        dataPointAttributePath:
          type: string
        dataPointExtensibleAttributeFQN:
          type: string
        dataPointExtensibleAttributeName:
          type: string
        dataPointExtensibleAttributeType:
          type: string
        extensibleAttributeFQN:
          type: string
        extensibleAttributeName:
          type: string
        filterAttributePath:
          type: string
        filterID:
          format: int32
          type: integer
        filterLogicalGroupOrderIndex:
          format: int32
          type: integer
        filterType:
          enum:
            - filter.type.customValue
            - filter.type.customDataList
            - filter.type.dataSet
            - filter.type.dataPoint
          type: string
        isDataPointExtensible:
          type: boolean
        isExtensible:
          type: boolean
        itemCustomAttributeName:
          type: string
        name:
          maxLength: 255
          minLength: 0
          type: string
        orderIndex:
          format: int32
          type: integer
      required:
        - booleanOperator
        - filterAttributePath
        - filterLogicalGroupOrderIndex
        - filterType
        - name
        - orderIndex
      type: object
    ScenarioFilterLogicalGroupResponse:
      properties:
        filterLogicalGroupID:
          format: int32
          type: integer
        isRootGroup:
          type: boolean
        logicalOperator:
          enum:
            - AND
            - OR
          type: string
        orderIndex:
          format: int32
          type: integer
        parentOrderIndex:
          format: int32
          type: integer
        scenarioID:
          format: int32
          type: integer
      type: object
    ScenarioFilterResponse:
      properties:
        booleanOperator:
          enum:
            - filter.logic.equal
            - filter.logic.not.equal
            - filter.logic.greater.than
            - filter.logic.less.than
            - filter.logic.greater.or.equal
            - filter.logic.less.or.equal
            - filter.logic.in
            - filter.logic.not.in
            - filter.logic.between
            - filter.logic.starts.with
            - filter.logic.ends.with
            - filter.logic.contains
            - filter.logic.does.not.contain
            - filter.logic.equal
            - filter.logic.not.equal
            - filter.logic.in
            - filter.logic.not.in
            - filter.logic.subset
          type: string
        customValue:
          type: object
        customValueUnit:
          type: string
        dataListID:
          format: int32
          type: integer
        dataPointAttributePath:
          type: string
        dataPointExtensibleAttributeFQN:
          type: string
        dataPointExtensibleAttributeName:
          type: string
        dataPointExtensibleAttributeType:
          type: string
        extensibleAttributeFQN:
          type: string
        extensibleAttributeName:
          type: string
        filterAttributePath:
          type: string
        filterID:
          format: int32
          type: integer
        filterLogicalGroupOrderIndex:
          format: int32
          type: integer
        filterType:
          enum:
            - filter.type.customValue
            - filter.type.customDataList
            - filter.type.dataSet
            - filter.type.dataPoint
          type: string
        isDataPointExtensible:
          type: boolean
        isExtensible:
          type: boolean
        itemCustomAttributeName:
          type: string
        name:
          type: string
        orderIndex:
          format: int32
          type: integer
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      description: JWT Authorization header using the Bearer scheme.
      scheme: bearer
      type: http

````