Criar e Consultar CD
Nesta seção são apresentadas as orientações para a criação e atualização da warehouse, além de informações sobre a consulta de estoque por CD
Neste guia estão descritas as ações referentes ao Multi CD que dependem da rota rehub (ver seção Solicitar Credenciais). Para as requisições descritas nesta seção serão utilizados os headers disponibilizados a seguir:
Request headers:
Accept
application/json
Content-Type
application/json
X-Accountmanager-Key
token_account único de cada Plataforma/ERP
Authorization
Bearer <token JWT disponibilizado na guia anterior>
POST - Criando uma warehouse (CD)
A criação de um CD será realizada através de um POST para o endpoint a seguir, utilizando os headers para a rota rehub descritos acima:
https://api.skyhub.com.br/rehub/stores
Request body:
{
"store": {
"code": "{store_code}", // Código/ID do CD
"name": "Nome do CD",
"open_hours": "Horário de funcionamento",
"phone": "1154664644",
"address": {
"street": "Rua/Avenida",
"number": "Número",
"detail": "Complemento",
"neighborhood": "Bairro",
"city": "Cidade",
"region": "Estado",
"post_code": CEP, // Int
"reference": "Referência"
},
"email": "[email protected]",
"latitude": -23.584195,
"longitude": -46.635511,
"max_delivery_distance": 2, // Distância máxima de entrega em km (de 0 a 2)
"schedules": { // Detalhes sobre o horário de funcionamento (definidos por dias da semana)
"monday": {
"start": "09:00",
"end": "18:00"
},
"tuesday": {
"start": "09:00",
"end": "18:00"
},
"wednesday": {
"start": "09:00",
"end": "18:00"
},
"thursday": {
"start": "09:00",
"end": "18:00"
},
"friday": {
"start": "09:00",
"end": "18:00"
},
"saturday": {
"start": null,
"end": null
},
"sunday": {
"start": null,
"end": null
}
},
"properties": [ // Propriedades do CD
""
]
}
}
Atributos da requisição:
É possível definir as características do CD através do array properties. Abaixo temos os possíveis valores a serem adicionados, caso façam parte das propriedades da warehouse:
EXPEDITION
Incluir caso seja possível realizar a expedição de um pedido através do CD
EXPRESS_DELIVERY
Incluir caso o CD faça entrega expressa
Example request:
curl --location --request POST 'https://api.skyhub.com.br/rehub/stores' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Authorization: Bearer eyJhbGci...........Ckc0PW1g' \
--data-raw '{
"store": {
"code": "loja1",
"name": "Loja Teste 1",
"open_hours": "Seg-Sex: 09:00 às 20:30, Sáb: 09:00 às 18:00",
"phone": "(11) 95955-9988",
"address": {
"street": "Avenida Paulista",
"number": "12345",
"detail": "5º andar",
"neighborhood": "Bela Vista",
"city": "São Paulo",
"region": "SP",
"post_code": 90000000,
"reference": "Ao lado do museu"
},
"email": "[email protected]",
"latitude": -23.584195,
"longitude": -46.635511,
"max_delivery_distance": 2,
"schedules": {
"monday": {
"start": "09:00",
"end": "20:30"
},
"tuesday": {
"start": "09:00",
"end": "20:30"
},
"wednesday": {
"start": "09:00",
"end": "20:30"
},
"thursday": {
"start": "09:00",
"end": "20:30"
},
"friday": {
"start": "09:00",
"end": "20:30"
},
"saturday": {
"start": "09:00",
"end": "18:00"
},
"sunday": {
"start": null,
"end": null
}
},
"properties": [
"EXPEDITION",
"EXPRESS_DELIVERY"
]
}
}'
Response esperado:
201 [Success] - Created
POST - Definindo o status da warehouse (CD)
Após criar um CD será preciso informar ao marketplace se ele está ativo (active) ou inativo (inactive). Para a definição do status da warehouse (CD) é necessário utilizar o método POST, contendo os headers da rota rehub, para o endpoint a seguir:
https://api.skyhub.com.br/rehub/stores/{store_code}/statuses
Ao ser inativado, o CD não será mais disponibilizado para as vendas da loja até que haja uma ativação.
Request body:
{
"statuses": [
{
"platform": "B2W",
"status": "active" // active = ativa o CD / inactive = inativa o CD
}
]
}
Example Request
curl --location --request POST 'https://api.skyhub.com.br/rehub/stores/loja1/statuses' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Authorization: Bearer eyJhbGci...........Ckc0PW1g' \
--data '{
"statuses": [
{
"platform": "B2W",
"status": "active"
}
]
}'
Response esperado:
204 [Success] - No content
GET - Consultando as warehouses (CDs)
É possível realizar a consulta dos CDs criados via API através de uma requisição contendo o método GET, utilizando os headers descritos no início deste guia, para o endpoint:
https://api.skyhub.com.br/rehub/stores
Example request:
curl --location --request GET 'https://api.skyhub.com.br/rehub/stores' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Authorization: Bearer eyJhbGci...........Ckc0PW1g'
Response esperado:
200 [Success] - OK: O retorno seguirá o modelo visualizado a seguir, contendo uma listagem de todas as warehouses criadas via API:
{
"stores": [
{
"code": "loja1",
"name": "Loja Teste 1",
"email": "[email protected]",
"open_hours": "Seg-Sex: 09:00 às 20:30, Sáb: 09:00 às 18:00",
"phone": "(11) 95955-9988",
"latitude": -23.584195,
"longitude": -46.635511,
"max_delivery_distance": 2,
"address": {
"street": "Avenida Paulista",
"number": "12345",
"detail": "5º andar",
"neighborhood": "Bela Vista",
"city": "São Paulo",
"region": "SP",
"post_code": "90000000",
"reference": "Ao lado do museu"
},
"statuses": [
{
"platform": "B2W",
"status": "active",
"remote_code": "loja1"
}
],
"schedules": {
"monday": {
"start": "09:00",
"end": "20:30"
},
"tuesday": {
"start": "09:00",
"end": "20:30"
},
"wednesday": {
"start": "09:00",
"end": "20:30"
},
"thursday": {
"start": "09:00",
"end": "20:30"
},
"friday": {
"start": "09:00",
"end": "20:30"
},
"saturday": {
"start": "09:00",
"end": "18:00"
},
"sunday": {
"start": null,
"end": null
}
},
"properties": [
"EXPEDITION",
"EXPRESS_DELIVERY"
]
},
{
"code": "loja2",
"name": "Loja Teste 2",
"email": "[email protected]",
"open_hours": "Seg-Sex: 09:00 às 20:30",
"phone": "11959559999",
"latitude": -23.584195,
"longitude": -46.635511,
"max_delivery_distance": 2,
"address": {
"street": "Avenida Paulista",
"number": "12345",
"detail": "10º andar",
"neighborhood": "Bela Vista",
"city": "Sao Paulo",
"region": "SP",
"post_code": "90000000",
"reference": ""
},
"statuses": [],
"schedules": {
"monday": {
"start": "09:00",
"end": "20:30"
},
"tuesday": {
"start": "09:00",
"end": "20:30"
},
"wednesday": {
"start": "09:00",
"end": "20:30"
},
"thursday": {
"start": "09:00",
"end": "20:30"
},
"friday": {
"start": "09:00",
"end": "20:30"
},
"saturday": {
"start": null,
"end": null
},
"sunday": {
"start": null,
"end": null
}
},
"properties": [
"EXPEDITION"
]
}
],
"total": 2,
"next": null
}
Consultando uma warehouse específica
A consulta de warehouses cridas via API também permite a listagem de dados sobre um CD específico.
Para a consulta de um CD específico será utilizado o endpoint /rehub/stores
acrescido do código da warehouse, conforme visualizado a seguir:
https://api.skyhub.com.br/rehub/stores/{store_code}
Example request:
curl --location --request GET 'https://api.skyhub.com.br/rehub/stores/loja1' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Authorization: Bearer eyJhbGci...........Ckc0PW1g'
Response esperado:
200 [Success] - OK: O retorno seguirá o modelo visualizado a seguir, trazendo os detalhes do CD consultado:
{
"code": "loja1",
"name": "Loja Teste 1",
"email": "[email protected]",
"open_hours": "Seg-Sex: 09:00 às 20:30, Sáb: 09:00 às 18:00",
"phone": "(11) 95955-9988",
"latitude": -23.584195,
"longitude": -46.635511,
"max_delivery_distance": 2.0,
"address": {
"street": "Avenida Paulista",
"number": "12345",
"detail": "5º andar",
"neighborhood": "Bela Vista",
"city": "São Paulo",
"region": "SP",
"post_code": "90000000",
"reference": "Ao lado do museu"
},
"statuses": [
{
"platform": "B2W",
"status": "active",
"remote_code": "loja1"
}
],
"schedules": {
"monday": {
"start": "09:00",
"end": "20:30"
},
"tuesday": {
"start": "09:00",
"end": "20:30"
},
"wednesday": {
"start": "09:00",
"end": "20:30"
},
"thursday": {
"start": "09:00",
"end": "20:30"
},
"friday": {
"start": "09:00",
"end": "20:30"
},
"saturday": {
"start": "09:00",
"end": "18:00"
},
"sunday": {
"start": null,
"end": null
}
},
"properties": [
"EXPEDITION",
"EXPRESS_DELIVERY"
]
}
PUT - Atualizando uma warehouse (CD)
Uma vez criado o CD é possível realizar alterações em sua estrutura ao executar o método PUT, utilizando os headers padronizados para a rota rehub - para o seguinte endpoint:
https://api.skyhub.com.br/rehub/stores/{store_code}
Request body:
{
"store": {
"code": "{store_cedo}",
"name": "Nome do CD",
"open_hours": "Horário de Funcionamento",
"address": {
"street": "Rua/Avenida",
"number": "Número"
},
"store_status": [
{
"platform": "B2W",
"status": "active",
"remote_code": "{store_cedo}"
}
]
}
}
Conforme representado no body acima, não é possível remover todos os campos que constituem o objeto address
ao realizar a atualização de um CD.
Ao enviar para a API o objeto address vazio, a requisição retornará status 400.
Example request:
curl --location --request PUT 'https://api.skyhub.com.br/rehub/stores/loja1' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Authorization: Bearer eyJhbGci...........Ckc0PW1g' \
--data '{
"store": {
"code": "loja1",
"name": "Loja Teste 1 - Atualizada",
"open_hours": "Seg-Sex: 10:00 às 22:00, Sáb: 10:00 às 17:00, Dom: 10:00 às 14:00",
"address": {
"street": "Avenida Paulista",
"number": "12345"
},
"schedules": {
"monday": {
"start": "10:00",
"end": "22:00"
},
"tuesday": {
"start": "10:00",
"end": "22:00"
},
"wednesday": {
"start": "10:00",
"end": "22:00"
},
"thursday": {
"start": "10:00",
"end": "22:00"
},
"friday": {
"start": "10:00",
"end": "22:00:00"
},
"saturday": {
"start": "10:00",
"end": "17:00"
},
"sunday": {
"start": "10:00",
"end": "14:00"
}
},
"store_status": [
{
"platform": "B2W",
"status": "active",
"remote_code": "lojaL1"
}
]
}
}'
Response esperado:
204 [Success] - No content
Excluindo uma warehouse (CD)
Não é possível excluir um CD via API.
Após realizar a criação de uma warehouse (CD) só é possível seguir com a sua inativação, não sendo possível realizar a sua exclusão.
GET - Consultando estoque
Ao se tratar do Multi CD, outra ação a ser realizada através da rota rehub é a consulta de estoque.
Consultar estoque por produto
Para o Multi CD, é possível realizar a consulta do estoque para determinado SKU.
Para realizar essa consulta basta efetuar uma requisição contendo o método GET, utilizando os headers descritos no início deste guia, para o endpoint:
https://api.skyhub.com.br/rehub/products/{SKU}/store_stocks
Example request:
curl --location --request GET 'https://api.skyhub.com.br/rehub/products/2023001/store_stocks' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Authorization: Bearer eyJhbGci...........Ckc0PW1g'
Response esperado:
200 [Success] - OK: O retorno trará o estoque de todas as warehouses (CDs) para o SKU referenciado no endpoint:
{
"store_stocks": [
{
"store_code": "loja1",
"sku_code": "2023001",
"qty": 30,
"cross_docking": 0
},
{
"store_code": "loja2",
"sku_code": "2023001",
"qty": 5,
"cross_docking": 0
}
]
}
Consultar estoque do produto por warehouse (CD)
Além da consulta geral de estoque por SKU - que traz o estoque de todas as warehouses para o produto selecionado - também é possível filtrar o produto e o CD a serem visualizados.
Para realizar essa consulta basta efetuar uma requisição contendo o método GET, utilizando os headers descritos no início deste guia, para o endpoint:
https://api.skyhub.com.br/rehub/products/{SKU}/store_stocks?store_code={store_code}
Example request:
curl --location --request GET 'https://api.skyhub.com.br/rehub/products/2023001/store_stocks?store_code=loja1' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Authorization: Bearer eyJhbGci...........Ckc0PW1g'
Response esperado:
200 [Success] - OK: O retorno trará o estoque do SKU referenciado no endpoint para a warehouse (CD) definida como parâmetro:
{
"store_stocks": [
{
"store_code": "loja1",
"sku_code": "2023001",
"qty": 30,
"cross_docking": 0
}
]
}
Last updated