API de Integração Likin.do (1.0.28)

Suporte Likin.do: suporte@likin.do URL: https://likin.do

Acesso

A API do Likin.do utiliza o padrão de autenticação OAuth2, conforme descrito na RFC 6750 e detalhado em https://oauth.net/2.

O acesso à API é fornecido mediante a inclusão prévia da matriz (franqueadora) e de suas lojas (franqueados), cada um destes possuindo seu próprio conjunto de chaves de acesso, denominados Client ID e Client Secret, os quais funcionam como usuário e senha da matriz ou loja.

Estas chaves são a base para a geração dos tokens de acesso (access tokens), e sem elas não é possível utilizar a API.

Em caso de dúvidas contatar o suporte da Likin.do.

Autenticação

Para acessar a API do Likin.do, todos os endpoints exigem um token de acesso (access token) do tipo Bearer no cabeçalho Authorization da requisição, conforme padrão OAuth2.

Authorization: "Bearer access_token"

O access token deve ser obtido através de uma requisição ao Authorization Server do Likin.do, enviando um Client ID e um Client Secret válidos, conforme descrito no endpoint Create Access Token do OAuth2.

O Authorization Server retornará um destes dois tipos de access token:

  • Access token da matriz (franqueadora): Obtido quando fornecido ao Authorization Server um Client ID e um Client Secret de uma matriz.
  • Access token da loja (franqueado): Obtido quando fornecido ao Authorization Server um Client ID e um Client Secret de uma loja.

Permissões

A API possui endpoints separados em 3 níveis distintos de permissão:

  • Endpoints exclusivos da matriz (somente acessíveis utilizando o access token da matriz).
  • Endpoints exclusivos da loja (somente acessíveis utilizando o access token da loja).
  • Endpoints não exclusivos (acessíveis utilizando qualquer access token, seja da matriz ou da loja).

Além de definir quais endpoints são permitidos, o access token também define de qual matriz/loja os dados serão retornados, criados, atualizados ou excluídos.

Padrões

Retorno de Sucesso

Status Code

200

Campos:
  • data: Objeto ou Array contendo o resultado da requisição GET. Para requisições POST, PUT e DELETE retorna um Objeto vazio: {}.
Exemplo
{
    data: {}|[]
}

Retorno de Erro

Status Code

400, 401, 403, 404 ou 500

Campos
  • code: Constante numérica do erro.
  • type: Constante textual do erro.
  • message: Descrição human-readable do erro.
  • properties: Retornando somente para erros do tipo invalid_property. Contém as propriedades JSON inválidas e as descrições dos motivos de invalidação.
  • parameters: Retornando somente para erros do tipo invalid_parameter. Contém os parâmetros de URL inválidos e as descrições dos motivos de invalidação.
Exemplo
{
    "error": {
        "code": 1500,
        "type": "invalid_property", 
        "message": "Propriedade(s) inválida(s).",
        "properties|parameters": [
            {
                "name": "variation",
                "message": "Tipo 'boolean' obrigatório."
            }
        ]
    }
}

Métodos

Create

  • Os endpoints CREATE retornam um Objeto contendo a própria entidade criada.

Update

  • Todos as propriedades informadas ao UPDATE são opcionais, portanto devem ser informadas somente as propriedades que serão alteradas.
  • Os endpoints UPDATE retornam um Objeto contendo a própria entidade modificada.

Delete

  • Os endpoints DELETE não retornam a entidade excluída, devendo portanto ser verificado o HTTP Status Code da resposta para validar o sucesso da exclusão.

Get

  • Os endpoints GET retornam um Objeto ou uma Lista de Objetos contendo a(s) entidade(s) requisitadas conforme padrão de retorno de sucesso.

Estrutura de Dados

Atributos

Os atributos descrevem características de um produto que podem variar. Estes podem ser coisas como cor, tamanho, estilo, peso, dimensões, entre outros. No contexto de variações de produtos, esses atributos servem para criar diferentes variantes de um produto base.

Vamos considerar um exemplo simples: uma camiseta. Uma camiseta pode ter atributos como cor, tamanho, material e estilo. Assim, um único produto (a camiseta) pode ter várias variações (por exemplo, uma camiseta de algodão preta de tamanho grande com um estilo de gola V).

Nos endpoints, temos:

  1. /attribute/group: Este endpoint lista os grupos de atributos. Cada grupo pode conter um ou mais atributos, e seu objetivo é diferenciar atributos de mesmo nome porém com aplicações diferentes. Como por exemplo um atributo "Cor" utilizado para Móveis de um atributo "Cor" utilizado para eletrodomésticos. Ambos possuem o mesmo nome porém a sua lista de cores será diferente.

  2. /attribute: Este endpoint lista os atributos.

  3. /attribute/{id_attribute}/option: Este endpoint retorna as opções de um atributo específico.

  4. /attribute/value/product/{id_product}: Este endpoint lista os atributos de um produto, bem como o valor (opção selecionada) para cada um destes atributos.

  5. /attribute/value/product/variation/{id_product_variation}: Este endpoint lista os atributos de uma variação de produto, bem como o valor (opção selecionada) para cada um destes atributos.

