Shopify Functions, apps y Flow no resuelven lo mismo
Shopify Functions permite ejecutar lógica de negocio dentro de la infraestructura de Shopify en puntos de extensión definidos por la plataforma. Una app puede incluir Functions, interfaz, configuración, almacenamiento y conexiones externas. Shopify Flow automatiza eventos y acciones. Un servicio externo integra sistemas y procesa trabajo fuera de Shopify.
Elegir bien importa porque una regla colocada en la capa equivocada puede ser difícil de mantener, lenta o imposible de observar.
| Capa | Encaja para | No encaja para |
|---|---|---|
| Shopify Functions | Lógica síncrona admitida por Shopify: descuentos, entrega, pagos o transformaciones según API disponible. | Procesos largos, interfaces completas o grandes consultas externas. |
| App Shopify | Configuración, UI, datos propios, extensiones, webhooks y Functions empaquetadas. | Automatización simple que Flow ya cubre. |
| Shopify Flow | Triggers, condiciones y acciones operativas. | Lógica de checkout de baja latencia o sincronización empresarial compleja. |
| Middleware/servicio | ERP, CRM, colas, reintentos, orquestación y datos externos. | Reglas que deben ejecutarse dentro de un punto de extensión síncrono de Shopify. |
Si el proyecto necesita varias de estas capas, conviene diseñarlo como una app Shopify con límites claros, no como fragmentos independientes.
Qué es una Shopify Function
Una Function recibe una entrada definida por una API de Shopify, aplica lógica y devuelve una salida estructurada. Shopify ejecuta esa lógica en su infraestructura. El desarrollador no decide libremente cualquier punto del sistema: debe utilizar las APIs de Functions disponibles.
Esto ofrece dos ventajas:
- la lógica se ejecuta cerca del proceso de Shopify;
- el comportamiento se distribuye mediante una app y sus extensiones.
También impone límites. Una Function debe ser determinista, rápida y trabajar con los datos admitidos. No es un servidor general donde llamar sin control a cualquier API externa.
Casos donde Functions suele ser la capa adecuada
Descuentos
Cuando una promoción necesita reglas que las opciones estándar no expresan, una Discount Function puede aplicar lógica sobre carrito, productos, cliente o contexto disponible. La promoción debe seguir siendo comprensible para negocio y soporte.
Opciones de entrega
Delivery Customization permite renombrar, ordenar u ocultar opciones según las capacidades actuales de la API. No sustituye al cálculo completo de un operador logístico externo cuando ese cálculo necesita datos que Shopify no proporciona en ese momento.
Opciones de pago
Payment Customization puede modificar la presentación de métodos de pago según reglas admitidas. La disponibilidad y el alcance dependen del plan y de la API vigente; debe comprobarse en la documentación antes de comprometer una solución.
Transformaciones del carrito
Cart Transform permite modelar determinados comportamientos del carrito. Es útil para bundles, componentes o merchandising cuando el caso está soportado y se ha validado su impacto en catálogo, inventario, descuentos y analítica.
Cuándo necesitas una app completa
Una Function rara vez vive sola. Una app suele ser necesaria si el equipo debe:
- configurar reglas desde una interfaz;
- guardar versiones y fechas de activación;
- limitar permisos por usuario;
- consultar logs o simulaciones;
- conectar datos de ERP, CRM o PIM;
- recibir webhooks;
- mostrar una extensión en admin, checkout o cuenta de cliente;
- mantener varios comercios.
La Function ejecuta la decisión; la app permite gobernarla.
Cuándo Shopify Flow es suficiente
Flow puede resolver procesos como etiquetar pedidos, avisar a un equipo, actualizar un metafield o reaccionar a un evento. No hace falta desarrollar una app para cada automatización.
Usa Flow cuando:
- el proceso es asíncrono;
- el trigger y la acción existen;
- las condiciones son comprensibles;
- no necesitas una interfaz propia;
- el error puede revisarse y corregirse operativamente.
Consulta la guía de automatización con Shopify Flow para diseñar estas reglas con responsables y monitorización.
Cuándo la lógica debe vivir fuera de Shopify
Un servicio externo o middleware encaja cuando el proceso necesita:
- consultar un ERP antes de confirmar una operación;
- sincronizar miles de productos o stocks;
- colas, reintentos e idempotencia;
- transformar modelos de datos complejos;
- combinar varias APIs;
- historiales y auditoría propios;
- procesamiento que tarda segundos o minutos;
- recuperación ante caídas parciales.
Esta capa debe diseñarse dentro de las integraciones Shopify, con una fuente de verdad definida para cada objeto.
Decisión por escenario
| Necesidad | Capa principal | Capas de apoyo |
|---|---|---|
| Descuento complejo en checkout | Function | App para configuración y despliegue. |
| Etiquetar pedidos de alto valor | Flow | Notificación interna. |
| Sincronizar stock con ERP | Middleware/app | Webhooks, jobs y observabilidad. |
| Ocultar un método de pago | Payment Customization Function | App y configuración. |
| Mostrar un bloque en checkout | UI extension | App, y Function si existe lógica adicional. |
| Bundle con reglas de carrito | Cart Transform cuando aplica | App, catálogo, inventario y analítica. |
Riesgos de arquitectura
Duplicar reglas
Una promoción no debe existir a la vez en Shopify, una app, ERP y código del theme sin una jerarquía clara. La duplicidad crea resultados inconsistentes y dificulta explicar el precio final.
Depender del theme
La lógica visual del theme puede orientar la experiencia, pero no debería ser la única protección de una regla crítica. El cliente puede llamar a APIs o llegar al checkout por recorridos distintos.
No controlar versiones
Cada Function y extensión necesita despliegue, rollback y una forma de saber qué versión está activa. Los cambios de API y plan deben revisarse dentro del mantenimiento técnico.
Ignorar analítica y soporte
Una regla puede ser técnicamente correcta y aun así generar dudas, abandono o tickets. Documenta mensajes visibles, eventos analíticos y procedimiento de soporte.
Checklist de diseño
- ¿La API de Functions soporta exactamente el punto necesario?
- ¿Qué datos están disponibles durante la ejecución?
- ¿La regla debe responder de forma síncrona?
- ¿Negocio necesita una interfaz para configurarla?
- ¿Dónde se guarda el estado y el historial?
- ¿Qué ocurre si la integración externa falla?
- ¿Cómo se prueba antes de producción?
- ¿Existe un rollback?
- ¿La funcionalidad depende de Shopify Plus u otro requisito de plan?
- ¿Qué métricas confirman que funciona?
Functions y Checkout Extensibility
Functions forma parte del modelo moderno de personalización de Shopify. En proyectos de Checkout Extensibility, suele combinarse con UI extensions, píxeles, apps y configuración del checkout.
No toda personalización legacy tiene una equivalencia directa. Antes de migrar hay que inventariar scripts, checkout.liquid, apps, reglas de entrega, pagos, descuentos, tracking y contenido visible.
Preguntas frecuentes
¿Shopify Functions sustituye a Scripts?
Functions es la base moderna para varios casos que antes se resolvían con Shopify Scripts, pero la equivalencia depende del caso y de las APIs disponibles. Cada script debe auditarse.
¿Se puede llamar a una API externa desde una Function?
Las Functions tienen un entorno y límites específicos. Si la decisión depende de datos externos, normalmente esos datos deben sincronizarse o la arquitectura debe usar una app o servicio externo.
¿Hace falta Shopify Plus?
Algunas APIs o personalizaciones pueden depender del plan. La documentación oficial debe revisarse para el punto de extensión concreto antes de definir alcance.
¿Function o app pública de la App Store?
Una app existente es adecuada si cubre el caso, tiene mantenimiento fiable y su coste/riesgo encaja. El desarrollo propio tiene sentido cuando la lógica es diferencial o la integración no cabe en una solución estándar.
Conclusión
Shopify Functions no compite con las apps: normalmente forma parte de una app. Flow automatiza procesos; el middleware conecta sistemas. Una buena arquitectura coloca cada regla donde puede ejecutarse, mantenerse y observarse mejor.
Fuentes oficiales revisadas
Referencias usadas para contrastar recomendaciones técnicas, documentación de plataforma y criterios de búsqueda.




