Skip to main content
PUT
/
{alias}
/
catalog
/
products
/
{id}
Atualizar produto
curl --request PUT \
  --url https://api.dooki.com.br/v2/{alias}/catalog/products/{id} \
  --header 'Content-Type: application/json' \
  --header 'User-Secret-Key: <api-key>' \
  --header 'User-Token: <api-key>' \
  --data '
{
  "simple": true,
  "brand_id": 123,
  "active": true,
  "name": "<string>",
  "erp_id": 123,
  "searchable": true,
  "is_digital": true,
  "buy_similars": true,
  "priority": 123,
  "rating": 4,
  "ncm": "<string>",
  "slug": "nome-do-produto",
  "video": "<string>",
  "description": "<string>",
  "specifications": "<string>",
  "measures": "<string>",
  "gift_value": 123,
  "seo_title": "<string>",
  "seo_description": "<string>",
  "seo_keywords": "<string>",
  "canonical_url": "<string>",
  "google_category": "<string>",
  "search_terms": "<string>",
  "categories_ids": [
    123
  ],
  "flags_ids": [
    123
  ],
  "filters_values_ids": [
    123
  ],
  "variations_ids": [
    123
  ],
  "similars_ids": [
    123
  ],
  "collections_ids": [
    123
  ],
  "skus": [
    {
      "sku": "<string>",
      "erp_id": 123,
      "barcode": "<string>",
      "price_cost": 123,
      "price_sale": 123,
      "price_discount": 123,
      "weight": 123,
      "height": 123,
      "width": 123,
      "length": 123,
      "quantity_managed": true,
      "availability": 123,
      "availability_soldout": 123,
      "blocked_sale": true,
      "images": [
        {
          "url": "<string>"
        }
      ]
    }
  ]
}
'
import requests

url = "https://api.dooki.com.br/v2/{alias}/catalog/products/{id}"

payload = {
"simple": True,
"brand_id": 123,
"active": True,
"name": "<string>",
"erp_id": 123,
"searchable": True,
"is_digital": True,
"buy_similars": True,
"priority": 123,
"rating": 4,
"ncm": "<string>",
"slug": "nome-do-produto",
"video": "<string>",
"description": "<string>",
"specifications": "<string>",
"measures": "<string>",
"gift_value": 123,
"seo_title": "<string>",
"seo_description": "<string>",
"seo_keywords": "<string>",
"canonical_url": "<string>",
"google_category": "<string>",
"search_terms": "<string>",
"categories_ids": [123],
"flags_ids": [123],
"filters_values_ids": [123],
"variations_ids": [123],
"similars_ids": [123],
"collections_ids": [123],
"skus": [
{
"sku": "<string>",
"erp_id": 123,
"barcode": "<string>",
"price_cost": 123,
"price_sale": 123,
"price_discount": 123,
"weight": 123,
"height": 123,
"width": 123,
"length": 123,
"quantity_managed": True,
"availability": 123,
"availability_soldout": 123,
"blocked_sale": True,
"images": [{ "url": "<string>" }]
}
]
}
headers = {
"User-Token": "<api-key>",
"User-Secret-Key": "<api-key>",
"Content-Type": "application/json"
}

response = requests.put(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'PUT',
headers: {
'User-Token': '<api-key>',
'User-Secret-Key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
simple: true,
brand_id: 123,
active: true,
name: '<string>',
erp_id: 123,
searchable: true,
is_digital: true,
buy_similars: true,
priority: 123,
rating: 4,
ncm: '<string>',
slug: 'nome-do-produto',
video: '<string>',
description: '<string>',
specifications: '<string>',
measures: '<string>',
gift_value: 123,
seo_title: '<string>',
seo_description: '<string>',
seo_keywords: '<string>',
canonical_url: '<string>',
google_category: '<string>',
search_terms: '<string>',
categories_ids: [123],
flags_ids: [123],
filters_values_ids: [123],
variations_ids: [123],
similars_ids: [123],
collections_ids: [123],
skus: [
{
sku: '<string>',
erp_id: 123,
barcode: '<string>',
price_cost: 123,
price_sale: 123,
price_discount: 123,
weight: 123,
height: 123,
width: 123,
length: 123,
quantity_managed: true,
availability: 123,
availability_soldout: 123,
blocked_sale: true,
images: [{url: '<string>'}]
}
]
})
};

