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:

KeyValue

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

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

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).

A criação/atualização de estoque em lote permite a alteração de 500 SKUs por requisição.

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