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

# Motor de reglas

> Define políticas de edición por pedido con el motor de reglas de Revize. Haz coincidir pedidos por etiquetas, cliente, metafields, valor, destino y más, y luego controla la fecha límite de edición y aplica acciones como retenciones de fulfillment, módulos ocultos y etiquetas. Disponible en el plan Pro y superiores.

<Note>
  Una única ventana de edición para toda la tienda obliga a hacer concesiones. El **motor de reglas** te permite definir una política de edición distinta por pedido: los pre-order se mantienen abiertos durante semanas, los pedidos en stock se bloquean en minutos, los VIP obtienen tiempo extra y los destinos de alto riesgo quedan bloqueados. Tienes control total, pedido por pedido.
</Note>

<img src="https://mintcdn.com/revize/2ZAgm5LwWDuufjKV/images/features/rules-engine.png?fit=max&auto=format&n=2ZAgm5LwWDuufjKV&q=85&s=b2d1814133fd27e18676ccdfe374775f" alt="El editor del motor de reglas: condiciones y fecha límite de edición" style={{ borderRadius: "12px", width: "100%", boxShadow: "0 4px 14px rgba(0,0,0,0.08)" }} title="Crea una regla: define las condiciones que deben cumplir los pedidos y luego la fecha límite de edición para esos pedidos" width="1536" height="1024" data-path="images/features/rules-engine.png" />

## Por qué ayuda un motor de reglas

<CardGroup cols={2}>
  <Card title="Control total, por pedido" icon="sliders" color="#6366F1">
    En lugar de una sola ventana para toda la tienda, da a cada tipo de pedido la política de edición exacta que necesita.
  </Card>

  <Card title="Protege el fulfillment" icon="shield-halved" color="#ec4899">
    Bloquea la edición rápido en pedidos en stock, o retén el fulfillment mientras un pedido sigue siendo editable, para que nada se envíe a mitad de un cambio.
  </Card>

  <Card title="Recompensa a los clientes correctos" icon="star" color="#f59e0b">
    Da a los VIP o a las cuentas mayoristas una ventana de edición más larga sin abrirla para todo el mundo.
  </Card>

  <Card title="Pensado para catálogos mixtos" icon="layer-group" color="#10b981">
    Pre-order más en stock, suscripción más compra única, B2B más retail. Cada segmento tiene su propia fecha límite y comportamiento.
  </Card>
</CardGroup>

## Cómo funciona una regla

Una regla tiene tres partes. Defines cuándo se aplica, cuánto tiempo permanece abierta la edición y qué más debe ocurrir.

<Steps>
  <Step title="Condiciones: cuándo se aplica la regla">
    Elige qué debe cumplir un pedido: etiquetas, cliente, metafields, valor, destino y más. Combina condiciones con lógica AND/OR.
  </Step>

  <Step title="Fecha límite de edición: cuánto tiempo permanece abierta la edición">
    Elige la fecha límite para los pedidos que coincidan: el valor por defecto de la tienda, una duración fija, un corte programado, una hora concreta, una fecha tomada de un metafield, o hasta que el pedido se cumpla.
  </Step>

  <Step title="Acciones: qué más ocurre">
    Opcionalmente, retén el fulfillment, oculta módulos de edición concretos, aplica etiquetas o desactiva la edición por completo para los pedidos que coincidan.
  </Step>
</Steps>

Las reglas se ejecutan en orden de prioridad y gana la primera coincidencia. Cualquier pedido que no coincida con ninguna regla recurre a tu [ventana de edición de toda la tienda](/es/setup/edit-window), así que puedes implementar reglas de forma gradual sin ninguna migración.

## Condiciones

Añade una o más condiciones para decidir a qué pedidos se aplica una regla. La regla coincide cuando las condiciones se evalúan como verdaderas para el pedido.

| Condición                 | Qué evalúa                                                        | Operadores                             | Valor de ejemplo                                          |
| ------------------------- | ----------------------------------------------------------------- | -------------------------------------- | --------------------------------------------------------- |
| **Etiquetas del pedido**  | Etiquetas del pedido                                              | is, is not, contains, does not contain | `pre-order`, `in-stock`                                   |
| **Etiquetas del cliente** | Etiquetas del cliente del pedido                                  | is, is not, contains, does not contain | `vip`, `wholesale`                                        |
| **Metafield**             | Un metafield del pedido por namespace y key                       | exists, equals                         | namespace `custom`, key `process_date`, valor `red`       |
| **Valor del pedido**      | El total del pedido                                               | is greater than, is less than          | `150` (un número, en la moneda de tu tienda)              |
| **País de destino**       | El país de envío                                                  | is                                     | códigos ISO como `us`, `ca`, `gb`                         |
| **Método de envío**       | El método de envío elegido en el checkout                         | is, is not, contains, does not contain | `Standard`, `Express`                                     |
| **Pedidos B2B**           | Pedidos realizados por una empresa B2B                            | is true                                | sin valor                                                 |
| **Suscripción**           | Pedidos de suscripción recurrente (Skio, Recharge y similares)    | is true                                | sin valor                                                 |
| **Recogida**              | Pedidos de recogida local                                         | is true                                | sin valor                                                 |
| **Canal de venta**        | El canal de venta del pedido                                      | is                                     | `web`, `pos`, `draft_order`                               |
| **Días de la semana**     | Pedidos realizados en días concretos                              | is                                     | `Mon`, `Tue`, `Fri`                                       |
| **Franja horaria**        | Pedidos realizados en horas concretas (zona horaria de la tienda) | between                                | `18:00` a `06:00` (formato 24 horas, cruza la medianoche) |

