Catálogo

Marcas

Listar marcas

GET https://api.dooki.com.br/v2/{alias}/catalog/brands

Request

{
"active": true,
"featured": true,
"name": "Brand",
"description": "Description test",
"logo_url": "http://foo.bar/logo.png",
}

Response

{
"data": [
{
"id": 1,
"active": true,
"featured": true,
"name": "Brand",
"description": "Description test",
"logo_url": "https://jarvis.bubbstore.com/brand-logo.png",
},
]
}

Criar marca

POST https://api.dooki.com.br/v2/{alias}/catalog/brands

Parâmetro

Tipo

Obrigatório

Descrição

active

boolean

Sim

Status da marca

featured

boolean

Sim

Marca em destaque

name

string

Sim

Nome da marca

description

string

Não

Descrição da marca

logo_url

string

Não

URL do logotipo da marca

Visualizar marca

GET https://api.dooki.com.br/v2/{alias}/catalog/brands/{id}

Atualizar marca

PUT https://api.dooki.com.br/v2/{alias}/catalog/brands/{id}

Excluir marca

DELETE https://api.dooki.com.br/v2/{alias}/catalog/brands/{id}

Categorias

Includes disponíveis: seo, children, parent, marketplaces

Listar categorias

GET https://api.dooki.com.br/v2/{alias}/catalog/categories

Por padrão, a API retorna todas as categorias. Se você deseja listar apenas os pais, basta adicionar o parâmetro /categories?onlyParents=true.

Request

{
"active": true,
"featured": false,
"name": "Category",
"slug": "category",
"seo_title": "Page title for category",
"seo_keywords": "meta, tags, keywords",
"seo_description": "Seo description",
"banners_ids": [1, 2, 3],
"external_url": "http://www.link.com",
"canonical_url": "http://www.link.com"
}

Response

{
"data": [
{
"id": 400,
"active": true,
"featured": false,
"parent_id": null,
"ml_category": null,
"name": "Category",
"slug": "category",
"url": "https://www.domain.com.br/category",
"sort_by": "relevance",
"price_factor": 1.00,
"total_banners": 0,
"external_url": "http://www.link.com",
"canonical_url": "http://www.link.com",
"seo": {
"data": {
"seo_title": "Page title for category",
"seo_keywords": "meta, tags, keywords",
"seo_description": "Seo description"
}
},
"parent": {},
"children": []
},
]
}

Criar categoria

POST https://api.dooki.com.br/v2/{alias}/catalog/categories

Parâmetro

Tipo

Obrigatório

Descrição

parent_id

int

Não

ID da categoria pai.

active

boolean

Sim

Status da categoria.

featured

boolean

Não

Categoria em destaque

ml_category

string

Não

ID da categoria no Mercado Livre

price_factor

float

Não

Fator de multiplicação

name

string

Sim

Nome da categoria

slug

string

Não

Slug da categoria

seo_title

string

Não

Título da página da categoria

seo_keywords

string

Não

Meta tag keywords da categoria

seo_description

string

Não

Meta tag description da categoria

external_url

string

Não

Link externo da categoria.

canonical_url

string

Não

Link canônico da categoria.

order

int

Não

Índice de ordenação da categoria

sort_by

string

Não

Tipo de ordenação dos produtos da categoria. Valores aceitos: relevance, highest_price, lowest_price, best_rating, name_asc, name_desc, random, best_sellers

banners_ids

array

Não

Lista de banners que a categoria possuirá.

Visualizar categoria

GET https://api.dooki.com.br/v2/{alias}/catalog/categories/{id}

Atualizar categoria

PUT https://api.dooki.com.br/v2/{alias}/catalog/categories/{id}

Excluir categoria

DELETE https://api.dooki.com.br/v2/{alias}/catalog/categories/{id}

Lista de produtos associados a uma categoria

GET https://api.dooki.com.br/v2/{alias}/catalog/categories/{id}/products

Associar produtos a uma categoria

PUT https://api.dooki.com.br/v2/{alias}/catalog/categories/{id}/products

Excluir produtos de uma categoria

DELETE https://api.dooki.com.br/v2/{alias}/catalog/categories/{id}/products

Lista de banners associados a uma categoria

GET https://api.dooki.com.br/v2/{alias}/catalog/categories/{id}/banners

Você deverá enviar um json com os IDS dos produtos que deseja associar ou excluir.

Incluir ou excluir produtos de uma categoria

{
"products_ids": [1, 2, 3, 4, 5]
}

Exportar categorias

GET https://api.dooki.com.br/v2/{alias}/catalog/categories/export

Dica: os filtros de busca também estão disponíveis no endpoint de exportação.

O sistema enviará para o usuário um e-mail com o link para download da planilha com os registros.

Importar categorias

POST https://api.dooki.com.br/v2/{alias}/catalog/categories/import

Para importar as categorias, é necessário o envio do parâmetro file_url com a URL do arquivo. Extensões de arquivos aceitas: .xls.

Associar produtos de outras categorias

POST https://api.dooki.com.br/v2/{alias}/catalog/categories/{id}/copy-products

Esse recurso é útil quando você precisa transferir produtos de outras categorias. Você deverá enviar em seu request os IDS das categorias dessa forma: "categories_ids": [1,2,3,4].

A API irá associar todos os produtos das categorias 1,2,3,4.

Selos

Listar selos

GET https://api.dooki.com.br/v2/{alias}/catalog/flags

Request

{
"active": true,
"is_visible": true,
"name": "Coleção 2017",
"slug": "colecao-2017",
"text_color": "#ffffff",
"background_color": "#000000",
"image_url": "http://image.com/selo.gif",
}

Response

{
"data": [
{
"id": 163,
"active": true,
"is_visible": true,
"name": "Coleção 2017",
"slug": "colecao-2017",
"text_color": "#ffffff",
"background_color": "#000000",
"image_url": "http://image.com/selo.gif",
},
]
}

