Optimizely · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Admin API V1 Product Also Purchased Withs API

10 actions 10 updates phrasing extends openapi/optimizely-product-also-purchased-withs-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/ProductAlsoPurchasedWiths'].get
$.paths['/api/v1/admin/ProductAlsoPurchasedWiths'].post
$.paths['/api/v1/admin/ProductAlsoPurchasedWiths({id})'].get
$.paths['/api/v1/admin/ProductAlsoPurchasedWiths({id})'].put
$.paths['/api/v1/admin/ProductAlsoPurchasedWiths({id})'].delete
$.paths['/api/v1/admin/ProductAlsoPurchasedWiths({id})'].patch
$.paths['/api/v1/admin/ProductAlsoPurchasedWiths/Default.Default()'].get
$.paths['/api/v1/admin/productalsopurchasedwiths/delete'].delete
$.paths['/api/v1/admin/productalsopurchasedwiths({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 Also Purchased Withs API
  version: 1.0.0
extends: openapi/optimizely-product-also-purchased-withs-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/ProductAlsoPurchasedWiths'].get
  update:
    x-apievangelist-phrasing:
      intent: List frequently-bought-together product pairs
      effect: read
      questions:
      - Which products are most often bought together with each other?
      - Can I sort also-purchased pairs by weighted score to find the strongest matches?
      - How many also-purchased-with records exist for our catalog?
      instructions:
      - text: List all also-purchased-with product pairs.
      - text: List also-purchased pairs where {filter}, ordered by {orderby}.
        slots:
          filter: query.$filter
          orderby: query.$orderby
      - text: Show the top {top} bought-together records.
        slots:
          top: query.$top
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/ProductAlsoPurchasedWiths'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a bought-together product pair
      effect: write
      questions:
      - How do I record that one product is commonly purchased with another?
      - Can I store a repeat purchase rate and weighted score on an also-purchased pair?
      instructions:
      - text: Record product {matchProductId} as also purchased with product {productId}.
        slots:
          matchProductId: requestBody.matchProductId
          productId: requestBody.productId
      - text: Add an also-purchased pair of {productId} and {matchProductId} with weighted score {weightedScore}.
        slots:
          productId: requestBody.productId
          matchProductId: requestBody.matchProductId
          weightedScore: requestBody.weightedScore
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/ProductAlsoPurchasedWiths({id})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an also-purchased-with record
      effect: read
      questions:
      - How many customers bought a given product pair together?
      - Can I fetch one also-purchased record by its id?
      instructions:
      - text: Get also-purchased-with record {id}.
        slots:
          id: path.id
      - text: Show the customer count and score for bought-together record {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/ProductAlsoPurchasedWiths({id})'].put
  update:
    x-apievangelist-phrasing:
      intent: Replace an also-purchased-with record
      effect: write
      questions:
      - Can I overwrite all the stats on a bought-together record at once?
      - Will a full replace of an also-purchased record reset the counts I omit?
      instructions:
      - text: Replace also-purchased record {id} with customer count {customerCount} and combination count {productCombinationCount}.
        slots:
          id: path.id
          customerCount: requestBody.customerCount
          productCombinationCount: requestBody.productCombinationCount
      - text: Overwrite the whole bought-together record {id}.
        slots:
          id: path.id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/ProductAlsoPurchasedWiths({id})'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete an also-purchased-with record
      effect: destructive
      questions:
      - How do I remove a bought-together suggestion that no longer makes sense?
      - Can the delete be conditioned on an If-Match ETag?
      instructions:
      - text: Delete also-purchased-with record {id}.
        slots:
          id: path.id
      - text: Delete bought-together record {id} if its ETag is {etag}.
        slots:
          id: path.id
          etag: header.If-Match
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/ProductAlsoPurchasedWiths({id})'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update the scores on an also-purchased record
      effect: write
      questions:
      - Can I adjust only the weighted score of a bought-together pair?
      - Is it possible to update the repeat purchase rate on an existing pair?
      instructions:
      - text: Set the weighted score of also-purchased record {id} to {weightedScore}.
        slots:
          id: path.id
          weightedScore: requestBody.weightedScore
      - text: Update the repeat purchase rate of record {id} to {repeatPurchaseRate}.
        slots:
          id: path.id
          repeatPurchaseRate: requestBody.repeatPurchaseRate
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/ProductAlsoPurchasedWiths/Default.Default()'].get
  update:
    x-apievangelist-phrasing:
      intent: Call the also-purchased-with Default function
      effect: read
      questions:
      - What does the Default function on also-purchased-with records return?
      - Is there a default bought-together entry to fetch?
      instructions:
      - text: Call the Default function on also-purchased-with records.
      - text: Fetch the default bought-together result.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/productalsopurchasedwiths/delete'].delete
  update:
    x-apievangelist-phrasing:
      intent: Bulk delete also-purchased-with records
      effect: destructive
      questions:
      - Can I wipe many bought-together records in one request?
      - Is there a bulk delete by id list for also-purchased pairs?
      instructions:
      - text: Delete also-purchased records {ids}.
        slots:
          ids: query.ids
      - text: Bulk remove the bought-together pairs with ids {ids}.
        slots:
          ids: query.ids
      method: generated
      generated: '2026-09-26'
- target: $.paths['/api/v1/admin/productalsopurchasedwiths({key})/customproperties({custompropertyKey})'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a custom property of an also-purchased record
      effect: read
      questions:
      - Can I read a custom property stored on a bought-together record?
      - Where is a custom value for an also-purchased pair kept?
      instructions:
      - text: Get custom property {custompropertyKey} of also-purchased record {key}.
        slots:
          custompropertyKey: path.custompropertyKey
          key: path.key
      - text: Show custom value {custompropertyKey} on bought-together pair {key}.
        slots:
          custompropertyKey: path.custompropertyKey
          key: path.key
      method: generated
      generated: '2026-09-26'