Las fechas ya pasaron. checkout.liquid quedó sin soporte para los pasos de Information, Shipping y Payment, y el 28 de agosto de 2025 se retiró también de las páginas Thank you y Order status. Ese mismo día dejaron de funcionar los script tags del checkout en tiendas Plus; en las demás dejaron de funcionar el 26 de agosto de 2026. Y Shopify Scripts quedó obsoleto el 30 de junio de 2026: los scripts publicados se desactivaron ese día.

La pregunta ya no es cuándo migrar, sino cuáles de las personalizaciones que tenía tu checkout justifican vivir en la superficie más restringida de la tienda.

checkout.liquid no fue reemplazado por otro archivo

No hay un archivo nuevo donde volver a pegar el HTML, el CSS y el JavaScript de antes. Hay un reparto entre capas, cada una con sus reglas, sus límites y su matriz de planes.

  • Shopify Functions. La lógica que reacciona al estado real del carrito, la dirección o el pago. Corre en el servidor.
  • Checkout UI extensions. Lo que el comprador ve o llena, en el navegador y en un espacio acotado.
  • Web pixels. Todo lo que solo mide.
  • Checkout and Accounts Configuration API. Todo lo que solo es apariencia: tipografía, color, forma.

Antes de mover una línea de código, cada personalización heredada debería caer en una de esas cuatro casillas o en una quinta: esto no necesita estar en el checkout.

La validación se mudó al servidor

Es un cambio conceptual, no de sintaxis. Impedir que alguien avanzara con un carrito inválido se hacía desde la interfaz, y ese patrón se retira: el hook useBuyerJourneyIntercept y la capacidad block_progress quedaron obsoletos en la versión 2026-07. Las extensiones existentes siguen funcionando en esa versión y en las anteriores, pero Shopify anuncia que la API se eliminará más adelante.

El reemplazo es la Cart and Checkout Validation Function API, que corre del lado del servidor y aplica la regla en todas las superficies, incluidas las billeteras digitales —Shop Pay, PayPal, Google Pay, Apple Pay— y el checkout agéntico, donde una validación desde la interfaz nunca alcanzaba. Se pueden activar hasta 25 funciones de validación por tienda, y sus errores quedan expuestos en el objeto Cart de la Storefront API: la misma regla se ve en el carrito del tema.

El resto de la familia sigue la misma lógica: ocultar o reordenar métodos de pago es una Payment Customization; hacer lo mismo con envíos, una Delivery Customization; y rechazar códigos de descuento vive ahora en la Discount Function API, con una condición que conviene saber antes de prometerla: solo funciona si la respalda un descuento automático.

La capa visible tiene límites estrictos

Las UI extensions corren en un Web Worker, sin acceso a las APIs del DOM, y el bundle tiene un límite estricto de 64 KB comprimidos. Con Shopify CLI 3.92.0 o superior, cada extensión emite al compilar un metafile de esbuild en su carpeta dist/ para ver qué consume ese presupuesto; en versiones anteriores de la CLI no se genera. En el editor hay además un máximo de tres apps por zona destacada.

El estilo tampoco es libre. Desde la versión 2026-04 la capa de branding es la Checkout and Accounts Configuration API, con tres piezas en lugar de designSystem y customizations: designTokens (paleta de hasta 20 colores, tipografía, radios), components y surfaces, con overrides por superficie. La Checkout Branding API y la Checkout Profile API quedaron obsoletas ahí mismo, pero no se apagaron: checkoutBrandingUpsert sigue operando en 2026-07 y la documentación de estilos todavía la describe, así que una integración en producción tiene margen para moverse. Lo que no cambió: es exclusiva de Shopify Plus, no hay CSS libre ni estilos por página individual, y SVG no es un tipo de imagen soportado. Un diseño que dependía de reglas CSS finas no se migra: se rediseña dentro del sistema de tokens.

Antes de escribir código vale revisar qué resuelve ya la app Checkout Blocks, con una advertencia de plan: en Basic y superiores solo están disponibles los bloques de contenido dinámico y estático, y solo en Thank you y Order status. Las demás funciones de esa app son exclusivas de Shopify Plus.

El autocompletado de dirección pertenece a esta capa porque necesita el campo en vivo. Tiene dos targets: purchase.address-autocomplete.suggest devuelve sugerencias mientras el comprador escribe, y el opcional purchase.address-autocomplete.format-suggestion resuelve la elegida cuando el proveedor manda resultados parciales. Requiere un servicio externo de direcciones, es exclusivo de Shopify Plus y corre en el camino crítico de cada tecleo.

Thank you y Order status no son la misma superficie

Se nombran juntas, pero por dentro son distintas. Las extensiones de la página Thank you usan el target purchase.thank-you y corren cuando el pedido todavía no está creado, aunque su id sí está disponible. Order status usa un target de customer account UI extensions, customer-account.order-status, y ahí el pedido siempre existe. Ninguna UI extension muta un pedido: para eso están las post-purchase extensions, que siguen en beta. Se usan sin restricciones en una tienda de desarrollo, pero para una tienda en producción hay que solicitarle acceso a Shopify.

Lo que depende del plan

No hace falta Plus para personalizar. Desde Basic se pueden usar web pixel extensions, UI extensions en Thank you, Order status y todas las páginas de cuentas de cliente, apps públicas construidas con Shopify Functions y post-purchase extensions, con la solicitud de acceso que exige su beta. Lo exclusivo de Plus son las UI extensions en Information, Shipping y Payment —incluidos los checkouts de borradores de pedido—, las apps personalizadas que contienen Functions y el branding. La personalización por mercado empieza en el plan Advanced.

