Skip to main content
A box is a subscription where the customer picks what they receive in each delivery. You create it in Reval → Boxes, it’s published as a real product in your store, and the buy button on that page leads to a builder: a screen inside your theme where the customer fills their box, sees the price live and continues to checkout. Boxes are sold by subscription only — there’s no one-time purchase of a box.
The first time you enter after this update, Shopify will ask you to re-approve the app’s permissions: Reval now needs to create and publish products in order to sync each box as a product in your store.

The two box types


Creating a box

The screen is a five-step form. A box is only saved complete and ready for sale — if something is missing, the final checklist tells you exactly what.
1

Type and plan

Choose the box type and tick the subscription plans it’s sold on. A static box only lists standard plans; a dynamic one, only plans of the «Caja dinámica» type. With more than one plan ticked, the customer chooses the frequency in the builder (the first in the list is the initial one). A box’s plans must have distinct frequencies.
2

Name and product in the store

The name is the product’s title in Shopify and the base of the builder’s URL. You can add a description and an image URL (upload it in Shopify → Content → Files and paste the link). The image is uploaded to Shopify only on the first sync: to change it later, edit the product in Shopify.
3

Size and price

  • Free range (dynamic only): minimum and maximum number of products.
  • Several predefined sizes or a single exact size: each size defines its product count and — in static boxes — its fixed price, or — in dynamic ones — an optional discount (percentage or fixed amount).
  • Volume discounts (dynamic only, optional): tiers that trigger by product count or by the box’s amount. The customer sees live how much they’re missing for the next tier; if they reach several, the one that benefits them most is applied, and a discount pinned to a size takes priority over the tiers.
4

Products

  • Eligible for the box: what the customer can put inside (they can repeat the same product). Choosing a product brings in all of its variants; remove the ones that don’t belong.
  • One-time purchases (upsells): offered at the end of the build and charged once — they don’t enter the recurring price. We recommend between 3 and 5 so as not to overwhelm.
5

Presentation (optional)

By default we use our own texts. You can replace the title, the subtitle, the title in the customer portal, the upsell step’s title and the discount’s title. Two more options: show each variant as a separate card (useful when the variants are flavors compared against each other) and hide the individual price of the products inside the box (only the total is shown).
On clicking Create box, the product is created and published in Shopify automatically. If the sync fails, the box stays saved and you complete it with the Publish to Shopify button — or Retry sync, if the product already existed.
An eligible product doesn’t need its own plan to be sold inside a box. In a static one it’s shown at list price and the money lives in the size’s price; in a dynamic one, every eligible item is priced at the current list price minus the «Caja dinámica» plan’s % — no per-frequency prices needed.

The builder in your store

Each box has its URL: /apps/subscriptions/caja/<handle> (you can see it on the box’s card). On the product page, the Reval block replaces the subscription widget and the “Add to cart” with a single button — configurable in the theme, by default “Build your box” (shown as “Armá tu caja”). What the customer sees in the builder:
  • Frequency (if the box is sold on more than one plan) and size as option grids.
  • The grid of eligible products with a variant selector, per-unit price (with the list price struck through when the plan discounts) and − / + controls. Out-of-stock variants appear disabled.
  • The “Your box” summary: subtotal, Subscription discount, the box’s discount, total, the progress bar toward the next tier (“Add 2 more and get 10% off”) and the total savings. On mobile it stays pinned at the bottom.
  • If the box has upsells, a final step: “Want to add something one time only?”.
The checkout shows the box with its name and image and the breakdown of contents underneath, and revalidates everything server-side — eligibility, size and prices. If something changed (a discontinued frequency, a product that’s no longer available), the customer returns to the builder with a clear notice instead of an error.

The box as a product in Shopify

  • Static box: one real variant per size (a “Tamaño” (size) option, with values like “6 productos”), each with the size’s price.
  • Dynamic box: a single variant with an estimated “from” price, so collection cards don’t show $0.
  • Box variants are created without inventory tracking — a box never blocks its own order; stock is controlled by the products inside.
  • Archiving a box moves the product to draft in Shopify and takes it off sale. Existing subscriptions stay active.

A box’s orders

  • Static box: the order carries the box’s line at its price plus a $0 line for each content — that’s the picking list, and those SKUs are the ones that deduct inventory.
  • Dynamic box: the contents with their prices plus a $0 line with the box’s identity, so the order shows the box’s name and image and not the first product inside.
  • Stock is handled by your inventory policy, with one nuance: a static box is all-or-nothing. Under “Only order the products in stock”, a static box with a missing content simply doesn’t generate that cycle’s order — a customer never pays for the full box and receives an incomplete one — while in a dynamic box only the out-of-stock lines are dropped. Under “Retry the next day”, any missing content defers the whole order for both types; under backorder (the default) the order goes out complete anyway. Additional products outside the box always keep per-line behavior.

What the subscriber can do

From their portal, the customer edits the composition with “Edit my box”: they change quantities, add or remove products, change the size, and see the projected total live. Changes take effect from the next delivery. They can also add recurring additional products outside the box (same frequency, at plan price — they don’t count toward the size or the discounts). The step-by-step is in Managing your subscription. Two behaviors to keep in mind:
  • Billing window: in the 24 hours before the next charge, the portal blocks box editing (“Your next delivery is already being prepared”). You don’t have that limit: from the subscription detail you can edit the composition anyway — the change takes effect from the next cycle, never on a charge already in progress.
  • Discontinued products: if you remove a product from the box, whoever already had it keeps it (they see it as “No longer offered — you can keep it”: they can lower its quantity or remove it, not increase it or re-add it). If instead you delete the variant in Shopify, it’s removed from the boxes on save and the affected orders go out with the Producto eliminado (product deleted) tag — which is why it’s best to migrate subscribers before deleting a variant.

Limitations

  • A box’s plans must have distinct frequencies — the customer chooses by frequency.
  • A subscription contains a single box; two boxes are two subscriptions.
  • There’s no one-time purchase of a box: it’s always a subscription.
  • The image syncs to Shopify only the first time; after that it’s changed from Shopify.
  • If you later remove from the box the plan a customer subscribed on, that customer can no longer edit their composition (their charge continues unchanged).