Skip to main content
POST
/
{alias}
/
catalog
/
skus
Criar SKU
curl --request POST \
  --url https://api.dooki.com.br/v2/{alias}/catalog/skus \
  --header 'Content-Type: application/json' \
  --header 'User-Secret-Key: <api-key>' \
  --header 'User-Token: <api-key>' \
  --data @- <<EOF
{
  "product_id": 123,
  "sku": "<string>",
  "price_cost": 123,
  "price_sale": 123,
  "weight": 123,
  "height": 123,
  "width": 123,
  "length": 123,
  "quantity_managed": true,
  "availability": 123,
  "availability_soldout": 123,
  "blocked_sale": true,
  "variations_values_ids": "['Amarelo', 'Azul', 'M', 'P']",
  "id": 123,
  "token": "<string>",
  "erp_id": 123,
  "barcode": "<string>",
  "allow_sell_without_customization": true,
  "price_discount": 123,
  "order": 123,
  "customizations_ids": "[1,2,3]",
  "current_stock": [
    {
      "stock_id": 123,
      "quantity": 123,
      "min_quantity": 123,
      "availability": 123,
      "availability_soldout": 123
    }
  ],
  "images": [
    {
      "url": "https://www.site.com/image1.jpg"
    }
  ]
}
EOF
import requests

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

payload = {
    "product_id": 123,
    "sku": "<string>",
    "price_cost": 123,
    "price_sale": 123,
    "weight": 123,
    "height": 123,
    "width": 123,
    "length": 123,
    "quantity_managed": True,
    "availability": 123,
    "availability_soldout": 123,
    "blocked_sale": True,
    "variations_values_ids": "['Amarelo', 'Azul', 'M', 'P']",
    "id": 123,
    "token": "<string>",
    "erp_id": 123,
    "barcode": "<string>",
    "allow_sell_without_customization": True,
    "price_discount": 123,
    "order": 123,
    "customizations_ids": "[1,2,3]",
    "current_stock": [
        {
            "stock_id": 123,
            "quantity": 123,
            "min_quantity": 123,
            "availability": 123,
            "availability_soldout": 123
        }
    ],
    "images": [{ "url": "https://www.site.com/image1.jpg" }]
}
headers = {
    "User-Token": "<api-key>",
    "User-Secret-Key": "<api-key>",
    "Content-Type": "application/json"
}

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

print(response.text)
const options = {
  method: 'POST',
  headers: {
    'User-Token': '<api-key>',
    'User-Secret-Key': '<api-key>',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    product_id: 123,
    sku: '<string>',
    price_cost: 123,
    price_sale: 123,
    weight: 123,
    height: 123,
    width: 123,
    length: 123,
    quantity_managed: true,
    availability: 123,
    availability_soldout: 123,
    blocked_sale: true,
    variations_values_ids: '[\'Amarelo\', \'Azul\', \'M\', \'P\']',
    id: 123,
    token: '<string>',
    erp_id: 123,
    barcode: '<string>',
    allow_sell_without_customization: true,
    price_discount: 123,
    order: 123,
    customizations_ids: '[1,2,3]',
    current_stock: [
      {
        stock_id: 123,
        quantity: 123,
        min_quantity: 123,
        availability: 123,
        availability_soldout: 123
      }
    ],
    images: [{url: 'https://www.site.com/image1.jpg'}]
  })
};

