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

# Roll over an expired Blanket Order to create a new order with selected items.

> ICKY-2647: Blanket Order Rollover

Source order must be in Expired status. Only Open items can be selected.
Creates a new Blanket Order in Open status with copied data:
- Customer Account ID
- Buyer and Seller contact information
- Price List Code
- Header and line item attributes



## OpenAPI

````yaml /openapi/openapi_commerce.json post /commerce/blanketorders/{sourceBlanketOrderId}/rollover
openapi: 3.0.1
info:
  description: |-
    <div id="overview_COMMERCE">
                <h2>COMMERCE</h2>
                <p>The Commerce API interacts with the commerce entities of your tenant, including shoppers's active shopping
                    carts, checkouts, submitted orders, wishlists, and returns as well as B2B quotes.</p>
                <p>Use the <strong>Carts</strong> resource to manage storefront shopping carts as shoppers add and remove items for purchase.
                    Each time a shopper's cart is modified, the Carts resource updates the estimated total with any
                    applicable
                    discounts.</p>
                <p>Use the <strong>Channels</strong> and <strong>Channel Groups</strong> resources to manage the channels a company uses to create logical
                    commercial business divisions based on region or types of sales, such as "US Online," "Amazon," or "EMEA
                    Retail."
                    All orders include a channel association that enables the company to perform financial reporting for
                    each defined channel.
                    Because channels are managed at the tenant level, you must associate all the tenant's sites with a
                    channel. Sites that do not
                    have a defined channel association cannot successfully submit orders.</p>
                <p>Use the <strong>Checkouts</strong> resource to track a shopper's order items and their intended destinations on sites that
                    have the multiple shipment feature enabled.</p>
                <p>Use the <strong>Orders</strong> resource to manage all components of order processing, payment, and order-level
                    fulfillment.</p>
                <p>Use the <strong>Quotes</strong> resource to support B2B functionality by managing order quotes, similar to wishlists.</p>
                <p>Use the <strong>Returns</strong> resource to manage returned items that were previously fufilled. Returns can include any
                    number of items associated with an original
                    order. Each return must either be associated with an original order or a product definition to represent
                    each returned item.</p>
                <p>Use the <strong>Wish Lists</strong> resource to manage the shopper wish lists of products associated with a customer
                    account. Although customer accounts are managed at the tenant
                    level, the system stores shopper wish lists at the site level. This enables the same customer to have
                    wish lists for each of a merchant's sites. The <strong>Wish List Items</strong>
                    resource allows you to manage the individual items in a wish list.</p>
            </div>
  title: Cart/Checkout/Quote
  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: []
paths:
  /commerce/blanketorders/{sourceBlanketOrderId}/rollover:
    post:
      tags:
        - BlanketOrder
      summary: >-
        Roll over an expired Blanket Order to create a new order with selected
        items.
      description: |-
        ICKY-2647: Blanket Order Rollover

        Source order must be in Expired status. Only Open items can be selected.
        Creates a new Blanket Order in Open status with copied data:
        - Customer Account ID
        - Buyer and Seller contact information
        - Price List Code
        - Header and line item attributes
      parameters:
        - in: path
          name: sourceBlanketOrderId
          required: true
          schema:
            type: string
        - description: limits which fields are returned in the response body
          in: query
          name: responseFields
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RolloverBlanketOrderRequest'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BlanketOrder'
            text/json:
              schema:
                $ref: '#/components/schemas/BlanketOrder'
            text/plain:
              schema:
                $ref: '#/components/schemas/BlanketOrder'
          description: OK