Migrar temprano no cierra el tema

Si tu checkout se migró en 2024, ya hay deuda nueva. La versión 2025-07 es la última que soporta los componentes de UI basados en React; de 2025-10 en adelante se usan Polaris web components. Nada se eliminó por debajo: una extensión fijada a una versión anterior sigue corriendo ahí. Lo que Shopify documenta es un bloqueo por versión de API y sobre la app completa: después del 1 de octubre de 2026, una app con extensiones de checkout o de cuentas de cliente en 2025-07 o anterior ya no se va a poder actualizar, use React o no. En 2026-04 también quedó obsoleta la propiedad metafields, que se lee con shopify.appMetafields.

La otra deuda no está en el checkout: los script tags del Online Store se retiran aparte, con scriptTagCreate y scriptTagUpdate devolviendo un user error desde el 1 de octubre de 2026 y Shopify dejando de inyectar los existentes el 1 de marzo de 2027. Como no fallan hasta entonces, no se delatan solos: hay que ir a buscarlos.

Cuándo conviene dejar algo fuera del checkout

Todo lo que pongas ahí lo vas a volver a migrar, porque la API avanza por versiones y las capas se mueven, como se movieron entre 2025 y 2026. Y todo lo que agregues compite en la pantalla del pago, con las guías de diseño para apps en checkout encima: total más bajo por defecto, cargos adicionales divulgados e itemizados, opcionales apagados y respuestas de red por debajo del segundo. Una encuesta de atribución, un bloque informativo o una recomendación viven mejor en la página de producto, en el carrito o en las cuentas de cliente, donde el costo de cambio es más bajo.

Si algo puede vivir fuera del checkout sin perder su propósito, sácalo. Se queda solo lo que necesita el estado real del pedido en ese momento exacto.

Por dónde empezar

  • Abrir el reporte de personalizaciones del admin, que agrupa los Scripts que estaban activos por pasarelas de pago, envíos y descuentos de producto, con apps compatibles sugeridas.
  • Listar cada extensión activa con su versión de API. Toda app con extensiones en 2025-07 o anterior deja de poder actualizarse después del 1 de octubre de 2026.
  • Auditar los script tags del Online Store aparte de los del checkout: son deudas distintas, con fechas distintas.
  • Clasificar cada personalización en una de las cinco casillas: Function, UI extension, pixel, branding o fuera del checkout.
  • Probar en una configuración borrador: una tienda tiene una activa y guarda hasta 20 borradores en Basic, Grow y Advanced, y hasta 99 en Plus. Un borrador no recibe tráfico solo; para mostrarlo a parte de los visitantes se usa un rollout.

Preguntas frecuentes

¿Se puede personalizar el checkout de Shopify sin tener Plus?

En parte, sí. Desde el plan Basic se pueden usar web pixel extensions, UI extensions en las páginas Thank you y Order status y en todas las páginas de cuentas de cliente, apps públicas construidas con Shopify Functions y post-purchase extensions, que siguen en beta: se usan sin restricciones en una tienda de desarrollo, pero para correrlas en una tienda en producción hay que solicitarle acceso a Shopify. Personalizar los pasos de Information, Shipping y Payment, usar apps personalizadas que contengan Functions y aplicar el branding del checkout son funciones exclusivas de Shopify Plus. La personalización por mercado está disponible desde el plan Advanced.

¿Puedo impedir que el comprador avance en el checkout si no cumple una regla?

Sí, pero ya no desde la interfaz. El hook useBuyerJourneyIntercept y la capacidad block_progress quedaron obsoletos en la versión 2026-07 de las checkout UI extensions; las extensiones existentes siguen funcionando, pero Shopify anuncia que la API se eliminará más adelante. La validación se hace con una Cart and Checkout Validation Function, que corre del lado del servidor y aplica la regla en todas las superficies, incluidas las billeteras digitales como Shop Pay, PayPal, Google Pay y Apple Pay, y el checkout agéntico. Se pueden activar hasta 25 funciones de validación por tienda.

¿Puedo agregar CSS o JavaScript propio al checkout de Shopify?

JavaScript propio sí, pero solo dentro de una checkout UI extension y con sus reglas: corre en un Web Worker, sin acceso a las APIs del DOM, y el bundle tiene un límite estricto de 64 KB comprimidos. Lo que no hay es inyección de scripts ni CSS libre. La apariencia se controla con la Checkout and Accounts Configuration API, que desde la versión 2026-04 reemplaza a la Checkout Branding API y a la Checkout Profile API; ambas quedaron obsoletas, aunque checkoutBrandingUpsert todavía funciona. Es exclusiva de Shopify Plus, opera con designTokens, components y surfaces, no permite estilos por página individual y no acepta imágenes SVG.

¿Qué pasa con los script tags de mi Online Store?

También se retiran, en fechas distintas a las del checkout. Desde el 1 de octubre de 2026 las mutaciones scriptTagCreate y scriptTagUpdate devuelven un user error, aunque los tags existentes siguen ejecutándose, y el 1 de marzo de 2027 Shopify deja de inyectarlos en los storefronts. El reemplazo general es un app embed block dentro de una theme app extension; si el script solo recolecta datos de analítica o conversión, el reemplazo es un web pixel. Conviene auditar esta deuda por separado de la migración del checkout.