Criar selo

POST https://api.dooki.com.br/v2/{alias}/catalog/flags

Parâmetro

Tipo

Obrigatório

Descrição

active

boolean

Sim

Status do selo

is_visible

boolean

Não

Selo visível. Padrão: true.

name

string

Sim

Nome do selo.

slug

string

Não

Slug do selo.

text_color

string(7)

Não

Código hexadecimal da cor do texto.

background_color

string(7)

Não

Código hexadecimal do fundo.

image_url

string

Não

URL da imagem que será usada no selo.

Visualizar selo

GET https://api.dooki.com.br/v2/{alias}/catalog/flags/{id}

Atualizar selo

PUT https://api.dooki.com.br/v2/{alias}/catalog/flags/{id}

Excluir selo

DELETE https://api.dooki.com.br/v2/{alias}/catalog/flags/{id}

Lista de produtos associados a um selo

GET https://api.dooki.com.br/v2/{alias}/catalog/flags/{id}/products

Associar produtos a um selo

POST https://api.dooki.com.br/v2/{alias}/catalog/flags/{id}/products

Excluir produtos de um selo

DELETE https://api.dooki.com.br/v2/{alias}/catalog/flags/{id}/products

Você deverá enviar um json com os IDS dos produtos que deseja associar ou excluir.

Incluir ou excluir produtos de um selo

{
"products_ids": [1, 2, 3, 4, 5]
}

Variações

Includes disponíveis: values

Listar variações

GET https://api.dooki.com.br/v2/{alias}/catalog/variations

Request

{
"name": "Cor"
}

Response

{
"data": [
"id": 13,
"name": "Cor",
"values": {
"data": [
{
"id": 490,
"name": "Amarelo",
"color": "#fff705",
},
{
"id": 1067,
"name": "Amarelo Floral",
"color": null,
},
]
}
]
}

Criar variação

POST https://api.dooki.com.br/v2/{alias}/catalog/variations

Parâmetro

Tipo

Obrigatório

Descrição

name

string

Sim

Nome da variação.

Visualizar variação

GET https://api.dooki.com.br/v2/{alias}/catalog/variations/{id}

Atualizar variação

PUT https://api.dooki.com.br/v2/{alias}/catalog/variations/{id}

Excluir variação

DELETE https://api.dooki.com.br/v2/{alias}/catalog/variations/{id}

Valores de variações

Listar valores de uma variação

GET https://api.dooki.com.br/v2/{alias}/catalog/variations/{variationId}/values

Request

{
"name": "Branco",
"color": "#ffffff",
"image_url": "https://image-url.com/image.jpg"
}

Response

{
"data": {
"id": 1,
"name": "Branco",
"color": "#ffffff",
"image_url": "https://image-url.com/image.jpg"
}
}

Criar valor de variação

POST https://api.dooki.com.br/v2/{alias}/catalog/variations/{variationId}/values

Parâmetro

Tipo

Obrigatório

Descrição

name

string

Sim

Nome do valor de variação.

color

string

Não

Código hexadecimal de uma cor.

image_url

string

Não

URL da imagem que será usada no valor de variação.

Visualizar valor de uma variação

GET https://api.dooki.com.br/v2/{alias}/catalog/variations/{variationId}/values/{id}

Atualizar valor de variação

PUT https://api.dooki.com.br/v2/{alias}/catalog/variations/{variationId}/values/{id}

Excluir valor de variação

DELETE https://api.dooki.com.br/v2/{alias}/catalog/variations/{variationId}/values/{id}

Filtros

Os filtros possuem quase a mesma estrutura de uma variação, porém, eles possuem uma outra finalidade, que é exclusivamente para a busca de produtos.

Includes disponíveis: values

Listar filtros

GET https://api.dooki.com.br/v2/{alias}/catalog/filters

Request

{
"name": "Tamanho",
"searchable": true,
"navigation": false
}

Response

{
"data": [
"id": 1,
"name": "Tamanho",
"searchable": true,
"navigation": false,
"values": {
"data": [
{
"id": 1,
"name": "P",
"color": null,
},
{
"id": 2,
"name": "M",
"color": null,
},
]
}
]
}

Criar filtro

POST https://api.dooki.com.br/v2/{alias}/catalog/filters

Parâmetro

Tipo

Obrigatório

Descrição

name

string

Sim

Nome do filtro.

searchable

boolean

Não

Filtro buscável.

navigation

boolean

Não

Filtro visível no menu de navegação.

Visualizar filtro

GET https://api.dooki.com.br/v2/{alias}/catalog/filters/{id}

Atualizar filtro

PUT https://api.dooki.com.br/v2/{alias}/catalog/filters/{id}

Excluir filtro

DELETE https://api.dooki.com.br/v2/{alias}/catalog/filters/{id}

Valores de filtros

Listar valores de um filtro

GET https://api.dooki.com.br/v2/{alias}/catalog/filters/{filterId}/values

Request

{
"name": "M",
"color": null,
"image_url": "https://image-url.com/image.jpg"
}

Response

{
"data": {
"id": 1,
"name": "M",
"color": null,
"image_url": "https://image-url.com/image.jpg"
}
}

Criar valor de filtro

POST https://api.dooki.com.br/v2/{alias}/catalog/filters/{filterId}/values

Parâmetro

Tipo

Obrigatório

Descrição

name

string

Sim

Nome do valor de filtro.

color

string

Não

Código hexadecimal de uma cor.

image_url

string

Não

URL da imagem que será usada no filtro.

Visualizar valor de um filtro

GET https://api.dooki.com.br/v2/{alias}/catalog/variations/{filterId}/values/{id}

Atualizar valor de filtro

