> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appreval.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cajas: bundles armados por el cliente

> Creá cajas dinámicas o estáticas: el cliente elige qué recibe en cada entrega desde un armador en tu tienda, con tamaños, descuentos por volumen y upsells.

Una **caja** es una suscripción donde el cliente elige qué recibe en cada entrega. La creás en **Reval → Cajas**, se publica como un **producto real de tu tienda**, y el botón de compra de esa página lleva a un **armador**: una pantalla dentro de tu tema donde el cliente llena su caja, ve el precio en vivo y sigue al checkout. Las cajas se venden **solo por suscripción** — no hay compra única de una caja.

<Note>
  La primera vez que entres después de esta actualización, Shopify te va a pedir **re-aprobar los permisos de la app**: Reval ahora necesita crear y publicar productos para poder sincronizar cada caja como un producto de tu tienda.
</Note>

## Los dos tipos de caja

|                    | **Dinámica**                                                                      | **Estática**                                                |
| ------------------ | --------------------------------------------------------------------------------- | ----------------------------------------------------------- |
| **Precio**         | La suma de lo que el cliente elige, a precio de plan                              | Fijo por tamaño de caja — lo que ponga adentro no lo cambia |
| **Descuentos**     | El % del plan «Caja dinámica», más descuentos opcionales por tamaño o por volumen | El precio del tamaño ya es la oferta                        |
| **Planes que usa** | De tipo **«Caja dinámica»** (se crean en [Planes](/merchant/planes))              | Planes estándar («Suscribí y Ahorrá»)                       |
| **Tamaño**         | Rango libre (mín/máx), tamaños predefinidos o único                               | Tamaños predefinidos o único, cada uno con su precio        |

***

## Crear una caja

La pantalla es un formulario en cinco pasos. Una caja **solo se guarda completa** y lista para la venta — si falta algo, el checklist final te dice exactamente qué.

<Steps>
  <Step title="Tipo y plan">
    Elegí el **tipo de caja** y tildá los **planes de suscripción** sobre los que se vende. Una caja estática solo lista planes estándar; una dinámica, solo planes de tipo «Caja dinámica». Con más de un plan tildado, el cliente elige la frecuencia en el armador (la primera de la lista es la inicial). Los planes de una caja deben tener **frecuencias distintas**.
  </Step>

  <Step title="Nombre y producto en la tienda">
    El **nombre** es el título del producto en Shopify y la base de la URL del armador. Podés sumar una descripción y la URL de una imagen (subila en Shopify → Contenido → Archivos y pegá el link). La imagen se sube a Shopify **solo en la primera sincronización**: para cambiarla después, editá el producto en Shopify.
  </Step>

  <Step title="Tamaño y precio">
    * **Rango libre** (solo dinámicas): mínimo y máximo de productos.
    * **Varios tamaños predefinidos** o **un único tamaño exacto**: cada tamaño define su cantidad de productos y — en estáticas — su **precio fijo**, o — en dinámicas — un **descuento opcional** (porcentaje o monto fijo).
    * **Descuentos por volumen** (solo dinámicas, opcional): niveles que se activan por cantidad de productos o por monto de la caja. El cliente ve en vivo cuánto le falta para el próximo nivel; si alcanza varios, se aplica el que más le convenga, y un descuento fijado a un tamaño tiene prioridad sobre los niveles.
  </Step>

  <Step title="Productos">
    * **Elegibles para la caja**: lo que el cliente puede poner adentro (puede repetir el mismo producto). Al elegir un producto entran todas sus variantes; quitá las que no correspondan.
    * **Compras únicas (upsells)**: se ofrecen al final del armado y se cobran una sola vez — no entran en el precio recurrente. Recomendamos entre 3 y 5 para no abrumar.
  </Step>

  <Step title="Presentación (opcional)">
    Por defecto usamos nuestros textos. Podés reemplazar el título, el subtítulo, el título en el portal del cliente, el del paso de upsells y el del descuento. Dos opciones más: **mostrar cada variante como tarjeta separada** (útil cuando las variantes son sabores que se comparan entre sí) y **ocultar el precio individual** de los productos dentro de la caja (se muestra solo el total).
  </Step>
</Steps>

Al tocar **Crear caja**, el producto se crea y publica en Shopify automáticamente. Si la sincronización falla, la caja queda guardada y la completás con el botón **Publicar en Shopify** (o **Reintentar sincronización**, si el producto ya existía).

<Note>
  Un producto elegible **no necesita plan propio** para venderse dentro de una caja. En la **estática** se muestra a precio de lista y la plata vive en el precio del tamaño; en la **dinámica**, todo elegible se cotiza al precio de lista vigente menos el % del plan «Caja dinámica» — no hace falta crearle precios por frecuencia.
</Note>

***

## El armador en tu tienda

