Pular para o conteúdo
VTEX Companion
PT EN Mudar para inglês

Extensão para Chrome e Firefox

VTEX Companion

Lê a stack, o catálogo e o SEO da loja VTEX aberta na aba.

Também chama as APIs da loja com a sessão que a aba já tem e põe um botão Localhost no CMS do FastStore, que abre o preview no seu dev server.

Popup do VTEX Companion aberto sobre uma página de produto, mostrando a tabela de SKUs com ID, nome, EAN, referência, estoque e preço, e o botão Abrir no admin.
Versão
v1.3.0
Licença
MIT
Telemetria
Nenhuma
Navegadores
Chrome e Firefox

O que ela faz

Preview do FastStore no localhost

No CMS do FastStore, tanto no Headless CMS legacy quanto no Storefront > Content, o botão Pré-visualização abre a loja publicada. A extensão coloca um botão Localhost ao lado dele, que abre a mesma URL no seu dev server com a query inteira. Funciona nas duas versões do CMS e não depende do cmsDevMode. Lojas em VTEX IO e no portal legacy fazem preview por workspace e não usam esse fluxo.

Admin do CMS do FastStore com o botão Localhost injetado ao lado de Pré-visualização, e o painel Development Mode mostrando um Localhost URL clicável ao lado do API URL.

Fetch runner

Chama as APIs da loja de dentro da própria aba, com a sessão que ela já tem. Vem com presets de Sessão, Checkout, Catálogo, Intelligent Search, OMS e Master Data. A resposta aparece formatada ou crua, as chamadas ficam num histórico da sessão e dá para copiar tudo como JSON ou CSV. Antes de rodar um método que altera dados, ele pede confirmação.

Painel VTEX dentro do DevTools, com a requisição à esquerda e a resposta 200 formatada à direita, mais o histórico das chamadas da sessão.

Stack, segmento e sessão

A extensão diz se a loja roda em IO, FastStore, CMS Legacy Portal ou headless, e mostra account, workspace, binding e os sinais em que cada conclusão se baseia. Na mesma aba ficam o vtex_segment e a sessão. Ela informa se há login de loja e de admin na origem e clona a sessão de {account}.myvtex.com para o domínio da loja sem que o token passe pela área de transferência.

Popup na aba Loja sobre uma loja VTEX IO, com o bloco Segmento mostrando sales channel, culture info, moeda e region id editáveis, e o bloco Sessão logo abaixo com os botões de clonar do admin e limpar sessão.

SEO e scripts de terceiros

Confere indexação, canonical, hreflang, JSON-LD, headings e imagens sem alt, com regras por tipo de página: acusa uma PDP sem Product ou uma listagem sem ItemList. Ao lado aparecem os vendors carregados na página (GTM, GA4, Meta, TikTok, Clarity, Criteo e outros), com o id da conta quando existe.

Popup na aba Página mostrando as tags de SEO da página (title, description, canonical, robots, lang e H1) e, abaixo, os scripts de terceiros detectados, Google reCAPTCHA e VTEX Pixel Manager.

Outros recursos

Catálogo da página
Na PDP, a lista de SKUs com EAN, refId, seller, preço e disponibilidade, e um atalho para o admin. Em listagem e busca, a categoria, o caminho, o termo, o map e a ordenação.
Segmento da loja
O cookie vtex_segment decodificado: sales channel, culture info, moeda e region id em campos editáveis, e o JSON inteiro para priceTables, campaigns e o resto. Gravar recarrega a aba.
Workspace e flags de URL
Abre a mesma rota em outro workspace, lista os recentes e tem um atalho de volta para o master. As flags do render-runtime (__siteEditor, __disableSSR, __disablePixels, binding e sales channel) ligam com um clique, sem mexer no resto da query.
Painel no DevTools
Além do popup, o runner roda numa aba VTEX do DevTools, onde ganha a janela inteira.
Chrome e Firefox
O mesmo código gera dois builds MV3, com service_worker no Chrome e background.scripts no Firefox.

Instalação

  1. Instale pela Chrome Web Store, que atende Chrome, Edge e os outros navegadores baseados em Chromium, ou pela AMO, no Firefox e no Firefox para Android.
  2. Abra uma loja VTEX e clique no ícone da extensão. Na primeira vez em cada domínio de loja, o popup pede acesso ao site: clique em Conceder acesso a este site. A permissão vale só para aquela origem.
  3. Para o preview do FastStore, deixe o pnpm dev da loja rodando. A extensão abre o dev server na porta 3000; se o seu usa outra, mude o campo Porta na aba Preview do popup.
  4. No CMS do FastStore, clique em Localhost, ao lado de Pré-visualização. Para toda aba de preview ir direto ao seu dev server, ligue Redirecionar a aba de preview para o localhost na mesma aba do popup.
Carregar a partir do código-fonte

Para testar uma versão que ainda não chegou às lojas, clone o repositório e gere os builds:

pnpm install
pnpm build            # .output/chrome-mv3
pnpm build:firefox    # .output/firefox-mv3

No Chrome, abra chrome://extensions, ligue o Modo do desenvolvedor e use Carregar sem compactação na pasta .output/chrome-mv3. No Firefox, abra about:debugging#/runtime/this-firefox e use Carregar extensão temporária com o .output/firefox-mv3/manifest.json.

Perguntas

Funciona em qual navegador?

No Chrome, nos navegadores baseados em Chromium e no Firefox, inclusive no Firefox para Android. Lá tudo acontece no popup, porque o navegador não tem DevTools no aparelho.

Preciso estar logado na VTEX?

Para ler a página, não: detecção de stack, SEO e scripts de terceiros funcionam em qualquer loja VTEX pública. Para chamar um endpoint que exige sessão de admin, você precisa estar logado no admin daquela conta.

A extensão manda meus dados para algum servidor?

Não. As chamadas do fetch runner saem da aba direto para o domínio da loja, e a extensão não copia as respostas para lugar nenhum.

Por que a instalação não pede acesso a todos os sites?

Porque não há content script global: a leitura da página é injetada só quando você abre o popup. O acesso fixo se limita a *.myvtex.com e localhost. Domínio de loja é opcional, e você libera site a site.

Achei um problema. Onde reporto?

Nas issues do repositório. É um projeto independente, mantido nas horas vagas, mas leio tudo.

Não coleta nada

A extensão não tem servidor e não manda nada para fora do navegador. O que ela lê da aba é descartado quando o painel fecha, e o token de sessão nunca é gravado.

Política de privacidade

Projeto independente, sem associação com a VTEX. Não é um produto oficial dela.