Product Content Management API

API for managing product content including images, descriptions, and attributes.

OpenAPI Specification

sap-commerce-cloud-product-content-management-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: SAP Commerce Cloud Product Content Management API
  description: >-
    API for managing product content in SAP Commerce Cloud including
    product images, descriptions, attributes, media, and catalog
    content. Provides operations for product data enrichment,
    media management, and content publication workflows.
  version: '2.0'
  contact:
    name: SAP Support
    url: https://support.sap.com/
  termsOfService: https://www.sap.com/about/legal/terms-of-use.html
externalDocs:
  description: Product Content Management Documentation
  url: https://help.sap.com/docs/SAP_COMMERCE/d0224eca81e249cb821f2cdf45a82ace/
servers:
  - url: https://{tenant}.{region}.commercecloud.sap/occ/v2/{baseSiteId}
    description: SAP Commerce Cloud Production
    variables:
      tenant:
        description: Tenant identifier
        default: my-tenant
      region:
        description: Deployment region
        default: us
      baseSiteId:
        description: Base site identifier
        default: electronics
tags:
  - name: Catalogs
    description: Catalog version and synchronization
  - name: Categories
    description: Category content management
  - name: Classifications
    description: Product classification and attributes
  - name: Media
    description: Media and image management
  - name: Products
    description: Product content operations
security:
  - oauth2: []
paths:
  /products/{productCode}:
    get:
      operationId: getProductContent
      summary: SAP Commerce Cloud Get product content
      description: >-
        Retrieve full product content including descriptions, images,
        classifications, and attributes.
      tags:
        - Products
      parameters:
        - $ref: '#/components/parameters/productCode'
        - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: Product content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductContent'
        '404':
          description: Product not found
  /products/{productCode}/images:
    get:
      operationId: getProductImages
      summary: SAP Commerce Cloud Get product images
      description: >-
        Retrieve all images associated with a product, including
        primary, gallery, and zoom images.
      tags:
        - Media
      parameters:
        - $ref: '#/components/parameters/productCode'
        - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: Product images
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImageList'
  /products/{productCode}/references:
    get:
      operationId: getProductReferences
      summary: SAP Commerce Cloud Get product references
      description: >-
        Retrieve product references such as similar products,
        accessories, cross-sells, and up-sells.
      tags:
        - Products
      parameters:
        - $ref: '#/components/parameters/productCode'
        - name: referenceType
          in: query
          description: Type of reference to filter by
          schema:
            type: string
            enum:
              - SIMILAR
              - ACCESSORIES
              - CROSSELLING
              - UPSELLING
              - OTHERS
        - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: Product references
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductReferenceList'
  /catalogs/{catalogId}/{catalogVersionId}:
    get:
      operationId: getCatalogVersion
      summary: SAP Commerce Cloud Get catalog version details
      description: >-
        Retrieve details of a specific catalog version including
        categories and their content.
      tags:
        - Catalogs
      parameters:
        - name: catalogId
          in: path
          required: true
          description: Catalog identifier
          schema:
            type: string
        - name: catalogVersionId
          in: path
          required: true
          description: Catalog version (e.g., Online, Staged)
          schema:
            type: string
        - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: Catalog version details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogVersion'
        '404':
          description: Catalog version not found
  /catalogs/{catalogId}/{catalogVersionId}/categories/{categoryId}:
    get:
      operationId: getCategoryContent
      summary: SAP Commerce Cloud Get category content
      description: >-
        Retrieve content for a specific category including images,
        descriptions, and subcategories.
      tags:
        - Categories
      parameters:
        - name: catalogId
          in: path
          required: true
          description: Catalog identifier
          schema:
            type: string
        - name: catalogVersionId
          in: path
          required: true
          description: Catalog version identifier
          schema:
            type: string
        - name: categoryId
          in: path
          required: true
          description: Category identifier
          schema:
            type: string
        - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: Category content
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoryContent'
        '404':
          description: Category not found
  /products/{productCode}/classifications:
    get:
      operationId: getProductClassifications
      summary: SAP Commerce Cloud Get product classifications
      description: >-
        Retrieve classification attributes and feature values for
        a product across classification categories.
      tags:
        - Classifications
      parameters:
        - $ref: '#/components/parameters/productCode'
        - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: Product classifications
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClassificationList'
  /products/suggestions:
    get:
      operationId: getProductSuggestions
      summary: SAP Commerce Cloud Get product search suggestions
      description: >-
        Retrieve autocomplete suggestions based on a partial search term.
      tags:
        - Products
      parameters:
        - name: term
          in: query
          required: true
          description: Partial search term
          schema:
            type: string
        - name: max
          in: query
          description: Maximum number of suggestions
          schema:
            type: integer
            default: 10
        - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: Search suggestions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuggestionList'
  /products/expressupdate:
    get:
      operationId: getProductExpressUpdate
      summary: SAP Commerce Cloud Get recently updated products
      description: >-
        Retrieve a list of products that have been modified since a
        given timestamp, useful for content synchronization.
      tags:
        - Products
      parameters:
        - name: timestamp
          in: query
          required: true
          description: ISO 8601 timestamp for change detection
          schema:
            type: string
            format: date-time
        - name: catalog
          in: query
          description: Catalog identifier to filter by
          schema:
            type: string
        - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: Updated product codes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProductExpressUpdateList'
