Escribir un plugin
Un plugin añade cosas a la tienda sin tocar su código: escuchar lo que pasa, cambiar lo que se calcula, meter una pantalla en el panel.
Empezar
Sección titulada «Empezar»npx pcc-plugin nuevo mi-plugincd mi-plugin && npm install && npm run devGuardas un fichero y se recarga solo. No hace falta reiniciar la tienda.
El plugin entero
Sección titulada «El plugin entero»import { definirPlugin } from "@pcreative/plugin-contract"
export default definirPlugin({ arrancar(api, { registro }) { api.on("pedido.creado", (pedido) => { registro.info(`Pedido ${pedido.number}: ${pedido.total.amount} €`) }) },})Escribe api.on(" y el editor te enseña los eventos disponibles, ya tipados.
Es lo único que hay que saber para empezar.
Acciones y filtros
Sección titulada «Acciones y filtros»Un evento avisa de algo que ya ha pasado. No puedes cambiar el resultado:
api.on("cliente.registrado", (cliente) => { /* dale la bienvenida */ })Un filtro te deja modificar algo antes de que se use:
api.filtro("carrito.totales", (totales, carrito) => { // p. ej. un descuento propio return totales})Los puntos de enganche que hay hoy:
| Eventos | Filtros |
|---|---|
pedido.creado, pedido.cancelado |
carrito.totales |
cliente.registrado |
envios.disponibles |
carrito.abandonado |
pagos.disponibles |
inventario.agotado |
correo.contenido |
menu.principal, inicio.tarjeta |
Los dos últimos son de interfaz: meten una entrada en el menú del panel o una tarjeta en la portada.
Instalarlo
Sección titulada «Instalarlo»Copia la carpeta del plugin en plugins/ del backend. Aparece en
Panel → Extensiones.
Si tus plugins viven en otro sitio, dilo con PLUGINS_DIR.
Para apagar uno sin desinstalarlo:
PLUGINS_DISABLED=uno,otroÚtil cuando un plugin da problemas y quieres seguir vendiendo mientras lo miras.
Ajustes
Sección titulada «Ajustes»Si tu plugin declara ajustes, salen solos en Panel → Extensiones: no tienes que escribir la pantalla. Los secretos se guardan aparte y no se devuelven al navegador — el panel enseña «hay una clave guardada», nunca la clave.
Plugins de pago
Sección titulada «Plugins de pago»El contrato incluye comprobación de licencia. Se verifica contra una clave
pública (LICENSE_PUBLIC_KEY), y se verifica sin conexión: una tienda que se
queda sin internet no puede quedarse sin sus plugins.
La clave es pública a propósito: solo sirve para comprobar firmas, nunca para crearlas.
El contrato no nombra la base técnica
Sección titulada «El contrato no nombra la base técnica»A propósito. Un plugin escrito hoy debería seguir valiendo si mañana la tienda
cambia por dentro. Por eso los eventos hablan de pedido y carrito, no de las
tablas de nadie.
Ver también
Sección titulada «Ver también»README del contrato de plugins