> ## 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.

# Full Reval configuration in your Shopify store

> Choose the app language, connect Mercado Pago, define the checkout fields, the order and inventory rules, the portal banner and the Klaviyo and Shopify Flow integrations.

Go to **Reval → Settings** in your Shopify admin. The screen has seven blocks —Language, Mercado Pago, checkout, orders and inventory, portal banner, Klaviyo / Shopify Flow and [Google Tag Manager](/en/merchant/analytics)— and a save button at the end: changes apply as soon as you save.

<Warning>
  Reval always works with Mercado Pago **production credentials**. There's no sandbox mode and no environment selector: testing is done with a real card and a small amount, which you then refund from the MP panel. Mercado Pago's test cards don't work with production credentials.
</Warning>

***

## Language

Reval runs in **one language per store**: Spanish (the default) or Portuguese. The selector switches the whole app at once —the admin, the checkout, the customer portal and the box builder— and the change takes effect on save, with nothing to reinstall.

* **The texts you write yourself are not translated**: plan names, box copy, buy box benefits. Write them in the language you chose.
* On install, Reval **detects your store's language** and starts in it (a Portuguese store starts in Portuguese; everything else, in Spanish). Detection runs only once: if you later change the language by hand, nothing overwrites your choice.

***

## Integrations — Mercado Pago

This is the first thing to fill in: without credentials, the subscription checkout doesn't work.

<Note>
  **There is no OAuth connection.** Credentials are copied from your Mercado Pago panel and pasted here. They're stored encrypted in your store's configuration, and neither the access token nor the webhook secret is shown back to you once saved.
</Note>

The three values you need, all from your production application in the MP developer panel:

| Field              | Where to get it                                          |
| ------------------ | -------------------------------------------------------- |
| **Public key**     | Production credentials                                   |
| **Access token**   | Production credentials                                   |
| **Webhook secret** | The *secret key* MP shows when you configure the webhook |

After saving, use **Test connection**. If everything is fine you'll see your Mercado Pago account name. If a name that isn't yours appears, the token is wrong: stop and check it before going any further.

<Tip>
  The account name the test returns is the best verification you have. A token from another account doesn't throw an error — it would simply charge into the wrong account.
</Tip>

***

## Checkout

Reval uses its own checkout, so Shopify's native checkout field configuration doesn't apply. These controls replicate it:

| Option                          | What it does                                 |
| ------------------------------- | -------------------------------------------- |
| **Show the marketing checkbox** | Shows or hides the communications opt-in     |
| **Pre-tick the checkbox**       | Unticked by default                          |
| **Require name**                | Most carriers need it for the shipping label |
| **Company**                     | Hidden, optional or required                 |
| **Apartment / floor**           | Hidden, optional or required                 |
| **Phone**                       | Hidden, optional or required                 |

The defaults reproduce the checkout's current behavior, so if you don't touch anything, nothing changes.

<Note>
  The checkout also adapts on its own to your store's market, based on its currency. In stores in **Chilean pesos (CLP)** it asks for the ID document (**RUT** — it accepts the everyday format, `12.345.678-K`), the address selector offers Chile's 16 regions, and all amounts are charged and billed in **whole pesos**, with no decimals. In **Brazilian reais (BRL)** it asks for a **CPF or CNPJ** —with check-digit validation, to catch a typo before the payment is attempted—, the address gains the Brazilian fields (**bairro**, and the street **número** in its own box) with the postal code in **CEP** format (`00000-000`), and the selector offers Brazil's states. In ARS it asks for DNI/CUIT as always. None of this needs configuring.
</Note>

***

## Orders and inventory

### Generation limits

**Maximum orders per subscription per day.** A safety cap against generating extra orders for the same subscription. Setting 0 leaves it unlimited. It doesn't affect Mercado Pago's automatic charges: those are idempotent per payment, and stopping them would mean losing orders that were already paid for.

**Maximum new subscriptions per customer per day.** An anti-abuse control at checkout, for the pattern of opening several discounted subscriptions on the same day and cancelling them before the second charge. It counts every subscription created in the last 24 hours, including cancelled ones. Setting 0 leaves it unlimited.

### Out-of-stock products

What to do when it's time to create the cycle's order and stock is missing. **The customer has already been charged by Mercado Pago**, so there's no consequence-free option:

| Option                                  | What happens                                                                                                                             |
| --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| **Create the order anyway (backorder)** | It's created with everything. This is the default                                                                                        |
| **Only order the products in stock**    | It's created with what's available. There may be a difference left to refund by hand, and if nothing is in stock the order isn't created |
| **Retry the next day**                  | It's deferred and stock is checked daily until it can be created                                                                         |

