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