Criação e Atualização de Estoque
Nesta seção são apresentadas as orientações para a criação e atualização de estoque por warehouse (CD)
O fluxo descrito a seguir não deve ser realizado para o CD padrão, cujo ID será igual a "98", caso os produtos cadastrados em conta possuam estoque inserido diretamente em suas estruturas.
O CD de ID 98, padrão de todas as contas, sempre será atualizado com o estoque presente na estrutura do produto, isto é, tanto o estoque quanto o crossdocking desse CD padrão levarão em consideração os atributos dos produtos atualizados pelo endpoint /products, se for um produto simples, ou /variations, caso seja um produto com variações.
Caso um SKU receba estoque pelo fluxo descrito abaixo E através da estrutura vista em /products
e/ou /variations
, o valor presente na estrutura será indexado ao marketplace, sobrepondo a quantidade encaminhada pelo /stores
.
Para que não ocorram vendas indevidas e divergências de estoque, é necessário utilizar apenas uma forma de criação/atualização deste atributo.
Diferente das chamadas para criação, atualização e consulta da warehouse (CD) que requerem a utilização do Bearer Token, a manipulação de estoque dos CDs utiliza os headers padronizados na API e visualizados a seguir:
Request headers:
X-User-Email
email_de_usuario
X-Api-Key
token_de_integracao de sua conta SkyHub
X-Accountmanager-Key
token_account único de cada Plataforma/ERP
Accept
application/json
Content-Type
application/json
POST - Criando o estoque
Após a criação do CD é necessário também criar o estoque dos produtos vinculados a ele.
O processo de criação de estoque se dá através de um POST, preenchendo os headers padronizados, para o endpoint abaixo:
https://api.skyhub.com.br/stores/{store_code}/skus
Request body:
{
"sku": {
"code": "{SKU}",
"qty": 0,
"cross_docking": 0
}
}
Example request:
curl --location --request POST 'https://api.skyhub.com.br/stores/loja1/skus' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"sku": {
"code": "2023001",
"qty": 17,
"cross_docking": 0
}
}'
Response esperado:
204 [Success] - No content
PUT - Atualizando o estoque
Após vincular o estoque de um item a um CD, as atualizações desse estoque devem ser realizadas através do método PUT, preenchendo os headers padronizados, para o endpoint abaixo:
https://api.skyhub.com.br/stores/{store_code}/skus/{SKU}
Request body:
{
"store_id": "{store_code}",
"sku_code": "{SKU}",
"sku": {
"qty": 10,
"cross_docking": 0
}
}
Example request:
curl --location --request PUT 'https://api.skyhub.com.br/stores/loja1/skus/2023001' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"store_id": "loja1",
"sku_code": "2023001",
"sku": {
"qty": 10,
"cross_docking": 0
}
}'
Response esperado:
204 [Success] - No content
POST - Criando/atualizando estoque em lote
Uma vez que a loja pode conter muitos produtos e CDs, torna-se inviável criar ou atualizar o estoque dos itens individualmente. Neste caso, é possível realizar estas ações (de criação e atualização) em lote (batch).
Para a criação/atualização de estoque em batch basta utilizar o método POST, preenchendo os headers padronizados, para o endpoint abaixo:
https://api.skyhub.com.br/stores/{store_code}/batch
Request body:
{
"skus": [
{
"code": "{SKU}",
"qty": 1,
"cross_docking": 0
},
{
"code": "{SKU}",
"qty": 1,
"cross_docking": 0
}
]
}
Example request:
curl --location --request POST 'https://api.skyhub.com.br/stores/loja1/batch' \
--header 'X-User-Email: email_de_usuario' \
--header 'X-Api-Key: token_de_integracao de sua conta SkyHub' \
--header 'X-Accountmanager-Key: token_account único de cada Plataforma/ERP' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '{
"skus": [
{
"code": "2023001",
"qty": 1,
"cross_docking": 0
},
{
"code": "2023600",
"qty": 1,
"cross_docking": 0
},
{
"code": "2023200",
"qty": "I",
"cross_docking": 5
}
]
}'
Na requisição acima, para o SKU 2023200 propositalmente foi adicionada uma string para o campo "qty". O erro foi cometido para exemplificação do response visualizado logo abaixo.
Response esperado:
207 [Success] - Multi Status: O retorno trará um resumo do resultado das ações realizadas:
{
"data": [
{
"code": "2023001",
"status": 200
},
{
"code": "2023600",
"error": "Não foi possível encontrar Sku: 2023600",
"status": 404
},
{
"code": "2023200",
"errors": [
{
"attribute": "qty",
"error_message": "não é válido"
}
],
"status": 422
}
],
"metadata": {
"failures": 2,
"success": 1,
"total": 3
}
}
Last updated