# > Integração Produto

{% hint style="danger" %}
**Todo recurso desenvolvido deve ser** [**homologado**](https://desenvolvedores.skyhub.com.br/processo-de-homologacao) **pelo time responsável pela API da Americanas.**
{% endhint %}

## Passos para integração de produtos

Os passos para integração do recurso de produtos são:

1. Criação de itens simples e variáveis;
2. Categorização conforme regras criadas na Americanas Marketplace;
3. Correta inclusão de atributos que não estão definidos em nossa estrutura padrão;
4. Criação de produtos variáveis contendo atributos específicos, como cor, tamanho e voltagem;
5. Atualização de produtos simples e variáveis;
6. Exclusão de SKU.

{% hint style="info" %}
Todas as tarefas necessárias para a homologação do recurso de produtos podem ser consultadas na guia Validações > [Produtos](https://desenvolvedores.skyhub.com.br/processo-de-homologacao/validacoes/produtos-validacao) na seção Processo de Homologação.
{% endhint %}

### O que será validado durante o processo de homologação?

O processo de homologação de um recurso tem como objetivo garantir que a plataforma/ERP encontra-se apta para a integração com a API da Americanas. Para este processo serão validados os conteúdos das requisições (*method*, *headers* e *body*), assim como a execução de ações obrigatórias para a integração.

Para o recurso de produtos as validações compreendem os seguintes aspectos:&#x20;

* [Criação](/produtos/criacao-de-produto.md): Para a homologação será necessário criar produtos simples e variáveis;
* [Atualização](/produtos/atualizacao-produto.md): Serão solicitadas atualizações de determinados campos tanto para SKUs simples quanto para variações;
* [Exclusão](/produtos/excluir-produto.md): Para a homologação será validada a exclusão de um item, onde o mesmo deverá se manter deletado e o código SKU não poderá ser reaproveitado.

## Visão geral dos tipos de produtos para e-commerce

Para que um produto seja anunciado em sites de e-commerce é necessário conhecer alguns aspectos para escolher a melhor estratégia de anúncio.

De um modo geral existem dois tipos de produtos, simples e variável, conforme a seguir:

1. **Produto simples**: É aquele composto de um SKU simples sem variações do mesmo item, por exemplo: livros, DVDs e outros;
2. **Produto variável**: É aquele composto por dois ou mais SKU's, possuindo um atributo diferenciador como voltagem, tamanho, sabor e outros para distinguir as variações do mesmo produto. Atributos de variação são definidos pela Americanas Marketplace, conforme podemos verificar em [Consultar Atributos por Categoria](/produtos/categorizacao/consultar-atributos-por-categoria.md).

{% hint style="info" %}
**SKU** é a unidade de estoque vendida, a sigla significa ***Stock Keeping Unit**,* sendo na prática o ID único de cada produto.
{% endhint %}

### Pré-requisitos para produtos

#### Pré-requisitos para a integração de produtos em ambiente de teste e produção

Seguir um padrão no cadastro de produtos é uma prática muito importante, então listamos alguns desses requisitos para uma integração bem sucedida com o marketplace.

1. **Campos obrigatórios para o envio de itens para a API:**\
   Os seguintes campos são obrigatórios na API e o não envio desses atributos implicará em retorno de erro: \
   **-** SKU;\
   \- Título (name);\
   \- Descrição (description);\
   \- Dimensões (height, width e length);\
   \- Peso (weight).\
   \
   É imprescindível a observância dos demais requisitos abaixo para sucesso na integração com o marketplace:
2. **Utilize um padrão para a criação dos códigos SKUs**:\
   \- Utilize uma sequência numérica ou alfanumérica;\
   \- Certifique-se que o SKU não possua espaços em branco, normalmente oriundos de cópia direta de editores como Excel e outros;\
   \- <mark style="color:red;">Não utilize caracteres especiais</mark> como barra (/), asterisco (\*), vírgula (,), ponto (.), porcentagem (%) e diversos outros, como por exemplo ($, #, (, ), @, !, ¨) e **etc**. Não podemos mapear todas as tratativas realizadas pelo marketplace ao receber caracteres especiais para o SKU, em alguns casos é possível que haja a troca do SKU por um outro registro e, no pior dos casos, podem haver recusas para a integração do item;\
   \- <mark style="color:red;">**Utilize sempre SKUs exclusivos em todos os produtos:**</mark> <mark style="color:red;">Nunca repita um SKU em outro produto, mesmo que seja de produtos excluídos e mesmo entre produtos simples e variáveis</mark>.<br>
3. **Informe sempre o peso do produto:**\
   \- Utilize sempre a unidade de medida em **quilograma (Kg)**, por exemplo, 3.0 para três quilos;<br>
4. **Informe sempre as dimensões do produto:**\
   \- Utilize sempre a unidade de medida em **centímetros (Cm)**, por exemplo, 20.0 para vinte centímetros.<br>
5. **Informe ao menos uma imagem por produto:**\
   \- Um produto sem imagem não pode ser anunciado, portanto, é necessário que seja enviada ao menos uma imagem no produto.

   &#x20;

### Pré-requisitos para a homologação

Serão desconsiderados, principalmente, os SKUs que apresentaram erros durante o envio da requisição para a API - como, por exemplo, retorno de erro por ausência de um campo obrigatório - ou que apresentarem mais de um método POST, que deve ser utilizado exclusivamente para a criação.&#x20;

Para a homologação com a API da Americanas também serão validados todos os campos que constituem a estrutura de um produto, sendo:

* **SKU** (`sku`): Código único responsável pela identificação do produto e por este motivo não pode ser repetido em outro item;
* **Nome** (`name`): Breve título capaz de refletir de forma objetiva a proposta do item (por exemplo: Camiseta branca);
* **Descrição** (`description`): A descrição deve conter mais caracteres que o título definido e precisa trazer o detalhamento do produto criado. Neste campo não são aceitas tags HTML (com exceção de \<p> e \<br> devidamente abertas e fechadas) e expressão regular;
* **Status** (`status`): Campo que irá definir se um produto está ativo (*enabled*) ou inativo (*disabled*) para a venda;
* **Quantidade** (`qty`): Número inteiro que representa o estoque do item;
* **Preço** (`price`): Valor de venda do produto;&#x20;
* **Preço promocional** (`promotional_price`): Em ambiente de produção, caso o produto não possua ou deseje não trabalhar com **"promotional\_price"**, ele deve ser nulo. Para a homologação, o preenchimento do campo é validado;
* **Crossdocking** ( crossdocking ): Define o tempo de expedição do produto;
* **Custo** (`cost`): Custo do produto para o lojista;
* **Peso** (`weight`): Deverá ser considerado com quilograma (kg) e informado como inteiro, por exemplo, 3.0 será considerado três quilos;
* **Altura** (`height`): Todas as dimensões deverão ser considerados em centímetro (cm), por exemplo, 20.0 será considerado como 20 centímetros;
* **Largura** (`width`): Todas as dimensões deverão ser considerados em centímetro (cm);
* **Comprimento** (`length`): Todas as dimensões deverão ser considerados em centímetro (cm);
* **Marca** (`brand`): Será validado se o campo foi preenchido como *string*;
* **EAN** (`ean`): Será validado se o campo foi preenchido como *string* contendo de 13 a 14 números;
* **NBM** (`nbm`): Para a homologação será validado se o campo foi preenchido como *string* contendo de 8 a 10 caracteres;
* **Imagens** (`images`): Todas as imagens encaminhadas para a API devem estar no formato *https* e o servidor não pode ter redirecionamentos;
* **Especificações** (`specifications`): Responsável por receber todas as informações adicionais para um produto, como voltagem, tamanho, cor, entre outros atributos disponíveis.

Navegue pelas guias abaixo e acompanhe o detalhamento de cada ação de produto:

{% content-ref url="/pages/-MG4Gis5UfYeVHsMwz1j" %}
[Criação de Produto](/produtos/criacao-de-produto.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MG4KKKK7iO8kF9S7J30" %}
[Atualização de Produto](/produtos/atualizacao-produto.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MGPs\_Se8fX9P-Bng5q3" %}
[Consulta de Produto](/produtos/consulta-produto.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MG4JxT8yc3BFw4grZQU" %}
[Exclusão de Produto](/produtos/excluir-produto.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MG4Glj0PPvakqUVOzYu" %}
[Outros Recursos de Produtos](/produtos/outros-recursos-de-produtos.md)
{% endcontent-ref %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://desenvolvedores.skyhub.com.br/produtos/integracao-produtos.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
