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.
  • Order: products are shown in the builder in the order of these lists. Use Move up and Move down on each row to reorder them, in both the eligible items and the one-time purchases.
  • Shopify Bundles can’t be part of a box — neither as eligible items nor as upsells (recurring orders never expand a bundle into its components). Pick the individual products instead; on save, the error names the affected ones.
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). Product grid columns (desktop) picks how many cards per row the builder shows on large screens —2, 3 or 4; fewer columns means bigger photos— and the upsell step uses the same count. 4 is the default; on mobile the grid adapts to the width on its own.
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. If the product was created but didn’t end up visible in the online store (for example, a missing permission), the box shows a warning with the reason — retry the sync or publish the product from the Shopify admin. Later saves don’t change the product’s visibility: if you set it to draft or unpublished it from the online store in Shopify (for example, while you build the page or in the off-season), editing the box in Reval leaves it as it was. The box shows the Not visible in the store warning so the missing sales aren’t a surprise; when you want it back, use Publish to Shopify / Retry sync or set the product to active from Shopify.
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?”.
If the plan has a first-order discount larger than the plan’s discount, the builder shows the price of the first delivery: the frequency carries the discount’s label (for example “20% OFF your 1st delivery”), each product shows today’s price, the summary adds the 1st delivery discount row, the total reads “You pay today” and the builder spells out how much is paid from the second delivery onward. 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).