Guía completa de funciones de Shopify: personalice la lógica empresarial a escala

Domina las funciones de Shopify para descuentos personalizados, filtrado de métodos de pago, manipulación de tarifas de envío y validación de carritos con esta guía de desarrollo completa.

E
ECOSIRE Research and Development Team
|16 de marzo de 202610 min de lectura2.1k Palabras|

Guía completa de funciones de Shopify: personalice la lógica empresarial a escala

Shopify Functions permite a los desarrolladores personalizar la lógica comercial central que se ejecuta dentro de la infraestructura de Shopify en lugar de en servidores externos. Esto significa que los cálculos de descuentos personalizados, el filtrado de métodos de pago, las modificaciones de las tarifas de envío y la validación del carrito se ejecutan en milisegundos sin latencia de red. Las funciones reemplazaron al Editor de scripts (Shopify Scripts) y representan el futuro de la personalización del backend en la plataforma. Esta guía cubre cada tipo de función, flujo de trabajo de desarrollo y patrón de implementación.

Conclusiones clave

  • Las funciones de Shopify se ejecutan en un entorno limitado de WebAssembly dentro de la infraestructura de Shopify, lo que garantiza tiempos de ejecución inferiores a 5 ms.
  • Hay cinco API de funciones disponibles: descuentos, personalización de pagos, personalización de entregas, validación de carritos y enrutamiento de pedidos.
  • Las funciones están escritas en Rust, JavaScript o cualquier lenguaje que se compile en WebAssembly.
  • Cada función recibe información a través de los resultados de la consulta GraphQL y devuelve una salida estructurada que Shopify aplica a la operación.
  • Las funciones se implementan como parte de las aplicaciones de Shopify y los comerciantes pueden configurarlas a través del administrador.

¿Qué son las funciones de Shopify?

Shopify Functions son programas livianos que personalizan operaciones comerciales específicas en puntos de extensión predefinidos. A diferencia de los webhooks (que envían datos a servidores externos), las funciones se ejecutan dentro de la infraestructura de Shopify como módulos WebAssembly, lo que garantiza:

  • Velocidad: ejecución inferior a 5 ms (sin latencia de red)
  • Confiabilidad: No hay dependencias de servidores externos
  • Escala: maneja cualquier volumen de tráfico sin planificación de capacidad
  • Seguridad: ejecución en espacio aislado sin sistema de archivos ni acceso a la red

API de funciones

APIPropósitoReemplaza
DescuentosLógica de descuento personalizada (BOGO, escalonada, condicional)Shopify Scripts (descuentos en artículos de línea)
Personalización de pagosMostrar/ocultar/reordenar métodos de pago al finalizar la compraLógica condicional del método de pago
Personalización de entregaModificar tarifas de envío, nombres y disponibilidadGuiones de tarifas de envío
Validación del carritoValidar el contenido del carrito y bloquear combinaciones no válidasValidación de atributos del carrito
Enrutamiento de pedidosPersonalizar la selección de ubicación de cumplimientoEnrutamiento de ubicación predeterminada

Entorno de desarrollo

Requisitos previos

  • Shopify CLI (última versión)
  • Nodo.js 18+
  • Una cuenta de Shopify Partner y una tienda en desarrollo
  • Cadena de herramientas de Rust (para funciones basadas en Rust) o tiempo de ejecución de JavaScript

Creando una función

Crea una nueva función usando Shopify CLI:

Ejecute npx shopify app generate extension y seleccione el tipo de función. La CLI genera:

ArchivoPropósito
src/run.js (o run.rs)La lógica de la función
CÓDIGO0Consulta GraphQL que define los datos de entrada
CÓDIGO0Configuración y metadatos
CÓDIGO0El esquema de la API de Shopify (generado automáticamente)

Flujo de trabajo de desarrollo

  1. Defina consulta de entrada: escriba la consulta GraphQL en input.graphql que recupera los datos que necesita su función
  2. Implementar lógica: Escribe la función en src/run.js que transforma la entrada en salida
  3. Prueba localmente: ejecuta pruebas unitarias con npx shopify app function test
  4. Implementar: Envía a Shopify con npx shopify app deploy
  5. Configurar: los comerciantes configuran los parámetros de la función a través de la interfaz de usuario de la aplicación.

Funciones de descuento

Cómo funcionan las funciones de descuento

