Virto Commerce · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for VirtoCommerce.Orders Order Management API

36 actions 36 updates phrasing extends openapi/virto-commerce-order-management-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Virto Commerce's API. It is a proposal applied on top of the contract, not a document Virto Commerce publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 36 · first 16 shown; the file carries all of them

$.info
$.paths['/api/order/customerOrders/search'].post
$.paths['/api/order/customerOrders/number/{number}'].get
$.paths['/api/order/customerOrders/{id}'].get
$.paths['/api/order/customerOrders/{id}'].patch
$.paths['/api/order/customerOrders/outer/{outerId}'].get
$.paths['/api/order/customerOrders/recalculate'].put
$.paths['/api/order/customerOrders/{orderId}/processPayment/{paymentId}'].post
$.paths['/api/order/customerOrders/{cartId}'].post
$.paths['/api/order/customerOrders'].put
$.paths['/api/order/customerOrders'].post
$.paths['/api/order/customerOrders'].delete
$.paths['/api/order/customerOrders/{id}/shipments/new'].get
$.paths['/api/order/customerOrders/{id}/payments/new'].get
$.paths['/api/order/dashboardStatistics/settings'].get
$.paths['/api/order/dashboardStatistics'].get

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for VirtoCommerce.Orders Order Management API
  version: 1.0.0
