Estoque

Como criar Estoque:

Uma vez que é possivel criar diversos warehouses e cada um pode possuir o mesmo sku, será necessário ter um criar estoque por warehouse.

Por exemplo:

A loja possui 3 warehouses (local de retirada), cada um possui o mesmo sku: 123.

Neste caso é necessário que seja criado um estoque por warehouse para o sku 123.

Para criar um estoque é necessário utilizar o método POST na seguinte endpoint:

https://api.skyhub.com.br/stores/{store_code}/skus

Como pode é possivel observar, em {store_code}, é necessário informar o código da warehouse.

Request Body:

{
"sku": {
"code": "sku-001",
"qty": 200,
"cross_docking": 3
}
}

Campo "code" é referente ao sku do item

Example Request:

curl --location --request POST 'https://api.skyhub.com.br/stores/{store_code}/skus' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'x-api-key: SuaApiKey' \
--header 'x-accountmanager-key: SUAXACCOUNT' \
--header 'x-user-email: seu@email.com' \
--header 'Content-Type: text/plain' \
--data-raw '{
"sku": {
"code": "sku-001",
"qty": 200,
"cross_docking": 3
}
}'

Request Headers:

Name

Type

Required

Description

Example

accept

String

Required

application/json

Content-type

String

Required

application/json

x-user-email

String

Required

E-mail da loja

seu@email.com

x-api-key

String

Required

Token da loja

SuaApiKey

x-accountmanager-key

String

Required

identificador da sua Integração

SUAXACCOUNT

Response:

200 – success

400 - Bad request

Como atualizar estoque?

Para efetuar a atualização será necessário efetuar o método PUT na seguinte endpoint:

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

Request Body:

{
"store_id": " seucodigowarehouse ",
"sku_code": " skudoproduto ",
"sku": {
"qty": 0,
"cross_docking": 0
}
}

Example Request:

curl -X PUT \
https://api.skyhub.com.br/stores/L01/skus/4278038 \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-H 'x-api-key: SuaApiKey' \
-H 'x-accountmanager-key: SUAXACCOUNT' \
-H 'x-user-email: seu@email.com' \
-d '{
"store_id": "seucodigowarehouse",
"sku_code": "skudoproduto",
"sku": { "qty": 0, "cross_docking": 0 }
}'

Request Headers:

Name

Type

Required

Description

Example

accept

String

Required

application/json

Content-type

String

Required

application/json

x-user-email

String

Required

E-mail da loja

seu@email.com

x-api-key

String

Required

Token da loja

SuaApiKey

x-accountmanager-key

String

Required

identificador da sua Integração

SUAXACCOUNT

Response:

200 – success

Como atualizar estoque em lote:

Uma vez que a loja possui muitos itens e muitos warehouses, acreditamos que seria inviavel atualizar produto a produto.

Neste caso é possivel atualiza-los em lote (batch). Para que isto ocorra é necessário utilizar o método POST e a seguinte endpoint:

https://api.skyhub.com.br/stores/{store_code}/batch

Request Body:

{
"skus": [
{
"code": "sku-001",
"qty": 200,
"cross_docking": 3
}
]
}

Example Request:

curl --location --request POST 'https://api.skyhub.com.br/stores/{store_code}/batch' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--header 'x-api-key: SuaApiKey' \
--header 'x-accountmanager-key: SUAXACCOUNT' \
--header 'x-user-email: seu@email.com' \
--header 'Content-Type: text/plain' \
--data-raw '{
"skus": [
{
"code": "sku-001",
"qty": 200,
"cross_docking": 3
}
]
}'

Request Headers:

Name

Type

Required

Description

Example

accept

String

Required

application/json

Content-type

String

Required

application/json

x-user-email

String

Required

E-mail da loja

seu@email.com

x-api-key

String

Required

Token da loja

SuaApiKey

x-accountmanager-key

String

Required

identificador da sua Integração

SUAXACCOUNT

Response:

207 - Multi-Status

{
"data": [
{
"code": "1523-1",
"status": 200
},
{
"code": "1523-2",
"status": 404,
"error": "Não foi possível encontrar a plataforma B2W"
},
{
"code": "1523-3",
"status": 404,
"error": "Não foi possível encontrar Sku: 1523-3"
},
{
"code": "1523-4",
"status": 422,
"errors": [
{
"attribute": "cross_docking",
"error_message": "deve ser maior ou igual a 0"
},
{
"attribute": "qty",
"error_message": "não é válido"
}
]
},
{
"code": "1523-5",
"status": 500,
"error": "Encontramos um erro inesperado, tente novamente mais tarde"
}
],
"metadata": {
"failures": 4,
"success": 1,
"total": 5
}
}

400 - Bad Request

413 - Request entity too large