VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API legada/Referência completa/Blocos

Criar um bloco

Adiciona um novo bloco à loja enviando tipo, nome e propriedades; devolve o id do novo bloco.

Para adicionar um bloco à sua loja, envie uma requisição POST ao endpoint de blocos. Assim você cria dinamicamente componentes de interface do layout da loja, por exemplo um bloco de HTML personalizado ou um bloco de template. A referência escreve o endpoint como POST /api/blocks/.

Se o bloco for criado com sucesso, você recebe HTTP/1.1 201 Created e o id do bloco. Se não for possível criá-lo, você recebe HTTP/1.1 400 Bad Request.

POST/api/blocksAdmin

Criar um bloco

Corpo da requisição

typestringobrigatório
O tipo de bloco a criar.
namestringobrigatório
O nome que vai identificar o bloco.
propertiesobjectobrigatório
Opções de configuração do bloco, incluindo o template.
contentobject
Conteúdo que será exibido no bloco (aplicável apenas a certos tipos de bloco).
lang_codestring
Código do idioma do conteúdo do bloco (padrão: o idioma padrão da loja).

Envie os campos no corpo da requisição de acordo com o Content-Type que você informar.

Tipos de bloco aceitos

O sistema aceita estes tipos de bloco.

text
"menu", "my_account", "our_brands", "cart_content",
"breadcrumbs", "template", "main", "html_block",
"smarty_block", "checkout", "products", "categories",
"pages", "payment_methods", "shipping_methods", "currencies",
"languages", "product_filters", "vendor_information",
"vendor_logo", "vendor_categories", "vendor_search"
Nota

Os add-ons podem oferecer outros tipos de bloco, como banners, blog, rss_feed e tags.

Entendendo a configuração do bloco

Antes de criar um bloco, é importante entender como os blocos são estruturados. As propriedades de um bloco dependem do tipo e do template dele.

Descobrindo as propriedades do bloco

Este é um bloco de carrossel de produtos, lido de uma loja existente.

json
{
  "block_id": "22",
  "type": "products",
  "properties": {
    "template": "blocks/products/products_scroller.tpl",
    "show_price": "N",
    "enable_quick_view": "N",
    "not_scroll_automatically": "Y",
    "speed": "400",
    "scroll_per_page": "Y",
    "pause_delay": "3",
    "item_quantity": "4",
    "thumbnail_width": "160",
    "hide_add_to_cart_button": "Y",
    "outside_navigation": "Y"
  },
  "company_id": "1",
  "lang_code": "en",
  "name": "Hot deals"
}

Para descobrir as propriedades disponíveis de um tipo de bloco, a referência aponta os arquivos de esquema da sua instalação:

  • Tipos de bloco do núcleo: app/schemas/block_manager/blocks.php
  • Propriedades específicas de template: app/schemas/block_manager/templates.php
  • Tipos de bloco de add-ons: app/addons/<add-on_name>/block_manager/
Dica

O jeito mais fácil de entender as propriedades obrigatórias é criar antes um bloco no painel de administração e depois usar a API para obter a estrutura dele como referência.

Blocos de conteúdo

Para blocos que podem exibir conteúdo (como html_block e categories), você precisa enviar um objeto content. Este é um bloco de menu suspenso de categorias.

json
{
  "block_id": "9",
  "type": "categories",
  "properties": {
    "template": "blocks/categories/categories_dropdown_horizontal.tpl",
    "dropdown_second_level_elements": "12",
    "dropdown_third_level_elements": "6"
  },
  "company_id": "1",
  "lang_code": "en",
  "name": "Main menu",
  "content": {
    "items": {
      "filling": "full_tree_cat",
      "parent_category_id": "",
      "sort_by": "position"
    }
  }
}

Exemplos

Bloco de template

Esta requisição cria um bloco de template chamado "Example Template", que usa o template "My account links".

bash
curl -u "$EMAIL:$API_KEY" -H "Content-Type: application/json" -X POST "$BASE_URL/api/blocks/" -d '{
  "type": "template",
  "name": "Example Template",
  "properties": {
    "template": "blocks/static_templates/my_account_links.tpl"
  }
}'

Bloco HTML

Esta requisição cria um bloco HTML chamado "HTML Block Example" com um conteúdo HTML simples.

bash
curl -u "$EMAIL:$API_KEY" -H "Content-Type: application/json" -X POST "$BASE_URL/api/blocks/" -d '{
  "type": "html_block",
  "name": "HTML Block Example",
  "properties": {
    "template": "blocks/html_block.tpl"
  },
  "content": {
    "content": "<p>Example text</p>"
  },
  "lang_code": "en"
}'

Resposta

201Bloco criado
json
{
  "block_id": 42
}

Erros

StatusQuando
201 CreatedO bloco foi criado e o id dele é devolvido
400 Bad RequestNão foi possível criar o bloco

Veja também

  • Detalhes do bloco, os campos, as propriedades comuns e a estrutura do conteúdo.
  • Obter um bloco, para ler a estrutura de um bloco existente.
  • Atualizar um bloco, para alterar um bloco depois.
Anterior
Detalhes do bloco
Próxima
Atualizar um bloco
Nesta página
  • Tipos de bloco aceitos
  • Entendendo a configuração do bloco
  • Descobrindo as propriedades do bloco
  • Blocos de conteúdo
  • Exemplos
  • Bloco de template
  • Bloco HTML
  • Resposta
  • Erros
  • Veja também