<Note>
  The retry option has an attempt cap, after which the cycle is marked as exhausted and stops being retried. You can see this in the subscription detail.
</Note>

**Show out-of-stock products** controls whether sold-out variants appear in the portal's add-on list and in the product-swap selectors.

<Note>
  Which products are offered as add-ons and which can be swapped into or added to a subscription isn't defined here but per product, in [Products](/en/merchant/products).
</Note>

***

### Allow skipping the next delivery

Adds a **"Skip"** button to the customer portal: it omits one delivery without cancelling or pausing the subscription, designed for the customer who has built up product and would otherwise cancel. It's **off** by default.

Before turning it on it's worth knowing how it works under the hood, because it has a visible consequence:

|                            |                                                                                                                                                                                                                            |
| -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **What the customer sees** | A "Skip" button next to "Pause", with a confirmation telling them which delivery is skipped and when the next one falls                                                                                                    |
| **What Reval does**        | Mercado Pago doesn't allow omitting a charge, so the debit is **paused and automatically reactivated** one cycle later. Same subscription: same price, same products, same card, same history                              |
| **The small print**        | The date of the subsequent charge is decided by Mercado Pago when it reactivates the mandate. It may shift from the promised one; Reval reads the real date and updates the portal. **The skipped cycle is never charged** |
| **In the admin**           | The subscription still shows as **Active** —skipping isn't pausing or cancelling, and it doesn't count as churn in the panel— with a notice in its detail saying a skip is in progress and when it reactivates on its own  |

<Note>
  Only **one** delivery can be skipped at a time, and —just like pausing and cancelling— the option doesn't appear until the customer completes their plan's **minimum delivery commitment**, if the plan has one. While the skip is in progress the customer sees **"Cancel skip"**, which puts them back on the normal schedule.
</Note>

<Note>
  The skip emits the **"Cycle skipped"** event (not "Subscription paused"), so your winback flows don't chase someone who just had product to spare.
</Note>

***

## Portal banner

An image shown in the portal, above the subscription cards and inside each one. It's designed so that all the text and the call to action come **inside the image** — Reval doesn't overlay text on top.

| Field                 | Detail                                                       |
| --------------------- | ------------------------------------------------------------ |
| **Enable banner**     | Master toggle                                                |
| **Desktop image**     | https URL, roughly 3:1 aspect ratio                          |
| **Mobile image**      | Optional; if you don't upload one, the desktop image is used |
| **Link**              | Optional destination on click                                |
| **Open in a new tab** | For the link above                                           |

***

## Integrations — Klaviyo

Reval can emit the subscription lifecycle events so you can build welcome, recovery or winback flows. The fourteen that are sent:

**Subscription created** · **Subscription charge** · **Failed charge** · **Upcoming renewal** · **Product out of stock in subscription** · **Product available again** · **Product deleted in subscription** · **Subscription paused** · **Subscription resumed** · **Subscription cancelled** · **Subscription ended** · **Payment method updated** · **Surprise applied** · **Cycle skipped**

<Note>
  Inside Klaviyo the metric names appear in **Spanish** — they are stable strings the app emits («Suscripción creada», «Cobro de suscripción», «Cobro fallido», «Renovación próxima», «Producto sin stock en suscripción», «Producto disponible nuevamente», «Producto eliminado en suscripción», «Suscripción pausada», «Suscripción reanudada», «Suscripción cancelada», «Suscripción finalizada», «Medio de pago actualizado», «Sorpresa aplicada», «Ciclo saltado») — so that's what you'll pick in the flow builder.
</Note>

It needs a Klaviyo **private API key**. Emission requires the integration to be enabled and the key to be loaded, and it's always best-effort: if Klaviyo fails, neither the charge nor the order creation is interrupted.

### Renewal reminder

The **"Renewal reminder (days before the charge)"** field makes Reval emit the **"Upcoming renewal"** event that many days before the next charge, once per cycle, through a daily process. It's the raw material for the "we'll charge you in N days" email — which reduces declines and disputes. At 0 it's disabled, and it's only sent if Klaviyo or Shopify Flow are enabled.

### Shopify Flow

You can also enable the **Subscription event** trigger for Shopify Flow, and build your automations there: a workflow with that trigger and a condition on the event (for example, `event = cancelled`) can send an email with Shopify Email or tag the customer. It's off by default, so no extra call is made until you enable it.

<Warning>
  Reval doesn't send emails on its own. Any notification to the subscriber —confirmation, declined-charge notice, reminder— comes out of the flows you build in Klaviyo or in Shopify Flow. If you don't configure any, your customers receive nothing from Reval.
</Warning>

***

## Saving

Changes apply on save. The Mercado Pago credentials have a short cache that invalidates itself on save, so a token change takes effect immediately.