PUT https://api.dooki.com.br/v2/{alias}/catalog/variations/{filterId}/values/{id}

Excluir valor de filtro

DELETE https://api.dooki.com.br/v2/{alias}/catalog/variations/{filterId}/values/{id}

Produtos

Includes disponíveis: dates, brand, extras, texts, seo, filters, flags, variations, categories, images, skus, firstImage, searchAttributes, reviews, combos

Listar produtos

GET https://api.dooki.com.br/v2/{alias}/catalog/products

Criar produto

POST https://api.dooki.com.br/v2/{alias}/catalog/products

Atualizar produto

PUT https://api.dooki.com.br/v2/{alias}/catalog/products/{id}

Excluir produto

DELETE https://api.dooki.com.br/v2/{alias}/catalog/products/{id}

Request

{
"simple": true,
"brand_id": 1,
"erp_id": 1212,
"active": true,
"searchable": true,
"is_digital": false,
"buy_similars": false,
"priority": 1,
"rating": 5,
"ncm": "NCM",
"name": "Produto X",
"slug": "produto-x",
"video": "https://youtube.com",
"description": "Descrição",
"specifications": "Especificação",
"measures": "Medidas",
"gift_value": 1.00,
"seo_title": "Page title",
"seo_description": "Meta tag description",
"seo_keywords": "Meta tag keywords",
"canonical_url": "canonical_url",
"search_terms": "search, terms, for, better, search",
"categories_ids": [1, 2, 3, 4],
"flags_ids": [1, 2, 3, 4],
"filters_values_ids": [1, 2, 3, 4],
"variations_ids": [1, 2, 3, 4],
"similars_ids": [1, 2, 3, 4],
"skus": [
{
"sku": "SKU-TEST-API",
"erp_id": "01-753-Rose",
"barcode": "barcode-test",
"price_cost": 12.3,
"price_sale": 30,
"price_discount": 25,
"weight": 1,
"height": 1,
"width": 1,
"length": 1,
"quantity_managed": false,
"availability": 1,
"availability_soldout": 1,
"blocked_sale": false,
"variations_values_ids": [490],
"images": [
{
"url": "http://www.site.com/image1.jpg",
},
{
"url": "http://www.site.com/image2.jpg",
}
]
}
]
}

Response simples

{
"data": [
{
"id": 3254,
"merchant_id": 3,
"active": true,
"simple": false,
"has_variations": true,
"name": "Product name 1",
"slug": "product-name-1",
"rating": 0,
"url": "https://www.domain.com.br/slug/p"
},
{
"id": 3254,
"merchant_id": 3,
"active": true,
"simple": true,
"has_variations": true,
"name": "Product name 2",
"slug": "product-name-2",
"rating": 0,
"url": "https://www.domain.com.br/slug-2/p"
},
]
}

Response completo

{
"data": {
"id": 3254,
"merchant_id": 3,
"active": true,
"simple": true,
"has_variations": true,
"name": "Product name 2",
"slug": "product-name-2",
"rating": 0,
"url": "https://www.domain.com.br/slug-2/p",
"dates": {
"data": {
"created_at": {
"date": "2014-06-04 20:05:57.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
},
"updated_at": {
"date": "2014-08-22 10:51:40.000000",
"timezone_type": 3,
"timezone": "America/Sao_Paulo"
}
}
},
"brand": {
"data": {
"id": 48,
"active": true,
"featured": false,
"name": "Ione Enxovais",
"description": null,
"logo_url": null,
}
},
"extras": {
"data": {
"video": "http://youtube.com",
"search_terms": "edredom, edredom king, edredom florido, edredom estampado, edredom rose",
"ncm": null,
}
},
"texts": {
"data": {
"description": "<p>01 Edredom 2,80m x 2,70m<br />\r\n02 Porta Travesseiros 90cm x 60cm</p>\r\n",
"specifications": "<p>Tecidos Externos: 100% Algod&atilde;o 150 Fios<br />\r\nEnchimento: 100% Poli&eacute;ster</p>\r\n",
"measures": null
}
},
"seo": {
"data": {
"seo_title": "Edredom Casal King Senegal Cor Rose 03 Pecas",
"seo_description": "Edredom Casal King 100% Algodão 150 Fios",
"seo_keywords": ""
}
},
"filters": {
"data": [
{
"name": "Cor",
"value": "Rosê",
"value_id": 483,
"color": "#d6878a"
},
]
},
"flags": {
"data": []
},
"variations": {
"data": [
{
"id": 13,
"name": "Cor",
"values": [
{
"id": 385,
"value": "Rosê",
"color": "#e3adbe"
},
{
"id": 397,
"value": "Marrom",
"color": "#783d1a"
}
]
}
]
},
"categories": {
"data": [
{
"id": 137,
"name": "Casal"
},
{
"id": 144,
"name": "Edredom"
}
]
},
"images": {
"data": [
{
"small": {
"width": 120,
"height": 100,
"url": "https://jarvis.bubbstore.com/assets/stores/store-alias/uploads/images/edredom-casal-king-senegal-cor-rose-tecido-algodao-150-fios-538ff60197af1-small.jpg"
},
"thumb": {
"width": 225,
"height": 190,
"url": "https://jarvis.bubbstore.com/assets/stores/store-alias/uploads/images/edredom-casal-king-senegal-cor-rose-tecido-algodao-150-fios-538ff60197af1-thumb.jpg"
},
"medium": {
"width": 545,
"height": 465,
"url": "https://jarvis.bubbstore.com/assets/stores/store-alias/uploads/images/edredom-casal-king-senegal-cor-rose-tecido-algodao-150-fios-538ff60197af1-medium.jpg"
},
"large": {
"width": 1200,
"height": 1021,
"url": "https://jarvis.bubbstore.com/assets/stores/store-alias/uploads/images/edredom-casal-king-senegal-cor-rose-tecido-algodao-150-fios-538ff60197af1-large.jpg"
}
},
]
},
"skus": {
"data": [
{
"id": 5657,
"sku": "01-752-Rose",
"blocked_sale": true,
"barcode": null,
"title": "Edredom Casal King Senegal 03 Pecas Rosê",
"days_availability": 0,
"days_availability_formated": "Imediata",
"width": 30,
"height": 30,
"length": 30,
"weight": 4,
"quantity_managed": false,
"variations": [
{
"name": "Cor",
"value": "Rosê",
"value_id": 385
}
],
"stocks": []
},
{
"id": 5658,
"sku": "01-752-Marrom",
"blocked_sale": true,
"barcode": null,
"title": "Edredom Casal King Senegal 03 Pecas Marrom",
"days_availability": 0,
"days_availability_formated": "Imediata",
"width": 30,
"height": 30,
"length": 30,
"weight": 4,
"quantity_managed": false,
"variations": [
{
"name": "Cor",
"value": "Marrom",
"value_id": 397
}
],
"stocks": []
}
]
},
}
}