<Info>
  **Agrupa tu lógica.** Combina condiciones con **AND** (deben cumplirse todas) u **OR** (basta con que se cumpla una). Para reglas más complejas, añade grupos de condiciones y define cómo se combinan los grupos, de modo que puedas expresar cosas como "(cliente VIP) OR (pedido superior a 500 AND envío a Alemania)".
</Info>

<Note>
  **Los valores son texto libre cuando tiene sentido.** Las etiquetas, los métodos de envío y los valores de metafield se introducen tal como los escribes (las etiquetas y los países como chips). Los valores de país y de canal de venta se comparan sin distinguir mayúsculas y minúsculas. No existe una condición de producto o SKU; para segmentar productos concretos, etiqueta esos pedidos (por ejemplo con Shopify Flow) y haz coincidir la etiqueta del pedido.
</Note>

## Fecha límite de edición

La fecha límite controla cuánto tiempo permanecen editables los pedidos que coincidan.

| Modo                      | Qué hace                                                                                                                                             | Buffer |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ------ |
| **Store default**         | Usa la ventana de edición de toda la tienda. Sin override por regla.                                                                                 | No     |
| **After a duration**      | Editable durante un tiempo fijo tras realizarse el pedido. Preajustes: 15 minutos, 30 minutos, 1 hora, 24 horas, 48 horas, o un valor personalizado. | No     |
| **Scheduled cutoff**      | Uno o más cortes por día de la semana y hora (por ejemplo, todos los viernes a las 17:00).                                                           | Sí     |
| **Specific time**         | Un corte fijo de reloj, diario o en un día de la semana elegido.                                                                                     | Sí     |
| **From a metafield date** | Lee la fecha límite desde un metafield del pedido. Lo usan tiendas de pre-order donde Shopify Flow define la fecha de envío por pedido.              | Sí     |
| **Until fulfilled**       | La edición permanece abierta hasta que Shopify marca el pedido como cumplido.                                                                        | No     |

<Info>
  **Buffer.** Las fechas límite de tipo scheduled cutoff, specific time y from-a-metafield-date admiten un buffer: un tramo de tiempo antes de la fecha límite nominal en el que la edición ya está cerrada. Para un corte de viernes a las 17:00 con un buffer de 2 horas, la edición se cierra a las 15:00, así que un pedido realizado en cualquier momento entre las 15:01 y las 16:59 encuentra la edición ya cerrada, en lugar de recibir una ventana más corta. Define un valor de buffer y una unidad: minutos, horas o días.
</Info>

<Note>
  **Qué debe contener el metafield (From a metafield date).** Introduces el namespace del metafield (por ejemplo `custom`) y la key (por ejemplo `process_date`). El metafield en sí debe contener una fecha o fecha y hora: un metafield de Shopify de tipo **date** o **date and time**, un datetime ISO 8601 (`2026-07-15T17:00:00Z`), una fecha simple (`2026-07-15`), o una marca de tiempo Unix; todos funcionan. Las fechas sin zona horaria se leen en la zona horaria de tu tienda.
</Note>

## Acciones

Las acciones son efectos secundarios opcionales que se ejecutan para los pedidos que coinciden con una regla. Cada una es un simple interruptor on/off.

<img src="https://mintcdn.com/revize/2ZAgm5LwWDuufjKV/images/setup/rules-engine-actions.png?fit=max&auto=format&n=2ZAgm5LwWDuufjKV&q=85&s=4d3cce8f672c393cd029e6391c2941d5" alt="Acciones del motor de reglas: etiquetar pedidos, retener fulfillment, ocultar módulos, desactivar edición" style={{ borderRadius: "12px", width: "100%", boxShadow: "0 4px 14px rgba(0,0,0,0.08)" }} title="Acciones para pedidos que coinciden: etiquetar pedidos, retener fulfillment, ocultar módulos o desactivar la edición" width="1536" height="1024" data-path="images/setup/rules-engine-actions.png" />

