# Rehub - Ações de Produto

A rota rehub permite automatizar ações que demandam o acesso ao portal parceiro ou ao front da API para serem executadas, como **conexão** e **desconexão** de itens e **sincronização de preço**.

## POST - Solicitar credenciais

O primeiro passo para que possa utilizar os recursos do rehub é solicitar o **Bearer JWT** que será utilizado para autenticação da requisição.&#x20;

Para realizar a solicitação, basta realizar um POST no endpoint a seguir:

```
https://api.skyhub.com.br/auth
```

#### Request headers:

| Key                  | Value                                       |
| -------------------- | ------------------------------------------- |
| Accept               | application/json                            |
| Content-Type         | application/json                            |
| X-Accountmanager-Key | token\_account único de cada Plataforma/ERP |

#### Request body:

```
{
	"user_email": "email_de_usuario",
	"api_key": "token_de_integracao de sua conta SkyHub"
}
```

#### Example request:

```
curl --location --request POST 'https://api.skyhub.com.br/auth' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'X-Accountmanager-Key: token_account_da_plataforma' \
--data-raw '{
    "user_email": "email_de_usuario@e-mail.com",
    "api_key": "token_de_integracao de sua conta SkyHub"
}'
```

**Response esperado:**

{% hint style="success" %}
200 \[Success] - OK: Haverá um response body com o Bearer JWT:
{% endhint %}

```
{
    "token": "eyJhbGci...........TyPs"
}
```

{% hint style="info" %}
A validade do Bearer JWT é de **6 horas**. Apenas após este prazo deve ser solicitado um novo token.&#x20;

Importante que um novo Bearer JWT não seja solicitado antes do vencimento das 6 horas, para que seja mantida a integridade da API.
{% endhint %}

{% hint style="warning" %}
O ambiente de teste para homologação do recurso rehub permite que sejam efetuadas requisições com retornos de sucesso.

Caso tente realizar os processos de conexão, desconexão e/ou sincronização de estoque/preço e receba status 404 é importante entrar em contato com o time de API através do <mark style="color:blue;"><srv.mktp.api@americanas.io></mark>.
{% endhint %}

## **POST - Ações de produto**

### **Conectar produto ao marketplace**

Sempre que um SKU é **criado** ou passa por **alterações estruturais** (como, por exemplo, atualizações de uma imagem, descrição, dimensões e título) é necessário realizar a sua conexão com o marketplace para que as informações sejam refletidas nos sites de venda.

Para que seja possível realizar a conexão de um SKU é preciso executar um POST para o endpoint:

```
https://api.skyhub.com.br/rehub/product_actions
```

#### **Request headers:**

| Key                  | Value                                                                             |
| -------------------- | --------------------------------------------------------------------------------- |
| Accept               | application/json                                                                  |
| Content-Type         | application/json                                                                  |
| X-Accountmanager-Key | token\_account único de cada Plataforma/ERP                                       |
| Authorization        | Bearer \<token JWT disponibilizado na [chamada anterior](#solicitar-credenciais)> |

#### Request body:

```
{
    "skus": [
        "SKU_PAI"
    ],
    "sale_system": "B2W",
    "type": "link",
    "specifications": [],
    "previous_specifications": []
}
```

{% hint style="info" %}
O *array **skus*** permite a inclusão de até 500 SKUs a serem impactados pela ação.
{% endhint %}

#### **Example request:**

```
curl --location --request POST 'https://api.skyhub.com.br/rehub/product_actions' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Authorization: Bearer eyJhbGci...........TyPs' \
--data-raw '{
    "skus": [
        "2022001"
    ],
    "sale_system": "B2W",
    "type": "link",
    "specifications": [],
    "previous_specifications": []
}'
```

#### **Response esperado:**

{% hint style="success" %}
201 \[Success] - Created: Havendo sucesso na requisição, ela irá gerar o ID de uma carga que será retornado no response body:
{% endhint %}

```
{
    "id": "1672853787"
}
```

{% hint style="danger" %}
É importante destacar que a requisição de conexão realizada com sucesso não indica que o produto será ou não publicado no marketplace.&#x20;

Todas as informações enviadas em uma conexão passam pela validação do marketplace e caso alguma informação no cadastro do produto necessite de ajuste será retornado um erro no endpoint **/**[**sync\_errors**](/sync_errors/consulta-erros-de-sincronizacao-e-producao.md).
{% endhint %}

### **Sincronização de estoque e preço**

Por via de regra, a API realiza uma varredura nas contas a cada 15 minutos buscando produtos que sofreram alterações nos campos de preço e/ou estoque. Ao encontrar SKUs que tiveram tais campos (de preço e/ou estoque) alterados é realizada uma sincronização destas informações com o marketplace.

Através da rota rehub é possível forçar uma sincronização de estoque e preço, para que estas informações sejam encaminhadas para o marketplace assim que alteradas.&#x20;

Para realizar a sincronização de estoque e preço serão utilizados os mesmos headers, endpoint e método sinalizados na seção "[Conectar produto ao marketplace](#conectar-produto-ao-marketplace)" e apenas o body da requisição sofrerá uma alteração no campo "*type*":

**Request body:**

```
{
    "skus": [
        "SKU_PAI"
    ],
    "sale_system": "B2W",
    "type": "price_entry",
    "specifications": [],
    "previous_specifications": []
}
```

#### **Example request:**

```
curl --location --request POST 'https://api.skyhub.com.br/rehub/product_actions' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Authorization: Bearer eyJhbGci...........TyPs' \
--data-raw '{
    "skus": [
        "2022001"
    ],
    "sale_system": "B2W",
    "type": "price_entry",
    "specifications": [],
    "previous_specifications": []
}'
```

#### **Response esperado:**

{% hint style="success" %}
201 - Created: Havendo sucesso na requisição, ela irá gerar o ID de uma carga que será retornado no response body:
{% endhint %}

```
{
    "id": "1672854507"
}
```

### **Desconectar produto no marketplace**

A desconexão de produtos é utilizada caso você não queira que seu produto fique ativo no marketplace.

Ao desconectar um item, será enviado o status de inativo e estoque zero para os sites, o que, consequentemente, irá inativar a oferta.

{% hint style="danger" %}
A desconexão <mark style="color:red;">não altera</mark> o estoque ou o status do produto na API.

Desta forma, quando optar por retomar o anúncio, basta conectar novamente o SKU ao marketplace para que o status de ativo e o estoque sejam sensibilizados nos sites de venda.
{% endhint %}

Para realizar a desconexão de um SKU serão utilizados os mesmos headers, endpoint e método sinalizados na seção "[Conectar produto ao marketplace](#conectar-produto-ao-marketplace)" e apenas o body da requisição sofrerá uma alteração no campo "*type*":

**Request body:**

```
{
    "skus": [
        "SKU_PAI"
    ],
    "sale_system": "B2W",
    "type": "unlink",
    "specifications": [],
    "previous_specifications": []
}
```

#### **Example request:**

```
curl --location --request POST 'https://api.skyhub.com.br/rehub/product_actions' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Authorization: Bearer eyJhbGci...........TyPs' \
--data-raw '{
    "skus": [
        "2022001"
    ],
    "sale_system": "B2W",
    "type": "unlink",
    "specifications": [],
    "previous_specifications": []
}'
```

#### **Response esperado:**

{% hint style="success" %}
201 - Created: Havendo sucesso na requisição, ela irá gerar o ID de uma carga que será retornado no response body:
{% endhint %}

```
{
    "id": "1672928098"
}
```


---

# 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/rehub/rehub-acoes-de-produto.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.