Parâmetro

Tipo

Obrigatório

Descrição

simple

boolean

Sim

Produto simples ou não. Para produtos que possuem variações, o valor deve ser false.

brand_id

int

Sim

ID da marca.

erp_id

int

Não

Código do produto no ERP.

active

boolean

Sim

Produto ativo.

searchable

boolean

Não

Produto buscável. Padrão: true.

priority

int

Não

Índice de prioridade que o produto tem no posicionamento de busca. Valores aceitos: 1, 2, 3

is_digital

boolean

Não

Produto digital. Padrão: false.

buy_similars

boolean

Não

Compra de produtos relacionados. Padrão: false.

rating

int

Não

Nota do produto. Valores aceitos: 1, 2, 3, 4 ou 5.

ncm

string

Não

Código NCM do produto.

name

string

Sim

Nome do produto.

slug

string

Não

Slug do produto.

video

string

Não

URL do vídeo do produto.

description

string

Não

Descrição do produto.

specifications

string

Não

Especificação do produto.

measures

string

Não

Medidas do produto.

gift_value

float

Não

Valor da embalagem de presente do produto.

google_category

string

Não

Categoria do produto no Google Merchant Center.

seo_title

string

Não

Título da página do produto.

seo_description

string

Não

Meta tag description.

seo_keywords

string

Não

Meta tag keywords.

canonical_url

string

Não

URL canônica do produto

search_terms

string

Não

Termos de busca do produto separados em vírgula.

categories_ids

array

Não

IDS das categorias que o produto pertence.

filters_values_ids

array

Não

IDS dos valores de filtros que o produto possui.

variations_ids

array

Não

IDS das variações que o produto possui.

similars_ids

array

Não

IDS de produtos relacionados.

skus

array

Não

Array de objetos SKU. Por enquanto só é permitido criar SKUS em massa. Para atualizar, você deverá fazer um request PUT para o SKU que deseja.

Listar SKUS de um produto

GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/skus

Atualizar ordem dos SKUS de um produto

PUT https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/skus/order

A sintaxe do request é o mesmo utilizado na ordenação de imagens de um SKU.

Filtros personalizados

Esse tipo de filtro não utiliza a sintaxe global. Neste caso, o parâmetro é passado individualmente via query string na URL.

Parâmetro

Tipo

Descrição

brand_id[]

array

Array de IDS de marcas

category_id[]

array

Array de IDS de categorias

flag_id[]

array

Array de IDS de selos

collection_id[]

array

Array de IDS de coleções

Exemplo de um request com filtros personalizados:

GET https://api.dooki.com.br/v2/{alias}/products?brand_id[]=3&brand_id[]=4&category_id[]=6

A API retornará produtos das marcas com ID 3, 4, e categoria de ID 6

Exportar produtos

GET https://api.dooki.com.br/v2/{alias}/catalog/products/export

Dica: os filtros de busca também estão disponíveis no endpoint de exportação.

O sistema enviará para o usuário um e-mail com o link para download da planilha com os registros.

Importar produtos

POST https://api.dooki.com.br/v2/{alias}/catalog/products/import

Para importar os produtos, é necessário o envio do parâmetro file_url com a URL do arquivo. Extensões de arquivos aceitas: .xls.

Selos de um produto

GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/flags

Grupos de um produto

GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/groups

Comentários de um produto

GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/comments

Avaliações de um produto

GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/reviews

Combos de um produto

GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/combos

Coleções que um produto pertence

GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/collections

Promoções que um produto pertence

GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/promotions

Recomendações para um produto

GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/recommendations

Duplicar produto

POST https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/duplicate

Listar estoques de todos os SKUS de um produto

GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/stocks

Atualização em massa

Atualização de produtos em massa

{
"attribute": "price_discount",
"operation_type": "increment",
"value_type": "percent",
"value": 100,
"restrictions": {
"include": {
"products_ids": [1, 2, 3, 4],
"brands_ids": [1, 2, 3]
}
}
}

Exemplo de request que aumenta o preço de venda em 20% de todos os produtos, exceto os da marca com id 5

{
"attribute": "price_sale",
"operation_type": "increment",
"value_type": "percent",
"value": 20,
"restrictions": {
"exclude": {
"brands_ids": [5]
}
}
}

Através desse endpoint, é possível aterar os seguintes parâmetros de um produto e seus respectivos SKUS:

  • Status (ativo ou inativo)

  • Preço de venda

  • Preço promocional

PUT https://api.dooki.com.br/v2/{alias}/catalog/products/batch-edit

Parâmetro

Tipo

Obrigatório

Descrição

attribute

string

Sim

O atributo que será atualizado. Valores aceitos: active, price_sale e price_discount

operation_type

string

