Saltar al contenido
Guías

Tienda, menús y CMS

Lee el snapshot de /v1/settings y el contenido publicado de la tienda.

El root generado carga /v1/settings antes de renderizar. Ese snapshot está disponible en cada página y layout; no tienes que crear un provider.

Estructura del snapshot

CampoContenido
schemaVersionVersión 1 o 2 del contrato.
generatedAtFecha de generación.
storeIdentidad, dominio, moneda, idioma, tema, features y reglas de checkout.
cms.settingsBranding, SEO, contacto, tracking y scripts.
cms.pagesPáginas CMS incluidas en el snapshot.
cms.menusMenús publicados.

En una página

settings llega directamente a component:

pages/about.tsx
import { definePage } from "@ecomiq/storefront";

export default definePage({
  component: ({ settings }) => (
    <section>
      <h1>{settings.store.name}</h1>
      <p>{settings.store.description}</p>
      <p>{settings.store.currency}</p>
    </section>
  ),
});

En un componente

Usa useSettings dentro del árbol generado:

import { useSettings } from "@ecomiq/storefront";

export function StoreLogo() {
  const settings = useSettings();
  const logo = settings.cms.settings.branding.logoUrl ?? settings.store.logo;

  return logo ? (
    <img src={logo} alt={settings.store.name} />
  ) : (
    <span>{settings.store.name}</span>
  );
}

Menús

useMenu busca el menú por key, excluye los items con visible: false y los ordena por order:

import { Link, useMenu } from "@ecomiq/storefront";

export function MainMenu() {
  const items = useMenu("main");

  return items.map((item) => (
    <Link key={item.url} to={item.url}>
      {item.label}
    </Link>
  ));
}

Páginas CMS

Para buscar una página publicada dentro del snapshot:

import { findStorefrontCmsPageBySlug } from "@ecomiq/storefront";

const page = findStorefrontCmsPageBySlug(settings, "home");

Para pedir una página por slug desde Storefront API:

import { serverApi } from "@ecomiq/storefront";

const page = await serverApi.getPageBySlug("about");

La ruta reservada /pages/:pageSlug usa getPageBySlug; no depende únicamente del snapshot.

Config local vs. settings

ecomiq.config.js contiene ajustes operativos. El nombre, SEO, menús, moneda y reglas comerciales pertenecen a /v1/settings.

En esta página