# 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](https://desenvolvedores.skyhub.com.br/comunicados/comunicados-2021/envio-de-imagens-para-o-mktp-b2w)]
{% 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"
                    }
        ]
      }
    ]
  }
}'


```