Cada caja tiene su URL: **`/apps/subscriptions/caja/<handle>`** (la ves en la tarjeta de la caja). En la página del producto, el bloque de Reval reemplaza al widget de suscripción y al «Agregar al carrito» por un único botón — configurable en el tema, por defecto **«Armá tu caja»**.

Lo que ve el cliente en el armador:

* **Frecuencia** (si la caja se vende en más de un plan) y **tamaño** como grillas de opciones.
* La grilla de productos elegibles con selector de variante, precio por unidad (con el precio de lista tachado cuando el plan descuenta) y controles **− / +**. Las variantes sin stock aparecen deshabilitadas.
* El resumen **«Tu caja»**: subtotal, **Descuento suscripción**, el descuento de la caja, total, la barra de progreso hacia el próximo nivel («Agregá 2 más y llevate 10% off») y el ahorro total. En mobile queda fijo abajo.
* Si la caja tiene upsells, un paso final: **«¿Querés agregar algo por única vez?»**.

El checkout muestra la caja con su nombre e imagen y el detalle de contenidos debajo, y **revalida todo del lado del servidor** — elegibilidad, tamaño y precios. Si algo cambió (una frecuencia dada de baja, un producto que dejó de estar disponible), el cliente vuelve al armador con un aviso claro en lugar de un error.

***

## La caja como producto en Shopify

* Caja **estática**: una variante real por tamaño (opción **«Tamaño»**, valores como «6 productos»), cada una con el precio del tamaño.
* Caja **dinámica**: una única variante con un precio «desde» estimado, para que las tarjetas de colección no muestren \$0.
* Las variantes de caja se crean **sin seguimiento de inventario** — una caja nunca bloquea su propio pedido; el stock lo controlan los productos de adentro.
* **Archivar** una caja pasa el producto a borrador en Shopify y la saca de la venta. Las suscripciones existentes siguen activas.

### Los pedidos de una caja

* Caja estática: el pedido lleva **la línea de la caja a su precio** más una línea en \$0 por cada contenido — esa es la lista de picking, y esos SKUs son los que descuentan inventario.
* Caja dinámica: los contenidos con sus precios más una **línea en \$0 con la identidad de la caja**, para que el pedido muestre el nombre y la imagen de la caja y no el primer producto de adentro.
* El stock se maneja con tu [política de inventario](/merchant/configuracion), con un matiz: **la caja estática es todo-o-nada**. Con «Solo pedir los productos con stock», una estática con un faltante directamente no genera el pedido de ese ciclo — un cliente nunca paga la caja entera y recibe una incompleta — mientras que en una dinámica solo se quitan las líneas sin stock. Con «Reintentar al día siguiente», cualquier faltante difiere el pedido completo en ambos tipos; con backorder (el default) el pedido sale completo igual. Los productos adicionales fuera de la caja mantienen siempre el comportamiento por línea.

***

## Qué puede hacer el suscriptor

Desde su portal, el cliente edita la composición con **«Editar mi caja»**: cambia cantidades, agrega o quita productos, cambia el tamaño, y ve el total proyectado en vivo. Los cambios rigen **desde la próxima entrega**. También puede sumar **productos adicionales** recurrentes por fuera de la caja (misma frecuencia, a precio de plan — no cuentan para el tamaño ni los descuentos). El paso a paso está en [Gestionar tu suscripción](/suscriptor/gestionar-suscripcion).

Dos comportamientos para tener presentes:

* **Ventana de facturación**: en las 24 horas previas al próximo cobro el portal bloquea la edición de la caja («Tu próxima entrega ya está en preparación»). **Vos no tenés ese límite**: desde el [detalle de la suscripción](/merchant/suscripciones) podés editar la composición igual — el cambio rige desde el próximo ciclo, nunca sobre un cobro en proceso.
* **Productos discontinuados**: si sacás un producto de la caja, quien ya lo tenía **lo conserva** (lo ve como «Ya no se ofrece — podés conservarlo»: puede bajarle la cantidad o quitarlo, no aumentarlo ni re-agregarlo). Si en cambio **eliminás la variante en Shopify**, se quita de las cajas al guardar y los pedidos afectados salen con la etiqueta **`Producto eliminado`** — por eso conviene **migrar a los suscriptores antes de eliminar una variante**.

***

## Limitaciones

* Los planes de una caja deben tener **frecuencias distintas** — el cliente elige por frecuencia.
* Una suscripción contiene **una sola caja**; dos cajas son dos suscripciones.
* No hay **compra única** de una caja: es siempre una suscripción.
* La **imagen** se sincroniza a Shopify solo la primera vez; después se cambia desde Shopify.
* Si más adelante quitás de la caja el plan con el que un cliente se suscribió, ese cliente **deja de poder editar su composición** (su cobro sigue igual).
