Virto Commerce · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for VirtoCommerce.Cart Shopping Cart API

25 actions 25 updates phrasing extends openapi/virto-commerce-shopping-cart-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 25 · first 16 shown; the file carries all of them

$.info
$.paths['/api/carts/{storeId}/{customerId}/{cartName}/{currency}/{cultureName}/current'].get
$.paths['/api/carts/{cartId}/itemscount'].get
$.paths['/api/carts/{cartId}/items'].put
$.paths['/api/carts/{cartId}/items'].post
$.paths['/api/carts/{cartId}/items'].delete
$.paths['/api/carts/{cartId}/items/{lineItemId}'].delete
$.paths['/api/carts/{cartId}'].get
$.paths['/api/carts/{cartId}'].patch
$.paths['/api/carts/{cartId}/availshippingrates'].get
$.paths['/api/carts/availshippingrates'].post
$.paths['/api/carts/{cartId}/availpaymentmethods'].get
$.paths['/api/carts/{cartId}/coupons/{couponCode}'].post
$.paths['/api/carts/{cartId}/coupons/{couponCode}'].delete
$.paths['/api/carts/{cartId}/shipments'].post
$.paths['/api/carts/{cartId}/payments'].post

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.Cart Shopping Cart API
  version: 1.0.0
extends: openapi/virto-commerce-shopping-cart-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: 24
- target: $.paths['/api/carts/{storeId}/{customerId}/{cartName}/{currency}/{cultureName}/current'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a shopper's current cart
      effect: read
      questions:
      - How do I load the active cart for a customer in a given store, currency and language?
      - Can a customer have separately named carts, like a wishlist, per store?
      instructions:
      - text: Get the current {cartName} cart for customer {customerId} in store {storeId} using {currency} and {cultureName}.
        slots:
          cartName: path.cartName
          customerId: path.customerId
          storeId: path.storeId
          currency: path.currency
          cultureName: path.cultureName
      - text: Load customer {customerId}'s default cart in store {storeId}, {currency}, {cultureName}.
        slots:
          customerId: path.customerId
          storeId: path.storeId
          currency: path.currency
          cultureName: path.cultureName
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/{cartId}/itemscount'].get
  update:
    x-apievangelist-phrasing:
      intent: Count the items in a cart
      effect: read
      questions:
      - How many items are in a shopping cart right now?
      - Can I get just the item count for a mini-cart badge without loading the whole cart?
      instructions:
      - text: Count the items in cart {cartId}.
        slots:
          cartId: path.cartId
      - text: Tell me how many products are in cart {cartId}.
        slots:
          cartId: path.cartId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/{cartId}/items'].put
  update:
    x-apievangelist-phrasing:
      intent: Change a cart line item's quantity
      effect: write
      questions:
      - How do I change the quantity of a product already in the cart?
      - Can I set a line item to a new quantity by its line item ID?
      instructions:
      - text: Set line item {lineItemId} in cart {cartId} to quantity {quantity}.
        slots:
          lineItemId: query.lineItemId
          cartId: path.cartId
          quantity: query.quantity
      - text: Change the quantity of an item in cart {cartId}.
        slots:
          cartId: path.cartId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/{cartId}/items'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a product to a cart
      effect: write
      questions:
      - How do I add a product to a customer's shopping cart?
      - Can I add an item by SKU with a specific quantity?
      instructions:
      - text: Add product {productId} to cart {cartId}.
        slots:
          productId: requestBody.productId
          cartId: path.cartId
      - text: Put {quantity} of SKU {sku} into cart {cartId}.
        slots:
          quantity: requestBody.quantity
          sku: requestBody.sku
          cartId: path.cartId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/{cartId}/items'].delete
  update:
    x-apievangelist-phrasing:
      intent: Empty a cart
      effect: destructive
      questions:
      - How do I remove every item from a cart at once?
      - Is there a way to clear a shopping cart without deleting the cart itself?
      instructions:
      - text: Clear all items from cart {cartId}.
        slots:
          cartId: path.cartId
      - text: Empty shopping cart {cartId}.
        slots:
          cartId: path.cartId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/{cartId}/items/{lineItemId}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove one item from a cart
      effect: destructive
      questions:
      - How do I take a single product out of a cart?
      - Can I delete one line item while leaving the rest of the cart intact?
      instructions:
      - text: Remove line item {lineItemId} from cart {cartId}.
        slots:
          lineItemId: path.lineItemId
          cartId: path.cartId
      - text: Delete item {lineItemId} from shopping cart {cartId}.
        slots:
          lineItemId: path.lineItemId
          cartId: path.cartId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/{cartId}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a cart by ID
      effect: read
      questions:
      - What does a shopping cart contain when I fetch it by ID?
      - Where can I read a specific cart if I know its ID?
      instructions:
      - text: Get cart {cartId}.
        slots:
          cartId: path.cartId
      - text: Show the contents of shopping cart {cartId}.
        slots:
          cartId: path.cartId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/{cartId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Merge another cart into a cart
      effect: write
      questions:
      - How do I combine an anonymous shopper's cart with their account cart after login?
      - Can the items from one cart be merged into another?
      instructions:
      - text: Merge this cart into cart {cartId}.
        slots:
          cartId: path.cartId
      - text: Combine the anonymous cart for customer {customerId} into cart {cartId}.
        slots:
          customerId: requestBody.customerId
          cartId: path.cartId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/{cartId}/availshippingrates'].get
  update:
    x-apievangelist-phrasing:
      intent: List shipping rates for a saved cart
      effect: read
      questions:
      - What shipping options and prices are available for a saved cart?
      - Which delivery methods can this cart ID use?
      instructions:
      - text: List shipping rates available for cart {cartId}.
        slots:
          cartId: path.cartId
      - text: Show delivery options and prices for saved cart {cartId}.
        slots:
          cartId: path.cartId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/availshippingrates'].post
  update:
    x-apievangelist-phrasing:
      intent: Quote shipping rates for an unsaved cart
      effect: read
      questions:
      - Can I get shipping rates by sending a cart object instead of a saved cart ID?
      - What would shipping cost for this cart contents in a specific currency?
      instructions:
      - text: Quote shipping rates in {currency} for this cart object.
        slots:
          currency: requestBody.currency
      - text: Estimate shipping for cart contents {shoppingCart}.
        slots:
          shoppingCart: requestBody.shoppingCart
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/{cartId}/availpaymentmethods'].get
  update:
    x-apievangelist-phrasing:
      intent: List payment methods for a cart
      effect: read
      questions:
      - Which payment methods can a shopper choose for this cart?
      - What payment options are offered at checkout for a given cart?
      instructions:
      - text: List payment methods available for cart {cartId}.
        slots:
          cartId: path.cartId
      - text: Show the checkout payment options for cart {cartId}.
        slots:
          cartId: path.cartId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/{cartId}/coupons/{couponCode}'].post
  update:
    x-apievangelist-phrasing:
      intent: Apply a coupon to a cart
      effect: write
      questions:
      - How do I apply a discount coupon code to a shopping cart?
      - Can a shopper redeem a promo code on their cart?
      instructions:
      - text: Apply coupon {couponCode} to cart {cartId}.
        slots:
          couponCode: path.couponCode
          cartId: path.cartId
      - text: Redeem promo code {couponCode} on shopping cart {cartId}.
        slots:
          couponCode: path.couponCode
          cartId: path.cartId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/{cartId}/coupons/{couponCode}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a coupon from a cart
      effect: destructive
      questions:
      - How do I take a coupon code off a cart?
      - Can a shopper drop a promo code they already applied?
      instructions:
      - text: Remove coupon {couponCode} from cart {cartId}.
        slots:
          couponCode: path.couponCode
          cartId: path.cartId
      - text: Drop promo code {couponCode} from shopping cart {cartId}.
        slots:
          couponCode: path.couponCode
          cartId: path.cartId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/{cartId}/shipments'].post
  update:
    x-apievangelist-phrasing:
      intent: Set the shipping method on a cart
      effect: write
      questions:
      - How do I choose a shipping method for a cart at checkout?
      - Can I set which fulfillment center ships a cart?
      instructions:
      - text: Set shipping method {shipmentMethodCode} on cart {cartId}.
        slots:
          shipmentMethodCode: requestBody.shipmentMethodCode
          cartId: path.cartId
      - text: Ship cart {cartId} from fulfillment center {fulfillmentCenterId} with option {shipmentMethodOption}.
        slots:
          cartId: path.cartId
          fulfillmentCenterId: requestBody.fulfillmentCenterId
          shipmentMethodOption: requestBody.shipmentMethodOption
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/{cartId}/payments'].post
  update:
    x-apievangelist-phrasing:
      intent: Set the payment method on a cart
      effect: write
      questions:
      - How do I attach a payment method to a cart before checkout?
      - Can I set the payment amount and billing address on a cart's payment?
      instructions:
      - text: Set payment gateway {paymentGatewayCode} on cart {cartId}.
        slots:
          paymentGatewayCode: requestBody.paymentGatewayCode
          cartId: path.cartId
      - text: Add a cart payment of {amount} to cart {cartId}.
        slots:
          amount: requestBody.amount
          cartId: path.cartId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/search'].post
  update:
    x-apievangelist-phrasing:
      intent: Search shopping carts
      effect: read
      questions:
      - Which carts has a given customer created in my store?
      - Can I find abandoned carts that still have line items?
      - Can I search carts modified within a date range?
      instructions:
      - text: Search carts for customer {customerId} in store {storeId}.
        slots:
          customerId: requestBody.customerId
          storeId: requestBody.storeId
      - text: Find carts with status {status} modified after {modifiedStartDate}.
        slots:
          status: requestBody.status
          modifiedStartDate: requestBody.modifiedStartDate
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a shopping cart
      effect: write
      questions:
      - How do I save changes to an entire shopping cart record?
      - Can I add a comment to an existing cart by replacing it?
      instructions:
      - text: Update existing cart {id} with comment {comment}.
        slots:
          id: requestBody.id
          comment: requestBody.comment
      - text: Save the full updated record for cart {id}.
        slots:
          id: requestBody.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a shopping cart
      effect: write
      questions:
      - How do I start a new cart for a customer in a store?
      - Can I create a named cart in a specific currency?
      instructions:
      - text: Create a cart for customer {customerId} in store {storeId}.
        slots:
          customerId: requestBody.customerId
          storeId: requestBody.storeId
      - text: Create a new cart named {name} in {currency}.
        slots:
          name: requestBody.name
          currency: requestBody.currency
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete shopping carts
      effect: destructive
      questions:
      - How do I delete carts I no longer need?
      - Can I remove several shopping carts at once by ID?
      instructions:
      - text: Delete carts {ids}.
        slots:
          ids: query.ids
      - text: Remove the shopping carts with IDs {ids}.
        slots:
          ids: query.ids
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/recalculate'].post
  update:
    x-apievangelist-phrasing:
      intent: Recalculate cart totals
      effect: read
      questions:
      - Can I compute a cart's totals, taxes and discounts without saving it?
      - What would this cart come to after my edits?
      instructions:
      - text: Recalculate totals for this cart.
      - text: Compute the totals for cart {id} as sent.
        slots:
          id: requestBody.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/patch/{id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Partially update a cart
      effect: write
      questions:
      - Can I change a single field on a cart without sending the full cart?
      - What is the way to JSON-patch a shopping cart?
      instructions:
      - text: Patch cart {id} with only the changed fields.
        slots:
          id: path.id
      - text: Apply a partial update to shopping cart {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/patch/{cartId}/items/{lineItemId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Partially update a cart line item
      effect: write
      questions:
      - Can I patch just one field, like a note, on a cart line item?
      - How do I apply a JSON patch to a single item in a cart?
      instructions:
      - text: Patch line item {lineItemId} in cart {cartId}.
        slots:
          lineItemId: path.lineItemId
          cartId: path.cartId
      - text: Apply a partial update to item {lineItemId} of cart {cartId}.
        slots:
          lineItemId: path.lineItemId
          cartId: path.cartId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/patch/{cartId}/shipments/{shipmentId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Partially update a cart shipment
      effect: write
      questions:
      - Can I patch a single field on a cart's shipment?
      - How do I JSON-patch the shipment attached to a cart?
      instructions:
      - text: Patch shipment {shipmentId} in cart {cartId}.
        slots:
          shipmentId: path.shipmentId
          cartId: path.cartId
      - text: Apply a partial update to cart {cartId} shipment {shipmentId}.
        slots:
          shipmentId: path.shipmentId
          cartId: path.cartId
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/carts/patch/{cartId}/payments/{paymentId}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Partially update a cart payment
      effect: write
      questions:
      - Can I patch a single field on a cart's payment?
      - How do I JSON-patch the payment attached to a cart?
      instructions:
      - text: Patch payment {paymentId} in cart {cartId}.
        slots:
          paymentId: path.paymentId
          cartId: path.cartId
      - text: Apply a partial update to cart {cartId} payment {paymentId}.
        slots:
          paymentId: path.paymentId
          cartId: path.cartId
      method: generated
      generated: '2026-09-26'