O2O - Rehub

Antes de mais nada, é preciso entender o que é o Rehub.

Diferente das rotas informadas nos tópicos anteriores, o Rehub se trata de uma nova rota, para efetuar requisições.

Para utiliza-la, é necessário solicitar as credenciais, pois será utiliza o JWT para que a requisição ocorra.

Como solicitar credenciais:

No caso da Warehouse, deve ser utilizado a rota do Rehub, para isto é necessário solicitar o Bearer token.

Para solicitar Bearer é necessário efetuar o POST através da seguinte Endpoint:

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

Request Body:

{
"user_email":"email@cliente.com.br",
"api_key":"SuaApiKey"
}

Example Request:

curl --location --request POST 'https://api.skyhub.com.br/auth' \
--header 'accept: application/json' \
--header 'Content-type: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"user_email":"email@cliente.com.br",
"api_key":"SuaApiKey"
}'

Request Headers:

Name

Type

Required

Description

Example

accept

String

Required

application/json

Content-type

String

Required

application/json

Responses:

200 - Success

{
"token": "eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk"
}

Como criar uma Warehouse via API:

Para criar uma warehouse, será necessário utilizar o método POST e a seguinte endpoint:

https://api.skyhub.com.br/rehub/stores

Request Body:

{
"store": {
"code": "loja1",
"name": "Loja 1",
"open_hours": "Seg-Sex: 09:00 às 20:30, Sáb: 09:00 às 18:00, Dom: 09:00 às 14:00",
"phone": "(11) 3454-3258",
"address": {
"street": "R. Fidêncio Ramos",
"number": "302",
"detail": "2° andar",
"neighborhood": "Vila Olímpia",
"city": "São Paulo",
"region": "SP",
"post_code": 1233416,
"reference": "Próximo ao Shopping Vila Olímpia"
},
"email": "loja1@email.com",
"latitude": -23.594721,
"longitude": -46.686015,
"max_delivery_distance": 1.2,
"schedules": {
"monday": {
"start": "08:00",
"end": "16:00"
},
"tuesday": {
"start": "08:00",
"end": "16:00"
},
"wednesday": {
"start": "08:00",
"end": "16:00"
},
"thursday": {
"start": "08:00",
"end": "16:00"
},
"friday": {
"start": "08:00",
"end": "16:00"
},
"saturday": {
"start": "08:00",
"end": "12:00"
},
"sunday": {
"start": null,
"end": null
}
},
"properties": [
"CONFIRM_STOCK",
"AME_FLASH"
]
}
}

Como podemos observar no body acima, pode criar algumas duvidas, por exemplo:

code: se refere ao código da warehouse.

name: nome da warehouse ou do ponto de retirada

open_hours: Horário de funcionamento

properties: [PICK_UP_STORE, CONFIRM_STOCK, AME_FLASH, EXPRESS_DELIVERY, EXPEDITION]

  • PICK_UP_STORE:

    • tipo de contrato que trabalha

  • CONFIRM_STOCK:

    • Confirma estoque? Sim ou Não

  • EXPEDITION:

    • A loja expede? sim ou não

  • EXPRESS_DELIVERY

    • A loja faz entrega expressa. A entrega será feita via motoboy, mas por conta da loja

  • AME_FLASH

    • A loja usa a forma de entrega Ame Flash.

AME_FLASH e EXPRESS_DELIVERY são referentes ao contrato SHIP_FROM_STORE

Não é possivel trabalhar com AME_FLASH e EXPRESS_DELIVERY simultaneamente. Será um ou outro.

Example Request:

curl --location --request POST 'https://api.skyhub.com.br/rehub/stores' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk' \
--header 'Content-type: application/json' \
--data-raw '{
"store": {
"code": "loja1",
"name": "Loja 1",
"open_hours": "Seg-Sex: 09:00 às 20:30, Sáb: 09:00 às 18:00, Dom: 09:00 às 14:00",
"phone": "(11) 3454-3258",
"address": {
"street": "R. Fidêncio Ramos",
"number": "302",
"detail": "2° andar",
"neighborhood": "Vila Olímpia",
"city": "São Paulo",
"region": "SP",
"post_code": 1233416,
"reference": "Próximo ao Shopping Vila Olímpia"
},
"email": "loja1@email.com",
"latitude": -23.594721,
"longitude": -46.686015,
"max_delivery_distance": 1.2,
"schedules": {
"monday": {
"start": "08:00",
"end": "16:00"
},
"tuesday": {
"start": "08:00",
"end": "16:00"
},
"wednesday": {
"start": "08:00",
"end": "16:00"
},
"thursday": {
"start": "08:00",
"end": "16:00"
},
"friday": {
"start": "08:00",
"end": "16:00"
},
"saturday": {
"start": "08:00",
"end": "12:00"
},
"sunday": {
"start": null,
"end": null
}
},
"properties": [
"CONFIRM_STOCK",
"AME_FLASH"
]
}
}'

