Módulos da loja
Lista os módulos ligados, a parte pública da configuração de cada um e os componentes que eles acoplam à vitrine.
Um módulo é um recurso opcional que o administrador liga por loja. Estas três rotas deixam o front-end saber, sem login, quais módulos estão ativos, ler a parte pública da configuração de um deles e descobrir quais componentes de tela cada módulo acopla à vitrine.
Módulos ligados
/api/v1/storefront/modules/statusPúblicaLista os módulos ligados na loja
Não exige token. A resposta nunca vem do cache do navegador (Cache-Control: no-cache), para que ligar ou desligar um módulo valha na hora.
Exemplo de requisição
curl "$BASE_URL/api/v1/storefront/modules/status"Resposta
{
"enabled_modules": ["analytics", "cnpj-login", "cpf-cnpj-validation", "newsletter", "product-reviews", "whatsapp-chat"],
"storefront_disabled": false,
"switched_off": ["advanced-wishlist", "wishlist"],
"switched_off_features": ["wishlist"]
}Campos da resposta
enabled_modulesstring[][] quando nenhum está ativo (nunca null). Módulos desligados pelo operador da plataforma não aparecem, mesmo que a loja os tenha ligado.storefront_disabledbooleantrue quando o comércio eletrônico público da loja está desligado (a vitrine responde 404). Os painéis usam o campo para esconder o botão "Ver loja".switched_offstring[]switched_off_featuresstring[]switched_off.Erros
| Status | Quando | Corpo |
|---|---|---|
| 500 | Falha ao ler os módulos da loja. | {"error":"failed to get module status","detail":"..."} |
Configuração pública de um módulo
/api/v1/storefront/modules/{slug}/settingsPúblicaConfiguração pública de um módulo
Parâmetros de caminho
slugstringobrigatóriowhatsapp-chat.Exemplo de requisição
curl "$BASE_URL/api/v1/storefront/modules/cnpj-login/settings"Resposta
{
"module_slug": "cnpj-login",
"settings": { "auto_approve": false }
}Campos da resposta
module_slugstringslug pedido.settingsobjectwhatsapp-chat (mode, phone_number, welcome_message, position, floating_button_enabled, floating_button_phone, floating_button_welcome, floating_button_position), cnpj-login (signup_mode, allow_pf, allow_pj, auto_approve, require_cnpj_validation, require_active_cnpj, profile_lock_company_fields, profile_password_confirm, block_address_edit_pj, block_address_edit_pf, person_type_change_cleanup) e help-tutorials (auto_show, default_language). Uma chave sem valor gravado simplesmente não vem.Erros
| Status | Quando | Corpo |
|---|---|---|
| 500 | Loja sem contexto de tenant (não ocorre com um domínio válido). | {"error":"no tenant in context"} |
Pontos de extensão
Um ponto de extensão é um lugar da tela em que módulos podem acoplar componentes (uma aba de avaliações na página do produto, um selo no cartão do produto). O tema consulta o ponto e desenha o que voltar.
/api/v1/storefront/modules/extensions/{point}PúblicaComponentes registrados em um ponto de extensão
Parâmetros de caminho
pointstringobrigatóriostorefront.product_page.tabs, storefront.product_page.actions, storefront.product_page.sidebar, storefront.product_card.badges, storefront.product_card.actions, checkout.validation e checkout.payment_methods.Exemplo de requisição
curl "$BASE_URL/api/v1/storefront/modules/extensions/storefront.product_page.tabs"Resposta
{
"extension_point": "storefront.product_page.tabs",
"registrations": [
{
"module_slug": "product-reviews",
"extension_point": "storefront.product_page.tabs",
"component": "ProductReviews",
"priority": 50
}
]
}Campos da resposta
extension_pointstringregistrationsobject[][] (200).registrations[].module_slugstringregistrations[].extension_pointstringregistrations[].componentstringregistrations[].priorityintegerregistrations[].configobjectErros
| Status | Quando | Corpo |
|---|---|---|
| 500 | Falha ao ler os módulos ligados. | {"error":"failed to get enabled modules","detail":"..."} |