Descuentos personalizados con Shopify Functions (adiós Scripts)
Shopify Scripts ya no existe y Shopify Functions ocupa su lugar en todos los planes. Esta guía explica qué descuentos cubre Shopify de serie, cuáles necesitan una Function y cómo encargar una sin pagar de más.

On this page
Key takeaways
- Shopify Scripts se ha retirado y toda la lógica de descuento personalizada corre ahora como Shopify Functions, que funcionan dentro del checkout y también en los pagos acelerados como Shop Pay, Apple Pay o Google Pay.
- Antes de encargar una Function, agote los descuentos nativos de Shopify: porcentaje, importe, compre X y llévese Y, envío gratis y las reglas de combinación cubren más de lo que parece.
- Una Function hace falta cuando la regla depende de varias condiciones a la vez: escalones por cantidad o importe, etiquetas de cliente, metafields, exclusiones o mercados concretos.
- Una Function vive dentro de una app, así que el comerciante necesita o una app del App Store construida sobre Functions o un desarrollador que le construya una app propia con su interfaz de configuración.
Los descuentos personalizados en Shopify se construyen hoy con Shopify Functions. Scripts, la herramienta que los comerciantes de Shopify Plus usaban para reglas de precio a medida, se ha retirado, y Functions la sustituye en todos los planes, no solo en Plus. La diferencia práctica más importante es que una Function se ejecuta dentro del checkout de Shopify, así que el descuento se aplica igual si el cliente paga con tarjeta, con Bizum a través de una pasarela compatible, con Shop Pay o con Apple Pay.
Antes de encargar una Function conviene saber tres cosas: qué descuentos cubre Shopify sin código, en qué punto una regla deja de caber en esa configuración nativa, y qué se está comprando cuando se encarga una. Esta guía va en ese orden.
Qué ha cambiado con la retirada de Scripts
Scripts era código Ruby que corría en el checkout de Shopify Plus para modificar precios, opciones de envío y métodos de pago. Solo existía en Plus, se editaba desde una app propia de Shopify y tenía límites de rendimiento que obligaban a escribirlo con cuidado.
Shopify anunció su retirada con años de antelación y pidió a los comerciantes Plus que migraran sus reglas a Functions. Hoy Scripts no se ejecuta, y cualquier tienda que todavía tenga documentación de Scripts debería comprobar que la lógica se reescribió. Es un error más frecuente de lo que parece: una regla de envío gratis para clientes con cierta etiqueta que dejó de funcionar sin que nadie lo notara, porque nada avisa cuando un Script deja de existir.
Functions es distinto en tres aspectos que importan al comerciante. Está disponible en todos los planes. Se escribe en JavaScript o Rust y se compila a un formato que Shopify ejecuta en su infraestructura con límites de tiempo muy estrictos, lo que significa que no puede llamar a servicios externos ni ralentizar el checkout. Y vive dentro de una app, propia o del App Store, con lo que la configuración se hace desde esa app y no desde el admin de Shopify. El artículo sobre migrar de Scripts a Functions recoge el proceso para tiendas Plus que todavía lo tengan pendiente.
Los descuentos que Shopify cubre sin código
La mayoría de comerciantes que piden un descuento personalizado no lo necesitan, y esa es la primera comprobación que una agencia honesta debería hacer.
Desde el admin de Shopify, sin ninguna app, se pueden crear descuentos de porcentaje o importe fijo sobre productos concretos, colecciones o todo el pedido; descuentos de compre X y llévese Y con el producto de regalo gratis o rebajado; envío gratis por importe mínimo o por país; y descuentos automáticos que se aplican sin código promocional. Cada uno acepta requisitos mínimos de importe o cantidad, restricciones a segmentos de clientes y límites de uso.
Además, cada descuento tiene reglas de combinación: si se puede sumar a otros descuentos de producto, de pedido o de envío. Buena parte de los problemas de descuentos que se pisan o no se aplican se resuelven ahí, sin tocar nada más. La guía sobre acumulación de descuentos en Shopify explica esas reglas con ejemplos.
Reglas de descuento habituales y si necesitan una Function
| Regla | Nativo de Shopify | Function |
|---|---|---|
| 10 % en una colección durante una campaña | Sí | No |
| Compre 2 y llévese 1 gratis del mismo producto | Sí | No |
| Envío gratis a partir de 60 euros en España | Sí | No |
| Descuento distinto según segmento de clientes | Sí, con segmentos | No en la mayoría de casos |
| 5 % a partir de 3 unidades, 10 % a partir de 6, 15 % a partir de 12, mezclando productos | No | Sí |
| Precio especial para clientes con etiqueta mayorista, solo en ciertos productos | Parcialmente | Sí si hay varias condiciones |
| Descuento que excluye productos ya rebajados o con cierto metafield | No | Sí |
| Pack de tres productos vendido como uno, con su propio precio | No | Sí, con Cart Transform |
| Descuento solo en un mercado de Shopify Markets | Parcialmente | Sí para reglas finas |
La regla práctica es sencilla: si el descuento se describe con una sola condición y una sola acción, casi seguro es nativo. Si se describe con "y", "excepto", "según" o "a partir de" varias veces, probablemente sea una Function.
Cuándo una regla necesita una Function
Una Function hace falta cuando la regla depende de varias condiciones a la vez o de datos que los descuentos nativos no leen.
Escalones por cantidad o por importe mezclando productos. Un 5 % a partir de tres unidades de cualquier producto de una colección, un 10 % a partir de seis y un 15 % a partir de doce. Shopify nativo hace escalones sobre un mismo producto, pero no sobre la suma de varios. Es la petición más frecuente y el artículo sobre descuentos escalonados en Shopify la trata en detalle.
Reglas por etiqueta de cliente o por metafield. Precio mayorista para clientes etiquetados como tal, solo en ciertos productos y solo a partir de cierta cantidad. Los segmentos nativos cubren la primera condición; las otras dos necesitan código.
Exclusiones. Un descuento de campaña que no se aplique a productos ya rebajados, a tarjetas regalo, a una marca concreta o a productos con un metafield que indique precio fijo. Las exclusiones son donde los descuentos nativos se quedan cortos con más frecuencia.
Packs y agrupaciones. Vender tres productos como uno con su propio precio y su propia línea en el pedido no es un descuento sino una transformación del carrito, y se hace con la Function de Cart Transform. La guía sobre Cart Transform explica la diferencia con un descuento de pack.
Reglas por mercado. Un descuento que solo exista en México o solo en Portugal, con condiciones distintas por país. Shopify Markets permite precios por mercado, pero las reglas de descuento con condiciones finas por mercado suelen acabar en una Function.
Lo que una Function de descuento no puede hacer también conviene saberlo: no puede consultar un servicio externo en tiempo real, no puede leer datos que no estén en el carrito, el cliente o el producto, y tiene un límite de tiempo de ejecución que impide reglas muy pesadas. El artículo sobre limitaciones de Shopify Functions recoge las que más sorprenden.
Los tres tipos de descuento en Functions
Las Functions de descuento se organizan por dónde se aplica el descuento, y una misma Function puede combinar varios.
Descuento de producto. Rebaja líneas concretas del carrito. Es el tipo para escalones por cantidad, precios mayoristas y exclusiones por producto. El cliente ve la rebaja en cada línea.
Descuento de pedido. Rebaja el subtotal del pedido en conjunto. Es el tipo para reglas por importe total, por segmento de cliente o por combinación de condiciones que no se atribuyen a un producto en particular.
Descuento de envío. Rebaja o anula el coste de envío según condiciones. Es el tipo para envío gratis por etiqueta de cliente, por mercado o por combinación de productos, más allá del umbral simple que Shopify ya permite.
Cuando el comerciante describe su regla, el desarrollador la traduce a uno o varios de estos tipos, y es útil que esa traducción esté escrita antes de programar nada. Una regla mal descrita produce una Function correcta que hace lo que no se quería.
Escriba la regla en lenguaje llano antes de encargarla
La mayoría de Functions que se rehacen no fallaron por código sino por alcance. "Descuento para mayoristas" no es una regla. "Un 20 % en los productos de la colección Mayorista, para clientes con la etiqueta mayorista, a partir de 10 unidades sumando toda la colección, no combinable con códigos promocionales, solo en el mercado de España" sí lo es. Pida que esa frase conste en el presupuesto y que la Function se pruebe contra ella.
App del App Store o Function a medida
Una Function no se instala sola: vive dentro de una app. El comerciante tiene dos caminos.
Una app del App Store construida sobre Functions. Muchas apps de descuentos por volumen, packs y precios mayoristas se han reescrito sobre Functions después de la retirada de Scripts, y ofrecen una interfaz para configurar reglas sin código. Es la opción correcta cuando su regla es una variante de algo común. Antes de instalar, pregunte al proveedor si el descuento se aplica mediante Functions o modificando el carrito en el tema, porque la segunda vía sigue existiendo y falla con los pagos acelerados. La comparativa de apps de descuento por volumen frente a packs ayuda a decidir.
Una app propia con una Function a medida. Cuando la regla es específica de su negocio, cuando ninguna app la cubre sin forzarla, o cuando ya tiene tres apps de descuentos y quiere reducirlas a una. Un desarrollador crea una app instalada solo en su tienda, con la Function y una pequeña interfaz para que su equipo cambie los parámetros sin volver a llamarle. El servicio de extensiones de checkout y Functions de ByteInfy presupuesta una Function individual entre 1.500 y 3.000 dólares, y los programas de varias reglas en conjunto.
La decisión suele reducirse a una pregunta: cuántas veces al año cambia la regla y quién la cambia. Si la cambia marketing cada campaña, necesita una interfaz, y eso se paga tanto en la app del App Store (como cuota mensual) como en la app propia (como desarrollo inicial). Si la regla es estable, la app propia sale más barata a dos años vista.
Cómo encargar una Function sin pagar de más
Encargar una Function es encargar una regla de negocio, y la mayor parte del coste está en definirla bien.
Antes de pedir presupuesto por una Function de descuento
- La regla escrita en una o dos frases, con todas las condiciones y excepciones
- Tres o cuatro carritos de ejemplo con el resultado esperado en cada uno, incluido uno que no debe recibir descuento
- Qué ocurre si el cliente también tiene un código promocional
- En qué mercados y monedas debe funcionar, si vende con Shopify Markets
- Quién cambiará los parámetros y con qué frecuencia
- Cómo se desactiva en un minuto si algo va mal durante una campaña
- Qué apps de descuento existentes se desinstalan cuando la Function esté en marcha
Los carritos de ejemplo son lo más valioso de esa lista. Sirven para que el desarrollador entienda la regla sin ambigüedad, sirven como pruebas automáticas, y sirven para que usted valide la entrega sin leer código. Una Function que pasa los cuatro carritos acordados está terminada; una que no, no lo está, y no hay discusión posible.
Sobre el alcance, pida explícitamente que la Function se pruebe en el checkout real de una tienda de desarrollo, con Shop Pay activado, y no solo en el carrito. Y pida que la entrega incluya la app en un repositorio al que usted tenga acceso, porque una Function que solo existe en el ordenador del desarrollador es una dependencia, no un activo.
Descuentos y IVA en España y Latinoamérica
Un detalle que afecta a comerciantes en Europa: el descuento se aplica sobre el precio con impuestos incluidos cuando la tienda está configurada para mostrar precios con IVA, que es lo habitual en España para venta a particulares. El importe del descuento que ve el cliente y el que aparece en la factura deben coincidir, y Shopify lo gestiona bien siempre que la configuración de impuestos esté correcta antes de crear la Function.
Para tiendas que venden en varios países con Shopify Markets, conviene decidir si el escalón se define en euros y se convierte, o si se define por mercado. Un umbral de 60 euros convertido a pesos mexicanos da una cifra rara; definirlo como 1.200 pesos en el mercado de México queda más limpio y lo puede leer una Function que conozca el mercado del carrito. Ese es un ejemplo de regla que empieza siendo nativa (envío gratis a partir de un importe) y acaba siendo Function en cuanto hay varios mercados con umbrales propios.
Para el caso concreto de la venta en España, con Bizum, IVA y transportistas, el artículo sobre Shopify en España reúne la configuración completa.
Qué hacer esta semana
Si tiene una tienda Plus que usó Scripts, confirme por escrito que todas las reglas se migraron y pruebe cada una en el checkout. Si tiene apps de descuento instaladas, pregunte a cada proveedor si funcionan sobre Functions y pruebe un pedido con Shop Pay. Si tiene una regla que hoy hace a mano (aplicando códigos a clientes concretos, corrigiendo precios en pedidos), escríbala en una frase y compruebe con la tabla de arriba si es nativa o necesita código.
Y si necesita código, encargue la regla, no la Function: la frase, los carritos de ejemplo y el interruptor de apagado son lo que se compra. El código es la parte fácil.
Frequently asked questions
- ¿Qué son las Shopify Functions?
- Son pequeños programas que Shopify ejecuta dentro de su propia infraestructura en el momento del checkout para personalizar descuentos, opciones de envío, métodos de pago, validación del carrito y transformaciones del carrito como los packs.
- ¿Shopify Scripts sigue funcionando?
- No. Shopify anunció su retirada con antelación y los comerciantes de Shopify Plus que dependían de Scripts tuvieron que migrar sus reglas a Functions.
- ¿Necesito Shopify Plus para usar Functions de descuento?
- No. Las Functions de descuento están disponibles en todos los planes de Shopify.
- ¿Puedo crear una Function sin saber programar?
- No directamente. Una Function se escribe en código y se despliega dentro de una app.
- ¿Cuánto cuesta encargar una Shopify Function de descuento?
- Como referencia, una Function o extensión de checkout individual se presupuesta entre 1.500 y 3.000 dólares en la página de servicios de ByteInfy.
- ¿Los descuentos de Shopify Functions funcionan con Shop Pay y Apple Pay?
- Sí. Esa es una de las razones principales de su existencia.
- ¿Cómo se combinan varios descuentos en Shopify?
- Con las reglas de combinación que Shopify permite definir en cada descuento: si se puede combinar con descuentos de producto, de pedido o de envío. Una Function respeta esas mismas reglas.


Comments