Sim (se attribute for price_sale ou price_discount)

Tipo de operação. Valores aceitos: increment ou decrement

value_type

string

Sim (se attribute for price_sale ou price_discount)

Tipo do valor da operação. Valores aceitos: percent ou fixed

value

string

Sim

Novo valor aplicado

restrictions

array

Sim

Regras de restrições de produtos

Sincronizar estoques

Sincronizar estoques

{
"skus": [
{
"id": 12345,
"stock_id": 2,
"quantity": 100,
"min_quantity": 0
},
{
"id": 123456,
"stock_id": 2,
"quantity": 100,
"min_quantity": 0
},
]
}

Neste endpoint, é possível informar as respectivas quantidades em estoque de um SKU em cada estoque/armazém.

POST https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/stocks/sync

Parâmetro

Tipo

Obrigatório

Descrição

skus

array

Sim

Array de SKUS do produto

skus[id]

int

Sim

ID do SKU

skus[stock_id]

int

Sim

ID do estoque

skus[quantity]

int

Sim

Quantidade do SKU

skus[min_quantity]

int

Sim

Quantidade mínima do SKU

Exportar Skus de um estoque

Rota para exportar os produtos de um estoque específico, é necessário enviar por parâmetro o id do estoque:

GET https://api.dooki.com.br/v2/{alias}/catalog/stocks/export-skus

Parâmetro

Tipo

Obrigatório

Descrição

stock_id

array

Sim

Id do estoque

Produtos relacionados

Incluir ou excluir produtos relacionados

{
"products_ids": [1, 2, 3, 4, 5]
}

Request para ordenar os produtos relacionados

{
"orders": {
0: "101941",
1: "101940",
2: "101938",
3: "101934",
4: "101933",
5: "101932",
6: "1107"
}
}

Listar produtos relacionados

GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/similars

Associar produtos relacionados

POST https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/similars

Excluir produtos relacionados

DELETE https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/similars

Ordenar produtos relacionados

PUT https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/similars

Batch de produtos relacionados

POST https://api.dooki.com.br/v2/{alias}/catalog/products/similars/batch

Para realizar um batch de produtos relacionados, você deverá enviar o parâmetro products_ids[] com os IDS dos produtos que deseja criar o relacionamento. Dessa forma, todos os produtos informados se relacionarão entre si.

SKUS

Request para criar um SKU

{
"product_id": 81252,
"sku": "SKU-TEST-API",
"erp_id": "01-753-Rose",
"barcode": "barcode-test",
"price_cost": 12.3,
"price_sale": 30,
"price_discount": 25,
"weight": 1,
"height": 1,
"width": 1,
"length": 1,
"quantity_managed": false,
"availability": 1,
"availability_soldout": 1,
"blocked_sale": false,
"variations_values_ids": [490],
"customizations_ids": [1,2,3],
"images": [
{
"url": "http://www.site.com/image1.jpg",
},
{
"url": "http://www.site.com/image2.jpg",
}
]
}

Includes disponíveis: prices, images, firstImage, stocks, product, customizations

Listar SKUS

GET https://api.dooki.com.br/v2/{alias}/catalog/skus

Criar SKU

POST https://api.dooki.com.br/v2/{alias}/catalog/skus

Response (com includes)

{
"id": 94117,
"product_id": 81252,
"sku": "SKU-TEST-API",
"erp_id": "01-753-Rose",
"blocked_sale": false,
"barcode": "barcode-test",
"title": "Produto teste variacao 030303 Amarelo",
"days_availability": 1,
"days_availability_formated": "1 dia útil",
"width": 1,
"height": 1,
"length": 1,
"weight": 1,
"quantity_managed": false,
"variations": [
{
"name": "Cor",
"value": "Amarelo",
"value_id": 490
}
],
"total_in_stock": 0,
"customizations": {
"data": [
{
"id": 8,
"name": "Primeira Letra",
"price": 0,
"description": "Descrição",
"type": "select",
"required": true,
"max_chars": 1,
"values": [
"A",
"B",
"C",
"D"
],
}
]
}
"prices": {
"data": {
"currency": "R$",
"price_cost": 25,
"price_cost_formated": "R$ 25,00",
"price": 25,
"price_formated": "R$ 25,00",
"price_sale": 30,
"price_sale_formated": "R$ 30,00",
"price_discount": 25,
"price_discount_formated": "R$ 25,00",
"has_promotion": true
}
}
}

Parâmetro

Tipo

Obrigatório

Descrição

product_id

int

Sim

ID do produto pai

sku

string

Sim

Código SKU

erp_id

string

Não

Código ERP do SKU

barcode

string

Não

Código de barras

price_cost

float

Sim

Preço de custo

price_sale

float

Sim

Preço de venda

price_discount

float

Não

Preço promocional

weight

float

Sim

Peso (em KG)

height

float

Sim

Altura (em CM)

width

float

Sim

Largura (em CM)

length

float

Sim

Comprimento (em CM)

quantity_managed

boolean

Sim

Quantidade de estoque gerenciada pelo sistema

availability

int

Sim

Número de dias úteis de disponibilidade do SKU

availability_soldout

int

Sim

Número de dias úteis de disponibilidade do SKU quando zerar o estoque

blocked_sale

boolean

Sim

Venda bloqueada

order

int

Não

Ordem de exibicação do produto

variation_values_ids

array

Sim (se for produto com variações)

IDS dos valores de variações que o SKU possui. Exemplo: Amarelo, Azul, M, P...

images

array

Não

Array de imagens. Pode conter duas propriedades: url.

stock_quantity

int

Não

Quantidade em estoque. O sistema criará o estoque somente se o atributo quantity_managed for true.

stock_min_quantity

int

Não

Quantidade mínima em estoque. O sistema criará o estoque somente se o atributo quantity_managed for true.

customizations_ids

