A API de reconfiguração do CPQ

  • Versão de lançamento: Australia
  • Atualizado 12 de mar. de 2026
  • 2 min. de leitura
  • A API de reconfiguração do CPQ invoca os serviços do CPQ para reconfigurar um pacote de cotação.

    A API de reconfiguração do CPQ é uma API do Salesforce personalizada que invoca serviços de CPQ sem interrupções. Ao contrário da SDC, esta API é usada para reconfigurar um pacote de cotação existente.

    Pré-requisitos

    O token do cliente de tempo de execução deve ser definido na página Configurações personalizadas do administrador no Salesforce. O token deve incluir uma origem que corresponda a. CPQ URL, que não pode incluir um caractere de barra (/) à direita.

    O URL de configuração de tempo de execução também deve ser definido na página Configurações personalizadas do administrador. Na maioria dos casos, isso deve corresponder ao URL de administração na mesma página.

    Em Configuração do Salesforce, vá para Segurança e, em seguida, para Configurações de local remoto. Adicione um novo local remoto com seu CPQ O domínio como o URL.

    Lista de sites remotos

    Importante:
    Em que esta API depende uniqueIdentifierpara corresponder às linhas secundárias. Se você não tiver exclusivo uniqueIdentifiervalores para produtos, linhas secundárias podem ser atualizadas incorretamente.

    Detalhes da API

    Endpoint: /Services/apexrest/lgk/cpq-quote-lines/reconfigure

    Nota:
    Os endpoints e parâmetros da solicitação diferenciam maiúsculas de minúsculas.

    Métodos: Recebe e retorna aplicação/json .

    PATCH: O método atualmente oferece suporte a apenas dois campos, ConfigurationId e. ConfigurableQuoteLineId .

    Resposta: Uma cotação ( _Q__Q__c ).

    Nota:
    As informações da cotação retornadas incluirão informações sobre todas as linhas de cotação, não apenas as que estão sendo adicionadas pela solicitação. Por exemplo, se a configuração com três itens de linha for adicionada a uma cotação que já tinha duas linhas, as informações de cotação retornadas incluirão todas as cinco linhas.

    Exemplo de solicitação:

    {
    	"configurationId":"86ec190e-cba8-4b1d-a2dc-ba47714a22b5",
    	"configurableQuoteLineId":"a137d00000977oWAAQ"
    }

    Exemplo de resposta:

    {
    "attributes": {
    "type": "SBQQ__Quote__c",
    "url": "/services/data/v56.0/sobjects/SBQQ__Quote__c/a0zR0000003f3GLIAY"
    },
    "Name": "Q-00090",
    "Id": "a0zR0000003f3GLIAY",
    "SBQQ__LineItemCount__c": 4,
    "SBQQ__LineItems__r": {
    "totalSize": 4,
    "done": true,
    "records": [
    {
    "attributes": {
    "type": "SBQQ__QuoteLine__c",
    "url": "/services/data/v56.0/sobjects/SBQQ__QuoteLine__c/a0vR0000005LPRxIAO"
    },
    "SBQQ__Quote__c": "a0zR0000003f3GLIAY",
    "Id": "a0vR0000005LPRxIAO",
    "Name": "QL-0000122",
    "SBQQ__ProductName__c": "LGK Machine"
    },
    {
    "attributes": {
    "type": "SBQQ__QuoteLine__c",
    "url": "/services/data/v56.0/sobjects/SBQQ__QuoteLine__c/a0vR0000005LPRyIAO"
    },
    "SBQQ__Quote__c": "a0zR0000003f3GLIAY",
    "Id": "a0vR0000005LPRyIAO",
    "Name": "QL-0000123",
    "SBQQ__ProductName__c": "Analytics Software"
    },
    {
    "attributes": {
    "type": "SBQQ__QuoteLine__c",
    "url": "/services/data/v56.0/sobjects/SBQQ__QuoteLine__c/a0vR0000005LPS2IAO"
    },
    "SBQQ__Quote__c": "a0zR0000003f3GLIAY",
    "Id": "a0vR0000005LPS2IAO",
    "Name": "QL-0000124",
    "SBQQ__ProductName__c": "Extended Warranty"
    },
    {
    "attributes": {
    "type": "SBQQ__QuoteLine__c",
    "url": "/services/data/v56.0/sobjects/SBQQ__QuoteLine__c/a0vR0000005LPS3IAO"
    },
    "SBQQ__Quote__c": "a0zR0000003f3GLIAY",
    "Id": "a0vR0000005LPS3IAO",
    "Name": "QL-0000125",
    "SBQQ__ProductName__c": "Scanner"
    }
    ]
    },
    "SBQQ__Type__c": "Quote"
    }

    As solicitações podem ser feitas diretamente pelo APEX. O argumento é A. Map<String,Object> Com os mesmos campos usados na REST API. Por exemplo:

    Map<String, Object> requestBody = new Map<String, Object>{
      'configurableQuoteLineId' => '01t8a000005hldvAAA',
      'configurationId' => '79a3ffdd-7dd0-41f6-8700-4bd7506407c7'    
    };
    String result = LGK.CpqReconfigureApiController.reconfigure(requestBody);

    A resposta é uma cadeia de caracteres formatada JSON que representa o objeto de cotação, semelhante à resposta nas APIs REST.

    Mapeamento de campo personalizado

    Se um campo no objeto Linha de cotação no Salesforce tiver um nome que corresponda, os valores personalizados poderão ser gravados no estendido ou preço informações em a. CPQ produto.