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:

KeyValue

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": "emai@exemplo.com",
        "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:

AtributoDescrição

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_da_loja@lojateste.com",
        "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

O campo store_code deverá ser substituído pelo código do CD, definido em sua criação.

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_da_loja@lojateste.com",
      "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_da_loja2@lojateste.com",
      "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_da_loja@lojateste.com",
    "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}

O código do CD será definido a partir da aplicação do parâmetro store_code na consulta.

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