array

Não

ID das customizações que o SKU possui.

Filtros personalizados

Esse tipo de filtro não utiliza a sintaxe global. Neste caso, o parâmetro é passado individualmente via query string na URL.

Parâmetro

Tipo

Descrição

stock_quantity

int

Quantidade em estoque

stock_min_quantity

int

Quantidade mínima em estoque

Imagens

Exemplo de como enviar imagens via URL

{
"images": [
{
"url": "http://www.site.com/image.jpg",
},
{
"url": "http://www.site.com/image.jpg",
},
{
"url": "http://www.site.com/image.jpg",
}
]
}

Request para ordenar as imagens

{
"orders": {
0: "101941",
1: "101940",
2: "101938",
3: "101934",
4: "101933",
5: "101932",
6: "1107"
}
}

Por padrão, as imagens não são retornadas no payload de SKUS. Utilize o parâmetro include=images para que isso aconteça.

Listar imagens de um SKU

GET https://api.dooki.com.br/v2/{alias}/catalog/skus/{skuId}/images

Criar imagens

POST https://api.dooki.com.br/v2/{alias}/catalog/skus/{skuId}/images

Há disponíveis três formas de upload através do parâmetro upload_option: resize, crop e fill_canvas

Parâmetro

Tipo

Obrigatório

Descrição

upload_option

string

Não

Forma que o sistema redimensionará os arquivos. Valores aceitos: resize, crop e fill_canvas

images

array

Sim

Você pode enviar URL's das imagens ou o IDs de SKUS.

Excluir imagem

DELETE https://api.dooki.com.br/v2/{alias}/catalog/skus/{skuId}/images/{id}

Atualizar ordem das imagens

PUT https://api.dooki.com.br/v2/{alias}/catalog/skus/{skuId}/images/order

Importante: não se aplica quando um SKU utiliza fotos de outro.

Exportar SKUS

GET https://api.dooki.com.br/v2/{alias}/catalog/skus/export

Dica: os filtros de busca também estão disponíveis no endpoint de exportação.

O sistema enviará para o usuário um e-mail com o link para download da planilha com os registros.

Importar SKUS

POST https://api.dooki.com.br/v2/{alias}/catalog/skus/import

Para importar os skus, é necessário o envio do parâmetro file_url com a URL do arquivo. Extensões de arquivos aceitas: .xls.

Grupos

Request para criar um Grupo

{
"name": "Group name",
"products_ids": [1, 2, 3, 4]
}

Response

{
"data": [
{
"id": 225,
"name": "Group name",
"total_products": 4,
},
]
}

Com este recurso é possível realizar um agrupamento de produtos.

Includes disponíveis: products

Listar grupos

GET https://api.dooki.com.br/v2/{alias}/catalog/groups

Criar grupo

POST https://api.dooki.com.br/v2/{alias}/catalog/groups

Parâmetro

Tipo

Obrigatório

Descrição

name

string

Sim

Nome do grupo

products_ids

array

Não

IDs de produtos

Visualizar grupo

GET https://api.dooki.com.br/v2/{alias}/catalog/groups/{id}

Atualizar grupo

PUT https://api.dooki.com.br/v2/{alias}/catalog/groups/{id}

Excluir grupo

DELETE https://api.dooki.com.br/v2/{alias}/catalog/groups/{id}

Lista de produtos associados a um grupo

GET https://api.dooki.com.br/v2/{alias}/catalog/groups/{id}/products

Associar produtos a um grupo

PUT https://api.dooki.com.br/v2/{alias}/catalog/groups/{id}/products

Excluir produtos de um grupo

Incluir ou excluir produtos de um grupo

{
"products_ids": [1, 2, 3, 4, 5]
}

DELETE https://api.dooki.com.br/v2/{alias}/catalog/groups/{id}/products

Você deverá enviar um json com os IDS dos produtos que deseja associar ou excluir.

Comentários de produtos

Request para criar um comentário

{
"product_id": 1,
"comment_id": null,
"approved": false,
"name": "Test name",
"email": "john@snow.com",
"message": "message",
}

Response

{
"data": [
{
"id": 1,
"product_id": 1,
"comment_id": null,
"approved": false,
"name": "Test name",
"email": "john@snow.com",
"message": "message",
"answer": null
}
]
}

Listar comentários

GET https://api.dooki.com.br/v2/{alias}/catalog/comments

Criar comentário

POST https://api.dooki.com.br/v2/{alias}/catalog/comments

Parâmetro

Tipo

Obrigatório

Descrição

product_id

int

Sim

ID do produto.

comment_id

int

Não

ID do comentário. Utilizar quando o comentário em questão for uma resposta, por exemplo.

approved

boolean

Sim

Comentário aprovado.

name

string

Sim

Nome do autor do comentário.

email

string

Sim

E-mail do autor do comentário.

message

string

Sim

Mensagem do autor do comentário.

Visualizar comentário

GET https://api.dooki.com.br/v2/{alias}/catalog/comments/{id}

Atualizar comentário

PUT https://api.dooki.com.br/v2/{alias}/catalog/comments/{id}

Excluir comentário

DELETE https://api.dooki.com.br/v2/{alias}/catalog/comments/{id}

Aprovar / desaprovar um comentário

PATCH https://api.dooki.com.br/v2/{alias}/catalog/comments/{id}

Deverá ser enviado apenas o atributo { "approved": true }

Reviews de produtos

Request para criar um review

{
"product_id": 1,
"name": "Test name",
"email": "john@snow.com",
"approved": false,
"rating": 5,
"message": "message",
}

Response

{
"data": [
{
"id": 1,
"product_id": 1,
"name": "Test name",
"email": "john@snow.com",
"approved": false,
"rating": 5,
"message": "message",
}
]
}

Includes disponíveis: product

Listar reviews