Request Headers

Name

Type

Required

Description

Example

Content-type

String

Required

application/json

Authorization

String

Required

Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk

x-accountmanager-key

String

Required

Código identificador da sua Integração

SUAXACCOUNT

Responses:

201 - Created

400 - Bad request

Como Atualizar uma Warehouse:

Para atualizar uma warehouse será necessário utilizar o método PUT e a seguinte endpoint:

https://api.skyhub.com.br/rehub/stores/{code}

Request Body:

{
"store": {
"name": "Loja 1",
"open_hours": "Seg-Sex: 09:00 às 20:30, Sáb: 09:00 às 18:00, Dom: 09:00 às 14:00",
"phone": "(11) 3454-3258",
"address": {
"street": "R. Fidêncio Ramos",
"number": "302",
"detail": "2° andar",
"neighborhood": "Vila Olímpia",
"city": "São Paulo",
"region": "SP",
"post_code": 1233416,
"reference": "Próximo ao Shopping Vila Olímpia"
},
"email": "loja1@email.com",
"latitude": -23.594721,
"longitude": -46.686015,
"max_delivery_distance": 1.2,
"schedules": {
"monday": {
"start": "08:00",
"end": "16:00"
},
"tuesday": {
"start": "08:00",
"end": "16:00"
},
"wednesday": {
"start": "08:00",
"end": "16:00"
},
"thursday": {
"start": "08:00",
"end": "16:00"
},
"friday": {
"start": "08:00",
"end": "16:00"
},
"saturday": {
"start": "08:00",
"end": "12:00"
},
"sunday": {
"start": null,
"end": null
}
},
"properties": [
"CONFIRM_STOCK"
]
}
}

Example Request:

curl --location --request PUT 'https://api.skyhub.com.br/rehub/stores/{code}' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk' \
--header 'Content-type: application/json' \
--data-raw '{
"store": {
"name": "Loja 1",
"open_hours": "Seg-Sex: 09:00 às 20:30, Sáb: 09:00 às 18:00, Dom: 09:00 às 14:00",
"phone": "(11) 3454-3258",
"address": {
"street": "R. Fidêncio Ramos",
"number": "302",
"detail": "2° andar",
"neighborhood": "Vila Olímpia",
"city": "São Paulo",
"region": "SP",
"post_code": 1233416,
"reference": "Próximo ao Shopping Vila Olímpia"
},
"email": "loja1@email.com",
"latitude": -23.594721,
"longitude": -46.686015,
"max_delivery_distance": 1.2,
"schedules": {
"monday": {
"start": "08:00",
"end": "16:00"
},
"tuesday": {
"start": "08:00",
"end": "16:00"
},
"wednesday": {
"start": "08:00",
"end": "16:00"
},
"thursday": {
"start": "08:00",
"end": "16:00"
},
"friday": {
"start": "08:00",
"end": "16:00"
},
"saturday": {
"start": "08:00",
"end": "12:00"
},
"sunday": {
"start": null,
"end": null
}
},
"properties": [
"CONFIRM_STOCK"
]
}
}'

Request Headers

Name

Type

Required

Description

Example

Content-type

String

Required

application/json

Authorization

String

Required

Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk

x-accountmanager-key

String

Required

Código identificador da sua Integração

SUAXACCOUNT

Responses:

201 - Created

400 - Bad request

404 - Not found

Como consultar Warehouses:

Nesta consulta, será possível consultar todos os warehouses que a loja possui.

Para consultar as warehouses, é necessário utilizar o método GET e a endpoint a baixo:

https://api.skyhub.com.br/rehub/stores

Example Request:

curl --location --request GET 'https://api.skyhub.com.br/rehub/stores' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk' \
--header 'Content-type: application/json'

Request Headers

Name

Type

Required

Description

Example

Content-type

String

Required

application/json

Authorization

String

Required

Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk

x-accountmanager-key

String

Required

Código identificador da sua Integração

SUAXACCOUNT

Responses:

200 - OK

