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.
/api/blocksAdminCriar um bloco
Corpo da requisição
typestringobrigatórionamestringobrigatóriopropertiesobjectobrigatóriocontentobjectlang_codestringEnvie 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.
"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"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.
{
"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/
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.
{
"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".
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.
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
{
"block_id": 42
}Erros
| Status | Quando |
|---|---|
201 Created | O bloco foi criado e o id dele é devolvido |
400 Bad Request | Nã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.