API Spendint - POST /sn_spend_intg/spendint/Price

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 3 min. de leitura
  • Atualiza todos os preços dos registros de produtos do fornecedor.

    Quando o preço está disponível para registros de produtos do fornecedor, a API usa o SKU do produto para encontrar um produto existente do fornecedor. Se existir um produto do fornecedor correspondente, o preço do contrato correspondente será atualizado. Se nenhum produto do fornecedor correspondente for encontrado, uma mensagem de erro será gerada, informando que o produto para o qual você está tentando atualizar o preço não existe.

    Tabelas de status

    Para saber o status da solicitação de importação de preço, faça uma chamada REST no banco de dados ServiceNow usando a API REST de tabela. A resposta da API lista os registros em que a solicitação de importação de preço falhou. Para obter uma resposta de importação de preço, consulte a tabela Erro de preço com o seguinte parâmetro:

    sysparm_query=outbound_error.supplier_id=<supplier_id> ^outbound_error.state=20

    Você pode encontrar os detalhes sobre o ID do cliente, o ID do fornecedor, o tipo de erro, o ID exclusivo do conjunto de importação e o estado na tabela Status de saída, que é a tabela de erros primária.

    Formato da URL

    /api/sn_spend_intg/spendint/Price

    Parâmetros de solicitação compatíveis

    Tabela 1. Parâmetros de caminho
    Nome Descrição
    Nenhum(a)
    Tabela 2. Parâmetros de consulta
    Nome Descrição
    modo Suporte para modos assíncronos e síncronos para integração de terceiros.

    Tipo de dados: cadeia de caracteres

    Valores válidos:
    • async: modo assíncrono.
    • sincronizar: modo síncrono.

    Padrão: assíncrono

    Tabela 3. Parâmetros do corpo da solicitação (XML ou JSON)
    Nome Descrição
    catalog_id Obrigatório. Identificador do conteúdo do catálogo que pode ser comprado por um cliente.

    Tipo de dados: cadeia de caracteres

    Tamanho máximo: 100

    customer_id Obrigatório. Identificador do cliente.

    Tipo de dados: cadeia de caracteres

    Tamanho máximo: 100

    produtos Lista de objetos que definem os produtos a serem criados ou atualizados. Cada transação tem um limite de 1.000 produtos.

    Tipo de dados: matriz

    "products": [
      {
        "contract_agreement": {Array},
        "sku": "String"
      }
    ]
    produtos.contrato_acordo Detalhes do contrato de um produto.

    Tipo de dados: objeto

    "contract_agreement": {
      "contract_end_date": "String",
      "contract_number": "String",
      "contract_start_date": "String",
      "negotiated_currency ": "String",
      "negotiated_price": "String"
    }
    produtos.contract_agreement.contract_end_date Data em que o termo do contrato termina.

    Tipo de dados: cadeia de caracteres

    Tamanho máximo: 40

    Formato: AAAA-MM-DD

    produtos.contract_agreement.contract_number Obrigatório. Número do contrato ativo associado ao produto.

    Tipo de dados: cadeia de caracteres

    Tamanho máximo: 100

    produtos.contract_agreement.contract_start_date Data em que a duração do contrato começa.

    Tipo de dados: cadeia de caracteres

    Tamanho máximo: 40

    Formato: AAAA-MM-DD

    produtos.contract_agreement.negotiated_currency Obrigatório. Moeda do preço negociado.

    Tipo de dados: cadeia de caracteres

    Tamanho máximo: 40

    produtos.contrato_acordo.negociado_preço Obrigatório. Preço unitário de um produto conforme negociado por meio de um contrato com o fornecedor ou revendedor.

    Tipo de dados: cadeia de caracteres

    Tamanho máximo: 40

    product.sku Obrigatório. Número gerado por um fornecedor que identifica exclusivamente um produto vendido por esse fornecedor.

    Tipo de dados: cadeia de caracteres

    Tamanho máximo: 100

    ID_do_fornecedor Obrigatório. Identificador do revendedor ou fornecedor com o qual o cliente pode fazer pedidos.

    Tipo de dados: cadeia de caracteres

    Tamanho máximo: 100

    id_de_importação_de_terceiros Identificador que permite que um terceiro passe um valor de cadeia de caracteres para identificar exclusivamente um conjunto de dados importados.

    Tipo de dados: cadeia de caracteres

    Tamanho máximo: 100

    Cabeçalhos

    Os cabeçalhos de solicitação e resposta a seguir se aplicam somente a esta ação HTTP ou se aplicam a esta ação de maneira distinta.

    Tabela 4. Cabeçalhos da solicitação
    Cabeçalho Descrição
    Aceitar Formato de dados do corpo da resposta. Tipos compatíveis: application/json ou application/xml.

    Padrão: application/json

    Nota:
    Somente o formato de dados application/json é compatível com a Estrutura de integração de compras.
    Tabela 5. Cabeçalhos de resposta
    Cabeçalho Descrição
    Nenhum(a)

    Códigos de status

    Os seguintes códigos de status se aplicam a esta ação HTTP.

    Tabela 6. Códigos de status
    Código de status Descrição
    êxito Bem-sucedido. A solicitação foi processada com sucesso.
    falha Mal-sucedido. A solicitação foi processada com erros.

    Parâmetros do corpo da resposta (JSON)

    Esses parâmetros de corpo de resposta são recebidos quando consultados no modo síncrono.
    Nome Descrição
    erro_resposta_corpo Descrição dos erros, listados por SKU e mensagem de erro.

    Tipo de dados: matriz

    error_response_body.error_message Mensagem de erro detalhada.

    Tipo de dados: cadeia de caracteres

    status_code Status da resposta, como "sucesso" ou "falha".

    Tipo de dados: cadeia de caracteres

    Solicitação de cURL

    curl "https://instance.service-now.com/api/sn_spend_intg/spendint/price" \
    --request POST \
    --header "Accept:application/json" \
    --user 'username':'password'
    {"root": [{
      "customer_id": "ACME CORP",
      "catalog_id": "AB-1234323",
      "supplier_id": "SUP-123456",
      “third_party_import_id”: “DEL789876",
      "products": [
        {
          "sku": "5578874",
          "contract_agreement": {
            "contract_number": "34567892",
            "contract_start_date": "YYYY-MM-DD",
            "contract_end_date": "YYYY-MM-DD",
            "negotiated_price": "456",
            "negotiated_currency ": "USD"
          }
        }
      ]
    }
    ]}
    

    Possíveis respostas:

    // Success response:
    {
        “result”: {
            “response”: “success”
        }
    }
    
    // Error response:
    {
        “result”: {
            “response”: [
                {
                    “customer_id”: “ACME CORP”,
                    “supplier_id”: “SUP-123456”,
                    “third_party_import_id”: “DEL789876",
                    “status_code”: “failure”,
                    “error_response_body”: [
                        {
                            “sku”: “5578874”,
                            “error_message”: “The product for which you are trying to update pricing does not exist\nField Value empty/Formatting issue Negotiated currency\nField Value empty/Formatting issue Contract start date\nField Value empty/Formatting issue Contract end date\n”
                        }
                    ]
                }
            ]
        }
    }