# 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 Product Top Sellers API version: 1.0.0 extends: openapi/optimizely-product-top-sellers-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: 9 - target: $.paths['/api/v1/admin/ProductTopSellers'].get update: x-apievangelist-phrasing: intent: List top-selling product records effect: read questions: - Which products are my top sellers in Optimizely Configured Commerce? - Can I sort top sellers by weighted score or filter them to one category? instructions: - text: List all product top seller records. - text: List top sellers matching {filter}, ordered by {orderby}, top {top}. slots: filter: query.$filter orderby: query.$orderby top: query.$top method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/ProductTopSellers'].post update: x-apievangelist-phrasing: intent: Add a product top seller record effect: write questions: - How do I record a product as a top seller for a website and category? - Can I store order count and repeat purchase rate on a new top seller entry? instructions: - text: Add product {productId} as a top seller in category {categoryId} on website {websiteId}. slots: productId: requestBody.productId categoryId: requestBody.categoryId websiteId: requestBody.websiteId - text: Create a top seller record for product {productId} with order count {orderCount} and weighted score {weightedScore}. slots: productId: requestBody.productId orderCount: requestBody.orderCount weightedScore: requestBody.weightedScore method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/ProductTopSellers({id})'].get update: x-apievangelist-phrasing: intent: Get one top seller record effect: read questions: - How do I look up a single top seller record's purchase stats by ID? - Can I expand the product on one top seller record? instructions: - text: Show product top seller {id}. slots: id: path.id - text: Fetch top seller record {id} with {expand} expanded. slots: id: path.id expand: query.$expand method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/ProductTopSellers({id})'].put update: x-apievangelist-phrasing: intent: Replace a top seller record effect: write questions: - Can I overwrite a top seller record with a full new set of sales figures? - What happens to top seller fields I omit on a full replace? instructions: - text: Replace top seller {id} with product {productId}, customer count {customerCount} and order count {orderCount}. slots: id: path.id productId: requestBody.productId customerCount: requestBody.customerCount orderCount: requestBody.orderCount - text: Overwrite the whole top seller record {id}, setting purchase frequency to {purchaseFrequency}. slots: id: path.id purchaseFrequency: requestBody.purchaseFrequency method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/ProductTopSellers({id})'].delete update: x-apievangelist-phrasing: intent: Delete a top seller record effect: destructive questions: - How do I remove a product from the top sellers by record ID? - Can I make deleting a top seller record conditional on an ETag? instructions: - text: Delete product top seller {id}. slots: id: path.id - text: Delete top seller record {id} only if its ETag matches {etag}. slots: id: path.id etag: header.If-Match method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/ProductTopSellers({id})'].patch update: x-apievangelist-phrasing: intent: Update a top seller record effect: write questions: - Can I flag an existing top seller as seasonal? - How would I update just the weighted score on a top seller? instructions: - text: Patch top seller {id} so its weighted score is {weightedScore}. slots: id: path.id weightedScore: requestBody.weightedScore - text: Mark top seller {id} as seasonal {isSeasonal} with repeat purchase rate {repeatPurchaseRate}. slots: id: path.id isSeasonal: requestBody.isSeasonal repeatPurchaseRate: requestBody.repeatPurchaseRate method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/ProductTopSellers/Default.Default()'].get update: x-apievangelist-phrasing: intent: Get default values for a top seller record effect: read questions: - What defaults does the admin pre-fill for a new top seller record? - Where do I get a blank product top seller template? instructions: - text: Get the default product top seller template. - text: Show me the pre-filled defaults for a new top seller record. method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/producttopsellers/delete'].delete update: x-apievangelist-phrasing: intent: Bulk delete top seller records effect: destructive questions: - How do I clear several top seller records in one request? - Can I bulk-remove top sellers by ID? instructions: - text: Bulk delete product top sellers {ids}. slots: ids: query.ids - text: Permanently remove the top seller records {ids}. slots: ids: query.ids method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/producttopsellers({key})/customproperties({custompropertyKey})'].get update: x-apievangelist-phrasing: intent: Get a custom property on a top seller record effect: read questions: - How can I read one custom property stored on a top seller record? - Can I select fields from a top seller's custom property? instructions: - text: Show custom property {custompropertyKey} on product top seller {key}. slots: custompropertyKey: path.custompropertyKey key: path.key - text: Fetch top seller {key}'s custom property {custompropertyKey}, selecting {select}. slots: key: path.key custompropertyKey: path.custompropertyKey select: query.$select method: generated generated: '2026-09-26'