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.
A validade do Bearer JWT é de 6 horas. Apenas após este prazo deve ser solicitado um novo token.
Importante saber que não deve solicitar um novo Bearer JWT antes do vencimento das 6 horas , para manter a integridade da API.
No caso da Warehouse, deve ser utilizado a rota do Rehub, para isto é necessário solicitar o Bearer JWT.
Para solicitar Bearer JWT é 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"}
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"}'
Name | Type | Required | Description | Example |
accept | String | Required | | application/json |
Content-type | String | Required | | application/json |
Responses:
200 - Success
{"token": "eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk"}
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
Para lojas que utilizam a forma de envio próprio, ou seja, nenhuma forma de envio da B2W.
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.
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"]}}'
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
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": {"code": "775","name": "nome da loja","email": "loja@loja.com.br","open_hours": "Dom: 16:00 às 22:00","phone": "1100000000","latitude": null,"longitude": null,"max_delivery_distance": 2.0,"address": {"street": "Rua","number": "569","detail": "Loja 151","neighborhood": "Consolação","city": "São Paulo","region": "SP","post_code": "00000000","reference": null},"properties": ["PICK_UP_STORE","CONFIRM_STOCK"],"store_status": [{"platform": "B2W","status": "inactive","remote_code": "775"}]}}
curl --location --request PUT 'https://api.skyhub.com.br/rehub/stores/{code}' \--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk' \--header 'Content-type: application/json' \--header 'accept: application/json' \--data-raw '{"store": {"code": "775","name": "nome da loja","email": "loja@loja.com.br","open_hours": "Dom: 16:00 às 22:00","phone": "1100000000","latitude": null,"longitude": null,"max_delivery_distance": 2.0,"address": {"street": "Rua","number": "569","detail": "Loja 151","neighborhood": "Consolação","city": "São Paulo","region": "SP","post_code": "00000000","reference": null},"properties": ["PICK_UP_STORE","CONFIRM_STOCK"],"store_status": [{"platform": "B2W","status": "inactive","remote_code": "775"}]}}'
Após a criação da warehouse é OBRIGATORIO a atualização da warehouse com a inserção do "store_status"
Request Headers
Name | Type | Required | Description | Example |
Content-type | String | Required | | application/json |
accept | 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
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
curl --location --request GET 'https://api.skyhub.com.br/rehub/stores' \--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiR............................pXVCJy3ZagAECk' \--header 'Content-type: application/json'
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"}]}
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}
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
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
{"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' \--header 'accept: 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 |
accept | 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
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
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}'
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
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
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'
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 links400Bad request
400 - Bad request
404 - Not found
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.
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}]}
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'
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 |