fetch('https://api.dooki.com.br/v2/{alias}/catalog/skus', 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/skus",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'product_id' => 123,
    'sku' => '<string>',
    'price_cost' => 123,
    'price_sale' => 123,
    'weight' => 123,
    'height' => 123,
    'width' => 123,
    'length' => 123,
    'quantity_managed' => true,
    'availability' => 123,
    'availability_soldout' => 123,
    'blocked_sale' => true,
    'variations_values_ids' => '[\'Amarelo\', \'Azul\', \'M\', \'P\']',
    'id' => 123,
    'token' => '<string>',
    'erp_id' => 123,
    'barcode' => '<string>',
    'allow_sell_without_customization' => true,
    'price_discount' => 123,
    'order' => 123,
    'customizations_ids' => '[1,2,3]',
    'current_stock' => [
        [
                'stock_id' => 123,
                'quantity' => 123,
                'min_quantity' => 123,
                'availability' => 123,
                'availability_soldout' => 123
        ]
    ],
    'images' => [
        [
                'url' => 'https://www.site.com/image1.jpg'
        ]
    ]
  ]),
  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/skus"

	payload := strings.NewReader("{\n  \"product_id\": 123,\n  \"sku\": \"<string>\",\n  \"price_cost\": 123,\n  \"price_sale\": 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  \"variations_values_ids\": \"['Amarelo', 'Azul', 'M', 'P']\",\n  \"id\": 123,\n  \"token\": \"<string>\",\n  \"erp_id\": 123,\n  \"barcode\": \"<string>\",\n  \"allow_sell_without_customization\": true,\n  \"price_discount\": 123,\n  \"order\": 123,\n  \"customizations_ids\": \"[1,2,3]\",\n  \"current_stock\": [\n    {\n      \"stock_id\": 123,\n      \"quantity\": 123,\n      \"min_quantity\": 123,\n      \"availability\": 123,\n      \"availability_soldout\": 123\n    }\n  ],\n  \"images\": [\n    {\n      \"url\": \"https://www.site.com/image1.jpg\"\n    }\n  ]\n}")

	req, _ := http.NewRequest("POST", 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.post("https://api.dooki.com.br/v2/{alias}/catalog/skus")
  .header("User-Token", "<api-key>")
  .header("User-Secret-Key", "<api-key>")
  .header("Content-Type", "application/json")
  .body("{\n  \"product_id\": 123,\n  \"sku\": \"<string>\",\n  \"price_cost\": 123,\n  \"price_sale\": 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  \"variations_values_ids\": \"['Amarelo', 'Azul', 'M', 'P']\",\n  \"id\": 123,\n  \"token\": \"<string>\",\n  \"erp_id\": 123,\n  \"barcode\": \"<string>\",\n  \"allow_sell_without_customization\": true,\n  \"price_discount\": 123,\n  \"order\": 123,\n  \"customizations_ids\": \"[1,2,3]\",\n  \"current_stock\": [\n    {\n      \"stock_id\": 123,\n      \"quantity\": 123,\n      \"min_quantity\": 123,\n      \"availability\": 123,\n      \"availability_soldout\": 123\n    }\n  ],\n  \"images\": [\n    {\n      \"url\": \"https://www.site.com/image1.jpg\"\n    }\n  ]\n}")
  .asString();
require 'uri'
require 'net/http'

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

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

request = Net::HTTP::Post.new(url)
request["User-Token"] = '<api-key>'
request["User-Secret-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"product_id\": 123,\n  \"sku\": \"<string>\",\n  \"price_cost\": 123,\n  \"price_sale\": 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  \"variations_values_ids\": \"['Amarelo', 'Azul', 'M', 'P']\",\n  \"id\": 123,\n  \"token\": \"<string>\",\n  \"erp_id\": 123,\n  \"barcode\": \"<string>\",\n  \"allow_sell_without_customization\": true,\n  \"price_discount\": 123,\n  \"order\": 123,\n  \"customizations_ids\": \"[1,2,3]\",\n  \"current_stock\": [\n    {\n      \"stock_id\": 123,\n      \"quantity\": 123,\n      \"min_quantity\": 123,\n      \"availability\": 123,\n      \"availability_soldout\": 123\n    }\n  ],\n  \"images\": [\n    {\n      \"url\": \"https://www.site.com/image1.jpg\"\n    }\n  ]\n}"

response = http.request(request)
puts response.read_body
{
  "id": 123,
  "product_id": 123,
  "seller_id": 123,
  "sku": "SKU-TEST-API",
  "token": "<string>",
  "erp_id": "01-753-Rose",
  "blocked_sale": false,
  "barcode": "barcode-test",
  "title": "Produto X - Variação 030303 Amarelo",
  "allow_sell_without_customization": true,
  "price_cost": 123,
  "price_sale": 123,
  "price_discount": 123,
  "combinations": [
    "<string>"
  ],
  "weight": 123,
  "height": 123,
  "width": 123,
  "length": 123,
  "quantity_managed": true,
  "availability": 123,
  "availability_soldout": 123,
  "order": 123,
  "variations": [
    {
      "name": "<string>",
      "id": 123,
      "value": "<string>",
      "value_id": 123
    }
  ],
  "days_availability_formated": "<string>",
  "total_in_stock": 123,
  "total_orders": 123,
  "image_reference_sku_id": 123,
  "purchase_url": "<string>",
  "created_at": {
    "date": "2000-08-17 10:24:24",
    "timezone_type": 3,
    "timezone": "America/Sao_Paulo"
  },
  "updated_at": {
    "date": "2000-08-17 10:24:24",
    "timezone_type": 3,
    "timezone": "America/Sao_Paulo"
  },
  "customizations": {
    "data": [
      {
        "id": 123,
        "name": "Primeira Letra",
        "price": 123,
        "description": "Descrição",
        "type": "select",
        "required": true,
        "allowed_values": "<string>",
        "max_chars": 1,
        "products_ids": [
          123
        ],
        "values": "['A', 'B', 'C', 'D']"
      }
    ]
  }
}

Authorizations

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

Path Parameters

alias
string
required

Alias da loja

Body

application/json

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

product_id
integer
required
sku
string
required
Maximum string length: 40
price_cost
number<float>
required
price_sale
number<float>
required
weight
number<float>
required
height
number<float>
required
width
number<float>
required
length
number<float>
required
quantity_managed
boolean
required
availability
integer
required
availability_soldout
integer
required
blocked_sale
boolean
required
variations_values_ids
string[]
required
Example:

"['Amarelo', 'Azul', 'M', 'P']"

id
integer
token
string
erp_id
integer
barcode
string
allow_sell_without_customization
boolean
price_discount
number<float>
order
integer
customizations_ids
integer[]
Example:

"[1,2,3]"

current_stock
object[]

Informações de estoque do SKU. Pode ser enviado como um único objeto ou um array de objetos.

images
object[]

Response

SKU criado com sucesso

id
integer

ID do SKU

product_id
integer

ID do produto ao qual o SKU pertence

seller_id
integer

ID do vendedor

sku
string

Código do SKU

Example:

"SKU-TEST-API"

token
string

Token único do SKU

erp_id
string

ID do SKU no ERP

Example:

"01-753-Rose"

blocked_sale
boolean

Vendas bloqueadas

Example:

false

barcode
string

Código de barras do SKU

Example:

"barcode-test"

title
string

Título completo do SKU

Example:

"Produto X - Variação 030303 Amarelo"

allow_sell_without_customization
boolean

Permite vender sem personalização obrigatória

Example:

true

price_cost
number<float>

Preço de custo do SKU

price_sale
number<float>

Preço de venda do SKU

price_discount
number<float>

Preço com desconto aplicado

combinations
string[]

Combinações de variações associadas ao SKU

weight
number<float>

Peso do SKU em kg

height
number<float>

Altura do SKU em cm

width
number<float>

Largura do SKU em cm

length
number<float>

Comprimento do SKU em cm

quantity_managed
boolean

Indica se o controle de estoque está habilitado

Example:

true

availability
integer

Quantidade disponível em estoque

availability_soldout
integer

Quantidade disponível mesmo após esgotado

order
integer

Ordem de exibição do SKU para a página de produtos

variations
object[]

Lista de variações do produto

days_availability_formated
string

Disponibilidade formatada em dias

total_in_stock
integer

Quantidade total em estoque

stock_status
enum<string>

Status do estoque

Available options:
in_stock,
out_of_stock,
low_stock
total_orders
integer

Número total de pedidos realizados

image_reference_sku_id
integer

ID do SKU de referência da imagem

purchase_url
string<url>

URL para a compra do produto

created_at
object
updated_at
object
customizations
object

Personalizações do produto