# 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 Related Products API version: 1.0.0 extends: openapi/optimizely-product-related-products-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/ProductRelatedProducts'].get update: x-apievangelist-phrasing: intent: List related-product links effect: read questions: - Which cross-sell and related-product links are set up in my catalog? - Can I filter related-product links to one product? instructions: - text: List all related-product links. - text: List related-product links matching {filter}. slots: filter: query.$filter method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/ProductRelatedProducts'].post update: x-apievangelist-phrasing: intent: Link a related product to a product effect: write questions: - How do I mark one product as related to another? - Can I control the display order of a related product? instructions: - text: Relate product {relatedProductId} to product {productId}. slots: productId: requestBody.productId relatedProductId: requestBody.relatedProductId - text: Link {relatedProductId} to {productId} as relationship type {systemListValueId} at sort order {sortOrder}. slots: productId: requestBody.productId relatedProductId: requestBody.relatedProductId systemListValueId: requestBody.systemListValueId sortOrder: requestBody.sortOrder method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/ProductRelatedProducts({id})'].get update: x-apievangelist-phrasing: intent: Get a related-product link effect: read questions: - What two products does a related-product record connect? - Can I fetch one related-product link by id? instructions: - text: Get related-product link {id}. slots: id: path.id - text: Fetch product relationship {id} expanding {expand}. slots: id: path.id expand: query.$expand method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/ProductRelatedProducts({id})'].put update: x-apievangelist-phrasing: intent: Replace a related-product link effect: write questions: - How do I overwrite a related-product link completely? - Can I resend both products and the relationship type to replace a link? instructions: - text: Replace related-product link {id} so {productId} relates to {relatedProductId}. slots: id: path.id productId: requestBody.productId relatedProductId: requestBody.relatedProductId - text: Overwrite the full relationship record {id} with type {systemListValueId}. slots: id: path.id systemListValueId: requestBody.systemListValueId method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/ProductRelatedProducts({id})'].delete update: x-apievangelist-phrasing: intent: Remove a related-product link effect: destructive questions: - How do I unlink a related product from a product? - Can a related-product delete be guarded by an If-Match ETag? instructions: - text: Delete related-product link {id}. slots: id: path.id - text: Remove product relationship {id} only if its ETag is {etag}. slots: id: path.id etag: header.If-Match method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/ProductRelatedProducts({id})'].patch update: x-apievangelist-phrasing: intent: Reorder or retarget a related-product link effect: write questions: - Can I change just the sort order of a related product? - How do I swap the related product on an existing link? instructions: - text: Set sort order of related-product link {id} to {sortOrder}. slots: id: path.id sortOrder: requestBody.sortOrder - text: Point relationship {id} at related product {relatedProductId}. slots: id: path.id relatedProductId: requestBody.relatedProductId method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/ProductRelatedProducts/Default.Default()'].get update: x-apievangelist-phrasing: intent: Get default values for a new related-product link effect: read questions: - What defaults does a new related-product link start with? - Is there a blank product relationship template? instructions: - text: Get the default template for a related-product link. - text: Fetch an empty product relationship with default values. method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/productrelatedproducts/delete'].delete update: x-apievangelist-phrasing: intent: Bulk delete related-product links effect: destructive questions: - Can I remove many related-product links in one request? - How do I bulk-delete product relationships by id? instructions: - text: Bulk delete related-product links {ids}. slots: ids: query.ids - text: Permanently remove every product relationship in {ids}. slots: ids: query.ids method: generated generated: '2026-09-26' - target: $.paths['/api/v1/admin/productrelatedproducts({key})/customproperties({custompropertyKey})'].get update: x-apievangelist-phrasing: intent: Get a custom property on a related-product link effect: read questions: - What custom property values are stored on a product relationship? - Can I read one custom attribute of a related-product link? instructions: - text: Get custom property {custompropertyKey} on related-product link {key}. slots: key: path.key custompropertyKey: path.custompropertyKey - text: Read extra attribute {custompropertyKey} of product relationship {key}. slots: key: path.key custompropertyKey: path.custompropertyKey method: generated generated: '2026-09-26'