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

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

GET/api/v1/storefront/modules/statusPública

Lista 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

bash
curl "$BASE_URL/api/v1/storefront/modules/status"

Resposta

200Módulos da loja
json
{
  "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[]
Identificadores dos módulos ligados e visíveis. Fica [] quando nenhum está ativo (nunca null). Módulos desligados pelo operador da plataforma não aparecem, mesmo que a loja os tenha ligado.
storefront_disabledboolean
true 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[]
Módulos de base que a customização da loja desligou. Só aparece nas lojas que têm essa customização.
switched_off_featuresstring[]
Recursos de base desligados pela customização. Só aparece junto com switched_off.

Erros

StatusQuandoCorpo
500Falha ao ler os módulos da loja.{"error":"failed to get module status","detail":"..."}

Configuração pública de um módulo

GET/api/v1/storefront/modules/{slug}/settingsPública

Configuração pública de um módulo

Parâmetros de caminho

slugstringobrigatório
Identificador do módulo, como whatsapp-chat.

Exemplo de requisição

bash
curl "$BASE_URL/api/v1/storefront/modules/cnpj-login/settings"

Resposta

200Configuração liberada
json
{
  "module_slug": "cnpj-login",
  "settings": { "auto_approve": false }
}

Campos da resposta

module_slugstring
O mesmo slug pedido.
settingsobject
Somente as chaves liberadas para a vitrine. Hoje apenas três módulos expõem algo: whatsapp-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.
Slug desconhecido também responde 200

Módulo desligado, módulo inexistente e módulo sem chaves liberadas respondem do mesmo jeito: 200 com "settings": {}. A rota nunca responde 404. Para saber se um módulo está ligado, use enabled_modules, não esta rota.

Erros

StatusQuandoCorpo
500Loja 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.

GET/api/v1/storefront/modules/extensions/{point}Pública

Componentes registrados em um ponto de extensão

Parâmetros de caminho

pointstringobrigatório
Nome do ponto de extensão. Os pontos da plataforma são storefront.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

bash
curl "$BASE_URL/api/v1/storefront/modules/extensions/storefront.product_page.tabs"

Resposta

200Componentes do ponto
json
{
  "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_pointstring
O ponto pedido.
registrationsobject[]
Componentes de módulos ligados da loja, na ordem de registro. Um ponto desconhecido ou sem módulos ligados devolve [] (200).
registrations[].module_slugstring
Módulo dono do componente.
registrations[].extension_pointstring
Repete o ponto.
registrations[].componentstring
Nome do componente que o tema sabe desenhar.
registrations[].priorityinteger
Ordem de exibição: menor primeiro.
registrations[].configobject
Configuração própria do registro. Ausente quando não há.

Erros

StatusQuandoCorpo
500Falha ao ler os módulos ligados.{"error":"failed to get enabled modules","detail":"..."}
Guarde a lista de módulos

Uma chamada a modules/status por carga de página basta. Use a lista para decidir se vale chamar rotas de módulo (por exemplo validate/cpf) em vez de provocar um 403.

Veja também

  • Validar CPF e CNPJ
  • Utilidades da vitrine
Anterior
Utilidades da vitrine
Próxima
Validar CPF e CNPJ
Nesta página
  • Módulos ligados
  • Exemplo de requisição
  • Resposta
  • Erros
  • Configuração pública de um módulo
  • Exemplo de requisição
  • Resposta
  • Erros
  • Pontos de extensão
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também