런타임 API

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 12분
  • 런타임 API

    CPQ 은 프론트엔드 애플리케이션을 빌드하고 구성을 조작하기 위한 API 세트를 제공합니다. 일반적으로 구매측 또는 런타임 API라고 하며 고객 또는 최종 사용자가 구성을 생성, 업데이트 및 저장 CPQ 하는 데 사용됩니다.

    런타임 API는 에서 BOM(자재 명세서) 데이터를 CPQ검색하는 기능과 함께 구성에 대한 CPQ 표준 생성, 읽기, 업데이트 및 삭제 기능을 지원합니다.

    주:
    이러한 API는 레거시 API입니다. 최신 정보는 전체 CPQ API 참조를 참조하십시오.

    Logik.io API 참조

    런타임 API에 액세스할 수 있도록 하고 CPQ 최종 개발자에게 빠른 시작을 제공하려면 쉽게 가져오고 테스트를 시작하는 데 사용할 수 있는 API 컬렉션에 대한 오픈 소스 리포지토리를 참조하세요.

    API-Documentation/runtime/Logik Configurator 런타임 APIs.postman_collection.json

    런타임 API 설정

    모든 런타임 API 호출의 기본 URL 형식은 https://<tenant>.<sector>.logik.io/api/ 이며, 여기서 <tenant> 는 나열된 테넌트 이름이고 <sector> 는 환경이 위치한 적절한 섹터(일반적으로 테스트 또는 프로덕션)입니다.

    Salesforce에서는 설정으로 이동하여 빠른 찾기 상자에서 사용자 지정 설정을 검색한 다음 테넌트 옆에 있는 CPQ관리를 클릭하여 테넌트 URL을 찾을 CPQ 수 있습니다.

    런타임 API 호출은 전달자 토큰과 런타임 클라이언트에 정의된 원본의 조합을 통해 인증됩니다. 런타임 애플리케이션의 원본은 관리자 설정에서 CPQ 런타임 클라이언트가 생성될 때 지정됩니다.

    이러한 API 호출에 권한을 부여하려면 각 런타임 API 요청에 두 개의 헤더를 추가해야 합니다.

    표 1. 런타임 API 요청에 대한 필수 헤더
    머리글
    원본 헤더 원본 <runtimeClientOrigin>
    권한 부여 헤더 권한 부여 전달자 <runtimeToken>

    샘플 헤더:

    • 원본: localhost
    • 권한 부여: 전달자 vEqzz4BVkb15Le11En8axEuN71FA6Vt_cw

    구성 생성

    API를 통해 새 구성을 시작하기 위해 구성 생성 호출이 구성 가능한 제품의 ID를 전달합니다. 이에 대한 응답으로 이후 호출에서 이 구성을 지정하는 데 사용할 수 있는 구성 ID를 받습니다 CPQ .

    표 2. 게시
    HTTP 메서드 게시
    URL https://<tenant>.<sector>.logik.io/api/
    경로 매개변수 해당 사항 없음
    쿼리 매개변수 해당 사항 없음

    페이로드의 두 가지 핵심 부분은 다음과 같습니다.

    • 배포된 Blueprint가 있는 활성화된 제품의 ID CPQ
    • CPQ 재구성 중인 구성 UUID

    샘플 URL:

    https://dev1.test.Logik/api/

    샘플 페이로드:

    {
      "sessionContext": 
      { 
        "stateful": true
      },
      "partnerData": 
      { 
        "product":
        {
          "configuredProductId": "<Id of a Logik.io Enabled Product>", 
        }
      },
      "fields": []
    }
    주:
    필드 값을 다음과 같은 형식으로 필드 배열에 전달하여 구성을 초기화할 수도 있습니다.
    {
      “variableName”: “<Field Name>”, “value”: “<Field Value>”
    }

    샘플 응답:

    {
      "fields": [<ARRAY OF FIELD OBJECTS>],
      "uuid": "08176434-9b1e-4fc8-b2c4-8aba2c35fda3", 
      "revision": 0,
      "relatedChanges": 
      [
        {
          "key": "products",
          "type": "PRODUCT"
        }
      ],
      "valid": true, 
      "messages": [], 
      "productChange": true,
      "products": [<ARRAY OF PRODUCTS IN CONFIGURATION>],
      "total": 30,
      "layouts": [<ARRAY OF LAYOUTS>]
    }

    구성 재구성

    재구성 API 호출은 구성 생성 호출과 비슷합니다. 재구성 호출은 구성 가능한 제품의 ID와 기존 CPQ 구성 ID를 전달하고, 그 대가로 이전 구성과 동일한 필드 데이터를 포함하지만 변경할 수 있는 새 구성 ID를 수신합니다.

    주:
    응답 페이로드의 UUID 필드에 새 CPQ 구성 ID가 포함되어 있습니다. 새 구성 ID는 BOM 업데이트, 저장 및 검색을 포함하여 재구성 프로세스에서 진행되는 모든 작업에 사용해야 합니다.
    표 3. 게시
    HTTP 메서드 게시
    URL https://<테넌트>.<sector>.logik.io/api/
    경로 매개변수 해당 사항 없음
    쿼리 매개변수 해당 사항 없음

    페이로드의 두 가지 핵심 부분은 다음과 같습니다.

    • 배포된 Blueprint가 있는 활성화된 제품의 ID CPQ
    • CPQ 재구성 중인 구성 UUID

    샘플 URL:

    https://dev1.test.Logik/api/

    샘플 페이로드:

    {
      "sessionContext": 
      { 
        "stateful": true
      },
      "partnerData": 
      { 
        "product": 
        {
          "configuredProductId": "<Id of a Logik.io Enabled Product>", 
          "configurationAttributes": 
          {
            "LGK__ConfigurationId__c": "<uuid>"
          }
        }
      },
      "fields": []
    }

    샘플 응답:

    {
      "fields": [<ARRAY OF FIELD OBJECTS>],
      "uuid": "d98d60cd-9379-4b7b-86fd-de828c340f80", 
      "revision": 0,
      "relatedChanges": 
      [
        {
          "key": "products",
          "type": "PRODUCT"
        }
      ],
      "valid": true, 
      "messages": [], 
      "productChange": true,
      "products": [<ARRAY OF PRODUCTS IN CONFIGURATION>],
      "total": 30,
      "layouts": [<ARRAY OF LAYOUTS>]
    }

    구성 업데이트

    구성을 업데이트하려면 구성 생성 또는 재구성 API 호출을 사용하여 구성을 로드해야 합니다. 구성 업데이트 호출은 CPQ 구성 ID와 원하는 필드 값을 전달하고 응답으로 에서 업데이트된 구성을 수신합니다 CPQ.

    표 4. 패치
    HTTP 메서드 패치
    URL https://<테넌트>.<sector>.logik.io/api/
    경로 매개변수 해당 사항 없음
    쿼리 매개변수 이름 허용된 값 필요하십니까? 지정되지 않은 경우 기본값
    델타 예 | 아니오 옵션
    저장 예 | 아니오 옵션 아니오

    쿼리 매개변수:

    delta

    delta=true CPQ 인 경우 전송된 업데이트를 기반으로 변경된 데이터만 다시 전송합니다. 이것이 기본 동작입니다.

    delta=false CPQ 인 경우 응답으로 전체 구성과 BOM 데이터를 다시 보냅니다.

    save

    save=true CPQ 인 경우 이 구성을 저장하고 설정에 따라 웹후크로 데이터를 보내거나 Salesforce의 사용자 지정 객체에 데이터를 쓰는 등의 추가 작업을 수행합니다. 이것이 구성 호출 저장 동작입니다.

    save=false CPQ 인 경우 이 구성을 업데이트하고 업데이트된 데이터를 응답으로 다시 보냅니다. 이것이 기본 동작이며, 업데이트 호출의 동작입니다.

    샘플 URL:

    https://dev1.test.logik.io/api/fbc3d32c-7f86-4461-b144-986a0e8a5768

    샘플 페이로드:

    {
      "fields": 
      [
        {
          "variableName": "orderQty", 
          "value": 3
        }
      ]
    }

    샘플 응답:

    {
      "fields": [],
      "uuid": "fbc3d32c-7f86-4461-b144-986a0e8a5768", 
      "revision": 0,
      "relatedChanges": 
      [
        {
          "key": "products",
          "type": "PRODUCT"
        }
      ],
      "valid": true, 
      "messages": [], 
      "productChange": true, 
      "products": null
    }

    구성 저장

    구성 저장은 업데이트 구성의 하위 집합입니다. 구성 생성 또는 재구성 API 호출을 사용하여 구성을 로드해야 합니다. 구성 저장 호출은 구성 ID와 원하는 필드 값을 전달 CPQ 하고 응답으로 에서 업데이트된 구성을 수신합니다 CPQ.

    주:
    일반 업데이트 호출과 저장 호출의 유일한 차이점은 URL에 쿼리 매개변수 save=true 가 추가되었다는 것입니다. false 또는 제외로 설정된 경우 이는 정상적인 업데이트 호출입니다.

    Salesforce를 백엔드로 사용하는 경우 저장 API가 호출 CPQ 되면 사용자 지정 객체 구성 필드 데이터 세트 및 구성 라인 항목을 적절한 데이터로 비동기식으로 만들고 채웁 CPQ 니다.

    인스턴스에 CPQ 웹후크가 구성되어 있는 경우 저장 API가 호출되면 웹후크 설정에 지정된 엔드포인트로 데이터가 전송됩니다. 웹후크 문서를 참조하십시오.

    주:
    이렇게 하면 구성 세션이 종료됩니다. 구성에 대한 추가 편집 또는 업데이트는 구성 생성 또는 재구성 API 호출에서 시작해야 합니다.
    표 5. 패치
    HTTP 메서드 패치
    URL https://<테넌트>.<sector>.logik.io/api/
    경로 매개변수 해당 사항 없음
    쿼리 매개변수 이름 허용된 값 필요하십니까? 지정되지 않은 경우 기본값
    델타 예 | 아니오 옵션
    저장 예 | 아니오 옵션 아니오

    쿼리 매개변수:

    delta

    delta=true CPQ 인 경우 전송된 업데이트를 기반으로 변경된 데이터만 다시 전송합니다. 이것이 기본 동작입니다.

    delta=false CPQ 인 경우 응답으로 전체 구성과 BOM 데이터를 다시 보냅니다.

    save

    save=true CPQ 인 경우 이 구성을 저장하고 설정에 따라 웹후크로 데이터를 보내거나 Salesforce의 사용자 지정 객체에 데이터를 쓰는 등의 추가 작업을 수행합니다.

    save=false CPQ 인 경우 이 구성을 업데이트하고 업데이트된 데이터를 응답으로 다시 보냅니다. 업데이트 호출의 동작입니다.

    샘플 cURL 요청:

    curl --location --request PATCH 'https://mpanigrahi-demo.demo01.logik.io/api/6d0ef6fd-4c88-44f3-a296-b03421c369c6' \
    --header 'Content-Type: application/json' \
    --header 'Accept: application/json' \
    --header 'Origin: https://mpanigrahi-demo.demo01.logik.io' \
    --header 'Authorization: <<RUNTIME TOKEN>>' \
    --header 'Cookie: LGKSESSION=NDA5OWJmNmEtNDhhOS00YTc4LTk3ODktZTg0OGYyOGIwMjZk' \
    --data '{"fields":[{"variableName":"name_d1","value":"megha","dataType":"text"}],"responseState":{"setPagination":{"collections":{"pageSize":10,"pageNumber":0},"fields":{"pageSize":10,"pageNumber":0},"componentTypes":{"pageSize":10,"pageNumber":0}},"defaultPagination":{"pageSize":10,"pageNumber":0},"searchValues":{}}}'

    샘플 응답:

    {
    "fields": [<ARRAY OF FIELD OBJECTS>],
    "uuid": "8817655d-7a11-41ef-a9fd-59c2855a3e4b", 
    "revision": 1,
    "valid": true, 
    "messages": [], 
    "productChange": false,
    "products": [<ARRAY OF PRODUCTS IN CONFIGURATION>],
    "total": 0
    }

    BOM API

    BOM API는 구성의 최종 출력을 검색하는 데 유용합니다. BOM API를 사용하여 전체 BOM 또는 특정 하위 집합(예: 판매 또는 제조 BOM)을 검색할 수 있습니다.

    BOM 가져오기 호출은 구성 ID를 CPQ 전달하고 대가로 구성의 현재 상태에 의해 생성된 현재 BOM을 수신합니다. BOM 유형에는 "all", "sales" 및 "manufacturing"의 3가지 내장이 있습니다. 제품의 bomType 필드를 설정하여 BOM 유형을 추가하여 동적으로 추가할 수 있습니다.

    주:
    BOM 유형이 포함되지 않은 경우 API는 전체 BOM을 반환합니다.
    표 6. 임포트
    HTTP 메서드 임포트
    URL https://<tenant>.<sector>.logik.io/api/<uuid>/bom/<bomType>
    경로 매개변수 이름 허용된 값 필요하십니까?
    <UUID> 32자 CPQ 구성 UUID 필수
    <bomType> 검색할 BOM의 이름 옵션
    쿼리 매개변수 해당 사항 없음

    샘플 응답:

    {"products": [
            {
                "id": "01t5f000006QKysAAG",
                "quantity": 1,
                "bomType": "Sales",
                "orderNumber": 10,
                "type": "accessory",
                "name": "Amend Flow Bundle Sub",
                "partnerId": "01t5f000006QKysAAG",
                "productCode": "AFBC-SC",
                "externalId": "",
                "productFamily": "Miscellaneous",
                "description": "",
                "uom": "",
                "price": 5,
                "extPrice": 5,
                "level": 0,
                "rollUpPrice": 5
            },
            {
                "id": "01t5f000006QKz2AAG",
                "quantity": 1,
                "bomType": "Sales",
                "orderNumber": 20,
                "type": "accessory",
                "name": "Amend Flow Bundle Asset",
                "partnerId": "01t5f000006QKz2AAG",
                "productCode": "AFBC2-SC",
                "externalId": "",
                "productFamily": "Miscellaneous",
                "description": "",
                "uom": "",
                "price": 25,
                "extPrice": 25,
                "level": 0,
                "rollUpPrice": 25
            }
        ]}

    추가 구성 API 및 예제 시나리오에 대한 자세한 내용은 다음 문서를 참조하십시오 추가 구성 API.