GET https://api.dooki.com.br/v2/{alias}/catalog/reviews

Criar review

POST https://api.dooki.com.br/v2/{alias}/catalog/review

Parâmetro

Tipo

Obrigatório

Descrição

product_id

int

Sim

ID do produto.

rating

int

Sim

Nota do produto. Valores aceitos: 1, 2, 3, 4 ou 5.

approved

boolean

Não

Review aprovado.

name

string

Sim

Nome do autor do review.

email

string

Sim

E-mail do autor do review.

message

string

Sim

Mensagem do autor do review.

Visualizar review

GET https://api.dooki.com.br/v2/{alias}/catalog/reviews/{id}

Excluir review

DELETE https://api.dooki.com.br/v2/{alias}/catalog/reviews/{id}

Aprovar / desaprovar um review

PATCH https://api.dooki.com.br/v2/{alias}/catalog/reviews/{id}

Deverá ser enviado apenas o atributo { "approved": true }

Estoques de SKU

Request para criar um estoque

{
"stock_id": 1,
"quantity": 10,
"min_quantity": 3
}

Response

{
"data": [
{
"id": 36100,
"stock_id": 1,
"quantity": 100,
"min_quantity": 0,
},
]
}

Os estoques estão diretamente relacionados a um SKUS. Um SKU pode conter vários estoques. O parâmetro total_in_stock na API de SKUS retorna as quantidades somadas de todos os estoques.

Listar estoques

GET https://api.dooki.com.br/v2/{alias}/catalog/skus/{skuId}/stocks

Criar estoque

POST https://api.dooki.com.br/v2/{alias}/catalog/skus/{skuId}/stocks

Parâmetro

Tipo

Obrigatório

Descrição

stock_id

int

Sim

ID do estoque

quantity

int

Sim

Quantidade em estoque

min_quantity

int

Sim

Quantidade mínima em estoque

Atualizar estoque

PUT https://api.dooki.com.br/v2/{alias}/catalog/skus/{skuId}/stocks/{id}

Excluir estoque

DELETE https://api.dooki.com.br/v2/{alias}/catalog/skus/{skuId}/stocks/{id}

Looks

Request para criar um look

{
"active": true,
"name": "Nome do Look",
"description": "Descrição do look",
"products_ids": [1,2,3,4]
}

Response

{
"id": 3,
"active": true,
"name": "Nome do Look",
"description": "Descrição do look",
"slug": "nome-do-look",
"total_products": 2,
"url": "https://www.site.com/looks/nome-do-look",
"products": [
]
}

Includes disponíveis: products

Listar looks

GET https://api.dooki.com.br/v2/{alias}/catalog/looks

Criar look

POST https://api.dooki.com.br/v2/{alias}/catalog/looks

Parâmetro

Tipo

Obrigatório

Descrição

active

boolean

Sim

Status do look.

name

string

Sim

Nome do look.

slug

string

Não

Slug do look.

description

string

Não

Descrição do look.

products_ids

array

Sim

IDs dos produtos do look.

Visualizar look

GET https://api.dooki.com.br/v2/{alias}/catalog/looks/{id}

Atualizar look

PUT https://api.dooki.com.br/v2/{alias}/catalog/looks/{id}

Excluir look

DELETE https://api.dooki.com.br/v2/{alias}/catalog/looks/{id}

Coleções

Coleções são listas de produtos para determinada finalidade. Exemplo: produtos participantes da black friday etc.

Request para criar uma coleção

{
"active": true,
"show_banners": true,
"featured": true,
"name": "Collection Test",
"visible_products": 4,
"home": true,
"slug": "collection-test",
"description": "Test description",
"seo_title": "Page Title for SEO",
"seo_description": "Meta Tag Description",
"seo_keywords": "seo, keywords",
"start_at": "2015-12-12 12:00:00",
"end_at": "2016-12-12 12:00:00",
"stopwatch": "daily",
"url": "https://www.domain.com/collection/l",
"products_ids": [1, 2, 3, 4],
"banners_ids": [1, 2, 3, 4],
"restrictions": {
"include": {
"brands_ids": [1, 2, 3, 4],
"categories_ids": [143]
},
"exclude": {
"categories_ids": [141]
}
}
}

Response

{
"data": [
{
"id": 225,
"parent_id": null,
"active": false,
"show_banners": true,
"featured": true,
"home": true,
"expired": true,
"expire_in": null,
"name": "Collection Test",
"slug": "collection-test",
"description": "Test description",
"visible_products": 8,
"total_products": 1,
"seo_title": "Page Title for SEO",
"seo_description": "Meta Tag Description",
"seo_keywords": "seo, keywords",
"start_at": "2014-10-23 12:00:00",
"end_at": "2014-12-31 23:45:00",
"stopwatch": "daily",
"stopwatch_expires_in": "2018-01-31 00:00:00",
"restrictions": {
"include": {
"products_ids": [1,2,3,4,5,6],
"brands_ids": [],
"collections_ids": [],
"categories_ids": []
},
"exclude": {
"products_ids": [10,12],
"brands_ids": [],
"collections_ids": [],
"categories_ids": []
},
}
},
]
}

Includes disponíveis: products, banners

Listar coleções

GET https://api.dooki.com.br/v2/{alias}/catalog/collections

Por padrão, a API retorna todas as coleções. Se você deseja listar apenas os pais, basta adicionar o parâmetro /collections?onlyParents=true.

Criar coleção

POST https://api.dooki.com.br/v2/{alias}/catalog/collections

Parâmetro

Tipo

Obrigatório

Descrição

parent_id

int

Não

ID da categoria pai.

active

boolean

Sim

Status da coleção.

show_banners

boolean

Não

Marca se os banners serão exibidos ou não. Default: true

featured

boolean

Não

Lista em destaque ou não. Default: false

home

