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",},]}
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 |
GET https://api.dooki.com.br/v2/{alias}/catalog/brands/{id}
PUT https://api.dooki.com.br/v2/{alias}/catalog/brands/{id}
DELETE https://api.dooki.com.br/v2/{alias}/catalog/brands/{id}
Includes disponíveis: seo, children, parent, marketplaces
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": []},]}
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: |
banners_ids | array | Não | Lista de banners que a categoria possuirá. |
GET https://api.dooki.com.br/v2/{alias}/catalog/categories/{id}
PUT https://api.dooki.com.br/v2/{alias}/catalog/categories/{id}
DELETE https://api.dooki.com.br/v2/{alias}/catalog/categories/{id}
GET https://api.dooki.com.br/v2/{alias}/catalog/categories/{id}/products
PUT https://api.dooki.com.br/v2/{alias}/catalog/categories/{id}/products
DELETE https://api.dooki.com.br/v2/{alias}/catalog/categories/{id}/products
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]}
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.
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
.
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",},]}
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: |
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. |
GET https://api.dooki.com.br/v2/{alias}/catalog/flags/{id}
PUT https://api.dooki.com.br/v2/{alias}/catalog/flags/{id}
DELETE https://api.dooki.com.br/v2/{alias}/catalog/flags/{id}
GET https://api.dooki.com.br/v2/{alias}/catalog/flags/{id}/products
POST https://api.dooki.com.br/v2/{alias}/catalog/flags/{id}/products
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]}
Includes disponíveis: values
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,},]}]}
POST https://api.dooki.com.br/v2/{alias}/catalog/variations
Parâmetro | Tipo | Obrigatório | Descrição |
name | string | Sim | Nome da variação. |
GET https://api.dooki.com.br/v2/{alias}/catalog/variations/{id}
PUT https://api.dooki.com.br/v2/{alias}/catalog/variations/{id}
DELETE https://api.dooki.com.br/v2/{alias}/catalog/variations/{id}
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"}}
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. |
GET https://api.dooki.com.br/v2/{alias}/catalog/variations/{variationId}/values/{id}
PUT https://api.dooki.com.br/v2/{alias}/catalog/variations/{variationId}/values/{id}
DELETE https://api.dooki.com.br/v2/{alias}/catalog/variations/{variationId}/values/{id}
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
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,},]}]}
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. |
GET https://api.dooki.com.br/v2/{alias}/catalog/filters/{id}
PUT https://api.dooki.com.br/v2/{alias}/catalog/filters/{id}
DELETE https://api.dooki.com.br/v2/{alias}/catalog/filters/{id}
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"}}
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. |
GET https://api.dooki.com.br/v2/{alias}/catalog/variations/{filterId}/values/{id}
PUT https://api.dooki.com.br/v2/{alias}/catalog/variations/{filterId}/values/{id}
DELETE https://api.dooki.com.br/v2/{alias}/catalog/variations/{filterId}/values/{id}
Includes disponíveis: dates, brand, extras, texts, seo, filters, flags, variations, categories, images, skus, firstImage, searchAttributes, reviews, combos
GET https://api.dooki.com.br/v2/{alias}/catalog/products
POST https://api.dooki.com.br/v2/{alias}/catalog/products
PUT https://api.dooki.com.br/v2/{alias}/catalog/products/{id}
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ão 150 Fios<br />\r\nEnchimento: 100% Polié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 |
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: |
priority | int | Não | Índice de prioridade que o produto tem no posicionamento de busca. Valores aceitos: |
is_digital | boolean | Não | Produto digital. Padrão: |
buy_similars | boolean | Não | Compra de produtos relacionados. Padrão: |
rating | int | Não | Nota do produto. Valores aceitos: |
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 |
GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/skus
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.
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 |
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
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.
GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/flags
GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/groups
GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/comments
GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/reviews
GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/combos
GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/collections
GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/promotions
GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/recommendations
POST https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/duplicate
GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/stocks
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: |
operation_type | string | Sim (se attribute for | Tipo de operação. Valores aceitos: |
value_type | string | Sim (se attribute for | Tipo do valor da operação. Valores aceitos: |
value | string | Sim | Novo valor aplicado |
restrictions | array | Sim | Regras de restrições de produtos |
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 |
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 |
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"}}
GET https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/similars
POST https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/similars
DELETE https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/similars
PUT https://api.dooki.com.br/v2/{alias}/catalog/products/{id}/similars
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.
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
GET https://api.dooki.com.br/v2/{alias}/catalog/skus
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: |
images | array | Não | Array de imagens. Pode conter duas propriedades: |
stock_quantity | int | Não | Quantidade em estoque. O sistema criará o estoque somente se o atributo |
stock_min_quantity | int | Não | Quantidade mínima em estoque. O sistema criará o estoque somente se o atributo |
customizations_ids | array | Não | ID das customizações que o SKU possui. |
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 |
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.
GET https://api.dooki.com.br/v2/{alias}/catalog/skus/{skuId}/images
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: |
images | array | Sim | Você pode enviar URL's das imagens ou o IDs de SKUS. |
DELETE https://api.dooki.com.br/v2/{alias}/catalog/skus/{skuId}/images/{id}
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.
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.
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
GET https://api.dooki.com.br/v2/{alias}/catalog/groups
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 |
GET https://api.dooki.com.br/v2/{alias}/catalog/groups/{id}
PUT https://api.dooki.com.br/v2/{alias}/catalog/groups/{id}
DELETE https://api.dooki.com.br/v2/{alias}/catalog/groups/{id}
GET https://api.dooki.com.br/v2/{alias}/catalog/groups/{id}/products
PUT https://api.dooki.com.br/v2/{alias}/catalog/groups/{id}/products
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.
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}]}
GET https://api.dooki.com.br/v2/{alias}/catalog/comments
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. |
string | Sim | E-mail do autor do comentário. | |
message | string | Sim | Mensagem do autor do comentário. |
GET https://api.dooki.com.br/v2/{alias}/catalog/comments/{id}
PUT https://api.dooki.com.br/v2/{alias}/catalog/comments/{id}
DELETE https://api.dooki.com.br/v2/{alias}/catalog/comments/{id}
PATCH https://api.dooki.com.br/v2/{alias}/catalog/comments/{id}
Deverá ser enviado apenas o atributo { "approved": true }
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
GET https://api.dooki.com.br/v2/{alias}/catalog/reviews
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: |
approved | boolean | Não | Review aprovado. |
name | string | Sim | Nome do autor do review. |
string | Sim | E-mail do autor do review. | |
message | string | Sim | Mensagem do autor do review. |
GET https://api.dooki.com.br/v2/{alias}/catalog/reviews/{id}
DELETE https://api.dooki.com.br/v2/{alias}/catalog/reviews/{id}
PATCH https://api.dooki.com.br/v2/{alias}/catalog/reviews/{id}
Deverá ser enviado apenas o atributo { "approved": true }
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.
GET https://api.dooki.com.br/v2/{alias}/catalog/skus/{skuId}/stocks
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 |
PUT https://api.dooki.com.br/v2/{alias}/catalog/skus/{skuId}/stocks/{id}
DELETE https://api.dooki.com.br/v2/{alias}/catalog/skus/{skuId}/stocks/{id}
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
GET https://api.dooki.com.br/v2/{alias}/catalog/looks
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. |
GET https://api.dooki.com.br/v2/{alias}/catalog/looks/{id}
PUT https://api.dooki.com.br/v2/{alias}/catalog/looks/{id}
DELETE https://api.dooki.com.br/v2/{alias}/catalog/looks/{id}
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
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
.
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: |
featured | boolean | Não | Lista em destaque ou não. Default: |
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: |
banners_ids | array | Não | IDs de banners. |
restrictions | array | Não | Regras de restrições. |
GET https://api.dooki.com.br/v2/{alias}/catalog/collections/{id}
PUT https://api.dooki.com.br/v2/{alias}/catalog/collections/{id}
DELETE https://api.dooki.com.br/v2/{alias}/catalog/collections/{id}
GET https://api.dooki.com.br/v2/{alias}/catalog/collections/{id}/products
POST https://api.dooki.com.br/v2/{alias}/catalog/collections/{id}/products
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]}
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",},]}
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: |
name | string | Sim | Nome do arquivo. |
url | string | Sim | URL do arquivo. |
GET https://api.dooki.com.br/v2/{alias}/catalog/feeds/{id}
PUT https://api.dooki.com.br/v2/{alias}/catalog/feeds/{id}
DELETE https://api.dooki.com.br/v2/{alias}/catalog/feeds/{id}
Esse recurso é útil para produtos que requerem algum tipo de personalização. Exemplo: uma camiseta com o nome do cliente estampado.
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"],},]}
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: |
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 |
GET https://api.dooki.com.br/v2/{alias}/catalog/customizations/{id}
PUT https://api.dooki.com.br/v2/{alias}/catalog/customizations/{id}
DELETE https://api.dooki.com.br/v2/{alias}/catalog/customizations/{id}
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".
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,},]}
GET https://api.dooki.com.br/v2/{alias}/catalog/stock-notifications/export
POST https://api.dooki.com.br/v2/{alias}/catalog/stock-notifications
Parâmetro | Tipo | Obrigatório | Descrição |
name | string | Sim | Nome do cliente. |
string | Sim | E-mail do cliente. | |
sku_id | int | Sim | ID do SKU. |
GET https://api.dooki.com.br/v2/{alias}/catalog/stock-notifications/{id}
PUT https://api.dooki.com.br/v2/{alias}/catalog/stock-notifications/{id}
DELETE https://api.dooki.com.br/v2/{alias}/catalog/stock-notifications/{id}