# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for VirtoCommerce. Pricing API version: 1.0.0 extends: openapi/virto-commerce-pricing-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: 32 - target: $.paths['/api/pricing/evaluate'].post update: x-apievangelist-phrasing: intent: Evaluate product prices for a shopping context effect: read questions: - What price would a specific customer pay for these products in my store? - Can price evaluation take quantity, currency and the shopper's location into account? instructions: - text: Evaluate prices for products {productIds} in store {storeId}. slots: productIds: requestBody.productIds storeId: requestBody.storeId - text: Work out the price of {productIds} for customer {customerId} at quantity {quantity} in {currency}. slots: productIds: requestBody.productIds customerId: requestBody.customerId quantity: requestBody.quantity currency: requestBody.currency method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/pricelists/evaluate'].post update: x-apievangelist-phrasing: intent: Evaluate which price lists apply to a context effect: read questions: - Which price lists apply to a given store, customer and currency right now? - Can I find out which price lists would be used for a shopper on a certain date? instructions: - text: Evaluate which price lists apply in store {storeId} for currency {currency}. slots: storeId: requestBody.storeId currency: requestBody.currency - text: Tell me the price lists that apply to customer {customerId} on {date}. slots: customerId: requestBody.customerId date: requestBody.certainDate method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/assignments/{id}'].get update: x-apievangelist-phrasing: intent: Get a price list assignment effect: read questions: - Which catalog or store is a given price list assignment tied to? - How do I view the conditions and dates on one price list assignment? instructions: - text: Show price list assignment {id}. slots: id: path.id - text: Get the start and end dates for price list assignment {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/assignments/{id}'].patch update: x-apievangelist-phrasing: intent: Partially update a price list assignment effect: write questions: - Can I change only the priority of a price list assignment? - Is there a JSON Patch option for editing price list assignments? instructions: - text: Patch price list assignment {id} with only the changed fields. slots: id: path.id - text: Apply a partial update to assignment {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/assignments/outer/{outerId}'].get update: x-apievangelist-phrasing: intent: Get a price list assignment by external id effect: read questions: - How can I find a price list assignment using my ERP's key? - Can I look up an assignment by outer id instead of its internal id? instructions: - text: Get the price list assignment with outer id {outerId}. slots: outerId: path.outerId - text: Look up assignment by integration key {outerId}. slots: outerId: path.outerId method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/assignments/new'].get update: x-apievangelist-phrasing: intent: Get a blank price list assignment template effect: read questions: - What does an empty price list assignment object look like before I save it? - Can I get a new assignment template without creating anything? instructions: - text: Give me a new unsaved price list assignment template. - text: Fetch a blank assignment object to fill in. method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/pricelists'].get update: x-apievangelist-phrasing: intent: Search price lists effect: read questions: - Which price lists do I have across all catalogs? - Can I list only the price lists in a particular currency? instructions: - text: List price lists in currency {currencies}. slots: currencies: query.Currencies - text: Search price lists matching {keyword}. slots: keyword: query.Keyword method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/pricelists'].put update: x-apievangelist-phrasing: intent: Update a price list effect: write questions: - How do I change the priority or currency of an existing price list? - Can I replace a whole price list's details and prices in one request? instructions: - text: Update price list {id} to priority {priority}. slots: id: requestBody.id priority: requestBody.priority - text: Rename existing price list {id} to {name}. slots: id: requestBody.id name: requestBody.name method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/pricelists'].post update: x-apievangelist-phrasing: intent: Create a price list effect: write questions: - How do I set up a new price list for a currency? - Can a new price list be created with its prices and assignments included? instructions: - text: Create a price list called {name} in {currency}. slots: name: requestBody.name currency: requestBody.currency - text: Add a new price list {name} with priority {priority}. slots: name: requestBody.name priority: requestBody.priority method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/pricelists'].delete update: x-apievangelist-phrasing: intent: Delete price lists effect: destructive questions: - Can I delete several price lists in one go? - What is needed to remove a price list permanently? instructions: - text: Delete price lists {ids}. slots: ids: query.ids - text: Remove the price list {ids}. slots: ids: query.ids method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/assignments'].get update: x-apievangelist-phrasing: intent: Search price list assignments effect: read questions: - Which stores and catalogs is a given price list assigned to? - Can I list all price list assignments for one store? instructions: - text: Find assignments for price list {priceListId}. slots: priceListId: query.PriceListId - text: List price list assignments in stores {storeIds}. slots: storeIds: query.StoreIds method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/assignments'].put update: x-apievangelist-phrasing: intent: Update a price list assignment effect: write questions: - How do I change the dates on an existing price list assignment? - Can I move an assignment to a different store? instructions: - text: Update assignment {id} to run from {start} to {end}. slots: id: requestBody.id start: requestBody.startDate end: requestBody.endDate - text: Move existing assignment {id} to store {storeId}. slots: id: requestBody.id storeId: requestBody.storeId method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/assignments'].post update: x-apievangelist-phrasing: intent: Assign a price list to a store or catalog effect: write questions: - How do I make a price list apply in a specific store? - Can I schedule a price list to apply only between two dates? instructions: - text: Assign price list {pricelistId} to store {storeId}. slots: pricelistId: requestBody.pricelistId storeId: requestBody.storeId - text: Create an assignment of price list {pricelistId} to catalog {catalogId} starting {start}. slots: pricelistId: requestBody.pricelistId catalogId: requestBody.catalogId start: requestBody.startDate method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/assignments'].delete update: x-apievangelist-phrasing: intent: Delete price list assignments by id effect: destructive questions: - Can I remove specific price list assignments when I know their ids? - What stops a price list from applying to a store I assigned it to? instructions: - text: Delete price list assignments {ids}. slots: ids: query.ids - text: Remove assignment {ids} by its id. slots: ids: query.ids method: generated generated: '2026-09-26' - target: $.paths['/api/catalog/products/prices/search'].get update: x-apievangelist-phrasing: intent: Search product prices with query parameters effect: read questions: - What prices does a product have across my price lists? - Can I find prices modified since a date using a simple GET with query parameters? instructions: - text: Search prices for product {productId} using the GET query form. slots: productId: query.ProductId - text: List prices in price list {priceListId} changed since {since} via query string. slots: priceListId: query.PriceListId since: query.ModifiedSince method: generated generated: '2026-09-26' - target: $.paths['/api/catalog/products/prices/search'].post update: x-apievangelist-phrasing: intent: Search product prices with a request body effect: read questions: - Can I search prices for many products at once by posting the criteria? - Is there a way to group price search results by product? instructions: - text: Post a price search for products {productIds} grouped by product. slots: productIds: requestBody.productIds - text: Search prices in price lists {priceListIds} using a request body. slots: priceListIds: requestBody.priceListIds method: generated generated: '2026-09-26' - target: $.paths['/api/products/{productId}/prices'].get update: x-apievangelist-phrasing: intent: Get a product's valid prices per currency effect: read questions: - What is a product's current price in each currency? - Which prices are valid for one product right now? instructions: - text: Show the valid prices for product {productId} in every currency. slots: productId: path.productId - text: Evaluate current prices of product {productId}. slots: productId: path.productId method: generated generated: '2026-09-26' - target: $.paths['/api/products/{productId}/prices'].put update: x-apievangelist-phrasing: intent: Update one product's prices effect: write questions: - How do I replace the prices for a single product? - Can I set a product's list and sale prices in one call? instructions: - text: Update the prices of product {productId} to {prices}. slots: productId: path.productId prices: requestBody.prices - text: Set new prices on product {productId}. slots: productId: path.productId method: generated generated: '2026-09-26' - target: $.paths['/api/products/{productId}/{catalogId}/pricesWidget'].get update: x-apievangelist-phrasing: intent: Get a product's prices within a catalog effect: read questions: - What prices does a product have in a specific virtual catalog? - Can I evaluate a product's prices for the price widget of one catalog? instructions: - text: Show prices for product {productId} in catalog {catalogId}. slots: productId: path.productId catalogId: path.catalogId - text: Evaluate the catalog-specific prices of {productId} for catalog {catalogId}. slots: productId: path.productId catalogId: path.catalogId method: generated generated: '2026-09-26' - target: $.paths['/api/products/prices'].put update: x-apievangelist-phrasing: intent: Update prices for many products effect: write questions: - Can I bulk update prices for several products in one request? - Which call lets me push a whole batch of product prices? instructions: - text: Bulk update prices for multiple products. - text: Save this batch of product prices across several products. method: generated generated: '2026-09-26' - target: $.paths['/api/catalog/products/{productId}/pricelists'].get update: x-apievangelist-phrasing: intent: List price lists containing a product effect: read questions: - Which price lists include a given product? - In how many price lists does this product appear? instructions: - text: List all price lists for product {productId}. slots: productId: path.productId - text: Show which price lists product {productId} belongs to. slots: productId: path.productId method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/pricelists/{id}'].get update: x-apievangelist-phrasing: intent: Get a price list with its assignments effect: read questions: - What prices and assignments are in a specific price list? - How do I load a full price list by its id? instructions: - text: Get price list {id} with its assignments. slots: id: path.id - text: Show the full details of price list {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/pricelists/{id}'].patch update: x-apievangelist-phrasing: intent: Partially update a price list effect: write questions: - Can I patch a single field on a price list, like its description? - Is JSON Patch supported for price lists? instructions: - text: Patch price list {id} with just the changed fields. slots: id: path.id - text: Apply a partial update to price list {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/pricelists/outer/{outerId}'].get update: x-apievangelist-phrasing: intent: Get a price list by external id effect: read questions: - How do I find a price list from my ERP's integration key? - Can I fetch a full price list by outer id? instructions: - text: Fetch the full price list whose ERP key is {outerId}. slots: outerId: path.outerId - text: Look up the full price list for integration key {outerId}. slots: outerId: path.outerId method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/pricelistsshort/{id}'].get update: x-apievangelist-phrasing: intent: Get a price list without its assignments effect: read questions: - Can I load a price list quickly without pulling all its assignments? - Is there a lightweight view of a price list by id? instructions: - text: Get price list {id} in short mode without assignments. slots: id: path.id - text: Show the lightweight version of price list {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/pricelistsshort/outer/{outerId}'].get update: x-apievangelist-phrasing: intent: Get a short price list by external id effect: read questions: - Can I get a price list by outer id but skip its assignments? - What is the lightest way to look up a price list from my ERP key? instructions: - text: Get the short price list for outer id {outerId}. slots: outerId: path.outerId - text: Fetch price list {outerId} by integration key without assignments. slots: outerId: path.outerId method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/filteredAssignments'].delete update: x-apievangelist-phrasing: intent: Delete price list assignments matching criteria effect: destructive questions: - Can I delete every assignment of a price list without listing their ids? - Is there a way to remove all price list assignments for certain stores? instructions: - text: Delete all assignments of price list {priceListId}. slots: priceListId: query.PriceListId - text: Remove every price list assignment for stores {storeIds}. slots: storeIds: query.StoreIds method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/pricelists/{pricelistId}/products/prices'].delete update: x-apievangelist-phrasing: intent: Delete a product's prices from a price list effect: destructive questions: - How do I remove all prices for certain products from one price list? - Can I clear a product out of a price list entirely? instructions: - text: Delete all prices for products {productIds} in price list {pricelistId}. slots: productIds: query.productIds pricelistId: path.pricelistId - text: Clear every product price from price list {pricelistId}. slots: pricelistId: path.pricelistId method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/products/prices'].delete update: x-apievangelist-phrasing: intent: Delete prices by price id effect: destructive questions: - Can I delete individual price records when I know their ids? - What removes one specific price entry? instructions: - text: Delete price records {priceIds}. slots: priceIds: query.priceIds - text: Remove the single price entry {priceIds}. slots: priceIds: query.priceIds method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/mergedpricegroups'].post update: x-apievangelist-phrasing: intent: Merge base and priority price lists by product effect: read questions: - Which products end up with which price when a priority list overrides a base list? - Can I see merged price groups per product for two price lists? instructions: - text: Merge base price list {base} with priority list {priority} and group by product. slots: base: requestBody.basePriceListId priority: requestBody.priorityPriceListId - text: Show merged price groups for products {productIds}. slots: productIds: requestBody.productIds method: generated generated: '2026-09-26' - target: $.paths['/api/pricing/mergedprices'].post update: x-apievangelist-phrasing: intent: Get merged prices from base and priority lists effect: read questions: - What are the individual merged prices after combining a base and a priority price list? - Can I list each resulting price when one list overrides another? instructions: - text: List the merged prices of base list {base} overridden by {priority}. slots: base: requestBody.basePriceListId priority: requestBody.priorityPriceListId - text: Get individual merged price rows for products {productIds}. slots: productIds: requestBody.productIds method: generated generated: '2026-09-26' - target: $.paths['/api/products/prices/{id}'].patch update: x-apievangelist-phrasing: intent: Partially update a product price effect: write questions: - Can I change just the sale price on one price record? - Is a single product price editable with JSON Patch? instructions: - text: Patch product price {id} with the changed fields. slots: id: path.id - text: Apply a partial update to price record {id}. slots: id: path.id method: generated generated: '2026-09-26'