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

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

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.

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

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

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

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

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

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": []
                }
            ]
        },
    }   
}

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.

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.

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

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

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

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
        }
    }
}

Filtros personalizados

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

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

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.

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

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

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

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

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

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

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

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

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

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}

Atualizado