# Produto Simples

## PUT - Atualizando um produto simples

A atualização de informações é realizada através do método PUT, mantendo o mesmo header e conservando o atributo que deverá ser alterado.

Para realizar a atualização, é preciso utilizar o método PUT no mesmo endpoint de produtos acrescido do código SKU do produto simples conforme abaixo:

```
https://api.skyhub.com.br/products/{SKU}
```

#### **Request headers:**

| Key                  | Value                                       |
| -------------------- | ------------------------------------------- |
| X-User-Email         | email\_de\_usuario                          |
| X-Api-Key            | token\_de\_integracao de sua conta SkyHub   |
| X-Accountmanager-key | token\_account único de cada Plataforma/ERP |
| Accept               | application/json                            |
| Content-Type         | application/json                            |

#### **Request body:**

```
{
  "product": {
    "Atributo": "Novo Valor"
  }
}
```

{% hint style="danger" %}
O objeto ***product*** deve ser preservado na request, caso contrário um erro será retornado na tentativa de atualizar o produto.
{% endhint %}

#### **Example request:**

No exemplo abaixo, estamos alterando somente o nome do produto, então todos os demais atributos foram retirados da requisição, para facilitar o entendimento.

```
curl --location --request PUT 'https://api.skyhub.com.br/products/{SKU}' \
--header 'X-User-Email: email_de_usuario' \
--header 'x-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'x-accountmanager-key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
  "product": {
    "name": "Nome Atualizado do Produto"
  }
}'
```

#### Response esperado:

{% hint style="success" %}
204 \[Success] - No content
{% endhint %}

{% hint style="danger" %}
Para a atualização de **imagens** é necessário atentar-se a **URL** indexada: Para realizar alterações nas imagens de um produto é preciso encaminhar uma **nova URL**, ou seja, <mark style="color:red;">**não é possível reutilizar a URL previamente enviada**</mark>; somente com URLs diferentes a nova imagem será refletida pelo marketplace.&#x20;

\[Ver Comunicado: [Envio de Imagens para o Marketplace](/comunicados/comunicados-2021/envio-de-imagens-para-o-mktp-b2w.md)]
{% endhint %}

### Como atualizar preço e estoque

Assim como quaisquer atualizações em produtos, para alterações nos campos de preço (*price* e *promotional\_price*) e estoque deve ser utilizado o método **PUT** no */products/{SKU}*.&#x20;

A seguir temos exemplos de requisições para as atualizações de preço e estoque para produtos simples:

#### Atualização de preço:

```
curl --location -g --request PUT 'https://api.skyhub.com.br/products/{SKU}' \
--header 'X-User-Email: email_de_usuario' \
--header 'x-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'x-accountmanager-key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
  "product": {
    "price": 100.00,
    "promotional_price": 80.00
  }
}'
```

#### Atualização de estoque:

```
curl --location -g --request PUT 'https://api.skyhub.com.br/products/{SKU}' \
--header 'X-User-Email: email_de_usuario' \
--header 'x-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'x-accountmanager-key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
  "product": {
    "qty": 1000
  }
}'
```

#### Atualização de preço e estoque:

```
curl --location -g --request PUT 'https://api.skyhub.com.br/products/{SKU}' \
--header 'X-User-Email: email_de_usuario' \
--header 'x-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'x-accountmanager-key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
  "product": {
    "qty": 1000,
    "price": 100.00,
    "promotional_price": 80.00
  }
}'
```

{% hint style="info" %}
Nas atualizações de preço e estoque <mark style="color:red;">**não deve ser enviada a estrutura completa do produto**</mark>, ou seja, é preciso enviar apenas os respectivos campos (***qty***, ***price*** e ***promotional\_price***).
{% endhint %}

### Como atualizar o atributo crossdocking

O *crossdocking* é o atributo responsável pela definição do prazo do item, isto é, ele representa o tempo que o *seller* leva para fabricar o produto após o pagamento do pedido ter sido aprovado.

O atributo *crossdocking* deve vir na raiz do produto, assim como preço, estoque e outros.

{% hint style="info" %}
Apesar de passar número, o atributo é uma *string*.
{% endhint %}

A seguir temos um exemplo de requisição para atualização do atributo *crossdocking*:

```
curl --location --request PUT 'https://api.skyhub.com.br/products/{SKU}' \
--header 'X-User-Email: email_de_usuario' \
--header 'x-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'x-accountmanager-key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
  "product": {
    "crossdocking": "3"
    }
  }'
```

### **Criação de variação em produtos simples**

Quando desejar tornar um Produto Simples em Produto Variável, é necessário enviar no body a estrutura de um Produto Variável, com o Array '<mark style="color:blue;">**variations**</mark>' especificando as variações a serem criadas e também o '<mark style="color:blue;">**variation\_attributes**</mark>' especificando os atributos variantes.

{% hint style="danger" %}
**IMPORTANTE:**

Só indicamos a criação de variações em produtos simples enquanto o SKU não tiver conectado ao Marketplace.&#x20;

**E se o produto já estiver conectado?**

Se um produto simples já estiver conectado e uma nova variação é enviada no produto, automaticamente será excluída a oferta do produto simples no Marketplace.

O produto só será criado novamente no Marketplace desta vez como variável, quando o parceiro realizar uma nova conexão do produto.
{% endhint %}

```
curl --location -g --request PUT 'https://api.skyhub.com.br/products/{SKU}' \
--header 'X-User-Email: email_de_usuario' \
--header 'x-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'x-accountmanager-key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
  "product": {
    "sku": "foo", // String
    "name": "foo", // String
    "description": "foo", // String
    "status": "enabled", // String
    "price": 0.0, // Integer
    "promotional_price": 0.0, // Integer
    "crossdocking": '0" // String
    "cost": 0, // Integer
    "brand": "foo", // String
    "weight": 0, // Integer
    "height": 0, // Integer
    "width": 0, // Integer
    "length": 0, // Integer
    "variations": [ //Exemplo de Variação

      {
        "sku": "foo-1",
        "qty": 0,
        "crossdocking": '0" // String
        "status": "enabled" // String
        "ean": "foo", // String
        "specifications": [ 
                    { // Atributo de categoria - preenchimento livre
                        "id": "id do atributo",
                        "value": "Texto livre"
                    },
                    { // Atributo de categoria - valores pré-determinados
                        "id": "id do atributo",
                        "idValue": "id da opção selecionável"
                    }
        ]
      }
    ]
  }
}'


```


---

# 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/atualizacao-produto/produto-simples.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.