Produtos configurados como variáveis (campo "variable" igual a "true") podem possuir atributos sem valor, neste caso o valor destes atributos é definido nas variações do produto. Por exemplo:

Produto: Camiseta
  Atributo: Tecido / Valor: Algodão
  Atributo: Cor / Valor: -
  Variação 1:
    Atributo: Cor / Valor: Branca
  Variação 2:
    Atributo: Cor / Valor: Preta

Quando o consumidor efetuar a compra, ele definirá qual valor deseja para cada atributo variável, definindo assim qual variação do produto (sku) será efetivamente comprada.

Os atributos são essenciais para a criação de variações de produtos, pois permitem aos clientes selecionar o produto exato que desejam, com base em suas preferências ou necessidades.

OAuth2

Create Access Token

Acesso: Matriz | Loja

Este endpoint é utilizado para gerar um novo access token a partir do conjunto de Client ID e Client Secret, os quais devem ser informados na autenticação básica deste endpoint (como username e password).

Authorizations:
basicAuth
Request Body schema: application/x-www-form-urlencoded
required
scope
string

Escopo de acesso, neste caso o valor será sempre integration, o qual define o acesso à esta API.

grant_type
string

Tipo de concessão da autorização, neste caso o valor será sempre client_credentials, o qual define que devem ser enviados o Client ID e Client Secret para autorização.

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Attribute

Atributos utilizados em Produtos, como por exemplo "Cor", "Tamanho", "Voltagem", etc. Cada atributo tem um ID único, um nome e está vinculado a um ID de grupo de atributos específico.

Attribute

id_attribute
required
integer <= 9999999999

ID do atributo

id_attribute_group
required
integer <= 9999999999

ID do grupo de atributos

name
required
string <= 255

Nome do atributo. Deve ser único dentro de um mesmo grupo de atributos.

created_at
string <date-time>

Data de criação

updated_at
string <date-time>

Data de atualização

{
  • "id_attribute": 25,
  • "id_attribute_group": 16,
  • "name": [
    ],
  • "created_at": "2021-09-15T10:37:49-03:00",
  • "updated_at": "2021-09-15T10:37:49-03:00"
}

Get All

Acesso: Matriz | Loja

Authorizations:
oauth2Auth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Create

Acesso: Matriz

Cria um novo atributo dentro de um grupo de atributos existente.

No exemplo fornecido, está sendo criado um atributo chamado "Tamanho" que pertence ao grupo de atributos com o ID 27. Este atributo será usado para definir o tamanho de um produto ou de uma variação de produto.

Authorizations:
oauth2Auth
Request Body schema: application/json
required
id_attribute_group
required
integer <= 9999999999

ID do grupo de atributos

name
required
string <= 255

Nome do atributo. Deve ser único dentro de um mesmo grupo de atributos.

Responses

Request samples

