APIs de tempo de execução
APIs de tempo de execução
CPQ Fornece um conjunto de APIs para criar aplicações front-end e manipular configurações. Essas APIs são comumente chamadas de buyside ou runtime e são usadas por clientes ou usuários finais para criar, atualizar e salvar CPQ configurações.
As APIs de tempo de execução são compatíveis com as funções padrão de criação, leitura, atualização e exclusão para CPQ E a capacidade de recuperar dados da lista de materiais (BOM) de CPQ.
Para fazer CPQ APIs de tempo de execução acessíveis e fornecem um início rápido para os desenvolvedores finais, consulte nossos repositórios de código aberto para coleções de APIs que podem ser facilmente importados e usados para iniciar o teste:
API-Documentation/runtime/Logik Configurator Runtime APIs.postman_collection.json
Configuração da API de tempo de execução
O formato de URL base para todas as chamadas de API de tempo de execução é https://<tenant>.<sector>.logik.io/api/ , onde <tenant> é o nome do locatário listado e. <sector> é o setor apropriado no qual o ambiente está localizado (geralmente teste ou prod ).
No Salesforce, você pode encontrar CPQ URL do locatário acessando Configuração, pesquisando Configurações personalizadas na caixa Localização rápida e clicando em Gerenciar ao lado de CPQ Locatário.
As chamadas de API de tempo de execução são autenticadas por meio de uma combinação de um token de portador e a origem definida no cliente de tempo de execução. As origens da aplicação de tempo de execução são especificadas quando um cliente de tempo de execução é criado no CPQ Configurações do administrador.
Para autorizar essas chamadas de API, você deve adicionar dois cabeçalhos a cada solicitação de API de tempo de execução:
| Cabeçalho | Chave | Valor |
|---|---|---|
| Cabeçalho de origem | origem | <runtimeClientOrigin> |
| Cabeçalho de autorização | autorização | <runtimeToken> do portador |
Cabeçalhos de amostra:
- origem: localhost
- Autorização: Portador vEqzz4BVkb15Le11En8axEuN71FA6Vt_cw
Crie uma configuração
Para iniciar uma nova configuração por meio das APIs, a chamada de criação de configuração passa o ID do produto configurável. Em resposta, ele recebe um CPQ ID de configuração que pode ser usado para especificar esta configuração em chamadas posteriores.
| Método HTTP | POST |
| URL | https://<tenant>.<sector>.logik.io/api/ |
| Parâmetros de caminho | N/D |
| Parâmetros de consulta | N/D |
As duas peças-chave da carga são:
- O ID de um CPQ produto habilitado, com um blueprint implantado
- . CPQ UUID de configuração que está sendo reconfigurado
URL de amostra:
https://dev1.test.Logik/api/
Carga de amostra:
{
"sessionContext":
{
"stateful": true
},
"partnerData":
{
"product":
{
"configuredProductId": "<Id of a Logik.io Enabled Product>",
}
},
"fields": []
}
{
“variableName”: “<Field Name>”, “value”: “<Field Value>”
}Resposta de amostra:
{
"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>]
}
Reconfigure uma configuração
A chamada de API de reconfiguração é semelhante à chamada de criação de configuração. A chamada de reconfiguração passa o ID do produto configurável e um existente CPQ ID de configuração e, em troca, recebe um novo ID de configuração com os mesmos dados de campo da configuração anterior, mas permitindo que mudanças sejam feitas.
| Método HTTP | POST |
| URL | https://<tenant>.<sector>.logik.io/api/ |
| Parâmetros de caminho | N/D |
| Parâmetros de consulta | N/D |
As duas peças-chave da carga são:
- O ID de um CPQ produto habilitado, com um blueprint implantado
- . CPQ UUID de configuração que está sendo reconfigurado
URL de amostra:
https://dev1.test.Logik/api/
Carga de amostra:
{
"sessionContext":
{
"stateful": true
},
"partnerData":
{
"product":
{
"configuredProductId": "<Id of a Logik.io Enabled Product>",
"configurationAttributes":
{
"LGK__ConfigurationId__c": "<uuid>"
}
}
},
"fields": []
}
Resposta de amostra:
{
"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>]
}
Atualize uma configuração
A atualização de uma configuração requer que uma configuração seja carregada usando as chamadas de API Criar configuração ou Reconfigurar configuração. A chamada Atualizar configuração passa por CPQ ID de configuração e todos os valores de campo desejados e em resposta recebe a configuração atualizada de CPQ.
| Método HTTP | PATCH | |||
| URL | https://<tenant>.<sector>.logik.io/api/ | |||
| Parâmetros de caminho | N/D | |||
| Parâmetros de consulta | Nome | Valor permitido | Necessário? | Se não for especificado, padrão |
| delta | verdadeiro | falso | opcional | verdadeiro | |
| Salvar | verdadeiro | falso | opcional | falso | |
Parâmetros de consulta:
delta
Se delta for verdadeiro, CPQ envia de volta somente os dados que foram alterados com base na atualização enviada. Esse é o comportamento padrão.
Se delta for falso, CPQ Envia de volta a configuração inteira e os dados da BOM em resposta.
save
Se salvar for verdadeiro, CPQ Salva esta configuração e (dependendo das configurações) executa ações adicionais, como enviar os dados para um webhook ou gravar os dados em objetos personalizados no Salesforce. Este é o comportamento da chamada de salvar configuração.
Se salvar for falso, CPQ atualiza esta configuração e envia os dados atualizados de volta na resposta. Este é o comportamento padrão e este é o comportamento da chamada de atualização.
URL de amostra:
https://dev1.test.logik.io/api/fbc3d32c-7f86-4461-b144-986a0e8a5768
Carga de amostra:
{
"fields":
[
{
"variableName": "orderQty",
"value": 3
}
]
}
Resposta de amostra:
{
"fields": [],
"uuid": "fbc3d32c-7f86-4461-b144-986a0e8a5768",
"revision": 0,
"relatedChanges":
[
{
"key": "products",
"type": "PRODUCT"
}
],
"valid": true,
"messages": [],
"productChange": true,
"products": null
}
Salve uma configuração
Salvar uma configuração é um subconjunto da configuração de atualização. É necessário que uma configuração seja carregada usando as chamadas de API Criar configuração ou Reconfigurar configuração. A chamada de salvar configuração passa por CPQ ID de configuração e todos os valores de campo desejados e em resposta recebe a configuração atualizada de CPQ.
Se você estiver usando o Salesforce como back-end, quando a SAVE API for chamada, CPQ cria e preenche de forma assíncrona o. CPQ Conjuntos de dados do campo de configuração de objetos personalizados e itens de linha de configuração com os dados apropriados.
. CPQ A instância tem um webhook configurado. Quando a SAVE API é chamada, os dados são enviados para o endpoint especificado na configuração do webhook. Consulte Webhooks.
| Método HTTP | PATCH | |||
| URL | https://<tenant>.<sector>.logik.io/api/ | |||
| Parâmetros de caminho | N/D | |||
| Parâmetros de consulta | Nome | Valor permitido | Necessário? | Se não for especificado, padrão |
| delta | verdadeiro | falso | opcional | verdadeiro | |
| Salvar | verdadeiro | falso | opcional | falso | |
Parâmetros de consulta:
delta
Se delta for verdadeiro, CPQ envia de volta somente os dados que foram alterados com base na atualização enviada. Esse é o comportamento padrão.
Se delta for falso, CPQ Envia de volta a configuração inteira e os dados da BOM em resposta.
save
Se salvar for verdadeiro, CPQ Salva esta configuração e (dependendo das configurações) executa ações adicionais, como enviar os dados para um webhook ou gravar os dados em objetos personalizados no Salesforce.
Se salvar for falso, CPQ atualiza esta configuração e envia os dados atualizados de volta na resposta. Este é o comportamento da chamada de atualização.
Solicitação de curl de amostra:
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":{}}}'
Resposta de amostra:
{
"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
}
APIs DA BOM
As APIs da BOM são úteis para recuperar a saída final da configuração. As APIs de BOM podem ser usadas para recuperar toda a BOM ou subconjuntos específicos, como BOMs de vendas ou de fabricação.
A chamada Obter BOM passa por A. CPQ O ID de configuração e em retorno recebe a BOM atual gerada pelo estado atual da configuração. Há 3 tipos de BOM integrados: "Todos", "vendas" e "fabricação". Tipos de BOM adicionais podem ser adicionados dinamicamente definindo o campo bomType no produto.
| Método HTTP | GET | ||
| URL | https://<tenant>.<sector>.logik.io/api/<uuid>/BOM/<bomType> | ||
| Parâmetros de caminho | Nome | Valor permitido | Necessário? |
| <uuid> | 32 caractere CPQ UUID de configuração | obrigatório | |
| <bomType> | Nome da BOM a ser recuperada | opcional | |
| Parâmetros de consulta | N/D | ||
Resposta de amostra:
{"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
}
]}
Para obter informações sobre APIs de configuração adicionais e cenários de amostra, consulte APIs de configuração adicionais.