Optimizely · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Admin API V1 Product Top Sellers API

10 actions 10 updates phrasing extends openapi/optimizely-product-top-sellers-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Optimizely's API. It is a proposal applied on top of the contract, not a document Optimizely publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 10

$.info
$.paths['/api/v1/admin/ProductTopSellers'].get
$.paths['/api/v1/admin/ProductTopSellers'].post
$.paths['/api/v1/admin/ProductTopSellers({id})'].get
$.paths['/api/v1/admin/ProductTopSellers({id})'].put
$.paths['/api/v1/admin/ProductTopSellers({id})'].delete
$.paths['/api/v1/admin/ProductTopSellers({id})'].patch
$.paths['/api/v1/admin/ProductTopSellers/Default.Default()'].get
$.paths['/api/v1/admin/producttopsellers/delete'].delete
$.paths['/api/v1/admin/producttopsellers({key})/customproperties({custompropertyKey})'].get

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