components:
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 authentication for SAP Commerce Cloud
      flows:
        clientCredentials:
          tokenUrl: https://{tenant}.{region}.commercecloud.sap/authorizationserver/oauth/token
          scopes:
            basic: Basic access
  parameters:
    productCode:
      name: productCode
      in: path
      required: true
      description: Product code
      schema:
        type: string
    fields:
      name: fields
      in: query
      description: >-
        Response field configuration level. Use BASIC, DEFAULT, or FULL
        to control the amount of data returned.
      schema:
        type: string
        enum:
          - BASIC
          - DEFAULT
          - FULL
        default: DEFAULT
  schemas:
    ProductContent:
      type: object
      properties:
        code:
          type: string
          description: Product code
        name:
          type: string
          description: Product name
        summary:
          type: string
          description: Short summary
        description:
          type: string
          description: Full HTML description
        manufacturer:
          type: string
          description: Manufacturer name
        images:
          type: array
          items:
            $ref: '#/components/schemas/Image'
        categories:
          type: array
          items:
            $ref: '#/components/schemas/CategoryRef'
        classifications:
          type: array
          items:
            $ref: '#/components/schemas/Classification'
        productReferences:
          type: array
          items:
            $ref: '#/components/schemas/ProductReference'
        variantOptions:
          type: array
          items:
            $ref: '#/components/schemas/VariantOption'
        baseOptions:
          type: array
          items:
            $ref: '#/components/schemas/BaseOption'
        keywords:
          type: array
          items:
            type: string
          description: Product keywords for search
    Image:
      type: object
      properties:
        url:
          type: string
          description: Image URL
        altText:
          type: string
          description: Alternative text
        format:
          type: string
          description: Image format (thumbnail, product, zoom, cartIcon)
        imageType:
          type: string
          enum:
            - PRIMARY
            - GALLERY
          description: Image type
        galleryIndex:
          type: integer
          description: Position in gallery
    ImageList:
      type: object
      properties:
        images:
          type: array
          items:
            $ref: '#/components/schemas/Image'
    CategoryRef:
      type: object
      properties:
        code:
          type: string
          description: Category code
        name:
          type: string
          description: Category name
        url:
          type: string
          description: Category URL
    CategoryContent:
      type: object
      properties:
        code:
          type: string
          description: Category code
        name:
          type: string
          description: Category name
        description:
          type: string
          description: Category description
        image:
          $ref: '#/components/schemas/Image'
        subcategories:
          type: array
          items:
            $ref: '#/components/schemas/CategoryRef'
        products:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
              name:
                type: string
    CatalogVersion:
      type: object
      properties:
        id:
          type: string
          description: Catalog version ID (e.g., Online, Staged)
        lastModifiedTime:
          type: string
          format: date-time
          description: Last modification timestamp
        url:
          type: string
          description: Catalog version URL
        categories:
          type: array
          items:
            $ref: '#/components/schemas/CategoryRef'
    Classification:
      type: object
      properties:
        code:
          type: string
          description: Classification category code
        name:
          type: string
          description: Classification category name
        features:
          type: array
          items:
            $ref: '#/components/schemas/Feature'
    ClassificationList:
      type: object
      properties:
        classifications:
          type: array
          items:
            $ref: '#/components/schemas/Classification'
    Feature:
      type: object
      properties:
        code:
          type: string
          description: Feature code
        name:
          type: string
          description: Feature name
        comparable:
          type: boolean
          description: Whether this feature supports comparison
        featureUnit:
          type: object
          properties:
            symbol:
              type: string
            name:
              type: string
        featureValues:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
    ProductReference:
      type: object
      properties:
        referenceType:
          type: string
          enum:
            - SIMILAR
            - ACCESSORIES
            - CROSSELLING
            - UPSELLING
            - OTHERS
          description: Type of product reference
        target:
          type: object
          properties:
            code:
              type: string
            name:
              type: string
            url:
              type: string
        description:
          type: string
          description: Reference description
    ProductReferenceList:
      type: object
      properties:
        references:
          type: array
          items:
            $ref: '#/components/schemas/ProductReference'
    VariantOption:
      type: object
      properties:
        code:
          type: string
          description: Variant product code
        name:
          type: string
          description: Variant name
        url:
          type: string
          description: Variant URL
        stock:
          type: object
          properties:
            stockLevelStatus:
              type: string
              enum:
                - inStock
                - lowStock
                - outOfStock
        priceData:
          type: object
          properties:
            value:
              type: number
              format: double
            currencyIso:
              type: string
            formattedValue:
              type: string
        variantOptionQualifiers:
          type: array
          items:
            type: object
            properties:
              qualifier:
                type: string
              name:
                type: string
              value:
                type: string
              image:
                $ref: '#/components/schemas/Image'
    BaseOption:
      type: object
      properties:
        variantType:
          type: string
          description: Variant type code
        options:
          type: array
          items:
            $ref: '#/components/schemas/VariantOption'
        selected:
          $ref: '#/components/schemas/VariantOption'
    SuggestionList:
      type: object
      properties:
        suggestions:
          type: array
          items:
            type: object
            properties:
              value:
                type: string
                description: Suggestion text
    ProductExpressUpdateList:
      type: object
      properties:
        productExpressUpdateElements:
          type: array
          items:
            type: object
            properties:
              code:
                type: string
                description: Product code
              catalogId:
                type: string
                description: Catalog identifier
              catalogVersion:
                type: string
                description: Catalog version