API Spendint - POST /sn_spend_intg/spendint/catalog
Permite que os fornecedores publiquem vários catálogos para criar produtos do fornecedor, modelar produtos, contratos e registros de preços.
- Crie novas categorias de terceiros e mapeie essas categorias para categorias de modelo.
- Se disponível, use o Código de Produtos e Serviços Padrão das Nações Unidas (UNSPSC) e o nome da categoria.
- Se UNSPSC não estiver disponível, use apenas o nome da categoria.
- Depois de mapear uma categoria de terceiros para uma categoria de modelo, use o número de peça do fabricante (MPN) para encontrar um modelo de produto existente, se houver um disponível.
- Se um modelo de produto for encontrado para o MPN, atualize o modelo de produto com todas as mudanças e crie ou atualize todos os produtos do fornecedor que estejam relacionados ao modelo de produto.
- Se não existir um modelo de produto para o MPN, faça o seguinte:
- Uma classe de modelo de produto geralmente está disponível na categoria de modelo que é referenciada pela categoria de terceiros para o produto. Use esta classe de modelo de produto para obter a tabela de modelo de produto na qual o modelo de produto deve ser criado, por exemplo, hardware, software, consumível e assim por diante. Se nenhuma classe de modelo de produto estiver disponível, crie o modelo de produto na tabela de modelo de produto base.
- Depois que a classe correta do modelo de produto for identificada, crie um novo modelo de produto na classe correta da seguinte forma:
- Fabricante, fornecedor ou fornecedor deve mapear para o fabricante no modelo do produto.
- O nome do produto da API deve ser mapeado para o nome no modelo do produto.
- O MPN da API deve atualizar o número do modelo.
- A descrição do produto da API deve atualizar a descrição no modelo do produto.
- A categoria do modelo deve ser atualizada com a categoria do produto referenciada no registro de categoria de terceiros.
- A categoria de produto deve ser atualizada com a categoria de produto referenciada no registro de categoria de terceiros.
- Se houver valores nos produtos substitutos na API, crie os registros de produto substituto entre o modelo de produto atual e os outros modelos de produto.
- Se houver valores nos produtos compatíveis na API, crie os registros de produto compatíveis entre o modelo de produto atual e os outros modelos de produto.
- Os atributos de produto da API devem ser criados ou atualizados na lista relacionada a atributos de produto para o modelo de produto.
- Se um modelo de produto estiver disponível, use o número de peça do fornecedor para criar ou atualizar os produtos do fornecedor que estão relacionados ao modelo de produto.
Mapeamento de terceiros
- Categorias de terceiros: armazena todos os registros de categoria de terceiros para o administrador do ShoppingHub mapear com categorias de modelo internas existentes.
- Mapeamentos de modelo de terceiros: armazena todas as informações de mapeamento entre modelos de produto e categorias de modelo de terceiros.
- Unidades de terceiros: armazena todos os registros de unidades de terceiros para o administrador do ShoppingHub mapear com unidades de produto do fornecedor.
- Mapeamentos de unidades de terceiros: armazena todas as informações de mapeamento entre modelos de produto e unidades de terceiros.
Datas de vendas do produto do fornecedor
Um produto do fornecedor é descontinuado e não é mais publicado no catálogo quando atinge a data de término de vendas. Os campos Data de início das vendas e Data de término das vendas no formulário de produto do fornecedor são preenchidos por meio da integração de terceiros da APIde catálogo.
Tabelas de status
Para saber o status da solicitação de importação de produto em massa, 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 em massa falhou. Para resposta de importação de produto em massa, consulte a tabela Erro de catálogo com o seguinte parâmetro:
sysparm_query=outbound_error.supplier_id=<supplier_id> ^outbound_error.state=20
Detalhes sobre ID do cliente, ID do fornecedor, tipo de erro, ID do conjunto de importação exclusivo e estado podem ser encontrados na tabela Status de saída, que é a tabela de erros primária.
Formato da URL
/api/sn_spend_intg/spendint/catalog
Parâmetros de solicitação compatíveis
| Nome | Descrição |
|---|---|
| Nenhum(a) |
| 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:
Padrão: assíncrono |
| Nome | Descrição |
|---|---|
| customer_id | Identificador do cliente. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| catalog_id | Identificador do conteúdo do catálogo que pode ser comprado por um 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 |
| produtos.unidades_disponíveis | Necessário para produtos que são mantidos em estoque. Este valor indica a quantidade de unidades disponíveis para este produto. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| produtos.disponível_para_país | Lista de códigos de país onde o produto do fornecedor pode ser comprado. Se nenhum país for fornecido, um usuário de qualquer país poderá comprar o produto. Tipo de dados: matriz |
| produtos.bundled_components | Válido somente para cenários ao enviar um pacote de produtos como parte da carga do catálogo e aplicável somente para as cargas do pacote primário. Este valor contém a referência aos componentes do pacote secundário. A lista de MPN e as quantidades dos componentes do pacote secundário são mantidas aqui. Nota: Os componentes do pacote secundário e seus detalhes (MPN e quantidades) devem ser mapeados para o mesmo fornecedor.Como o mesmo componente de pacote secundário pode ser adicionado mais de uma vez em um pacote, a quantidade inserida é o diferenciador entre os mesmos componentes de pacote secundário. Tipo de dados: matriz |
| produtos.contrato_acordo | Detalhes do contrato de um produto. Nota:
Isso não é necessário para componentes do pacote secundário. Tipo de dados: objeto |
| 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 |
| produtos.tempo_de_entrega | Número estimado de dias necessários para enviar um produto ao cliente. Este valor deve representar o número de dias e ser um número inteiro. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| produtos.imagens | Lista de cadeias de caracteres que especificam os URLs de imagem do produto do fornecedor. Tipo de dados: matriz |
| product.manufacturer | Obrigatório. Empresa que produz, publica ou fornece o produto. Este não é o fornecedor ou o revendedor do produto. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| produtos.mpn | Obrigatório. Identificador de um produto fornecido pelo fabricante, fornecedor ou fornecedor. Nota:
Isso não é necessário para pacotes primários do revendedor se o valor de SKU estiver disponível. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| product.parent_bundle | Válido somente para cenários ao enviar um pacote de produtos como parte da carga do catálogo e aplicável somente para as cargas do componente do pacote secundário. No caso de um componente de pacote secundário, a referência ao primário é mantida aqui. Os valores de MPN e SKU primários também são definidos aqui. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| produtos.produto_atributos | Lista de pares de chave-valor que definem atributos do produto, por exemplo, "Cor": "Espaço cinza". Vários atributos para um produto são permitidos. No entanto, somente os atributos que afetam o preço ou a disponibilidade de estoque devem ser fornecidos por meio da API.Tipo de dados: objeto |
| product.product_category_name | Obrigatório. Nome que você insere se não estiver definindo a propriedade unspsc. Este nome é a categoria à qual um produto pertence. Este nome de categoria pode ser usado em um cenário de comércio para comprar o produto. Por exemplo, um produto de filtro de linha pode pertencer a uma categoria de equipamento de escritório. Tipo de dados: cadeia de caracteres Tamanho máximo: 100 |
| product.product_description | Descrição completa do produto que aparece para um comprador em uma experiência de comércio. Nota:
É recomendável que o fornecedor seja o mais descritivo possível aqui, especialmente para itens do catálogo de pacotes de produtos em que há componentes de pacote secundários. Tipo de dados: cadeia de caracteres Tamanho máximo: 65000 |
| produtos.product_name | Obrigatório. Nome do produto. Tipo de dados: cadeia de caracteres Tamanho máximo: 1000 |
| 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 |
| produtos.unidade | Obrigatório. Unidade ou taxa na qual o produto é vendido pelo fornecedor. Por exemplo, peças, horas e assim por diante. Tipo de dados: cadeia de caracteres Tamanho máximo: 40 |
| produtos.unspc | Obrigatório. Identificador que você insere se não estiver definindo a propriedade product_category_name. Este identificador é o UNSPSC da categoria à qual um produto pertence. Por exemplo, o código UNSPSC 43210000 é o identificador da categoria de produto Computadores. 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.
| Cabeçalho | Descrição |
|---|---|
| Aceitar | Formato de dados do corpo da resposta. Tipos compatíveis: application/json ou application/xml. Padrão: application/json |
| Cabeçalho | Descrição |
|---|---|
| Nenhum(a) |
Códigos de status
Os seguintes códigos de status se aplicam a esta ação HTTP.
| Código do 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, mpn 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/catalog" \
--request POST \
--header "Accept:application/json" \
--user 'username':'password'
{"root": [{
"customer_id": "AB-1234323",
"catalog_id": "ACME CORP-12347898",
"supplier_id": "SUP-123456",
"third_party_import_id": "DELL1234567",
"products": [
{
"product_name": "Apple MacBook Pro 13 Core i7",
"mpn": "Z0WQ-20004301931",
"sku": "55788741",
"manufacturer": "Apple",
"product_category_name": "Computer",
"parent_bundle": "920-0045362002",
"bundled_components": {
"mpn": "Z0WQ-20004301931",
"quantity": "4",
},
"unspsc": "43211500",
"product_description": "Apple MacBook Pro 13 Core i7 2.8GHz 16GB 512GB - Touch Bar - Space Gray",
"product_attributes": {
"Color": "Space Grey",
"RAM": "16GB",
"Screen Size": "13inch"
},
"images": ["http://test123.image1.png", "http://test123.image2.jpeg"],
"unit": "Each",
"available_units": "4",
"available_for_country": ["US","IN","GB"],
"delivery_time": "4",
"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": "AB-1234323",
"supplier_id": "SUP-123456",
"third_party_import_id": "DELL1234567",
"status_code": "failure",
"error_response_body": [
{
"sku": "55788741",
"mpn": "Z0WQ-20004301931",
"error_message": "Field Value empty/Formatting issue Negotiated currency \n"
}
]
}
]
}
}