Content type
application/json
{
  • "id_attribute_group": 16,
  • "name": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Upsert

Acesso: Matriz

Cria ou modifica um atributo baseando-se no seu nome. Caso não existir um atributo no grupo de atributos com o nome fornecido, cria um novo atributo, porém caso já existir um atributo no grupo de atributos com o nome fornecido, apenas atualiza o atributo.

Retorna o atributo criado ou modificado.

Authorizations:
oauth2Auth
Request Body schema: application/json
required
id_attribute_group
required
integer <= 9999999999

ID do grupo de atributos

name
required
string <= 255

Nome do atributo. Deve ser único dentro de um mesmo grupo de atributos.

Responses

Request samples

Content type
application/json
{
  • "id_attribute_group": 16,
  • "name": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get by Id

Acesso: Matriz | Loja

Authorizations:
oauth2Auth
path Parameters
id_attribute
required
integer
Example: 25

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update

Acesso: Matriz

Authorizations:
oauth2Auth
path Parameters
id_attribute
required
integer
Example: 49

ID do atributo

Request Body schema: application/json
required
id_attribute_group
required
integer <= 9999999999

ID do grupo de atributos

name
required
string <= 255

Nome do atributo. Deve ser único dentro de um mesmo grupo de atributos.

Responses

Request samples

Content type
application/json
{
  • "id_attribute_group": 16,
  • "name": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete

Acesso: Matriz

Authorizations:
oauth2Auth
path Parameters
id_attribute
required
integer
Example: 19

ID do atributo

Responses

Attribute Group

Grupos para os atributos que normalmente são utilizados em um mesmo tipo de produto, contudo a sua organização pode ser de livre escolha pelas marcas. Cada grupo de atributos possui um ID único e um nome associado, que podem ser usados para referenciar e identificar o grupo.

Attribute Group

id_attribute_group
required
integer <= 9999999999

ID do grupo de atributos

name
required
string <= 255

Nome do grupo de atributos

created_at
string <date-time>

Data de criação

updated_at
string <date-time>

Data de atualização

{
  • "id_attribute_group": 16,
  • "name": "Bonés",
  • "created_at": "2021-09-15T10:37:49-03:00",
  • "updated_at": "2021-09-15T10:37:49-03:00"
}

Create

Acesso: Matriz

Este endpoint é utilizado para criar um novo grupo de atributos. No exemplo fornecido, está sendo criado um grupo de atributos chamado "Camisas". Grupos de atributos podem ser usados para organizar atributos que são comumente usados juntos, como os atributos que descrevem características de uma camisa.

Authorizations:
oauth2Auth
Request Body schema: application/json
name
required
string <= 255

Nome do grupo de atributos

Responses

Request samples

Content type
application/json
{
  • "name": "Bonés"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get All

Acesso: Matriz | Loja

Retorna todos os Grupos de Atributo.

Authorizations:
oauth2Auth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get by Id

Acesso: Matriz | Loja

Retorna um Grupo de Atributo conforme id.

Authorizations:
oauth2Auth
path Parameters
id_attribute_group
required
integer
Example: 19

ID do grupo de atributo

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update

Acesso: Matriz

Authorizations:
oauth2Auth
path Parameters
id_attribute_group
required
integer
Example: 27

ID do grupo de atributo

Request Body schema: application/json
required
name
required
string <= 255

Nome do grupo de atributos

Responses

Request samples

Content type
application/json
{
  • "name": "Bonés"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete

Acesso: Matriz

Authorizations:
oauth2Auth
path Parameters
id_attribute_group
required
integer
Example: 27

ID do grupo de atributo

Responses

Attribute Option

Opções de um atributo, como por exemplo as opções "Azul", "Branco" e "Preto" para o attributo "Cor". Cada opção de atributo tem um ID único, um ID de atributo associado e um valor.

Attribute Option

id_attribute_option
required
integer <= 9999999999

ID da opção do atributo

id_attribute
required
integer <= 9999999999

ID do atributo

value
required
string <= 40

Valor da opção do atributo. Deve ser único dentro de um mesmo atributo.

created_at
string <date-time>

Data de criação

updated_at
string <date-time>

Data de atualização

{
  • "id_attribute_option": 118,
  • "id_attribute": 30,
  • "value": "Azul Marinho",
  • "created_at": "2021-09-15T10:37:49-03:00",
  • "updated_at": "2021-09-15T10:37:49-03:00"
}

Attribute Option

id_attribute_option
required
integer <= 9999999999

ID da opção do atributo

value
required
string <= 40

Valor da opção do atributo. Deve ser único dentro de um mesmo atributo.

{
  • "id_attribute_option": 118,
  • "value": "Azul Marinho"
}

Get All by Attribute

Acesso: Matriz | Loja

Authorizations:
oauth2Auth
path Parameters
id_attribute
required
integer
Example: 30

ID do atributo

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get by Id

Acesso: Matriz | Loja

Authorizations:
oauth2Auth
path Parameters
id_attribute_option
required
integer
Example: 118

ID da opção de atributo

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update

Acesso: Matriz

Authorizations:
oauth2Auth
path Parameters
id_attribute_option
required
integer
Example: 158

ID da opção de atributo

Request Body schema: application/json
required
value
required
string <= 40

Valor da opção do atributo. Deve ser único dentro de um mesmo atributo.

Responses

Request samples

Content type
application/json
{
  • "value": "Azul Marinho"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete

Acesso: Matriz

Authorizations:
oauth2Auth
path Parameters
id_attribute_option
required
integer
Example: 18

ID da opção de atributo

Responses

Create

Acesso: Matriz

Cria uma nova opção para um atributo existente. No exemplo fornecido, está sendo criada uma opção "Rosa" para o atributo com o ID 30. Esta opção pode ser usada para especificar que um produto ou variação de produto possui a cor rosa.

Authorizations:
oauth2Auth
Request Body schema: application/json
id_attribute
required
integer <= 9999999999

ID do atributo

value
required
string <= 40

Valor da opção do atributo. Deve ser único dentro de um mesmo atributo.

Responses

Request samples

Content type
application/json
{
  • "id_attribute": 30,
  • "value": "Azul Marinho"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Upsert

Acesso: Matriz

Cria ou modifica uma opção de atributo baseando-se no seu valor. Caso não existir uma opção no atributo com o valor fornecido, cria uma nova opção, porém caso já existir uma opção no atributo com o valor fornecido, apenas atualiza a opção.

Retorna a opção de atributo criada ou modificada.

Authorizations:
oauth2Auth
Request Body schema: application/json
id_attribute
required
integer <= 9999999999

ID do atributo

value
required
string <= 40

Valor da opção do atributo. Deve ser único dentro de um mesmo atributo.

Responses

Request samples

Content type
application/json
{
  • "id_attribute": 30,
  • "value": "Azul Marinho"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Attribute Value

Representa o vínculo de um Produto ou de uma Variação de Produto (SKU) com um determinado atributo e o seu valor (opção).

O valor (opção) do atributo é opcional para produtos e obrigatório para variações de produto (SKU). Quando o valor do atributo não for informado para um produto, então ficará a cargo do consumidor escolher o seu valor no momento da compra.

Exemplo

Produto: "Aspirador de pó".

Valores de atributos:

  • Atributo "Cor" com o valor "Preto".
  • Atributo "Voltagem" sem valor informado (variável).

Variações (SKUs) deste Produto:

  • Variação de produto 1 (SKU "LKN-1") com o atributo "Voltagem" com o valor "110V".
  • Variação de produto 2 (SKU "LKN-2") com o atributo "Voltagem" com o valor "220V".

No caso acima o produto "Aspirador de pó" será sempre vendido na cor "Preto", porém ficará a cargo do consumidor decidir a voltagem (e consequentemente o SKU). Por este motivo o atributo "Voltagem" não possui valor específico no Produto, mas possui valor em cada uma de suas variações (SKUs).

Cada valor de atributo tem um ID único, um ID de atributo associado, um ID de opção de atributo (quando aplicável), um ID de produto e um ID de variação de produto (quando aplicável).

Attribute Value

id_attribute_value
required
integer <= 9999999999

ID do valor do atributo

id_attribute
required
integer <= 9999999999

ID do atributo

id_attribute_option
integer or null <= 9999999999

ID da opção do atributo

id_product
required
integer <= 9999999999

ID do produto

id_product_variation
required
integer <= 9999999999

ID da variação do produto

created_at
string <date-time>

Data de criação

updated_at
string <date-time>

Data de atualização

{
  • "id_attribute_value": 495,
  • "id_attribute": 25,
  • "id_attribute_option": null,
  • "id_product": 61,
  • "id_product_variation": null,
  • "created_at": "2021-09-15T10:37:49-03:00",
  • "updated_at": "2021-09-15T10:37:49-03:00"
}

Get All

Acesso: Matriz | Loja

Authorizations:
oauth2Auth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Create

Acesso: Matriz

Associa um valor de atributo a uma variação de produto específica. No exemplo fornecido, o valor do atributo com o ID 32 e a opção de atributo com o ID 49 estão sendo associados à variação de produto com o ID 41. Isso indica, por exemplo, que esta variação de produto tem o valor "Rosa" para o atributo "Cor".

Authorizations:
oauth2Auth
Request Body schema: application/json
id_attribute
required
integer <= 9999999999

ID do atributo

id_attribute_option
integer or null <= 9999999999

ID da opção do atributo

id_product
required
integer <= 9999999999

ID do produto

id_product_variation
required
integer <= 9999999999

ID da variação do produto

Responses

Request samples

Content type
application/json
{
  • "id_attribute": 25,
  • "id_attribute_option": null,
  • "id_product": 61,
  • "id_product_variation": null
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get All by Product

Acesso: Matriz | Loja

Authorizations:
oauth2Auth
path Parameters
id_product
required
integer
Example: 69

ID do produto

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get All by Product Variation

Acesso: Matriz | Loja

Authorizations:
oauth2Auth
path Parameters
id_product_variation
required
integer
Example: 248

ID da variação de produto

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Get by Id

Acesso: Matriz | Loja

Authorizations:
oauth2Auth
path Parameters
id_attribute_value
required
integer
Example: 528

ID do valor de atributo

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update

Acesso: Matriz

Authorizations:
oauth2Auth
path Parameters
id_attribute_value
required
integer
Example: 21

ID do valor de atributo

Request Body schema: application/json
required
id_attribute
required
integer <= 9999999999

ID do atributo

id_attribute_option
integer or null <= 9999999999

ID da opção do atributo

id_product
required
integer <= 9999999999

ID do produto

id_product_variation
required
integer <= 9999999999

ID da variação do produto

Responses

Request samples

Content type
application/json
{
  • "id_attribute": 25,
  • "id_attribute_option": null,
  • "id_product": 61,
  • "id_product_variation": null
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete

Acesso: Matriz

Authorizations:
oauth2Auth
path Parameters
id_attribute_value
required
integer
Example: 13

ID do valor de atributo

Responses

Category

Category

id_category
required
integer <= 9999999999

ID da categoria

id_parent
integer <= 9999999999

ID da matriz

id_category_parent
integer or null <= 9999999999

ID da categoria pai

category
required
string [ 1 .. 90 ]

Nome da categoria

id_external
required
string or null <= 255

ID externo da categoria

parents_enabled
boolean

Permite sub categoria

enabled
required
boolean

Categoria habilitada

created_at
string <date-time>

Data de criação

updated_at
string <date-time>

Data de atualização

{
  • "id_category": 1,
  • "id_parent": 1,
  • "id_category_parent": null,
  • "category": "Roupas",
  • "id_external": null,
  • "parents_enabled": true,
  • "enabled": true,
  • "created_at": "2021-09-15T10:37:49-03:00",
  • "updated_at": "2021-09-15T10:37:49-03:00"
}

Get All

Acesso: Matriz | Loja

Authorizations:
oauth2Auth
query Parameters
page
integer
Example: page=1
limit
integer
Example: limit=20

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Create

Acesso: Matriz

Authorizations:
oauth2Auth
Request Body schema: application/json
id_category_parent
integer or null <= 9999999999

ID da categoria pai

category
required
string [ 1 .. 90 ]

Nome da categoria

id_external
required
string or null <= 255

ID externo da categoria

parents_enabled
boolean

Permite sub categoria

enabled
required
boolean

Categoria habilitada

Responses

Request samples

Content type
application/json
{
  • "id_category_parent": null,
  • "category": "Roupas",
  • "id_external": null,
  • "parents_enabled": true,
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get by Id

Acesso: Matriz | Loja

Authorizations:
oauth2Auth
path Parameters
id_category
required
integer
Example: 72

ID da categoria

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update

Acesso: Matriz

Authorizations:
oauth2Auth
path Parameters
id_category
required
integer
Example: 92

ID da categoria

Request Body schema: application/json
required
id_category_parent
integer or null <= 9999999999

ID da categoria pai

category
required
string [ 1 .. 90 ]

Nome da categoria

id_external
required
string or null <= 255

ID externo da categoria

parents_enabled
boolean

Permite sub categoria

enabled
required
boolean

Categoria habilitada

Responses

Request samples

Content type
application/json
{
  • "id_category_parent": null,
  • "category": "Roupas",
  • "id_external": null,
  • "parents_enabled": true,
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete

Acesso: Matriz

Authorizations:
oauth2Auth
path Parameters
id_category
required
integer
Example: 62

ID da categoria

Responses

Get by External Id

Acesso: Matriz | Loja

Retorna a categoria conforme o id externo.

Authorizations:
oauth2Auth
path Parameters
id_external
required
string
Example: 1

Id externo da categoria

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Product

Product

id_product
required
integer <= 9999999999

ID do produto

product
required
string <= 150

Nome do produto

id_category
required
integer

ID da categoria. Opcional caso informado o campo category.

complement
string <= 150

Complemento

description
required
string <= 65000

Descrição, permite tags HTML simples

price
required
number decimal places <= 2 [ 0.01 .. 999999999.99 ]

Preço

promotional_price
number decimal places <= 2 [ 0.01 .. 999999999.99 ]

Preço promocional

sku
required
string [ 1 .. 150 ]

SKU

ean
string <= 14

Código de barras

width
integer

Largura (cm)

height
integer

Altura (cm)

length
integer

Comprimento (cm)

weight
integer

Peso (gramas)

display_order
integer

Ordem de exibição

variable
required
boolean

Produto variável

enabled
boolean

Produto ativo

created_at
string <date-time>

Data de criação

updated_at
string <date-time>

Data de atualização

{
  • "id_product": 1,
  • "product": "Camisa Adidas 10",
  • "id_category": 76,
  • "complement": "Complemento",
  • "description": "Descrição",
  • "price": 10.95,
  • "promotional_price": 9.95,
  • "sku": "SK3394",
  • "ean": "13313789913513",
  • "width": 100,
  • "height": 100,
  • "length": 100,
  • "weight": 20,
  • "display_order": 1,
  • "variable": true,
  • "enabled": true,
  • "created_at": "2021-09-15T10:37:49-03:00",
  • "updated_at": "2021-09-15T10:37:49-03:00"
}

Get All

Acesso: Matriz | Loja

Authorizations:
oauth2Auth
query Parameters
page
integer
Example: page=1
limit
integer
Example: limit=10

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Create

Acesso: Matriz

Authorizations:
oauth2Auth
Request Body schema: application/json
product
required
string <= 150

Nome do produto

id_category
required
integer

ID da categoria. Opcional caso informado o campo category.

complement
string <= 150

Complemento

description
required
string <= 65000

Descrição, permite tags HTML simples

price
required
number decimal places <= 2 [ 0.01 .. 999999999.99 ]

Preço

promotional_price
number decimal places <= 2 [ 0.01 .. 999999999.99 ]

Preço promocional

sku
required
string [ 1 .. 150 ]

SKU

ean
string <= 14

Código de barras

width
integer

Largura (cm)

height
integer

Altura (cm)

length
integer

Comprimento (cm)

weight
integer

Peso (gramas)

display_order
integer

Ordem de exibição

variable
required
boolean

Produto variável

enabled
boolean

Produto ativo

category
string [ 1 .. 900 ]

Categoria do produto na notação Categoria > Subcategoria > Subcategoria > ....

Se este campo for informado, o id da categoria (campo id_category) torna-se opcional.

Esta informação é utilizada para realizar toda a manutenção na árvore de categorias, criando as que forem necessárias. O produto será vinculado com a última categoria presente na notação.

Responses

Request samples

Content type
application/json
{
  • "product": "Camisa Adidas 10",
  • "complement": "Complemento",
  • "description": "Descrição",
  • "category": "Vestuário > Masculino > Camisa",
  • "ean": "1331378991351",
  • "price": 10.95,
  • "width": 100,
  • "height": 100,
  • "length": 100,
  • "weight": 20,
  • "display_order": 1,
  • "variable": true,
  • "updated_at": "2021-09-15T10:37:49-03:00",
  • "created_at": "2021-09-15T10:37:49-03:00"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get by Id

Acesso: Matriz | Loja

Authorizations:
oauth2Auth
path Parameters
id_product
required
integer
Example: 61

ID do produto

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update

Acesso: Matriz

Authorizations:
oauth2Auth
path Parameters
id_product
required
integer
Example: 61

ID do produto

Request Body schema: application/json
required
object (Product)

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete

Acesso: Matriz

Authorizations:
oauth2Auth
path Parameters
id_product
required
integer
Example: 569

ID do produto

Responses

Get by SKU

Acesso: Matriz | Loja

Authorizations:
oauth2Auth
path Parameters
sku
required
string [ 1 .. 150 ]
Example: LKN.3112

SKU do produto

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Product Image

Get All by Product

Acesso: Matriz | Loja

Authorizations:
oauth2Auth
path Parameters
id_product
required
integer
Example: 61

Responses

Response samples

Content type
application/json
{}

Create

Authorizations:
oauth2Auth
path Parameters
id_product
required
integer
Example: 580
Request Body schema: application/json
data
string <binary>

Responses

Request samples

Content type
application/json
"\"{\\n \\t\\\"data\\\": \\\"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\\\"\\n}\""

Get by Id

Authorizations:
oauth2Auth
path Parameters
id_product_image
required
integer
Example: 1027

ID da imagem do produto

Responses

Update

Authorizations:
oauth2Auth
path Parameters
id_product_image
required
integer
Example: 1021

ID da imagem do produto

Request Body schema: */*
required
string

Responses

Delete

Authorizations:
oauth2Auth
path Parameters
id_product_image
required
integer
Example: 1047

ID da imagem do produto

Responses

Product Variation (SKU)

Get All by Product

Authorizations:
oauth2Auth
path Parameters
id_product
required
integer
Example: 69

ID do produto

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Create

Authorizations:
oauth2Auth
path Parameters
id_product
required
integer
Example: 102

ID do produto

Request Body schema: application/json
sku
string or null [ 1 .. 150 ]

SKU

ean
string or null <= 14

Código de barras

price
number or null decimal places <= 2 [ 0.01 .. 999999999.99 ]

Preço

promotional_price
number or null decimal places <= 2 [ 0.01 .. 999999999.99 ]

Preço promocional

width
integer or null

Largura (cm)

height
integer or null

Altura (cm)

length
integer or null

Comprimento (cm)

weight
integer or null

Peso (Gramas)

enabled
boolean

Produto ativo

Responses

Request samples

Content type
application/json
{
  • "sku": "Camisa Adidas 10",
  • "ean": "13313789913514",
  • "price": 10.95,
  • "promotional_price": 9.95,
  • "width": 100,
  • "height": 100,
  • "length": 100,
  • "weight": 20,
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get by Id

Authorizations:
oauth2Auth
path Parameters
id_product_variation
required
integer
Example: 255

ID da variação de produto

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update

Authorizations:
oauth2Auth
path Parameters
id_product_variation
required
integer
Example: 328

ID da variação de produto

Request Body schema: application/json
required
sku
string or null [ 1 .. 150 ]

SKU

ean
string or null <= 14

Código de barras

price
number or null decimal places <= 2 [ 0.01 .. 999999999.99 ]

Preço

promotional_price
number or null decimal places <= 2 [ 0.01 .. 999999999.99 ]

Preço promocional

width
integer or null

Largura (cm)

height
integer or null

Altura (cm)

length
integer or null

Comprimento (cm)

weight
integer or null

Peso (Gramas)

enabled
boolean

Produto ativo

Responses

Request samples

Content type
application/json
{
  • "sku": "Camisa Adidas 10",
  • "ean": "13313789913514",
  • "price": 10.95,
  • "promotional_price": 9.95,
  • "width": 100,
  • "height": 100,
  • "length": 100,
  • "weight": 20,
  • "enabled": true
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete

Authorizations:
oauth2Auth
path Parameters
id_product_variation
required
integer
Example: 34

ID da variação de produto

Responses

Store Product

Store Product

id_product
integer or null <= 9999999999

ID do produto

id_product_variation
integer or null <= 9999999999

ID da variação do produto

complement
string or null <= 150

Complemento

description
string or null <= 65000

Descrição, permite tags HTML simples

price
number or null decimal places <= 2 [ 0.01 .. 999999999.99 ]

Preço

promotional_price
number or null decimal places <= 2 [ 0.01 .. 999999999.99 ]

Preço promocional

quantity
integer

Quantidade do produto em estoque

display_order
integer <= 255

Ordem de exibição

enabled
boolean

Produto ativo

created_at
string <date-time>

Data de criação

updated_at
string <date-time>

Data de atualização

{
  • "id_product": 1,
  • "id_product_variation": 1,
  • "complement": "Complemento",
  • "description": "Descrição",
  • "price": 10.95,
  • "promotional_price": 9.95,
  • "quantity": 100,
  • "display_order": 1,
  • "enabled": true,
  • "created_at": "2021-09-15T10:37:49-03:00",
  • "updated_at": "2021-09-15T10:37:49-03:00"
}

Get All

Acesso: Loja

Authorizations:
oauth2Auth
query Parameters
page
integer
Example: page=1
limit
integer
Example: limit=10

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Create

Acesso: Loja

Authorizations:
oauth2Auth
Request Body schema: application/json
id_product
integer or null <= 9999999999

ID do produto

id_product_variation
integer or null <= 9999999999

ID da variação do produto

complement
string or null <= 150

Complemento

description
string or null <= 65000

Descrição, permite tags HTML simples

price
number or null decimal places <= 2 [ 0.01 .. 999999999.99 ]

Preço

promotional_price
number or null decimal places <= 2 [ 0.01 .. 999999999.99 ]

Preço promocional

quantity
required
integer

Quantidade do produto em estoque

display_order
integer <= 255

Ordem de exibição

Responses

Request samples

Content type
application/json
{
  • "id_product_variation": 41,
  • "description": "teste",
  • "complement": "complemento",
  • "price": 10.95,
  • "quantity": 10,
  • "created_at": "2021-08-31T14:00:00.000Z",
  • "updated_at": "2021-08-31T14:00:00.000Z"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Update

Acesso: Loja

Authorizations:
oauth2Auth
path Parameters
id_store_product
required
integer
Example: 620

ID do produto da loja

Request Body schema: application/json
complement
string or null <= 150

Complemento

description
string or null <= 65000

Descrição, permite tags HTML simples

price
number or null decimal places <= 2 [ 0.01 .. 999999999.99 ]

Preço

promotional_price
number or null decimal places <= 2 [ 0.01 .. 999999999.99 ]

Preço promocional

quantity
integer

Quantidade do produto em estoque

display_order
integer <= 255

Ordem de exibição

enabled
boolean

Produto ativo

Responses

Request samples

Content type
application/json
{
  • "description": "teste",
  • "complement": "complemento5",
  • "price": 10.95,
  • "quantity": 10,
  • "enabled": true,
  • "display_order": 1,
  • "created_at": "2021-08-31T14:00:00.000Z",
  • "updated_at": "2021-08-31T14:00:00.000Z"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete

Acesso: Loja

Authorizations:
oauth2Auth
path Parameters
id_store_product
required
integer
Example: 620

ID do produto na loja

Responses

Get by Id

Acesso: Loja

Authorizations:
oauth2Auth
path Parameters
id_store_product
required
integer
Example: 620

ID do produto da loja

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Order

Status do Pedido:

  • 210 (CUSTOMER_PAYMENT_WAIT): Aguardando Pagamento.
  • 211 (CUSTOMER_PAYMENT_NOT_AUTHORIZED): Pagamento não Autorizado.
  • 212 (CUSTOMER_PAYMENT_SUCCESS): Pagamento Aprovado.
  • 213 (CUSTOMER_PAYMENT_PARTIALLY_REFUNDED): Estornado Parcialmente.
  • 214 (CUSTOMER_PAYMENT_REFUNDED): Estornado.
  • 410 (STORE_DELIVERY_WAIT): Em Preparação pela Loja.
  • 411 (STORE_DELIVERY_IN_PROCESS): Entrega em Processamento (Aguardando Coleta).
  • 412 (STORE_DELIVERY_START): Entrega em Andamento.
  • 413 (STORE_DELIVERY_SUCCESS): Entrega Concluída.
  • 610 (CANCELATION_REQUEST): Cancelamento Solicitado.
  • 611 (CANCELATION_FAIL): Cancelamento Abortado.
  • 612 (CANCELATION_SUCCESS): Cancelado.
  • 810 (RETURN_REQUEST): Troca ou Devolução Solicitada.
  • 811 (RETURN_FAIL): Troca ou Devolução Abortada.
  • 812 (RETURN_SUCCESS): Troca ou Devolução Concluída.

Order

id_order
integer <= 9999999999

ID do pedido

id_store
integer <= 9999999999

ID da loja

price
integer

Preço total do pedido inteiro. Ex: 10000 = R$ 100,00

status
integer
Enum: 210 211 212 213 214 410 411 412 610 611 612 810 811 812

Status do pedido

delivery_price
integer

Preço total do frete do pedido inteiro. Ex: 10000 = R$ 100,00

installments
integer

Número de parcelas do pedido

order_date
string

Data do pedido. Ex: 2021-09-15 10:37:49 BRT

customer_address
object

Endereço do cliente

object

Endereço de cobrança do cliente

object
created_at
string <date-time>

Data de criação

updated_at
string <date-time>

Data de atualização

{
  • "id_order": 1,
  • "id_store": 1,
  • "price": 100,
  • "status": 210,
  • "delivery_price": 10000,
  • "installments": 1,
  • "order_date": "2021-09-15T10:37:49-03:00",
  • "customer_address": null,
  • "customer_billing_address": {
    },
  • "delivery_type": {
    },
  • "created_at": "2021-09-15T10:37:49-03:00",
  • "updated_at": "2021-09-15T10:37:49-03:00"
}

Get All

Acesso: Matriz | Loja

Authorizations:
oauth2Auth
query Parameters
status
string
Example: status=410,420

Status dos pedidos. Podem ser informados um ou mais status separados por "," (vírgula).

from
string
Example: from=2021-04-21T10:22:43Z

Data inicial dos pedidos, no formato ISO.

until
string
Example: until=2021-04-21T10:22:43Z

Data final dos pedidos, no formato ISO.

page
integer
Default: 1
Example: page=1

Página dos resultados.

limit
integer <= 50
Default: 50
Example: limit=10

Limite de resultados por página.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

Accept

Acesso: Loja

Realiza o aceite/confirmação do pedido pela loja.

Esta confirmação pode ser realizada para pedidos com o pagamento aprovado, ou seja, que estão no status 212 (CUSTOMER_PAYMENT_SUCCESS).

Ao ser confirmado, o pedido é enviado para o status 410 (STORE_DELIVERY_WAIT).

Authorizations:
oauth2Auth
path Parameters
id_order
required
integer
Example: 68

ID do pedido

Responses

Start Delivery

Acesso: Loja

Inicia a entrega do pedido pela loja.

A entrega pode ser iniciada para pedidos que estão no status 410 (STORE_DELIVERY_WAIT).

Ao ser iniciada, o pedido é enviado para algum dos status abaixo, dependendo da sua forma de entrega.

  • 411 (STORE_DELIVERY_IN_PROCESS): para pedidos com entrega gerenciada por terceiro (Uber, Loggi, Lalamove, etc).
  • 412 (STORE_DELIVERY_START): para pedidos com entrega gerenciada pela loja (Tele Entrega, Retirada no Local).

Resumidamente se a entrega for gerenciada por terceiro, o pedido passará pelo status 411 (coleta) e após 412 (entrega). Enquanto que se a entrega for gerenciada pela loja, o pedido irá diretamente para o status 412 (entrega).

Authorizations:
oauth2Auth
path Parameters
id_order
required
integer
Example: 68

ID do pedido

Responses

Finish Delivery

Acesso: Loja

Finaliza a entrega do pedido pela loja.

A entrega pode ser finalizada para pedidos que estão no status 412 (STORE_DELIVERY_START) e que possuem uma forma de entrega gerenciada pela loja (Tele Entrega ou Retirada no Local). Pedidos com entrega gerenciada por terceiro (Uber, Loggi, Lalamove, etc) são finalizados automaticamente.

Ao ser finalizada, o pedido é enviado para o status 413 (STORE_DELIVERY_SUCCESS).

Authorizations:
oauth2Auth
path Parameters
id_order
required
integer
Example: 68

ID do pedido

Responses

Cancel

Acesso: Loja

Realiza o cancelamento do pedido pela loja.

O cancelamento pode ser realizado para pedidos com o pagamento aprovado e que ainda não foram entregues, ou seja, que estão em algum dos status abaixo:

  • 212 (CUSTOMER_PAYMENT_SUCCESS)
  • 410 (STORE_DELIVERY_WAIT)
  • 411 (STORE_DELIVERY_IN_PROCESS)
  • 412 (STORE_DELIVERY_START)

Ao ser cancelado, o pedido é enviado para o status 612 (CANCELATION_SUCCESS).

Authorizations:
oauth2Auth
path Parameters
id_order
required
integer
Example: 68

ID do pedido

Request Body schema: application/json
required
reason
required
string
Enum: "out_of_stock" "delivery_failure" "other"

Razão do cancelamento

description
string

Descrição do cancelamento. Obrigatório somente quando reason for igual a "other", opcional caso contrário.

Responses

Request samples

Content type
application/json
{
  • "reason": "other",
  • "description": "Último item do estoque estava com defeito."
}