Una función de descuento recibe datos del carrito (artículos de línea, información del cliente, códigos de descuento) y devuelve las operaciones de descuento para aplicar. La función se ejecuta cada vez que se evalúa el carrito: al cargar la página, agregar/eliminar artículos y al finalizar la compra.

Patrones de descuento comunes

Compre X y obtenga Y: Cuando el carrito contiene el producto X, aplique un porcentaje o descuento fijo al producto Y.

Descuentos escalonados: aplique descuentos crecientes según el total del carrito (10 % sobre 100 USD, 15 % sobre 200 USD, 20 % sobre 500 USD).

Precios específicos del cliente: verifique las etiquetas o metacampos del cliente y aplique descuentos específicos del segmento (mayorista, VIP, empleado).

Descuentos por paquetes: cuando haya combinaciones de productos específicas en el carrito, aplique un descuento por paquete (compre los tres y ahorre un 25%).

Descuentos por volumen: aplique descuentos por unidad según la cantidad (de 1 a 9 unidades al precio completo, de 10 a 24 con un 10 % de descuento, de 25 o más con un 20 % de descuento).

Ejemplo de consulta de entrada

La consulta de entrada de la función de descuento normalmente solicita:

  • Artículos de línea del carrito con ID de producto, ID de variante, cantidades y precios
  • Información del cliente (ID, etiquetas, metacampos) si se utiliza la segmentación de clientes
  • Código de descuento si se valida un descuento basado en código
  • Metacampos de productos para reglas de descuento específicas de productos.

Estructura de salida

La función devuelve una serie de operaciones de descuento:

OperaciónDescripción
CÓDIGO0Aplicar descuento a productos/variantes específicos
CÓDIGO0Aplicar descuento al total del pedido
CÓDIGO0Eliminar gastos de envío

Cada operación incluye el valor del descuento (porcentaje o monto fijo), un mensaje que se muestra al cliente y las condiciones bajo las cuales se aplica.

Funciones de personalización de pagos

Casos de uso

  • Ocultar métodos de pago: Ocultar "Pago contra reembolso" para pedidos superiores a un umbral
  • Métodos de reorden: muestra primero el método de pago más popular según la ubicación del cliente
  • Cambiar nombre de métodos: muestra nombres de métodos de pago localizados
  • Agregar mensajes: muestra información adicional junto a métodos de pago específicos

Patrón de implementación

La función recibe los detalles del carrito y los métodos de pago disponibles. Devuelve operaciones que modifican la lista de métodos de pago:

OperaciónEfecto
CÓDIGO0Eliminar un método de pago del proceso de pago
CÓDIGO0Cambiar el nombre para mostrar de un método de pago
CÓDIGO0Reordenar métodos de pago

Funciones de personalización de entrega

Casos de uso

  • Cambiar el nombre de las opciones de envío: muestra "Entrega exprés (2-3 días)" en lugar de los nombres de las tarifas del transportista
  • Ocultar opciones: eliminar el envío terrestre para productos perecederos
  • Opciones de reorden: muestra primero la opción más rápida para pedidos urgentes
  • Agregar mensajes: muestra las fechas de entrega estimadas junto a cada opción

Implementación

La función recibe tarifas de envío de transportistas configurados y devuelve modificaciones. La entrada incluye artículos de línea del carrito (para verificar los tipos de productos), dirección de envío (para reglas basadas en la ubicación) y opciones de entrega disponibles.

Funciones de validación del carrito

Casos de uso

  • Límites de cantidad: Máximo 5 unidades de productos de edición limitada
  • Restricciones de combinación: Producto A y Producto B no pueden estar en el mismo carrito (incompatible)
  • Requisitos mínimos: Las cuentas mayoristas deben realizar un pedido mínimo de 100 USD
  • Restricciones geográficas: bloquea el envío de ciertos productos a regiones restringidas

Salida de validación

Cuando la validación falla, la función devuelve un error con:

  • Objetivo: qué línea de carrito o el carrito en sí
  • Mensaje: mensaje de error dirigido al cliente
  • Severidad: Error (bloquea el pago) o advertencia (permite pero notifica)

Funciones de prueba

Prueba unitaria

Pruebe funciones localmente sin implementar:

  1. Cree dispositivos de prueba con datos de entrada de muestra
  2. Ejecute la función contra los accesorios.
  3. Afirmar que el resultado coincide con los resultados esperados.

La CLI de Shopify genera un texto estándar de prueba:

Escenario de pruebaQué verificar
Carro vacíoLa función no devuelve operaciones
Carrito calificadoDescuento/modificación correcta aplicada
Casos extremosValores límite, cantidades máximas
Manejo de erroresEntrada no válida manejada correctamente
RendimientoLa ejecución se completa en menos de 5 ms

Modo de vista previa

Pruebe las funciones en una tienda de desarrollo antes de publicar:

  1. Implemente la función en su tienda de desarrollo.
  2. Configúrelo a través del administrador de la aplicación.
  3. Agregue productos al carrito y verifique el comportamiento.
  4. Verifique los registros de ejecución de funciones en la salida de Shopify CLI

Consideraciones de rendimiento

Límites de ejecución

LímiteValor
Tiempo de ejecución5 ms máximo
Memoria12 MB
Tamaño de entrada64 KB
Tamaño de salida64 KB
Instrucciones1 millón de instrucciones Wasm

Consejos de optimización

  • Minimiza la consulta de entrada solo a los campos que tu lógica necesita
  • Evite bucles anidados complejos: use mapas hash para búsquedas
  • Calcular previamente los valores en la configuración de la aplicación en lugar de en la función.
  • Utilice Rust para funciones críticas para el rendimiento (2-3 veces más rápido que JavaScript)
  • Ejecución de la función de perfil utilizando las herramientas de rendimiento de Shopify CLI

Configuración del comerciante

Interfaz de usuario de configuración de la aplicación

Las funciones se configuran a través de la interfaz de usuario de tu aplicación, no directamente en el administrador de Shopify. Cree una página de configuración que:

  1. Muestra el propósito de la función y la configuración actual.
  2. Permite a los comerciantes establecer parámetros (umbrales, selecciones de productos, porcentajes)
  3. Almacena la configuración como metacampos que la función lee en tiempo de ejecución.
  4. Valida las entradas antes de guardar.

Almacenamiento de configuración

Configuración de la función de tienda usando metacampos de la aplicación:

  • Metacampos sobre el descuento: montos umbrales, valores porcentuales, ID de productos
  • Almacenamiento de datos de aplicaciones: configuración compleja como reglas escalonadas y segmentos de clientes
  • Configuración de función: Pasada como parte de la entrada de la función a través de la consulta de entrada

Servicios de desarrollo de funciones ECOSIRE

Las funciones personalizadas de Shopify requieren experiencia en el dominio del comercio y habilidades de desarrollo de WebAssembly. Los servicios de desarrollo de aplicaciones Shopify de ECOSIRE incluyen diseño, implementación, prueba e implementación de funciones. Nuestro equipo crea motores de descuentos, personalizaciones de pagos y lógica de validación adaptadas a sus reglas comerciales. Para necesidades continuas, nuestros servicios de soporte mantienen y desarrollan tus funciones personalizadas a medida que avanza la plataforma de Shopify.

Lectura relacionada

¿Las funciones de Shopify reemplazan a los scripts de Shopify?

Sí. Los scripts de Shopify están obsoletos y las funciones son el reemplazo. Las diferencias clave: las funciones se ejecutan como WebAssembly (no Ruby), se implementan a través de aplicaciones (no el Editor de secuencias de comandos) y admiten más puntos de extensión. Los scripts existentes siguen funcionando, pero Shopify recomienda migrar a Functions.

¿Pueden los no desarrolladores crear Shopify Functions?

No directamente. Las funciones requieren conocimientos de programación (JavaScript o Rust). Sin embargo, los desarrolladores pueden crear aplicaciones con interfaces de usuario de configuración que permitan a los comerciantes personalizar el comportamiento de las funciones sin necesidad de codificación. Muchas aplicaciones en Shopify App Store usan funciones internamente y al mismo tiempo presentan una interfaz amigable para los comerciantes.

¿Existe un límite en la cantidad de funciones que se pueden ejecutar en una sola tienda?

Shopify no impone un límite estricto en la cantidad de funciones instaladas. Sin embargo, cada evaluación de pago ejecuta todas las funciones aplicables de forma secuencial, por lo que se aplican consideraciones de rendimiento. El límite de 5 ms por función garantiza que las funciones individuales no puedan ralentizar el pago, pero tener docenas de funciones podría, en teoría, afectar el tiempo total de evaluación del pago.

E

Escrito por

ECOSIRE Research and Development Team

Construyendo productos digitales de nivel empresarial en ECOSIRE. Compartiendo perspectivas sobre integraciones Odoo, automatización de eCommerce y soluciones empresariales impulsadas por IA.

Chatea en whatsapp