boolean

Sim

Marca se a coleção estará presente na home ou não.

name

string

Sim

Nome da coleção.

visible_products

int

Não

Número de produtos visíveis na home.

slug

string

Não

Slug da coleção.

description

string

Não

Descrição da coleção.

seo_title

string

Não

Título da página da coleção.

seo_keywords

string

Não

Meta tag keywords da coleção.

seo_description

string

Não

Meta tag description da coleção.

start_at

datetime

Sim

Início da coleção.

end_at

datetime

Sim

Término da coleção.

stopwatch

string

Não

Tipo de cronômetro da coleção. Valores aceitos: null, daily ou expiration_date

banners_ids

array

Não

IDs de banners.

restrictions

array

Não

Regras de restrições.

Visualizar coleção

GET https://api.dooki.com.br/v2/{alias}/catalog/collections/{id}

Atualizar coleção

PUT https://api.dooki.com.br/v2/{alias}/catalog/collections/{id}

Excluir coleção

DELETE https://api.dooki.com.br/v2/{alias}/catalog/collections/{id}

Lista de produtos associados a uma coleção

GET https://api.dooki.com.br/v2/{alias}/catalog/collections/{id}/products

Associar produtos a uma coleção

POST https://api.dooki.com.br/v2/{alias}/catalog/collections/{id}/products

Excluir produtos de uma coleção

DELETE https://api.dooki.com.br/v2/{alias}/catalog/collections/{id}/products

Você deverá enviar um json com os IDS dos produtos que deseja associar ou excluir.

Incluir ou excluir produtos de uma coleção

{
"products_ids": [1, 2, 3, 4, 5]
}

Feeds

Listar feeds

GET https://api.dooki.com.br/v2/{alias}/catalog/feeds

Request

{
"service": "google",
"name": "ecd73150-e747-11e7-9221-0361c8d4d388",
"url": "http://bubbstore.com/xml/ecd73150-e747-11e7-9221-0361c8d4d388.xml"
}

Response

{
"data": [
{
"id": 3,
"service": "google",
"name": "ecd73150-e747-11e7-9221-0361c8d4d388",
"url": "http://bubbstore.com/xml/file-name.xml",
},
]
}

Criar feed

POST https://api.dooki.com.br/v2/{alias}/catalog/feed

Parâmetro

Tipo

Obrigatório

Descrição

service

string

Sim

Nome do serviço. Exemplo: google, buscape.

name

string

Sim

Nome do arquivo.

url

string

Sim

URL do arquivo.

Visualizar feed

GET https://api.dooki.com.br/v2/{alias}/catalog/feeds/{id}

Atualizar feed

PUT https://api.dooki.com.br/v2/{alias}/catalog/feeds/{id}

Excluir feed

DELETE https://api.dooki.com.br/v2/{alias}/catalog/feeds/{id}

Customizações

Esse recurso é útil para produtos que requerem algum tipo de personalização. Exemplo: uma camiseta com o nome do cliente estampado.

Listar customizações

GET https://api.dooki.com.br/v2/{alias}/catalog/customizations

Request

{
"name": "Primeira letra do nome",
"price": 0,
"description": "Descrição",
"type": "select",
"required": true,
"max_chars": 1,
"values": ["A", "B", "C", "D"]
}

Response

{
"data": [
{
"id": 7,
"name": "Primeira letra do nome",
"price": 0,
"description": "Descrição",
"type": "select",
"required": true,
"max_chars": 1,
"values": [
"A",
"B",
"C",
"D"
],
},
]
}

Criar customização

POST https://api.dooki.com.br/v2/{alias}/catalog/customizations

Parâmetro

Tipo

Obrigatório

Descrição

name

string

Sim

Nome da customização.

price

float

Sim

Preço adicional da customização.

description

string

Não

Descrição da customização.

type

string

Sim

Tipo da customização. Valores aceitos: select (campo selecionável com valores pré-determinados) e input (campo digitável).

required

boolean

Sim

Marca se a customização é obrigatória.

max_chars

int

Sim

Máximo de caracteres permitido.

values

array

Não

Valores aceitos para a customização se o campo type for igual a select.

Visualizar customização

GET https://api.dooki.com.br/v2/{alias}/catalog/customizations/{id}

Atualizar customização

PUT https://api.dooki.com.br/v2/{alias}/catalog/customizations/{id}

Excluir customização

DELETE https://api.dooki.com.br/v2/{alias}/catalog/customizations/{id}

Notificações de estoque

Neste endpoint estão cadastrados os clientes que desejam receber notificações de reposição de estoque de determinados SKUS. É o famoso recurso "Avise-me quando chegar".

Listar notificações de estoque

GET https://api.dooki.com.br/v2/{alias}/catalog/stock-notifications

Request

{
"sku_id": 123,
"name": "John Snow",
"email": "jonh@snow.com"
}

Response

{
"data": [
{
"id": 4,
"sku_id": 123,
"name": "John Snow",
"email": "jonh@snow.com"
"notified_at": null,
},
]
}

Exportar notificações de estoque

GET https://api.dooki.com.br/v2/{alias}/catalog/stock-notifications/export

Criar notificação de estoque

POST https://api.dooki.com.br/v2/{alias}/catalog/stock-notifications

Parâmetro

Tipo

Obrigatório

Descrição

name

string

Sim

Nome do cliente.

email

string

Sim

E-mail do cliente.

sku_id

int

Sim

ID do SKU.

Visualizar notificação de estoque

GET https://api.dooki.com.br/v2/{alias}/catalog/stock-notifications/{id}

Atualizar notificação de estoque

PUT https://api.dooki.com.br/v2/{alias}/catalog/stock-notifications/{id}

Excluir notificação de estoque

DELETE https://api.dooki.com.br/v2/{alias}/catalog/stock-notifications/{id}