<AccordionGroup>
  <Accordion title="Etiquetar pedidos" icon="tag">
    Aplica una o más etiquetas al pedido cuando se cierra su fecha límite de edición, no cuando la regla coincide por primera vez. Útil para automatizaciones posteriores, por ejemplo etiquetar pedidos en cuanto se cierra la edición para que Shopify Flow o tu 3PL puedan actuar sobre ellos.
  </Accordion>

  <Accordion title="Retener fulfillment" icon="hand">
    Coloca una retención de fulfillment de Shopify mientras el pedido sigue siendo editable, para que no se envíe a mitad de un cambio. La retención se libera cuando pasa la fecha límite de edición.
  </Accordion>

  <Accordion title="Ocultar módulos" icon="eye-slash">
    Oculta acciones de edición concretas del Customer Portal para los pedidos que coincidan. Elige entre: Add products, Replace products, Change variant or quantity, Edit shipping address, Edit contact information, Upgrade shipping method, Download tax invoice, Apply discounts, Cancel order, Contact customer support, Add preferred delivery date, Add custom note.
  </Accordion>

  <Accordion title="Desactivar edición" icon="lock">
    Desactiva la edición por completo para los pedidos que coincidan. La sección de edición del portal no se muestra, sea cual sea la fecha límite.
  </Accordion>
</AccordionGroup>

<Note>
  Un par de restricciones naturales mantienen las reglas coherentes: **Disable editing** y **Hold fulfillment** no pueden estar activas a la vez (un pedido con la edición desactivada no tiene nada que retener), y la fecha límite **Until fulfilled** desactiva Hold fulfillment y Tag orders, ya que esas acciones dependen de un corte basado en tiempo.
</Note>

## Prioridad y fallback

* **Gana la primera coincidencia.** Las reglas se ejecutan en orden de prioridad, de arriba a abajo. Se aplica la primera regla cuyas condiciones coinciden con un pedido, y el resto se omiten.
* **Arrastra para reordenar.** Reordena las reglas en la página de listado para cambiar su prioridad. Coloca tus reglas más específicas por encima de las más generales.
* **Fallback al valor por defecto de la tienda.** Cualquier pedido que no coincida con ninguna regla usa tu [ventana de edición de toda la tienda](/es/setup/edit-window). Puedes añadir reglas de forma incremental sin tocar tu valor por defecto.

## Cómo se evalúan las reglas

* **Se evalúan cuando se realiza el pedido.** Revize toma una instantánea del pedido (etiquetas, cliente, metafields, valor, destino y más) y elige la regla que coincide.
* **Compatible con Flow.** Shopify Flow suele escribir etiquetas o metafields un momento después del checkout. Revize espera hasta un minuto por esos datos de llegada tardía y vuelve a evaluar, así que esos pedidos siguen coincidiendo con la regla correcta.
* **Dos cosas siguen siendo dinámicas después del checkout:**
  * **Las fechas límite basadas en metafield se mueven con la fecha.** Si una regla lee su fecha límite desde un metafield y esa fecha cambia (por ejemplo, una fecha de envío de pre-order que se retrasa), la fecha límite se mueve con ella.
  * **Las reglas basadas en etiquetas se vuelven a evaluar cuando cambian las etiquetas.** Si una regla coincide por etiquetas del pedido o del cliente y esas etiquetas se añaden o se quitan más tarde (por Shopify Flow, una app o tu equipo), Revize vuelve a evaluar y puede aplicar una regla distinta, actualizando la fecha límite.
* **Las ediciones del cliente no la vuelven a activar.** Un cliente que edita su propio pedido (dirección, artículos, cantidad, valor) nunca cambia qué regla se aplica ni mueve la fecha límite. Solo los inputs de regla anteriores (etiquetas y metafields referenciados por la regla) impulsan la reevaluación.

## Reglas de ejemplo

Cinco configuraciones que los comerciantes usan hoy:

| Escenario                              | Condición                       | Fecha límite de edición                 | Acciones        |
| -------------------------------------- | ------------------------------- | --------------------------------------- | --------------- |
| **Tienda de pre-order**                | Etiqueta del pedido `pre-order` | Until fulfilled                         | Ninguna         |
| **Diferenciación VIP**                 | Etiqueta del cliente `vip`      | After a duration, 48 horas              | Ninguna         |
| **Corte de fin de jornada B2B**        | Pedidos B2B                     | Scheduled cutoff, días laborables 17:00 | Ninguna         |
| **Bloqueo de destinos de alto riesgo** | Destino es `ru` o `by`          | Store default                           | Disable editing |
| **SKU en stock de envío rápido**       | Etiqueta del pedido `in-stock`  | After a duration, 30 minutos            | Ninguna         |

## Crea una regla