components:
  schemas:
    RolloverBlanketOrderRequest:
      description: |-
        Request DTO for rolling over an expired Blanket Order to a new order.
        Used by POST /blanketorders/{blanketOrderId}/rollover endpoint.
        ICKY-2647: Blanket Order Rollover
      properties:
        endDate:
          description: |-
            End date for the new Blanket Order's validity period.
            Must be after StartDate.
          format: date-time
          type: string
        selectedLineItemIds:
          description: |-
            Line item IDs to include in the new Blanket Order.
            Only Open status items are eligible for rollover.
          items:
            type: string
          nullable: true
          type: array
        startDate:
          description: Start date for the new Blanket Order's validity period.
          format: date-time
          type: string
      type: object
    BlanketOrder:
      description: >-
        Represents a contractual commitment between the seller and a B2B Account

        to supply goods at predetermined prices and quantities over a specified
        period.
      properties:
        attributes:
          description: Custom attributes at the header level.
          items:
            $ref: '#/components/schemas/BlanketOrderAttribute'
          nullable: true
          type: array
        auditInfo:
          $ref: '#/components/schemas/CoreApiContractsAuditInfo'
        availableActions:
          description: >-
            Available lifecycle actions from the current status. Populated on
            read.
          items:
            type: string
          nullable: true
          type: array
        buyerContact:
          $ref: '#/components/schemas/AlternateContact'
        canceledReason:
          $ref: '#/components/schemas/CanceledReason'
        cancelledDate:
          description: Date when the order was cancelled. System-supplied, read-only.
          format: date-time
          nullable: true
          type: string
        changeMessages:
          description: >-
            Change messages associated with this Blanket Order. Hydrated from a
            separate collection.
          items:
            $ref: '#/components/schemas/ChangeMessage'
          nullable: true
          type: array
        channelCode:
          description: Channel code for multi-channel context.
          nullable: true
          type: string
        currencyCode:
          description: Currency code (default "USD").
          nullable: true
          type: string
        customerAccountId:
          format: int32
          nullable: true
          type: integer
        data:
          description: Extensibility data bag for tenant-specific custom data.
          nullable: true
          type: object
        externalId:
          description: External reference identifier for integration with external systems.
          nullable: true
          type: string
        id:
          nullable: true
          type: string
        items:
          description: Product commitment Items for this Blanket Order.
          items:
            $ref: '#/components/schemas/BlanketOrderItem'
          nullable: true
          type: array
        notes:
          description: Internal notes for merchant use.
          items:
            $ref: '#/components/schemas/OrderNote'
          nullable: true
          type: array
        number:
          description: >-
            Auto-generated sequential Blanket Order number. System-supplied,
            read-only.
          format: int32
          nullable: true
          type: integer
        priceListCode:
          description: >-
            Price list code for pricing context. Resolved and locked at create.
            Immutable.
          nullable: true
          type: string
        pricingMode:
          description: >-
            Pricing mode: `Kibo` (default — prices resolved from catalog/price
            list) or

            `External` (caller-supplied prices stored as-is). Immutable after
            create.

            See Mozu.CommerceRuntime.Contracts.PricingModeConst.
          nullable: true
          type: string
        reservationMode:
          description: >-
            Reservation mode for this blanket order. Values: `NetworkLevel` |
            `CallOffLevel`

            (default). When `NetworkLevel`, the blanket's uncalled balance is
            tracked in a

            ledger used for network-wide ATS/ATP netting.

            Immutable after creation.
          nullable: true
          type: string
        sellerContact:
          $ref: '#/components/schemas/AlternateContact'
        siteId:
          format: int32
          type: integer
        status:
          description: Current status managed by the StatusEngine transition table.
          nullable: true
          type: string
        tenantId:
          format: int32
          type: integer
        userId:
          nullable: true
          type: string
        validityPeriod:
          $ref: '#/components/schemas/ValidityPeriod'
        version:
          description: Optimistic concurrency token. System-supplied.
          nullable: true
          type: string
      type: object
    BlanketOrderAttribute:
      description: |-
        Custom attribute for Blanket Orders, following the same pattern
        as OrderAttribute and ReturnAttribute.
        Inherits FullyQualifiedName, AttributeDefinitionId, and Values
        from AbstractAttribute.
      properties:
        attributeDefinitionId:
          format: int32
          nullable: true
          type: integer
        auditInfo:
          $ref: '#/components/schemas/CoreApiContractsAuditInfo'
        fullyQualifiedName:
          nullable: true
          type: string
        values:
          items: {}
          nullable: true
          type: array
      type: object
    CoreApiContractsAuditInfo:
      properties:
        createBy:
          nullable: true
          type: string
        createDate:
          format: date-time
          nullable: true
          type: string
        updateBy:
          nullable: true
          type: string
        updateDate:
          format: date-time
          nullable: true
          type: string
      type: object
    AlternateContact:
      properties:
        emailAddress:
          description: Email Address of alternate contact during order process
          format: email
          minLength: 1
          nullable: false
          type: string
        firstName:
          description: First Name of alternate contact during order process
          minLength: 1
          nullable: false
          type: string
        lastNameOrSurname:
          description: Last Name of alternate contact during order process
          minLength: 1
          nullable: false
          type: string
        phoneNumber:
          description: Phone Number of alternate contact during order process
          nullable: true
          pattern: ^[0-9]+$
          type: string
      type: object
    CanceledReason:
      allOf:
        - $ref: '#/components/schemas/Reason'
        - additionalProperties: false
          type: object
    ChangeMessage:
      description: >-
        A message displayed by the system based on the last  action, for
        example, when a product price has changed. System-supplied and
        read-only.
      properties:
        amount:
          deprecated: true
          description: Monetary amount that pertains to the change if applicable
          format: double
          nullable: true
          type: number
        appId:
          description: App Id that identifies the user that performed the related change
          nullable: true
          type: string
        appKey:
          description: App Key
          nullable: true
          type: string
        appName:
          description: App Name
          nullable: true
          type: string
        attributes:
          additionalProperties:
            nullable: true
          description: Additional Data. This property will be a Dictionary of objects.
          nullable: true
          type: object
        correlationId:
          description: Correlation Id
          nullable: true
          type: string
        createDate:
          description: When the message was created. System-supplied. Read-only.
          format: date-time
          nullable: true
          type: string
        id:
          description: Unique identifier of the  message. System-supplied. Read-only.
          nullable: true
          type: string
        identifier:
          description: >-
            Unique identifier to what the message pertains, which can be a cart
            item, cart or another generic entity. System-supplied. Read-only.
          nullable: true
          type: string
        message:
          description: Human readable message. System-supplied. Read-only.
          nullable: true
          type: string
        metadata:
          description: >-
            Data. This property will be a JSON array that will contain 0-N
            items, when there is 1 item it will still be an array containing
            only one item. System-supplied. Read-only.
          nullable: true
        newValue:
          deprecated: true
          description: Current price of the item. System-supplied. Read-only.
          nullable: true
          type: string
        oldValue:
          deprecated: true
          description: Original price of the item. System-supplied. Read-only.
          nullable: true
          type: string
        subject:
          description: >-
            Text on the subject line of the message, for example, the product
            name. System-supplied. Read-only.
          nullable: true
          type: string
        subjectType:
          description: >-
            Subject of the message, for example, "Product." System-supplied.
            Read-only.
          nullable: true
          type: string
        success:
          description: Indicates if the message is related to a success or failure.
          nullable: true
          type: boolean
        userFirstName:
          description: User First Name
          nullable: true
          type: string
        userId:
          description: User Id that identifies the user that performed the related change
          nullable: true
          type: string
        userLastName:
          description: User Last Name
          nullable: true
          type: string
        userScopeType:
          description: User Type (e.g. Shopper, Admin, etc.)
          nullable: true
          type: string
        verb:
          description: >-
            Action applicable to the message. This can be "Increased," when the
            product price has increased, "Decreased," when the 

            product price has decreased, and "Invalidated," when the product is
            no longer available. System-supplied. Read-only.
          nullable: true
          type: string
      type: object
    BlanketOrderItem:
      description: |-
        A single product commitment within a Blanket Order.
        Each line tracks its own lifecycle independently.
      properties:
        attributes:
          description: >-
            Line-level extensible attributes. Use
            Mozu.CommerceRuntime.Contracts.BlanketOrders.BlanketOrderAttribute
            on

            `BlanketOrder.Attributes` for header-level attributes.
          items:
            $ref: '#/components/schemas/BlanketOrderItemAttribute'
          nullable: true
          type: array
        auditInfo:
          $ref: '#/components/schemas/CoreApiContractsAuditInfo'
        consumedQuantity:
          description: Total quantity consumed by call-off orders. System-managed.
          format: int32
          type: integer
        id:
          description: Unique identifier for this line. System-supplied.
          nullable: true
          type: string
        lineId:
          description: Auto-assigned sequential line number within the order.
          format: int32
          nullable: true
          type: integer
        product:
          $ref: '#/components/schemas/BlanketOrderProductReference'
        quantity:
          description: Total committed quantity for this product line.
          format: int32
          type: integer
        remainingQuantity:
          description: >-
            Remaining available quantity (Quantity - ConsumedQuantity).
            System-managed.
          format: int32
          type: integer
        reservedQuantity:
          description: >-
            Quantity currently reserved by active call-off allocations against
            this blanket item.

            System-managed; not client-settable. Updated only via the internal
            consumption/

            restoration ledger (BlanketOrderHandler.ConsumeAsync/RestoreAsync).
          format: int32
          type: integer
        status:
          description: Current line status managed by the line-level transition table.
          nullable: true
          type: string
        unitPrice:
          description: Agreed unit price for this product line.
          format: double
          type: number
        unreservedQuantity:
          description: >-
            Computed: Quantity - ReservedQuantity. The blanket's balance not yet
            reserved by

            call-off allocations. Not persisted.
          format: int32
          readOnly: true
          type: integer
      type: object
    OrderNote:
      description: >-
        Internal notes that a merchant may add to the order. Maximum 250
        characters.
      properties:
        auditInfo:
          $ref: '#/components/schemas/CoreApiContractsAuditInfo'
        id:
          description: Unique identifier of the note. System-supplied and read-only.
          nullable: true
          type: string
        text:
          description: Text of the note. Maximum 250 characters.
          maxLength: 500
          nullable: false
          type: string
      type: object
    ValidityPeriod:
      description: >-
        Represents the validity window for a Blanket Order.

        Call-off orders can only be placed while the current date is within this
        period.
      properties:
        endDate:
          description: End date of the validity period. Must be after StartDate.
          format: date-time
          type: string
        startDate:
          description: >-
            Start date of the validity period. Must be today or in the future on
            creation.
          format: date-time
          type: string
      type: object
    Reason:
      properties:
        description:
          nullable: true
          type: string
        moreInfo:
          nullable: true
          type: string
        reasonCode:
          nullable: true
          type: string
      type: object
    BlanketOrderItemAttribute:
      description: >-
        Attribute instance on a Blanket Order line item.

        Separate from
        Mozu.CommerceRuntime.Contracts.BlanketOrders.BlanketOrderAttribute
        (header-level) for type safety

        and to allow consumers to distinguish header vs line attributes.
      properties:
        attributeDefinitionId:
          format: int32
          nullable: true
          type: integer
        auditInfo:
          $ref: '#/components/schemas/CoreApiContractsAuditInfo'
        fullyQualifiedName:
          nullable: true
          type: string
        values:
          items: {}
          nullable: true
          type: array
      type: object
    BlanketOrderProductReference:
      description: |-
        Lightweight product identity for Blanket Order Items.
        Extended fields are stamped from the catalog at blanket creation
        and carried through to consumption tracking and call-off integration.
      properties:
        bundledProducts:
          description: >-
            Bundle component lines. Populated only when
            Mozu.CommerceRuntime.Contracts.BlanketOrders.ProductReference.ProductUsage
            is "Bundle".

            Stamped at create. Immutable.
          items:
            $ref: '#/components/schemas/BundledProduct'
          nullable: true
          type: array
        combinedProductCode:
          description: >-
            Returns VariationProductCode if not null/whitespace, otherwise
            ProductCode.

            This value is computed on the domain model and mapped directly to
            the contract

            via Mapster convention-based mapping — no recalculation on the
            contract side.

            UI should use the items.product.combinedproductcode filter for
            variation-aware

            product searches instead of items.product.productcode.
          nullable: true
          type: string
        fulfillmentTypesSupported:
          description: >-
            Fulfillment types the product supports (e.g. "Shipping", "Pickup").
            Stamped from

            the catalog at blanket create. Immutable.
          items:
            type: string
          nullable: true
          type: array
        goodsType:
          description: >-
            Goods type (e.g. "Physical", "Digital", "Service"). Routes shipment
            creation.

            Stamped at create. Immutable.
          nullable: true
          type: string
        isBundle:
          description: >-
            Indicates if this product is a bundle (ProductUsage="Bundle" and has
            bundled products).
          readOnly: true
          type: boolean
        name:
          description: Product display name.
          nullable: true
          type: string
        options:
          description: >-
            Configurable option selections for this variant. Stamped at create.
            Immutable.
          items:
            $ref: '#/components/schemas/ProductOption'
          nullable: true
          type: array
        productCode:
          description: Product code used for identification.
          nullable: true
          type: string
        productUsage:
          description: >-
            Product usage type (e.g., "simple", "collection",
            "bundle_component", "Configurable").

            Used to enforce product eligibility rules for blanket orders.
          nullable: true
          type: string
        variationProductCode:
          description: >-
            For configurable products, the unique identifier of the product
            variation.

            Either ProductCode or VariationProductCode must be provided.
          nullable: true
          type: string
      type: object
    BundledProduct:
      description: Describes products that are bundled inside of a main bundle product.
      properties:
        allocationExpiration:
          description: Allocation ID associated with this product on this order.
          format: date-time
          nullable: true
          type: string
        allocationId:
          description: Allocation ID associated with this product on this order.
          format: int32
          nullable: true
          type: integer
        creditValue:
          description: >-
            Credit value.  Only populated if the bundled product is a gift card
            or digital credit
          format: double
          nullable: true
          type: number
        deltaPrice:
          description: Only populated for extras
          format: double
          nullable: true
          type: number
        description:
          description: >-
            Short description of the product in the language specified by
            LocaleCode.
          nullable: true
          type: string
        fulfillmentStatus:
          description: Fulfillment status of the product.
          nullable: true
          type: string
        goodsType:
          description: Goods Type
          nullable: true
          type: string
        imageUrl:
          description: ImageUrl of product
          nullable: true
          type: string
        isPackagedStandAlone:
          description: Indicates that this product ships by itself.
          type: boolean
        measurements:
          $ref: '#/components/schemas/PackageMeasurements'
        name:
          description: >-
            Name of the product, this is the current value of the product's name
            in the language specified by LocaleCode.
          nullable: true
          type: string
        optionAttributeFQN:
          description: Fully Qualified Name of the selected option's attribute
          nullable: true
          type: string
        optionValue:
          description: Value of the selected option
          nullable: true
        productCode:
          description: Merchant-created code that uniquely identifies the product.
          nullable: true
          type: string
        productReservationId:
          description: Reservation ID associated with this product in the bundle.
          format: int32
          nullable: true
          type: integer
        quantity:
          description: Quantity of the product included in the bundle.
          format: int32
          type: integer
        stock:
          $ref: '#/components/schemas/ProductStock'
      type: object
    ProductOption:
      description: >-
        Product option for the product listed on this order item. If the product
        contains 

        configurable or stand-alone options, this is a product option that the
        shopper has selected.
      properties:
        attributeFQN:
          description: Value of the product option.
          nullable: true
          type: string
        dataType:
          description: Value of the product option.
          nullable: true
          type: string
        name:
          description: >-
            Name of the product option that appears with the order item in the
            language specified by LocaleCode.
          nullable: true
          type: string
        shopperEnteredValue:
          description: >-
            The value entered by the shopper if this is an option that requires
            shopper input, for example, a monogram.
          nullable: true
        stringValue:
          description: Value of the product option.
          nullable: true
          type: string
        value:
          description: Value of the product option.
          nullable: true
      type: object
    PackageMeasurements:
      description: >-
        Physical dimensions of the package required to ship the product and its
        weight.
      properties:
        height:
          $ref: '#/components/schemas/Measurement'
        length:
          $ref: '#/components/schemas/Measurement'
        weight:
          $ref: '#/components/schemas/Measurement'
        width:
          $ref: '#/components/schemas/Measurement'
      type: object
    ProductStock:
      properties:
        aggregateInventory:
          format: int32
          nullable: true
          type: integer
        availableDate:
          format: date-time
          nullable: true
          type: string
        availableFutureInventories:
          format: int32
          nullable: false
          readOnly: true
          type: integer
        futureInventories:
          items:
            $ref: '#/components/schemas/FutureInventory'
          nullable: true
          type: array
        isOnBackOrder:
          nullable: false
          type: boolean
        isSubstitutable:
          nullable: true
          type: boolean
        manageStock:
          nullable: false
          type: boolean
        stockAvailable:
          format: int32
          nullable: true
          type: integer
        totalAvailableStock:
          format: int32
          nullable: false
          readOnly: true
          type: integer
      type: object
    Measurement:
      properties:
        unit:
          nullable: true
          type: string
        value:
          format: double
          nullable: true
          type: number
      type: object
    FutureInventory:
      properties:
        allocated:
          format: int32
          nullable: true
          type: integer
        available:
          format: int32
          nullable: true
          type: integer
        createDate:
          format: date-time
          nullable: true
          type: string
        deliveryDate:
          format: date-time
          nullable: true
          type: string
        futureInventoryID:
          format: int32
          nullable: true
          type: integer
        onhand:
          format: int32
          nullable: true
          type: integer
        pending:
          format: int32
          nullable: true
          type: integer
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      description: JWT Authorization header using the Bearer scheme.
      scheme: bearer
      type: http

````