fetch('https://api.dooki.com.br/v2/{alias}/catalog/products/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dooki.com.br/v2/{alias}/catalog/products/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'simple' => true,
'brand_id' => 123,
'active' => true,
'name' => '<string>',
'erp_id' => 123,
'searchable' => true,
'is_digital' => true,
'buy_similars' => true,
'priority' => 123,
'rating' => 4,
'ncm' => '<string>',
'slug' => 'nome-do-produto',
'video' => '<string>',
'description' => '<string>',
'specifications' => '<string>',
'measures' => '<string>',
'gift_value' => 123,
'seo_title' => '<string>',
'seo_description' => '<string>',
'seo_keywords' => '<string>',
'canonical_url' => '<string>',
'google_category' => '<string>',
'search_terms' => '<string>',
'categories_ids' => [
123
],
'flags_ids' => [
123
],
'filters_values_ids' => [
123
],
'variations_ids' => [
123
],
'similars_ids' => [
123
],
'collections_ids' => [
123
],
'skus' => [
[
'sku' => '<string>',
'erp_id' => 123,
'barcode' => '<string>',
'price_cost' => 123,
'price_sale' => 123,
'price_discount' => 123,
'weight' => 123,
'height' => 123,
'width' => 123,
'length' => 123,
'quantity_managed' => true,
'availability' => 123,
'availability_soldout' => 123,
'blocked_sale' => true,
'images' => [
[
'url' => '<string>'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"User-Secret-Key: <api-key>",
"User-Token: <api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.dooki.com.br/v2/{alias}/catalog/products/{id}"

payload := strings.NewReader("{\n \"simple\": true,\n \"brand_id\": 123,\n \"active\": true,\n \"name\": \"<string>\",\n \"erp_id\": 123,\n \"searchable\": true,\n \"is_digital\": true,\n \"buy_similars\": true,\n \"priority\": 123,\n \"rating\": 4,\n \"ncm\": \"<string>\",\n \"slug\": \"nome-do-produto\",\n \"video\": \"<string>\",\n \"description\": \"<string>\",\n \"specifications\": \"<string>\",\n \"measures\": \"<string>\",\n \"gift_value\": 123,\n \"seo_title\": \"<string>\",\n \"seo_description\": \"<string>\",\n \"seo_keywords\": \"<string>\",\n \"canonical_url\": \"<string>\",\n \"google_category\": \"<string>\",\n \"search_terms\": \"<string>\",\n \"categories_ids\": [\n 123\n ],\n \"flags_ids\": [\n 123\n ],\n \"filters_values_ids\": [\n 123\n ],\n \"variations_ids\": [\n 123\n ],\n \"similars_ids\": [\n 123\n ],\n \"collections_ids\": [\n 123\n ],\n \"skus\": [\n {\n \"sku\": \"<string>\",\n \"erp_id\": 123,\n \"barcode\": \"<string>\",\n \"price_cost\": 123,\n \"price_sale\": 123,\n \"price_discount\": 123,\n \"weight\": 123,\n \"height\": 123,\n \"width\": 123,\n \"length\": 123,\n \"quantity_managed\": true,\n \"availability\": 123,\n \"availability_soldout\": 123,\n \"blocked_sale\": true,\n \"images\": [\n {\n \"url\": \"<string>\"\n }\n ]\n }\n ]\n}")

req, _ := http.NewRequest("PUT", url, payload)

req.Header.Add("User-Token", "<api-key>")
req.Header.Add("User-Secret-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.put("https://api.dooki.com.br/v2/{alias}/catalog/products/{id}")
.header("User-Token", "<api-key>")
.header("User-Secret-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"simple\": true,\n \"brand_id\": 123,\n \"active\": true,\n \"name\": \"<string>\",\n \"erp_id\": 123,\n \"searchable\": true,\n \"is_digital\": true,\n \"buy_similars\": true,\n \"priority\": 123,\n \"rating\": 4,\n \"ncm\": \"<string>\",\n \"slug\": \"nome-do-produto\",\n \"video\": \"<string>\",\n \"description\": \"<string>\",\n \"specifications\": \"<string>\",\n \"measures\": \"<string>\",\n \"gift_value\": 123,\n \"seo_title\": \"<string>\",\n \"seo_description\": \"<string>\",\n \"seo_keywords\": \"<string>\",\n \"canonical_url\": \"<string>\",\n \"google_category\": \"<string>\",\n \"search_terms\": \"<string>\",\n \"categories_ids\": [\n 123\n ],\n \"flags_ids\": [\n 123\n ],\n \"filters_values_ids\": [\n 123\n ],\n \"variations_ids\": [\n 123\n ],\n \"similars_ids\": [\n 123\n ],\n \"collections_ids\": [\n 123\n ],\n \"skus\": [\n {\n \"sku\": \"<string>\",\n \"erp_id\": 123,\n \"barcode\": \"<string>\",\n \"price_cost\": 123,\n \"price_sale\": 123,\n \"price_discount\": 123,\n \"weight\": 123,\n \"height\": 123,\n \"width\": 123,\n \"length\": 123,\n \"quantity_managed\": true,\n \"availability\": 123,\n \"availability_soldout\": 123,\n \"blocked_sale\": true,\n \"images\": [\n {\n \"url\": \"<string>\"\n }\n ]\n }\n ]\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.dooki.com.br/v2/{alias}/catalog/products/{id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)
request["User-Token"] = '<api-key>'
request["User-Secret-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"simple\": true,\n \"brand_id\": 123,\n \"active\": true,\n \"name\": \"<string>\",\n \"erp_id\": 123,\n \"searchable\": true,\n \"is_digital\": true,\n \"buy_similars\": true,\n \"priority\": 123,\n \"rating\": 4,\n \"ncm\": \"<string>\",\n \"slug\": \"nome-do-produto\",\n \"video\": \"<string>\",\n \"description\": \"<string>\",\n \"specifications\": \"<string>\",\n \"measures\": \"<string>\",\n \"gift_value\": 123,\n \"seo_title\": \"<string>\",\n \"seo_description\": \"<string>\",\n \"seo_keywords\": \"<string>\",\n \"canonical_url\": \"<string>\",\n \"google_category\": \"<string>\",\n \"search_terms\": \"<string>\",\n \"categories_ids\": [\n 123\n ],\n \"flags_ids\": [\n 123\n ],\n \"filters_values_ids\": [\n 123\n ],\n \"variations_ids\": [\n 123\n ],\n \"similars_ids\": [\n 123\n ],\n \"collections_ids\": [\n 123\n ],\n \"skus\": [\n {\n \"sku\": \"<string>\",\n \"erp_id\": 123,\n \"barcode\": \"<string>\",\n \"price_cost\": 123,\n \"price_sale\": 123,\n \"price_discount\": 123,\n \"weight\": 123,\n \"height\": 123,\n \"width\": 123,\n \"length\": 123,\n \"quantity_managed\": true,\n \"availability\": 123,\n \"availability_soldout\": 123,\n \"blocked_sale\": true,\n \"images\": [\n {\n \"url\": \"<string>\"\n }\n ]\n }\n ]\n}"

response = http.request(request)
puts response.read_body
{
  "id": 12345678,
  "merchant_id": 1,
  "affiliation_id": 123,
  "erp_id": 123,
  "seller_id": 123,
  "active": true,
  "searchable": true,
  "is_digital": true,
  "rating": 4,
  "priority": 123,
  "ncm": "<string>",
  "name": "<string>",
  "slug": "nome-do-produto",
  "warranty": 123,
  "custom_shipping": true,
  "shipping_price": 39.9,
  "gift_value": 123,
  "simple": true
}
Envie somente os campos obrigatórios e os que deseja alterar, para reduzir validações desnecessárias. Caso não envie um campo, o mesmo será mantido com o valor atual.

Authorizations

User-Token
string
header
required
User-Secret-Key
string
header
required

Path Parameters

alias
string
required

Alias da loja

id
integer
required

ID do produto

Body

application/json

Representa os dados necessários para criar ou atualizar um produto

simple
boolean
required

Produto possui ou não variações

Example:

true

brand_id
integer
required

ID da marca

active
boolean
required

Indica se o produto está ativo

Example:

true

name
string
required

Nome do produto. O valor é sanitizado e normalizado automaticamente.

erp_id
integer

ID de ERP

searchable
boolean

Indica se o produto é buscável

Example:

true

is_digital
boolean

Indica se o produto é digital

Example:

true

buy_similars
boolean

Sugerir carrossel de produtos similares na compra

Example:

true

priority
integer

Nível de relevância (1 ->Padrão, 2 -> Média, 3 -> Alta)

rating
integer
Example:

4

ncm
string

Código NCM

slug
string

Utilizado em URL e listagens

Example:

"nome-do-produto"

video
string

Vídeo do produto

description
string

Descrição do produto. O valor é sanitizado e normalizado automaticamente.

specifications
string

Especificações do produto. O valor é sanitizado e normalizado automaticamente.

measures
string

Medidas do produto (ex: 10x20x30 cm). O valor é sanitizado e normalizado automaticamente.

gift_value
number<float>

Valor de presente associado ao produto

seo_title
string

Título do produto para SEO

seo_description
string

Descrição do produto para SEO

seo_keywords
string

Palavras-chave para SEO

canonical_url
string

URL canônica do produto

google_category
string

Categoria Google do produto

search_terms
string

Termos extras de busca do produto

categories_ids
integer[]

IDs das categorias vinculadas

flags_ids
integer[]

IDs das flags vinculadas

filters_values_ids
integer[]

IDs dos valores de filtros vinculados

variations_ids
integer[]

IDs das variações do produto

similars_ids
integer[]

IDs de produtos similares

collections_ids
integer[]

IDs das coleções vinculadas

skus
object[]
create_redirect
object

Se presente na requisição, cria um redirect junto com a atualização. A presença do nó é o que sinaliza a intenção — o conteúdo descreve o redirect.

Response

Produto atualizado com sucesso

Representa um produto do catálogo

id
integer
Example:

12345678

merchant_id
integer
read-only

ID da loja

Example:

1

affiliation_id
integer

ID de afiliação do produto

erp_id
integer

ID do produto no ERP

seller_id
integer

ID do vendedor

active
boolean

Indica se o produto está ativo

Example:

true

searchable
boolean

Indica se o produto é buscável

Example:

true

is_digital
boolean

Indica se o produto é digital

Example:

true

rating
integer
Example:

4

priority
integer

Nível de relevância (1 -> Padrão, 2 -> Média, 3 -> Alta)

ncm
string

Código NCM do produto

name
string

Nome do produto

slug
string

Slug (URL amigável) do produto

Example:

"nome-do-produto"

warranty
integer

Garantia em meses

custom_shipping
boolean

Indica se o Frete é customizado

Example:

true

shipping_price
number<float>

Valor do frete customizado em reais

Example:

39.9

gift_value
number<float>

Valor de presente (se aplicável)

simple
boolean

Indica se o produto é simples

Example:

true