Pular para o conteúdo principal

Configuração da loja

Ao final desta página

Uma loja que mostra sua marca, seus canais de contato e seus dados de pagamento, e o entendimento de por que o painel admin consegue sobrescrever qualquer coisa.

Passando a configuração​

config aceita um objeto CatalogConfig. Todo campo é opcional.

<CatalogApp
config={{
companyName: 'Bloom Cosméticos',
tagline: 'Beleza limpa, entregue em casa',
currency: 'BRL',
whatsappPhone: '5511999998888',
pixKey: 'bloom@example.com',
pixMerchantCity: 'Sao Paulo',
}}
/>

Todas as opções​

Identidade​

OpçãoTipoOnde aparece
companyNamestringMarca no header, rodapé, mensagens de pedido. Cai para o nome do tema
taglinestringRodapé, abaixo da marca. Cai para o slogan do tema
footerTextstringLinha de copyright do rodapé
shippingBannerstringA faixa fina acima do header
logoDataUrlstringImagem em base64 ao lado da marca no header
faviconDataUrlstringImagem em base64 injetada como favicon

Contato e redes​

OpçãoTipoObservações
contactEmailstringRodapé e página de contato
contactPhonestringRodapé e página de contato
addressstringRodapé e página de contato
whatsappPhonestringSó dígitos, com código do país — 5511999998888. Alimenta o ícone no rodapé, o botão flutuante de pedido e o checkout por WhatsApp
instagramUrlstringURL completa
tiktokUrlstringURL completa
facebookUrlstringURL completa

Comércio​

OpçãoTipoObservações
currency'BRL' | 'USD' | 'EUR'Só formatação — veja Moeda. Preços nunca são convertidos
pixKeystringCPF, CNPJ, e-mail, telefone ou chave aleatória. Habilita a opção Pix no checkout
pixMerchantCitystringMáximo 15 caracteres, ASCII. Cai para BRASIL se vazio
publicSlugstringRota do catálogo público: minha-loja serve /c/minha-loja
Pix exige BRL

O checkout só oferece Pix quando currency é BRL e pixKey está preenchida. Um código Pix em euros não seria pagável.

Analytics​

OpçãoTipoObservações
gaIdstringID de medição do GA4, G-XXXXXXXX
metaPixelIdstringID numérico do Meta Pixel

Preencher qualquer um injeta o script e passa a emitir view_item, add_to_cart, begin_checkout e purchase. Veja Analytics.

config é semente, não trava​

Isso costuma surpreender, então vale ser explícito.

config é mesclado no localStorage quando o provider monta, sob a chave ecom-site-config. A partir daí a loja lê a cópia guardada, que o painel admin pode editar em tempo de execução.

Consequências:

  • Mudar um valor em config e recarregar atualiza a loja, porque a mescla roda a cada montagem e a sua prop vence.
  • O que um admin mudou no painel persiste naquele navegador até a mesma chave ser passada em config de novo.
  • Limpar os dados do site devolve a loja ao que config disser.

Para ler ou mudar a configuração a partir dos seus componentes:

import { useSiteConfig } from '@neverleans-labs/plug-store-core';

function AvisoDeFrete() {
const { config, updateConfig } = useSiteConfig();

return (
<button onClick={() => updateConfig({ shippingBanner: 'Frete grátis hoje' })}>
{config.shippingBanner}
</button>
);
}

Cupons​

Cupons vivem na configuração de runtime, e não em CatalogConfig, porque são algo que o dono da loja muda com frequência. Quatro vêm por padrão:

CódigoEfeito
SAVE1010% de desconto
SAVE2020% de desconto
WELCOME55 a menos no total
FREESHIPZera o frete

Substitua via updateConfig:

const { updateConfig } = useSiteConfig();

updateConfig({
coupons: [
{ code: 'BLOOM15', type: 'percent', value: 15, label: '15% off' },
{ code: 'FRETEGRATIS', type: 'flat', value: 0, label: 'Frete grátis' },
],
});

Outras props do provider​

Ficam ao lado de config, não dentro dele:

PropTipoPara quê
defaultThemestringId do tema inicial — veja Temas
customThemeThemeConfigUm tema criado com defineTheme
defaultLanguage'pt' | 'en'Idioma inicial da interface
dataProviderCatalogDataProviderSeu backend — veja Data providers
queryClientQueryClientCompartilhar o cache do react-query com o app anfitrião

Próximos passos​