Adobe Commerce¶
MageObsidian Components se instala y funciona sobre Adobe Commerce 2.4.9 con los mismos paquetes que en Magento Open Source. Esta página cubre lo que cambia: las claves de Composer, los paquetes que no aplican y los problemas que te puedes encontrar en el camino.
Qué significa "compatible" aquö
Los paquetes publicados se instalaron sobre Adobe Commerce 2.4.9 (PHP 8.5, modo default) y se
recorrió la tienda completa en un navegador: home, búsqueda, categorÃa, ficha de producto,
carrito, un checkout de invitado hasta confirmar el pedido, registro, la cuenta del cliente,
cierre de sesión e inicio de sesión. No apareció ningún error de consola, de red ni en los logs
del servidor, y el pedido quedó registrado con los totales correctos.
Lo que eso no cubre:
- Las funciones de storefront exclusivas de Commerce (gift cards, store credit, puntos de
recompensa, gift registry, pedido por SKU, invitaciones y el resto) todavÃa no tienen
storefront de MageObsidian. Corre
bin/magento mage-obsidian:frontend:doctorpara ver cuáles tiene habilitadas tu tienda. - Adobe Commerce Cloud no se probó en un proyecto real. El build sin base de datos está
soportado y probado (siguiente sección); falta verificar que
ece-tools conserve el contrato entre el build y el deploy, que Node.js esté en el
PATHde la imagen de build y la memoria del contenedor de build. - Pasarelas de pago. Solo se probó Check / Money order.
Requisitos¶
- Adobe Commerce 2.4.7 o posterior. El paquete core requiere Magento 2.4.7.
- PHP 8.3 o posterior. Todos los módulos Magento de MageObsidian declaran
"php": ">=8.3". - Node.js 22.13 o posterior y pnpm 11, la versión que fija el harness de Vite.
- Claves de
repo.magento.comcon acceso a Commerce, en elauth.jsondel proyecto. MageObsidian viene de Packagist y no necesita claves.
Instalación¶
Asigna el tema en Content → Design → Configuration (MageObsidian — Default (Obsidian)) y después construye y publica los assets:
setup:static-content:deploy corre el build de Vite de cada tema MageObsidian y comprueba que
su salida se haya publicado. Un tema sin build se informa en un aviso; define
MAGE_OBSIDIAN_STRICT_DEPLOY=1 para que ese aviso haga fallar el deploy.
En modo production, corre bin/magento setup:di:compile antes del deploy estático, como en
cualquier tienda Magento.
Desarrollo¶
El HMR viene apagado por defecto, asà que una instalación nueva sirve los assets construidos. Para trabajar con el dev server de Vite, sigue Desarrollo:
Build sin base de datos¶
Adobe Commerce Cloud, y cualquier pipeline que arma un artefacto y lo copia al servidor, corre
setup:static-content:deploy en una fase sin base de datos y en otra ruta raÃz. MageObsidian lo
soporta:
- Commitea
app/etc/config.phpcon todos los módulos y con las seccionesscopesythemes:bin/magento app:config:dump scopes themes. - La fase de build necesita Node.js 22.13 o posterior y pnpm, y el harness de Vite instalado con
pnpm --prefix vite install --frozen-lockfile. setup:static-content:deployregenera el contrato del frontend desde el filesystem antes de construir, asà que nunca usa un contrato commiteado desde otra máquina. Las rutas dentro de la raÃz de Magento se escriben relativas a ella, y el árbol construido se puede mover.
| Variable | Uso |
|---|---|
MAGE_OBSIDIAN_SKIP_VITE_BUILD=1 |
Regenera el contrato pero salta el build de Vite, cuando un paso anterior ya construyó los temas. Úsala junto con MAGE_OBSIDIAN_STRICT_DEPLOY=1. |
MAGE_OBSIDIAN_STRICT_DEPLOY=1 |
Hace fallar el deploy cuando un tema no tiene build de Vite, en vez de solo informarlo. |
MAGE_OBSIDIAN_BUILD_CONCURRENCY=<n> |
Temas construidos en paralelo. Por defecto, uno menos que la cantidad de CPU; bájalo si el contenedor de build se queda sin memoria. |
Contenido CMS. Sin base de datos el build no puede leer el contenido CMS, asà que los temas se construyen con una baseline de clases vacÃa y cada clase escrita en contenido CMS se genera en runtime. Para que funcione hacen falta dos pasos:
-
Instala el CLI standalone de Tailwind en
bin/tailwindcssdurante el build, en la versión que usa el harness: -
Corre
bin/magento mage-obsidian:cms:jiten la primera fase con base de datos, antes de que la tienda reciba tráfico:post_deployen Cloud, después desetup:upgradeen un pipeline propio.
La fila CMS baseline de bin/magento mage-obsidian:frontend:doctor informa la baseline de cada
tema.
Critical CSS. mage-obsidian:frontend:critical-css escribe en
<tema>/web/critical/<handle>.css, en las fuentes del tema. Genéralo en desarrollo y commitéalo
con el tema; el deploy lo publica como cualquier otro archivo estático.
Un .magento.app.yaml como este lo junta todo. TodavÃa no se probó en un proyecto Cloud real:
Paquetes que no aplican¶
La instalación estándar de arriba solo trae lo que necesita el tema. Hay dos paquetes de la organización MageObsidian que no forman parte de ella y no deben ir en una tienda Adobe Commerce:
mage-obsidian/module-inventory-stock-visualizeradapta un panel del fork de MSIjeanmarcos/inventory. Adobe Commerce no trae el módulo del que depende, asà que Composer lo rechaza. Es lo esperado.mage-obsidian/module-showcasees el panel de funcionalidades de la tienda de demo.
Solución de problemas¶
Todos los assets dan 404 bajo …/vite_generated/… y ninguna isla monta. El HMR está
encendido sin un dev server corriendo. Las versiones del core anteriores a 2.20.0 traÃan el HMR
encendido. Apágalo:
There are no commands defined in the "mage-obsidian" namespace. Busca en
var/log/exception.log la lÃnea Failed to load core Magento commands. Magento descarta todos
los comandos de módulos cuando uno no se puede construir, y eso pasa cuando generated/code
tiene un interceptor de un constructor anterior. Regenera el código con
bin/magento setup:di:compile, o borra generated/code y corre bin/magento cache:clean config.
Cannot build Vite assets: "…" is not writable. El build de Vite escribe en vite/ y en el
web/generated/ de cada tema. Corre el deploy estático en una fase que pueda escribir en el árbol
de código; en Cloud, esa es la fase de build.
ERR_PNPM_ABORTED_REMOVE_MODULES_DIR_NO_TTY después de actualizar component-modern-frontend.
Las versiones anteriores a 2.6.0 ubicaban el store de pnpm en otro lugar, y pnpm se niega a
reconstruir vite/node_modules sin terminal. Borra vite/node_modules una vez y vuelve a
instalar.
ERR_PNPM_MINIMUM_RELEASE_AGE_VIOLATION. pnpm rechaza un paquete publicado hace menos de un
dÃa. Espera, o exceptúa esa única versión durante la instalación:
Un invitado es enviado a iniciar sesión en vez de llegar al checkout. El carrito tiene un
producto descargable y catalog/downloadable/disable_guest_checkout está activo, que es el
valor por defecto de Magento. Es el comportamiento nativo; pon esa opción en No para que los
invitados puedan comprar productos descargables.