<Steps>
  <Step title="Abre el motor de reglas">
    En la app Revize, ve a **Order Editing → Rules**. En el plan Pro y superiores verás la lista de reglas; la primera vez, se muestra un estado vacío con **Create rule**.
  </Step>

  <Step title="Nombra la regla y define su estado">
    Da a la regla un nombre claro (por ejemplo "VIP Customers") y define su estado como **Active** cuando estés listo para que se aplique.
  </Step>

  <Step title="Añade condiciones">
    Haz clic en **Add condition** para elegir qué pedidos coinciden. Añade más condiciones o un **Add condition group** para lógica más compleja, y define AND/OR.
  </Step>

  <Step title="Elige la fecha límite de edición">
    Elige un modo de fecha límite. Para **After a duration**, elige un preajuste o define un valor personalizado. Para los modos scheduled, specific-time o metafield-date, define el corte y un buffer opcional.
  </Step>

  <Step title="Define acciones">
    Opcionalmente, activa Tag orders, Hold fulfillment, Hide modules o Disable editing.
  </Step>

  <Step title="Guarda y prioriza">
    Guarda la regla. De vuelta en la lista, arrastra las reglas para ordenarlas por prioridad de modo que las más específicas queden por encima de las más generales.
  </Step>
</Steps>

<Tip>
  Ordena tus reglas de más específica a más general. Una regla estrecha como "bloqueo de destinos de alto riesgo" debe quedar por encima de una regla amplia como "todos los pedidos editables durante 24 horas", para que gane la política específica.
</Tip>

***

## Preguntas frecuentes

<AccordionGroup>
  <Accordion title="¿Qué plan incluye el motor de reglas?" icon="circle-question">
    El motor de reglas está disponible en el **plan Pro y superiores**. En otros planes, todos los pedidos usan tu ventana de edición de toda la tienda.
  </Accordion>

  <Accordion title="¿Qué ocurre con los pedidos que no coinciden con ninguna regla?" icon="shuffle">
    Recurren a tu [ventana de edición de toda la tienda](/es/setup/edit-window). Las reglas solo sobrescriben el valor por defecto para los pedidos que coinciden, así que la adopción es incremental y sin ninguna migración.
  </Accordion>

  <Accordion title="Si un pedido coincide con más de una regla, ¿cuál gana?" icon="list-ol">
    Gana la primera coincidencia. Las reglas se evalúan en orden de prioridad (de arriba a abajo), y solo se aplica la primera regla cuyas condiciones coinciden. Arrastra las reglas para reordenar su prioridad.
  </Accordion>

  <Accordion title="¿Las reglas se vuelven a aplicar si un cliente edita su pedido?" icon="lock">
    No. Un cliente que edita su propio pedido (dirección, artículos, cantidad, valor) no cambia qué regla se aplica ni mueve la fecha límite. Revize sí vuelve a evaluar cuando cambian los inputs de los que depende una regla: etiquetas del pedido, etiquetas del cliente, o un metafield que la regla lee. Así, una fecha límite basada en metafield se mueve si la fecha cambia, y una regla basada en etiquetas vuelve a coincidir si cambian las etiquetas del pedido.
  </Accordion>

  <Accordion title="¿Las reglas se aplican a pedidos realizados antes de crear la regla?" icon="clock-rotate-left">
    No. Las reglas se aplican a los pedidos nuevos realizados después de activar la regla. Los pedidos existentes mantienen la fecha límite que ya tenían.
  </Accordion>

  <Accordion title="¿Puedo hacer coincidir por un producto o SKU concreto?" icon="box">
    No directamente. No existe una condición de producto o SKU. Haz coincidir por etiquetas del pedido en su lugar (por ejemplo, etiqueta los SKU en stock en el checkout con Shopify Flow y luego haz coincidir la etiqueta del pedido `in-stock`).
  </Accordion>

  <Accordion title="¿Se respetan las etiquetas tardías de Shopify Flow?" icon="bolt">
    Sí. Revize espera hasta un minuto después del checkout a que Shopify Flow escriba etiquetas o metafields, y luego evalúa, así que las reglas que dependen de esos datos siguen coincidiendo.
  </Accordion>
</AccordionGroup>

<Note>
  El motor de reglas convierte una única ventana de toda la tienda en un motor de políticas completo: haz coincidir pedidos por las condiciones que te importan, define la fecha límite de edición correcta para cada uno, y añade retenciones, módulos ocultos y etiquetas. Tú decides exactamente cómo se comporta cada pedido.
</Note>

## Funciones relacionadas de Revize

* [Ventana de edición de pedidos](/es/setup/edit-window): el valor por defecto de toda la tienda que las reglas sobrescriben, y el fallback para pedidos que no coinciden
* [Restricciones de edición de pedidos](/es/setup/order-edit-restrictions): límites adicionales sobre lo que los clientes pueden editar
* [Portal del cliente](/es/features/customer-portal): donde los clientes hacen las ediciones que tus reglas gobiernan
