Preferências de exibição
Lê e altera como a vitrine lista e mostra os produtos: itens por página, ordenação, cartão de produto, estoque, formato de data e moeda.
As preferências de exibição controlam o comportamento visual das listagens e da página do produto: quantos produtos por página e por linha, a ordenação inicial, se produtos esgotados aparecem, qual desenho de cartão de produto usar, que informações mostrar e como formatar datas e moeda. A vitrine lê estas preferências a cada visita; a mesma configuração também é publicada para o público na rota da vitrine GET /api/v1/storefront/settings/appearance.
Exigem o privilégio manage_settings.
Ler as preferências
/api/v1/admin/settings/appearanceAdminLer as preferências de exibição, com os padrões aplicados
Devolve todas as preferências. Campos que a loja nunca configurou vêm com o valor padrão.
curl "$BASE_URL/api/v1/admin/settings/appearance" \
-H "Authorization: Bearer $TOKEN"{
"products_per_page": 20,
"products_per_row": 4,
"default_product_sorting": "newest",
"default_sort_order": "desc",
"show_prices_with_tax": true,
"show_out_of_stock": true,
"pwa_enabled": false,
"show_zero_price": true,
"enable_quick_view": true,
"thumbnail_width": 300,
"thumbnail_height": 300,
"product_detail_image_size": 800,
"categories_per_page": 12,
"available_per_page_values": "10,20,50,100",
"show_product_code": true,
"show_product_weight": false,
"show_product_stock": true,
"backorder_notice_enabled": true,
"backorder_notice_text": "",
"date_format": "DD/MM/YYYY",
"currency_format": "R$ #.###,##",
"preferred_layout_editor": "visual",
"rendering_engine": "layouts",
"sticky_buybar_enabled": true,
"product_card_template": "modern",
"listing_view_modes": ["grid-2", "grid-3", "grid-4", "list"],
"listing_default_view": "grid-4"
}Alterar as preferências
/api/v1/admin/settings/appearanceAdminAlterar as preferências de exibição
Envia só os campos que quer mudar: o corpo é mesclado com o que já está salvo (os campos que você não mandar ficam como estão). A resposta traz as preferências completas, já com os padrões aplicados.
Corpo da requisição
products_per_pageintegerpadrão: 20products_per_rowintegerpadrão: 4default_product_sortingstringpadrão: newestnamepricenewestpopularitydefault_sort_orderstringascdescshow_prices_with_taxbooleanshow_out_of_stockbooleanlisting_strict_stockbooleanpadrão: falseshow_out_of_stock desligado, também esconde produtos de "avise-me" e grupos de variação sem filho em estoque.pwa_enabledbooleanpadrão: falseshow_zero_pricebooleanpadrão: trueenable_quick_viewbooleanthumbnail_widthintegerpadrão: 300thumbnail_heightintegerpadrão: 300product_detail_image_sizeintegerpadrão: 800categories_per_pageintegerpadrão: 12available_per_page_valuesstringpadrão: 10,20,50,100show_product_codebooleanshow_product_weightbooleanshow_product_stockbooleanpadrão: truetrue.backorder_notice_enabledbooleanpadrão: truebackorder_notice_textstringdate_formatstringpadrão: DD/MM/YYYYcurrency_formatstringpadrão: R$ #.###,##preferred_layout_editorstringpadrão: visualvisualadvancedtheme_builderrendering_enginestringpadrão: layoutslayoutstheme_buildersticky_buybar_enabledbooleanpadrão: trueproduct_card_templatestringpadrão: defaultdefaultmodernfashiontechcompactlisting_view_modesarraygrid-2, grid-3, grid-4 e list. Vazio oferece todos.listing_default_viewstringpadrão: grid-4listing_view_modes; se não estiver, é corrigido automaticamente.curl -X PUT "$BASE_URL/api/v1/admin/settings/appearance" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"products_per_page":24,"product_card_template":"compact"}'Resposta
O corpo é o mesmo objeto da leitura, com as alterações aplicadas.
Campos da resposta
*anyErros
| Status | Quando | Corpo de exemplo |
|---|---|---|
| 400 | Corpo que não é JSON, ou vazio. | {"error":"invalid request body","detail":"..."} |
| 401 | Sem token ou token expirado. | {"error":"invalid or expired token"} |
| 403 | Sem manage_settings. | {"error":"insufficient privileges","required":"manage_settings"} |
| 500 | Falha ao gravar. | {"error":"failed to update appearance settings","detail":"..."} |