Salve supply planner and subscriptions
The supply planner helps shoppers see how long an order will last. The shopper enters how many units they use each week, and the planner estimates the number of weeks or days. If the product has subscription options, the planner can also suggest a delivery interval.
The planner is a calculator for shopping. It always shows this note: "Estimate only. Follow the instructions for use and your healthcare professional's advice."
Add the planner
- Create the planner metafields. See the table below and the Health data setup guide.
- Enter at least Units per pack for the product.
- In the theme editor, add the Supply planner block to the Product information section, if it isn't there already. It's included in the Salve and Remedy product templates.
The planner shows only when the product has a value for health.units_per_pack.
Metafields the planner uses
| Namespace and key | Type | Used for | If empty |
|---|---|---|---|
health.units_per_pack |
Integer | The number of units in one pack, for example 10 dressings. | The planner doesn't show. |
health.unit_label |
Single line text | The singular unit name, for example "dressing". | No unit name. |
health.unit_label_plural |
Single line text | The plural unit name, for example "dressings". The theme never adds an "s" for you. | The singular name is used. |
health.default_uses_per_week |
Decimal | The starting value of the slider. | 7 |
health.usage_min_per_week |
Decimal | The lowest value a shopper can choose. | 1 |
health.usage_max_per_week |
Decimal | The highest value a shopper can choose. | 28 |
Choose a starting value that matches typical use described in your product's instructions. Shoppers can change it in steps of 0.5.
How the planner calculates
- Units in the order = units per pack × pack multiplier × quantity. The quantity comes from the product's quantity selector.
- Weeks = units in the order ÷ uses per week, rounded down to one decimal place.
- If the result is less than one week, the planner shows days instead: units in the order ÷ (uses per week ÷ 7), rounded down.
The result reads, for example: "This order lasts about 2.8 weeks at 3.5 dressings a week." It updates when the shopper changes the slider, the quantity or the variant.
Pack size variants
If a product comes in packs of different sizes, name the option Pack size, Pack or Quantity. The planner reads the first number in the selected option value and uses it as the pack multiplier. For other option names, the multiplier is 1.
The number is multiplied by Units per pack, so it should count packs, not units. Two ways to set this up:
- Units per pack is 10, and the option values are "1 pack", "3 packs" and "6 packs". The planner counts 10, 30 and 60 units.
- Units per pack is 1, and the option values are "10", "25" and "50". The planner counts 10, 25 and 50 units.
The same numbers give the estimated price per unit on product cards and in the Price block. That estimate shows only when the variant has no unit price set in Shopify, and it's labeled "about".
Delivery interval hints
With Suggest a delivery interval turned on, the planner reads the names of the product's selling plans. It suggests the plan with the longest interval that doesn't exceed the calculated supply. For example, if an order lasts 3.2 weeks and the plans are "Every 2 weeks" and "Every 4 weeks", it suggests every 2 weeks.
The hint reads, for example: "Deliver every 2 weeks to avoid running out." The matching option in the Purchase options block is highlighted. It's never selected for the shopper.
For the hint to show:
- A subscription app must have created selling plans for the product.
- The Purchase options block must be on the same product template.
- At least one plan name must include an interval the planner can read.
Selling plan naming convention
The planner looks for a number followed by a day, week or month word. Write the number in digits, followed by a space and the word.
| Language | Day words | Week words | Month words | Example plan name |
|---|---|---|---|---|
| English | day, days | week, weeks | month, months | Deliver every 2 weeks |
| French | jour, jours | semaine, semaines | mois | Livraison toutes les 2 semaines |
| German | Tag, Tage, Tagen | Woche, Wochen | Monat, Monate, Monaten | Lieferung alle 4 Wochen |
| Spanish | día, días | semana, semanas | mes, meses | Entrega cada 30 días |
| Italian | giorno, giorni | settimana, settimane | mese, mesi | Consegna ogni 2 mesi |
Capital letters don't matter. A month counts as 4.345 weeks, and a day as one seventh of a week.
These names don't produce a hint, because they have no number in digits: "Weekly", "Monthly", "Every other week", "Fortnightly", "Every two weeks". Plans without a readable interval still work as normal subscription options.
Tip: if your subscription app lets you translate plan names, keep the number and interval word in each translation, for example "Toutes les 2 semaines".
Subscription apps
Salve works with any subscription app that creates Shopify selling plans, including Shopify's own Subscriptions app. The theme shows the plans, adds the chosen plan to the cart and shows the plan name in the cart. The app handles billing, delivery schedules and customer account features.
- The Purchase options block shows only when the product has selling plans.
- Preselect the first subscription option is off by default, so shoppers choose a subscription actively.
- Product cards show a "Subscription available" badge on products with selling plans.
- The Replenishment explainer section describes repeat deliveries in your own words. Only mention features your app supports, such as skipping or pausing a delivery.