# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Admin API V1 Vmi Locations API version: 1.0.0 extends: openapi/optimizely-vmi-locations-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-10-01' generator: build-phrasing.py label: Generated by API Evangelist operations: 35 - target: $.paths['/api/v1/admin/VmiLocations'].get update: x-apievangelist-phrasing: intent: List vendor-managed inventory locations effect: read questions: - Which VMI locations are set up in my Optimizely Configured Commerce admin? - Can I filter vendor-managed inventory locations to only active ones for a customer? - How many VMI locations exist in total? instructions: - text: List all VMI locations. - text: Find VMI locations matching {filter}, sorted by {orderby}. slots: filter: query.$filter orderby: query.$orderby - text: Show the first {top} VMI locations with a total count. slots: top: query.$top method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/VmiLocations'].post update: x-apievangelist-phrasing: intent: Create a VMI location effect: write questions: - How do I add a new vendor-managed inventory location for a customer? - Can a new VMI location be marked as the customer's primary location and use bins? instructions: - text: Create a VMI location named {name} for customer {customerId} with note {note}. slots: name: requestBody.name customerId: requestBody.customerId note: requestBody.note - text: Add a new primary VMI location {name} that uses bins, note {note}. slots: name: requestBody.name note: requestBody.note method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/VmiLocations({id})'].get update: x-apievangelist-phrasing: intent: Get one VMI location effect: read questions: - What are the settings of a specific VMI location? - Is a given vendor-managed inventory location active and enforcing max quantities? instructions: - text: Get VMI location {id}. slots: id: path.id - text: Show VMI location {id} with its related {expand} expanded. slots: id: path.id expand: query.$expand method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/VmiLocations({id})'].put update: x-apievangelist-phrasing: intent: Replace a VMI location record effect: write questions: - How do I overwrite every field of an existing VMI location in one call? - Can I replace a VMI location record wholesale instead of patching it? instructions: - text: Replace VMI location {id} with name {name} and note {note}. slots: id: path.id name: requestBody.name note: requestBody.note - text: Overwrite the full record of VMI location {id}. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/VmiLocations({id})'].delete update: x-apievangelist-phrasing: intent: Delete a VMI location effect: destructive questions: - How do I delete a single VMI location by its ID? - Can I guard a VMI location delete with an ETag so I do not remove a changed record? instructions: - text: Delete VMI location {id}. slots: id: path.id - text: Delete VMI location {id} only if its ETag still matches {ifMatch}. slots: id: path.id ifMatch: header.If-Match method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/VmiLocations({id})'].patch update: x-apievangelist-phrasing: intent: Partially update a VMI location effect: write questions: - Can I change just one setting of a VMI location, like deactivating it? - How do I turn on max-quantity enforcement for an existing VMI location? instructions: - text: Deactivate VMI location {id} by setting active to {isActive}. slots: id: path.id isActive: requestBody.isActive - text: Patch VMI location {id} to update its note to {note}. slots: id: path.id note: requestBody.note method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/VmiLocations/Default.Default()'].get update: x-apievangelist-phrasing: intent: Get the default VMI location template effect: read questions: - What does a blank VMI location look like with its default values? - Is there a default VMI location record I can start from? instructions: - text: Fetch the default VMI location template. - text: Get default values for a new VMI location. method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/VmiLocations/Default.archive'].post update: x-apievangelist-phrasing: intent: Archive VMI locations via the archive action effect: destructive questions: - How do I archive several VMI locations at once with the archive action? - Can I archive VMI locations instead of deleting them outright? instructions: - text: Run the archive action on VMI locations {ids}. slots: ids: query.ids - text: Archive VMI locations {ids} using the POST archive action. slots: ids: query.ids method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/vmilocations/archive'].delete update: x-apievangelist-phrasing: intent: Archive VMI locations via the archive route effect: destructive questions: - Is there a DELETE archive route for retiring a batch of VMI locations? - Can I send a list of IDs to the VMI location archive endpoint? instructions: - text: Archive VMI locations {ids} through the archive route. slots: ids: query.ids - text: Send VMI location IDs {ids} to the DELETE archive endpoint. slots: ids: query.ids method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/vmilocations/delete'].delete update: x-apievangelist-phrasing: intent: Bulk delete VMI locations effect: destructive questions: - How do I delete many VMI locations in one request? - Can I pass a list of IDs to remove multiple vendor-managed inventory locations? instructions: - text: Bulk delete VMI locations {ids}. slots: ids: query.ids - text: 'Delete all of these VMI locations in one call: {ids}.' slots: ids: query.ids method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/vmilocations({key})/customproperties({custompropertyKey})'].get update: x-apievangelist-phrasing: intent: Get a custom property of a VMI location effect: read questions: - How do I read a custom property value attached to a VMI location? - Can I look up one specific custom field on a vendor-managed inventory location? instructions: - text: Get custom property {custompropertyKey} of VMI location {key}. slots: custompropertyKey: path.custompropertyKey key: path.key - text: Show custom field {custompropertyKey} on VMI location {key}. slots: custompropertyKey: path.custompropertyKey key: path.key method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/vmilocations({key})/vmibins({vmibinKey})'].get update: x-apievangelist-phrasing: intent: Get a bin within a VMI location effect: read questions: - How do I look up a specific bin inside a VMI location? - What details are stored for one VMI bin at a location? instructions: - text: Get bin {vmibinKey} in VMI location {key}. slots: vmibinKey: path.vmibinKey key: path.key - text: Show VMI bin {vmibinKey} at location {key}. slots: vmibinKey: path.vmibinKey key: path.key method: generated generated: '2026-09-26' - target: $.paths['/api/v1/vmiLocations/{vmiLocationId}/bins'].get update: x-apievangelist-phrasing: intent: List the bins at a VMI location effect: read questions: - How do I see every bin at one of my vendor-managed inventory locations? - Can I find only the bins that are below their minimum quantity? - Which VMI bins fall within a bin number range, and when were they last counted? instructions: - text: List all bins at VMI location {vmiLocationId}. slots: vmiLocationId: path.vmiLocationId - text: Show bins at VMI location {vmiLocationId} that are below minimum = {isBelowMinimum}. slots: vmiLocationId: path.vmiLocationId isBelowMinimum: query.parameter.isBelowMinimum - text: Find bins numbered {binNumberFrom} to {binNumberTo} at VMI location {vmiLocationId}. slots: binNumberFrom: query.parameter.binNumberFrom binNumberTo: query.parameter.binNumberTo vmiLocationId: path.vmiLocationId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/{vmiLocationId}/bins'].post update: x-apievangelist-phrasing: intent: Add a bin to a VMI location effect: write questions: - How do I add a new stocking bin to a vendor-managed inventory location? - Can I set minimum and maximum quantities when I create a VMI bin? instructions: - text: Create bin {binNumber} for product {productId} at VMI location {vmiLocationId}. slots: binNumber: requestBody.binNumber productId: requestBody.productId vmiLocationId: path.vmiLocationId - text: Add a new bin at VMI location {vmiLocationId} with minimum {minimumQty} and maximum {maximumQty}. slots: vmiLocationId: path.vmiLocationId minimumQty: requestBody.minimumQty maximumQty: requestBody.maximumQty method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/{vmiLocationId}/bins/{vmiBinId}'].delete update: x-apievangelist-phrasing: intent: Delete one bin from a VMI location effect: destructive questions: - Can I remove a single bin from a vendor-managed inventory location? - What happens when I delete one VMI bin I no longer stock? instructions: - text: Delete bin {vmiBinId} from VMI location {vmiLocationId}. slots: vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId - text: Remove the single VMI bin {vmiBinId} at location {vmiLocationId}. slots: vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/{vmiLocationId}/bins/{vmiBinId}'].patch update: x-apievangelist-phrasing: intent: Update an existing VMI bin effect: write questions: - How do I change the min and max quantities on an existing VMI bin? - Can I reassign the product or unit of measure on a bin I already created? instructions: - text: Set the minimum quantity of bin {vmiBinId} at VMI location {vmiLocationId} to {minimumQty}. slots: vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId minimumQty: requestBody.minimumQty - text: Change the maximum quantity on existing bin {vmiBinId} at location {vmiLocationId} to {maximumQty}. slots: vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId maximumQty: requestBody.maximumQty method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/{vmiLocationId}/bins/batch'].post update: x-apievangelist-phrasing: intent: Create many VMI bins in one batch effect: write questions: - Is there a way to create a whole set of bins at a VMI location in one request? - Can I bulk load bins into a vendor-managed inventory location? instructions: - text: Batch create bins at VMI location {vmiLocationId}. slots: vmiLocationId: path.vmiLocationId - text: Bulk load this set of new bins into VMI location {vmiLocationId}. slots: vmiLocationId: path.vmiLocationId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/{vmiLocationId}/bins/batch'].delete update: x-apievangelist-phrasing: intent: Delete several VMI bins at once effect: destructive questions: - Can I delete multiple bins from a VMI location in a single call? - What do I pass to bulk remove bins by their IDs? instructions: - text: Batch delete bins {ids} from VMI location {vmiLocationId}. slots: ids: query.ids vmiLocationId: path.vmiLocationId - text: 'Remove all of these bins at location {vmiLocationId} in one request: {ids}.' slots: vmiLocationId: path.vmiLocationId ids: query.ids method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/{vmiLocationId}/bins/send-pdf'].post update: x-apievangelist-phrasing: intent: Email a PDF of bin labels for a VMI location effect: write questions: - How do I send a printable PDF of bin labels with barcodes for a VMI location? - Can I choose the barcode format and layout on the bin label PDF? instructions: - text: Send a bin label PDF for VMI location {vmiLocationId}. slots: vmiLocationId: path.vmiLocationId - text: Email the bin PDF for location {vmiLocationId} using barcode format {barcodeFormat} and layout {layout}. slots: vmiLocationId: path.vmiLocationId barcodeFormat: requestBody.barcodeFormat layout: requestBody.layout method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations'].get update: x-apievangelist-phrasing: intent: List VMI locations through the storefront API effect: read questions: - Which VMI locations can a signed-in storefront user see? - Can I page through vendor-managed inventory locations from the website API, 20 at a time? instructions: - text: Page through storefront VMI locations, {pageSize} per page. slots: pageSize: query.parameter.pageSize - text: Show the VMI locations available to storefront user {userId}. slots: userId: query.parameter.userId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations'].post update: x-apievangelist-phrasing: intent: Create a VMI location from the storefront API effect: write questions: - How do I set up a vendor-managed inventory location tied to a bill-to and ship-to address? - Can a storefront user add a VMI location for one of their ship-to addresses? instructions: - text: Create a storefront VMI location named {name} for bill-to {billToId}. slots: name: requestBody.name billToId: requestBody.billToId - text: Add VMI location {name} delivering to ship-to {shipToId} with bins enabled. slots: name: requestBody.name shipToId: requestBody.shipToId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/{VmiLocationId}/notes'].get update: x-apievangelist-phrasing: intent: List notes for a VMI location effect: read questions: - Where can I read the notes left on a VMI location's bins? - Can I narrow VMI notes down to a single bin? instructions: - text: Show the notes for VMI location {VmiLocationId}. slots: VmiLocationId: path.VmiLocationId - text: List notes on bin {vmiBinId} at VMI location {VmiLocationId}. slots: vmiBinId: query.parameter.vmiBinId VmiLocationId: path.VmiLocationId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/batch'].post update: x-apievangelist-phrasing: intent: Create many VMI locations in one batch effect: write questions: - Can I import a list of vendor-managed inventory locations in bulk? - Is there a validation-only mode to check a batch of VMI locations before saving? instructions: - text: 'Batch create these VMI locations: {vmiLocations}.' slots: vmiLocations: requestBody.vmiLocations - text: Validate this batch of VMI locations without saving, validationOnly {validationOnly}. slots: validationOnly: requestBody.validationOnly method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/batch'].delete update: x-apievangelist-phrasing: intent: Delete several VMI locations at once effect: destructive questions: - How do I bulk remove VMI locations by ID? - Can several vendor-managed inventory locations be deleted in one request? instructions: - text: Batch delete VMI locations {ids}. slots: ids: query.ids - text: 'Remove these VMI locations in one call: {ids}.' slots: ids: query.ids method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/{vmiLocationId}'].get update: x-apievangelist-phrasing: intent: Get a VMI location through the storefront API effect: read questions: - What bill-to and ship-to does a given vendor-managed inventory location use on the storefront? - Can the website API tell me whether a VMI location uses bins? instructions: - text: Fetch storefront VMI location {vmiLocationId} with its bill-to and ship-to. slots: vmiLocationId: path.vmiLocationId - text: Look up VMI location {vmiLocationId} through the website API. slots: vmiLocationId: path.vmiLocationId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/{vmiLocationId}'].delete update: x-apievangelist-phrasing: intent: Delete a VMI location through the storefront API effect: destructive questions: - Can a storefront user remove a vendor-managed inventory location they no longer use? - What happens when a VMI location is removed through the website API rather than the admin console? instructions: - text: Remove storefront VMI location {vmiLocationId}. slots: vmiLocationId: path.vmiLocationId - text: Use the website API to delete the vendor-managed inventory location {vmiLocationId}. slots: vmiLocationId: path.vmiLocationId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/{vmiLocationId}'].patch update: x-apievangelist-phrasing: intent: Update a VMI location effect: write questions: - How do I rename an existing VMI location or change its ship-to? - Can I turn on max quantity enforcement for a location I already set up? instructions: - text: Rename VMI location {vmiLocationId} to {name}. slots: vmiLocationId: path.vmiLocationId name: requestBody.name - text: Change the ship-to of existing VMI location {vmiLocationId} to {shipToId}. slots: vmiLocationId: path.vmiLocationId shipToId: requestBody.shipToId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/{vmiLocationId}/bins/{vmiBinId}/notes'].post update: x-apievangelist-phrasing: intent: Add a note to a VMI bin effect: write questions: - How do I leave a note on a VMI bin? - Can a bin note be included on the replenishment order? instructions: - text: Add the note {note} to bin {vmiBinId} at VMI location {vmiLocationId}. slots: note: requestBody.note vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId - text: Post a note on bin {vmiBinId} at location {vmiLocationId} and include it on the order. slots: vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/{vmiLocationId}/bins/{vmiBinId}/notes/{vmiNoteId}'].delete update: x-apievangelist-phrasing: intent: Delete a note from a VMI bin effect: destructive questions: - Can I remove a note I left on a VMI bin? - What does it take to delete one bin note by ID? instructions: - text: Delete note {vmiNoteId} from bin {vmiBinId} at VMI location {vmiLocationId}. slots: vmiNoteId: path.vmiNoteId vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId - text: Remove bin note {vmiNoteId} on bin {vmiBinId}, location {vmiLocationId}. slots: vmiNoteId: path.vmiNoteId vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/{vmiLocationId}/bins/{vmiBinId}/notes/{vmiNoteId}'].patch update: x-apievangelist-phrasing: intent: Edit a note on a VMI bin effect: write questions: - How do I edit the text of an existing note on a VMI bin? - Can I stop an existing bin note from appearing on orders? instructions: - text: Change note {vmiNoteId} on bin {vmiBinId} at location {vmiLocationId} to read {note}. slots: vmiNoteId: path.vmiNoteId vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId note: requestBody.note - text: Set includeOnOrder to {includeOnOrder} on bin note {vmiNoteId} (bin {vmiBinId}, location {vmiLocationId}). slots: includeOnOrder: requestBody.includeOnOrder vmiNoteId: path.vmiNoteId vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/{vmiLocationId}/bins/{vmiBinId}/binCounts'].post update: x-apievangelist-phrasing: intent: Record a stock count for a VMI bin effect: write questions: - How do I record a new on-hand count for a VMI bin? - Can I log who performed a bin count and when? instructions: - text: Record a count of {count} for bin {vmiBinId} at VMI location {vmiLocationId}. slots: count: requestBody.count vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId - text: Log a new bin count of {count} by {createdBy} on bin {vmiBinId}, location {vmiLocationId}. slots: count: requestBody.count createdBy: requestBody.createdBy vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/{vmiLocationId}/bins/{vmiBinId}/binCounts/{vmiCountId}'].get update: x-apievangelist-phrasing: intent: Get one stock count for a VMI bin effect: read questions: - What quantity was recorded in a specific bin count? - Can I look up one past count on a VMI bin by its ID? instructions: - text: Get bin count {vmiCountId} for bin {vmiBinId} at VMI location {vmiLocationId}. slots: vmiCountId: path.vmiCountId vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId - text: Show the recorded quantity of count {vmiCountId} on bin {vmiBinId}, location {vmiLocationId}. slots: vmiCountId: path.vmiCountId vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/{vmiLocationId}/bins/{vmiBinId}/binCounts/{vmiCountId}'].delete update: x-apievangelist-phrasing: intent: Delete a stock count from a VMI bin effect: destructive questions: - Can I delete a bin count that was entered by mistake? - Is removing a VMI bin count permanent? instructions: - text: Delete count {vmiCountId} from bin {vmiBinId} at VMI location {vmiLocationId}. slots: vmiCountId: path.vmiCountId vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId - text: Remove the mistaken bin count {vmiCountId} on bin {vmiBinId}, location {vmiLocationId}. slots: vmiCountId: path.vmiCountId vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/{vmiLocationId}/bins/{vmiBinId}/binCounts/{vmiCountId}'].patch update: x-apievangelist-phrasing: intent: Correct an existing VMI bin count effect: write questions: - How do I fix the quantity on a bin count I already recorded? - Can I change the product on an existing VMI count? instructions: - text: Correct count {vmiCountId} on bin {vmiBinId} at location {vmiLocationId} to {count}. slots: vmiCountId: path.vmiCountId vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId count: requestBody.count - text: Update existing bin count {vmiCountId} (bin {vmiBinId}, location {vmiLocationId}) to product {productId}. slots: vmiCountId: path.vmiCountId vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId productId: requestBody.productId method: generated generated: '2026-10-01' - target: $.paths['/api/v1/vmiLocations/{vmiLocationId}/bins/{vmiBinId}/binCounts/batch'].post update: x-apievangelist-phrasing: intent: Record many counts for a VMI bin in one batch effect: write questions: - Can I submit several stock counts for a bin in one request? - Is there a bulk upload for VMI bin counts? instructions: - text: Batch record these counts on bin {vmiBinId} at VMI location {vmiLocationId}. slots: vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId - text: Bulk upload bin counts for bin {vmiBinId}, location {vmiLocationId}. slots: vmiBinId: path.vmiBinId vmiLocationId: path.vmiLocationId method: generated generated: '2026-10-01'