{
"code": "lojaverde",
"name": "Loja verde",
"open_hours": "Seg-Sex: 09:00 às 20:30, Sáb: 09:00 às 18:00, Dom: 09:00 às 14:00",
"phone": "(11) 3454-3258",
"address": {
"street": "R. Fidêncio Ramos",
"number": "302",
"detail": "2° andar",
"neighborhood": "Vila Olímpia",
"city": "São Paulo",
"region": "SP",
"post_code": 1233416,
"reference": "Próximo ao Shopping Vila Olímpia"
},
"email": "minhalojaverde@email.com",
"latitude": -23.594721,
"longitude": -46.686015,
"max_delivery_distance": 1.2,
"schedules": {
"monday": {
"start": "08:00",
"end": "16:00"
},
"tuesday": {
"start": "08:00",
"end": "16:00"
},
"wednesday": {
"start": "08:00",
"end": "16:00"
},
"thursday": {
"start": "08:00",
"end": "16:00"
},
"friday": {
"start": "08:00",
"end": "16:00"
},
"saturday": {
"start": "08:00",
"end": "12:00"
},
"sunday": {
"start": null,
"end": null
}
},
"properties": [
"PICK_UP_STORE",
"CONFIRM_STOCK",
"AME_FLASH",
"EXPEDITION",
"EXPRESS_DELIVERY"
],
"statuses": [
{
"platform": "B2W",
"remote_code": "lojaverde",
"status": "active"
},
{
"platform": "Meli",
"remote_code": "30048008",
"status": "inactive"
}
]
}

Como consultar warehouse especifica:

Uma vez que a loja possue muitas warehouses ou gostaria de verificar se ela foi cadastrada, é possivel consultar especificamente uma warehouse, de acordo com o código que ela foi criada no campo "code".

Para efetuar a consulta é necessário utilizar o método GET e seguinte endpoint:

https://api.skyhub.com.br/rehub/stores/{code}

Example Request:

curl --location --request GET 'https://api.skyhub.com.br/rehub/stores/{code}' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk' \
--header 'Content-type: application/json'

Request Headers

Name

Type

Required

Description

Example

Content-type

String

Required

application/json

Authorization

String

Required

Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk

x-accountmanager-key

String

Required

Código identificador da sua Integração

SUAXACCOUNT

Responses:

200 - OK

{
"code": "lojaverde",
"name": "Loja verde",
"open_hours": "Seg-Sex: 09:00 às 20:30, Sáb: 09:00 às 18:00, Dom: 09:00 às 14:00",
"phone": "(11) 3454-3258",
"address": {
"street": "R. Fidêncio Ramos",
"number": "302",
"detail": "2° andar",
"neighborhood": "Vila Olímpia",
"city": "São Paulo",
"region": "SP",
"post_code": 1233416,
"reference": "Próximo ao Shopping Vila Olímpia"
},
"email": "minhalojaverde@email.com",
"latitude": -23.594721,
"longitude": -46.686015,
"max_delivery_distance": 1.2,
"schedules": {
"monday": {
"start": "08:00",
"end": "16:00"
},
"tuesday": {
"start": "08:00",
"end": "16:00"
},
"wednesday": {
"start": "08:00",
"end": "16:00"
},
"thursday": {
"start": "08:00",
"end": "16:00"
},
"friday": {
"start": "08:00",
"end": "16:00"
},
"saturday": {
"start": "08:00",
"end": "12:00"
},
"sunday": {
"start": null,
"end": null
}
},
"properties": [
"PICK_UP_STORE",
"CONFIRM_STOCK",
"AME_FLASH",
"EXPEDITION",
"EXPRESS_DELIVERY"
],
"statuses": [
{
"platform": "B2W",
"remote_code": "lojaverde",
"status": "active"
},
{
"platform": "Meli",
"remote_code": "30048008",
"status": "inactive"
}
]
}

404 - Not Found

Status da Warehouse:

Cada warehouse criada pode ser ativada e inativada via API. Por exemplo:

A loja não quer mais que o produto seja vendido para retirada po determinada Warehouse, desta forma ele pode inativar.

Caso decida que a loja deve voltar ser um ponto de retirada novamente, basta ativa-la.

Para que tanto a ativação quanto a inativação ocorram, é necessário utilizar o método POST e a seguinte Endpoint:

https://api.skyhub.com.br/rehub/stores/{code}/statuses

No campo {code} será necessário informar o código da Warehouse

Example body:

{
"statuses": [
{
"platform": "B2W",
"status": "active"
},
{
"platform": "Meli",
"status": "inactive"
}
]
}

Os possíveis valores a serem informado em "status" é:

  • active: para ativar

  • inactive: para inativar

Example Request

curl --location --request POST 'https://api.skyhub.com.br/stores/{code}/statuses' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk' \
--header 'Content-type: application/json' \
--data-raw '{
"statuses": [
{
"platform": "B2W",
"status": "active"
},
{
"platform": "Meli",
"status": "inactive"
}
]
}'

Request Headers

Name

Type

Required

Description

Example

Content-type

String

Required

application/json

Authorization

String

Required

Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk

x-accountmanager-key

String

Required

Código identificador da sua Integração

SUAXACCOUNT

204 - No content (success)

400 - Bad request

404 - Not found

422 - Unprocessable entity

Meli - Como enviar anúncios para as Warehouses :

Para os casos de anúncios Mercado Libre, um sku pode ter vários anúncios, neste caso é possível vincular os anúncios para as warehouses de escolha.

Para que isto ocorra é necessário utilizar o método POST e a seguinte endpoint:

https://api.skyhub.com.br/products/{sku}/stores

Request Body:

{
"action_type": "enable",
"platform": "Meli",
"store_codes": [
"30048008"
],
"remote_codes": [
"MLB1154783459",
"MLB1154783460"
],
"availability_time": 24
}

Os possíveis valores dos campos são:

  • "action_type": "enable" ou "disable"

  • "platform": "Meli"

  • "store_codes": código warehouse

  • "remote_codes":

  • "availability_time": tempo em horas para o produto ficar disponível na loja

Example Request:

curl --location --request POST 'https://api.skyhub.com.br/rehub/products/{sku}/stores' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk' \
--header 'Content-type: application/json' \
--data-raw '{
"action_type": "enable",
"platform": "Meli",
"store_codes": [
"30048008"
],
"remote_codes": [
"MLB1154783459",
"MLB1154783460"
],
"availability_time": 24
}'

Request Headers:

Name

Type

Required

Description

Example

Content-type

String

Required

application/json

Authorization

String

Required

Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk

x-accountmanager-key

String

Required

Código identificador da sua Integração

SUAXACCOUNT

Responses:

207 - Multi-Status

{
"data": [
{
"store_code": 30048008,
"remote_code": "MLB1154783459",
"status": 200
},
{
"store_code": 30048008,
"remote_code": "MLB1154783460",
"status": 404,
"error": "Not found"
}
],
"metadata": {
"failures": 1,
"success": 1,
"total": 2
}
}

400 - Bad request

404 - Not found

422 - Unprocessable entity

Meli - Como listar warehouses por anuncio:

Neste caso é possível listar as warehouses de acordo com o sku. Por exemplo:

A loja possui o sku 123 e fez o POST dos anúncios abc e def, e gostaria de saber exatamente em quais warehouses eles foram enviados com sucesso. Neste caso será necessário efetuar o método GET e a seguinte endpoint:

https://api.skyhub.com.br/rehub/products/{sku}/stores

Query Parameter:

Name

Type

Required

Description

Example

platform

String

Required

Meli

Meli

Example Request:

curl --location --request GET 'https://api.skyhub.com.br/rehub/products/{sku}/stores?platform=Meli' \
--header 'Authorization: application/json' \
--header 'Content-type: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk'

Request Headers:

Name

Type

Required

Description

Example

Content-type

String

Required

application/json

Authorization

String

Required

Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk

x-accountmanager-key

String

Required

Código identificador da sua Integração

SUAXACCOUNT

Response:

207 - Multi-Status

{
"data": [
{
"remote_code": "MLB1154783459",
"status": 200,
"stores": [
{
"code": "30048008",
"name": "Loja A"
}
]
},
{
"remote_code": "MLB1154783460",
"status": 404,
"error": "Not found"
},
{
"remote_code": "MLB1154783461",
"status": 200,
"stores": [
{
"code": "30048008",
"name": "Loja A"
},
{
"code": "40038909",
"name": "Loja B"
}
]
}
],
"metadata": {
"failures": 1,
"success": 2,
"total": 3
}
}
No links
400
Bad request

400 - Bad request

404 - Not found

Como consultar estoque por produto:

Para consultar o estoque de determinado sku, é necessário efetuar o método GET e a seguinte endpoint:

https://api.skyhub.com.br/rehub/products/{sku}/store_stocks

Na consulta acima será listado o estoque de todas as warehouses do sku informado na endpoint.

Example Request:

curl --location --request GET 'https://api.skyhub.com.br/rehub/products/{sku}/store_stocks' \
--header 'Authorization: application/json' \
--header 'Content-type: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk'

Responses:

200 - OK

{
"store_stocks": [
{
"store_code": "18",
"sku_code": "sku-001",
"qty": 200,
"cross_docking": 3
},
{
"store_code": "L001",
"sku_code": "sku-001",
"qty": 2,
"cross_docking": 0
},
{
"store_code": "998",
"sku_code": "sku-001",
"qty": 0,
"cross_docking": 15
}
]
}

Como consultar estoque:

Para consultar o estoque de um determinado SKU em suas respectivas warehouses, é necessário utilizar o método GET e a seguinte endpoint.

https://api.skyhub.com.br/rehub/products/{sku}/store_stocks?store_code={store_code}

Como é possivel observar, será necessário incluir a query "store_code", que será, que será o código da warehouse.

Example Request:

curl --location --request GET 'https://api.skyhub.com.br/rehub/products/{sku}/store_stocks?store_code={store_code}' \
--header 'Authorization: application/json' \
--header 'Content-type: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk'

Request Headers:

Name

Type

Required

Description

Example

Content-type

String

Required

application/json

Authorization

String

Required

Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk

x-accountmanager-key

String

Required

Código identificador da sua Integração

SUAXACCOUNT