extends: openapi/virto-commerce-order-management-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-09-26'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 35
- target: $.paths['/api/order/customerOrders/search'].post
  update:
    x-apievangelist-phrasing:
      intent: Search customer orders
      effect: read
      questions:
      - How do I find all orders placed by one customer?
      - Can I filter orders by status and a date range?
      - Which orders used a particular promotion or contain a given product?
      instructions:
      - text: Search orders placed by customer {customerId}.
        slots:
          customerId: requestBody.customerId
      - text: Find orders with status {status} created between {startDate} and {endDate}.
        slots:
          status: requestBody.status
          startDate: requestBody.startDate
          endDate: requestBody.endDate
      - text: List orders for organization {organizationId} that include product {productId}.
        slots:
          organizationId: requestBody.organizationId
          productId: requestBody.productId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/customerOrders/number/{number}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an order by its order number
      effect: read
      questions:
      - Can I look up an order using the order number the customer gave me?
      - What comes back when fetching an order by its human-readable number?
      instructions:
      - text: Get order number {number}.
        slots:
          number: path.number
      - text: Look up the customer order with number {number}.
        slots:
          number: path.number
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/customerOrders/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an order by ID
      effect: read
      questions:
      - How do I load a customer order with all its shipments and payments by internal ID?
      - Does fetching an order by ID return null when it doesn't exist?
      instructions:
      - text: Get customer order {id}.
        slots:
          id: path.id
      - text: Load order {id} with response group {respGroup}.
        slots:
          id: path.id
          respGroup: query.respGroup
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/customerOrders/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Partially update an order
      effect: write
      questions:
      - Can I change a single field on an order without resending the whole document?
      - What is the way to JSON-patch a customer order?
      instructions:
      - text: Patch order {id} with only the changed fields.
        slots:
          id: path.id
      - text: Apply a partial update to customer order {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/customerOrders/outer/{outerId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an order by external ID
      effect: read
      questions:
      - Can I find an order using the ID from my ERP or external system?
      - Which lookup works when I only have an order's outer ID?
      instructions:
      - text: Get the order with external ID {outerId}.
        slots:
          outerId: path.outerId
      - text: Find the customer order whose outer ID is {outerId}.
        slots:
          outerId: path.outerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/customerOrders/recalculate'].put
  update:
    x-apievangelist-phrasing:
      intent: Recalculate order totals
      effect: read
      questions:
      - How do I get updated totals after editing items on an order?
      - Can I preview recalculated order totals before saving?
      instructions:
      - text: Recalculate totals for order {number}.
        slots:
          number: requestBody.number
      - text: Return this order with its totals recalculated.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/customerOrders/{orderId}/processPayment/{paymentId}'].post
  update:
    x-apievangelist-phrasing:
      intent: Process an order payment with the gateway
      effect: write
      questions:
      - How do I push an order's payment through the external payment system?
      - Can I pass bank card details when registering an order payment at checkout?
      instructions:
      - text: Process payment {paymentId} for order {orderId}.
        slots:
          paymentId: path.paymentId
          orderId: path.orderId
      - text: Charge payment {paymentId} on order {orderId} using the card held by {cardholderName}.
        slots:
          paymentId: path.paymentId
          orderId: path.orderId
          cardholderName: requestBody.cardholderName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/customerOrders/{cartId}'].post
  update:
    x-apievangelist-phrasing:
      intent: Turn a shopping cart into an order
      effect: write
      questions:
      - How do I convert a customer's cart into a placed order?
      - Can I check out a cart by its ID to create the order?
      instructions:
      - text: Create an order from cart {cartId}.
        slots:
          cartId: path.cartId
      - text: Check out shopping cart {cartId} into a customer order.
        slots:
          cartId: path.cartId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/customerOrders'].put
  update:
    x-apievangelist-phrasing:
      intent: Update an existing order
      effect: write
      questions:
      - How do I change the status of an order that already exists?
      - Can I add a purchase order number to an existing order?
      instructions:
      - text: Set the status of existing order {number} to {status}.
        slots:
          number: requestBody.number
          status: requestBody.status
      - text: Add purchase order number {purchaseOrderNumber} to existing order {number}.
        slots:
          purchaseOrderNumber: requestBody.purchaseOrderNumber
          number: requestBody.number
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/customerOrders'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an order directly
      effect: write
      questions:
      - Can I create an order from scratch without a shopping cart?
      - What is needed to enter a manual order for a customer in a store?
      instructions:
      - text: Create a new order for customer {customerId} in store {storeId}.
        slots:
          customerId: requestBody.customerId
          storeId: requestBody.storeId
      - text: Enter a manual order in {currency} for customer {customerName}.
        slots:
          currency: requestBody.currency
          customerName: requestBody.customerName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/customerOrders'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete customer orders
      effect: destructive
      questions:
      - How do I permanently delete orders?
      - Can several customer orders be deleted at once?
      instructions:
      - text: Delete orders {ids}.
        slots:
          ids: query.ids
      - text: Remove the customer orders with IDs {ids} entirely.
        slots:
          ids: query.ids
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/customerOrders/{id}/shipments/new'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a prefilled new shipment for an order
      effect: read
      questions:
      - Is there a template shipment with required fields filled for a given order?
      - How do I start a new shipment document for an order?
      instructions:
      - text: Get a new shipment template for order {id}.
        slots:
          id: path.id
      - text: Prepare a blank shipment for customer order {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/customerOrders/{id}/payments/new'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a prefilled new payment for an order
      effect: read
      questions:
      - Is there a template payment with required fields filled in for an order?
      - How do I start a new payment document on an order?
      instructions:
      - text: Get a new payment template for order {id}.
        slots:
          id: path.id
      - text: Prepare a blank payment for customer order {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/dashboardStatistics/settings'].get
  update:
    x-apievangelist-phrasing:
      intent: Get order dashboard statistics settings
      effect: read
      questions:
      - What settings drive the order statistics dashboard?
      - Where can I see how the Commerce Manager dashboard stats are configured?
      instructions:
      - text: Get the order dashboard statistics settings.
      - text: Show the configuration for order dashboard stats.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/dashboardStatistics'].get
  update:
    x-apievangelist-phrasing:
      intent: Get order statistics for a period
      effect: read
      questions:
      - What were my order totals and statistics for last month?
      - Can I pull order dashboard figures for a custom date range?
      instructions:
      - text: Get order statistics from {start} to {end}.
        slots:
          start: query.start
          end: query.end
      - text: Show the Commerce Manager order dashboard numbers.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/paymentcallback'].post
  update:
    x-apievangelist-phrasing:
      intent: Receive a payment callback as key-value parameters
      effect: write
      questions:
      - Where does a payment provider post its callback parameters as JSON key-value pairs?
      - Which callback endpoint accepts a parameters array after a payment?
      instructions:
      - text: Post these payment callback parameters {parameters} to finish processing.
        slots:
          parameters: requestBody.parameters
      - text: Send the gateway's key-value callback to post-process the payment.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/paymentcallback-raw'].post
  update:
    x-apievangelist-phrasing:
      intent: Receive a raw-body payment callback
      effect: write
      questions:
      - Which callback URL takes the payment provider's raw request body unchanged?
      - Can a gateway notify the store with an unparsed raw payload?
      instructions:
      - text: Forward this raw gateway payload to the raw payment callback.
      - text: Post-process the payment using the raw callback body.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/paymentcallback-form'].post
  update:
    x-apievangelist-phrasing:
      intent: Receive a form-encoded payment callback
      effect: write
      questions:
      - Which callback endpoint handles a form-posted payment notification?
      - Can a gateway that submits HTML form data report payment results?
      instructions:
      - text: Submit this form-encoded payment notification to the form callback.
      - text: Post-process the payment from the gateway's form post.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/customerOrders/invoice/{orderNumber}'].get
  update:
    x-apievangelist-phrasing:
      intent: Download an order invoice PDF
      effect: read
      questions:
      - How do I get a PDF invoice for an order?
      - Can I download an invoice using just the order number?
      instructions:
      - text: Download the invoice PDF for order {orderNumber}.
        slots:
          orderNumber: path.orderNumber
      - text: Get the invoice for order number {orderNumber}.
        slots:
          orderNumber: path.orderNumber
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/customerOrders/{id}/changes'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the change history of an order
      effect: read
      questions:
      - What changes have been made to a specific order over time?
      - Who edited this order and when?
      instructions:
      - text: Show the change history of order {id}.
        slots:
          id: path.id
      - text: List every change logged on customer order {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/customerOrders/searchChanges'].post
  update:
    x-apievangelist-phrasing:
      intent: Search order change logs
      effect: read
      questions:
      - Can I search order changes across a date range?
      - Which order edits of a certain operation type happened last week?
      instructions:
      - text: Search order changes between {startDate} and {endDate}.
        slots:
          startDate: requestBody.startDate
          endDate: requestBody.endDate
      - text: Find changes of type {operationTypes} on order {orderId}.
        slots:
          operationTypes: requestBody.operationTypes
          orderId: requestBody.orderId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/customerOrders/indexed/searchEnabled'].get
  update:
    x-apievangelist-phrasing:
      intent: Check if indexed order search is enabled
      effect: read
      questions:
      - Is full-text indexed search turned on for orders?
      - Can I tell whether the order search index is available before using it?
      instructions:
      - text: Check whether indexed order search is enabled.
      - text: Tell me if full-text search is on for customer orders.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/customerOrders/indexed/search'].post
  update:
    x-apievangelist-phrasing:
      intent: Full-text search orders with facets
      effect: read
      questions:
      - Can I run a full-text order search that returns facets?
      - What is the fastest way to search orders through the search index by keyword?
      instructions:
      - text: Full-text search the order index for {keyword}.
        slots:
          keyword: requestBody.keyword
      - text: Search indexed orders by {keyword} with facet {facet}.
        slots:
          keyword: requestBody.keyword
          facet: requestBody.facet
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/payments/search'].post
  update:
    x-apievangelist-phrasing:
      intent: Search order payments
      effect: read
      questions:
      - Which payments were captured in a given date range?
      - Can I list all payments for one order number?
      - Can I find a customer's payments filtered by status?
      instructions:
      - text: List payments for order number {orderNumber}.
        slots:
          orderNumber: requestBody.orderNumber
      - text: Find payments captured between {capturedStartDate} and {capturedEndDate}.
        slots:
          capturedStartDate: requestBody.capturedStartDate
          capturedEndDate: requestBody.capturedEndDate
      - text: Search payments by customer {customerId} with status {status}.
        slots:
          customerId: requestBody.customerId
          status: requestBody.status
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/payments/{id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an order payment by ID
      effect: read
      questions:
      - What does one order payment record look like, including its transactions?
      - Where do I read a single payment by its internal ID?
      instructions:
      - text: Get order payment {id}.
        slots:
          id: path.id
      - text: Show payment {id} with response group {respGroup}.
        slots:
          id: path.id
          respGroup: query.respGroup
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/payments/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Partially update an order payment
      effect: write
      questions:
      - Can I change one field of a payment without sending the full record?
      - What is the way to JSON-patch an order payment?
      instructions:
      - text: Patch payment {id} with only the changed fields.
        slots:
          id: path.id
      - text: Apply a partial update to order payment {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/payments/outer/{outerId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a payment by external ID
      effect: read
      questions:
      - Can I find a payment using the gateway's or external system's ID?
      - Which lookup works when I only have a payment's outer ID?
      instructions:
      - text: Get the payment with external ID {outerId}.
        slots:
          outerId: path.outerId
      - text: Find the order payment whose outer ID is {outerId}.
        slots:
          outerId: path.outerId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/payments'].put
  update:
    x-apievangelist-phrasing:
      intent: Update an existing order payment
      effect: write
      questions:
      - How do I change the status of an existing payment?
      - Can I switch the payment method on a payment that's already recorded?
      instructions:
      - text: Set existing payment {id} status to {paymentStatus}.
        slots:
          id: requestBody.id
          paymentStatus: requestBody.paymentStatus
      - text: Change the payment method of existing payment {id} to {paymentMethod}.
        slots:
          id: requestBody.id
          paymentMethod: requestBody.paymentMethod
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/payments'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a payment to an order
      effect: write
      questions:
      - How do I record a new payment against an order?
      - Can I choose the payment gateway when adding a payment to an order?
      instructions:
      - text: Add a payment of {sum} to order {orderId}.
        slots:
          sum: requestBody.sum
          orderId: requestBody.orderId
      - text: Record a new payment on order {orderId} through gateway {gatewayCode}.
        slots:
          orderId: requestBody.orderId
          gatewayCode: requestBody.gatewayCode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/payments'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete order payments
      effect: destructive
      questions:
      - How do I remove payment records from orders?
      - Can several order payments be deleted in one call?
      instructions:
      - text: Delete order payments {ids}.
        slots:
          ids: query.ids
      - text: Remove the payment records {ids}.
        slots:
          ids: query.ids
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/payments/payment/capture'].post
  update:
    x-apievangelist-phrasing:
      intent: Capture an authorized payment
      effect: write
      questions:
      - How do I capture funds that were only authorized on an order?
      - Can I capture a partial amount and close the transaction?
      instructions:
      - text: Capture payment {paymentId} on order {orderId}.
        slots:
          paymentId: requestBody.paymentId
          orderId: requestBody.orderId
      - text: Capture {amount} of payment {paymentId} and close the transaction.
        slots:
          amount: requestBody.amount
          paymentId: requestBody.paymentId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/payments/payment/refund'].post
  update:
    x-apievangelist-phrasing:
      intent: Refund an order payment
      effect: destructive
      questions:
      - How do I refund money back to a customer for an order?
      - Can I refund only part of a payment and record a reason?
      instructions:
      - text: Refund payment {paymentId} on order {orderId}.
        slots:
          paymentId: requestBody.paymentId
          orderId: requestBody.orderId
      - text: Refund {amount} of payment {paymentId} with reason {reasonMessage}.
        slots:
          amount: requestBody.amount
          paymentId: requestBody.paymentId
          reasonMessage: requestBody.reasonMessage
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/shipments'].post
  update:
    x-apievangelist-phrasing:
      intent: Save an order shipment
      effect: write
      questions:
      - How do I add tracking information to an order's shipment?
      - Can I set the fulfillment center and shipping method for a shipment?
      instructions:
      - text: Save shipment for order {customerOrderId} with tracking number {trackingNumber}.
        slots:
          customerOrderId: requestBody.customerOrderId
          trackingNumber: requestBody.trackingNumber
      - text: Ship order {customerOrderId} from fulfillment center {fulfillmentCenterId} via {shipmentMethodCode}.
        slots:
          customerOrderId: requestBody.customerOrderId
          fulfillmentCenterId: requestBody.fulfillmentCenterId
          shipmentMethodCode: requestBody.shipmentMethodCode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/shipments/search'].post
  update:
    x-apievangelist-phrasing:
      intent: Search order shipments
      effect: read
      questions:
      - Which shipments are still pending for my fulfillment center?
      - Can I list the shipments for one order number?
      instructions:
      - text: List shipments for order number {orderNumber}.
        slots:
          orderNumber: requestBody.orderNumber
      - text: Find shipments from fulfillment center {fulfillmentCenterId} with status {status}.
        slots:
          fulfillmentCenterId: requestBody.fulfillmentCenterId
          status: requestBody.status
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/order/shipments/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Partially update a shipment
      effect: write
      questions:
      - Can I change one field of a shipment without sending the whole shipment?
      - What is the way to JSON-patch an order shipment?
      instructions:
      - text: Patch shipment {id} with only the changed fields.
        slots:
          id: path.id
      - text: Apply a partial update to order shipment {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'