Refill
A subscription-first Shopify theme for replenishment brands.
Version 0.1.0 · Shopify Online Store 2.0 · Liquid, JSON templates, native CSS/JS
1. Purpose
Refill is built for brands that sell consumable products on a recurring basis: skincare, wellness, supplements, pet food, and specialty coffee. It treats the subscription as the primary purchase path, not an option buried below the add-to-cart button.
The theme is aimed at DTC merchants with 20–300 SKUs and at least one Shopify selling plan. It is designed to make the value of subscribing legible in the first screen, to make frequency selection feel safe, and to keep the one-time purchase path available.
2. What is included
- Complete Online Store 2.0 theme: JSON templates, sections, blocks, section groups.
- Subscription plan selector driven by native Shopify selling plans.
- One-time versus subscribe-and-save pricing display.
- Routine-led homepage with a four-step ritual, ingredient glossary, plan comparison, and subscription explainer.
- Product page with gallery, variant picker, selling plans, quantity, buy buttons, pickup, ingredients, how-to-use, complementary products, and app/Custom Liquid blocks.
- Collection page with faceted filtering, sorting, pagination, and an empty state.
- Predictive search, cart drawer, cart page with discounts and selling plans, account component, gift card, password, 404, blog, article, and contact templates.
- Responsive image strategy, accessible focus states, reduced-motion support, and semantic landmarks.
- Theme editor settings for colours, typography, layout, cards, social links, and SEO.
- Demo content guide, licensed Shopify Burst photography, and vector fallbacks in
demo/.
3. Requirements
- A Shopify store with the Online Store channel.
- A Shopify plan that supports the features you want to use (selling plans, pickup, markets).
- Shopify CLI 4.x for local development, or the Shopify admin theme upload workflow.
- A development store is strongly recommended before publishing.
4. Installation
Option A — Shopify CLI
npx shopify theme dev --store your-store.myshopify.com --path themes/refill
To upload an unpublished theme:
npx shopify theme push --store your-store.myshopify.com --path themes/refill --unpublished
Option B — Admin upload
- Create a ZIP of the
themes/refilldirectory (do not zip the parent folder). - In Shopify admin, go to Online Store → Themes → Add theme → Upload ZIP file.
- Preview the theme, then publish when ready.
5. Configuration
Theme editor
Open Online Store → Themes → Customize. The main settings are:
- Colors — background, text, accent, surface, border, and muted colours.
- Typography — heading and body fonts, base size, heading scale.
- Layout — page width, section spacing, card radius.
- Product cards — vendor visibility and image ratio.
- Cart — cart note.
- Social media — profile URLs used by the footer.
- SEO — social share image and favicon.
Subscription setup
- Install a subscription app that creates Shopify selling plans, or use Shopify's native selling-plan tooling where available.
- Create at least one selling plan group and attach it to the products you want to sell on subscription.
- In the theme editor, open a product template and confirm the Subscription introduction block is present.
- The theme reads
product.selling_plan_groupsandvariant.selling_plan_allocations. If no plans exist, the selector is hidden automatically. - Subscription management (skip, pause, cancel) is normally owned by the subscription app. Add the app's block to the product template or the customer account area. The theme does not implement subscription management itself.
Recommended content
- Create collections:
bestsellers,cleansers,serums,moisturisers,spf. - Create a page for How subscriptions work and link it from the hero secondary button.
- Create a page for Ingredients and link it from the ingredient glossary.
- Add menus:
main-menu,footer,customer-account-main-menu.
Optional metafields
The theme works without metafields. These are optional enhancements:
| Metafield | Type | Used by |
|---|---|---|
custom.concern |
Single-line text | Product card concern label |
custom.ingredients |
Rich text | Product page ingredients block fallback |
custom.how_to_use |
Rich text | Product page how-to-use block fallback |
custom.complementary_products |
List of product references | Complementary products |
6. Customisation
- Design tokens — edit
config/settings_schema.jsondefaults or use the theme editor. CSS variables are generated inlayout/theme.liquid. - Theme CSS —
assets/theme.csscontains the Refill art direction.assets/base.csscontains shared components. - Sections — add or duplicate sections in
sections/. Each section has a{% schema %}block. - Product page blocks — reorder or hide blocks in the theme editor. The purchase form is rendered by
snippets/product-form.liquid. - Selling plans —
snippets/selling-plan-selector.liquidrenders the plan selector.snippets/variant-picker.liquidprovides the variant JSON used byassets/base.js. - Translation — edit
locales/en.default.json. The theme usestfilters for storefront strings.
7. Validation status
shopify theme check: 0 errors, 0 warnings at the time of writing.- Structural validator (
tools/validate-themes.mjs): required templates, sections, JSON, section references, account component, localization, and Follow on Shop checks pass. - Live-store installation, home/product/collection/cart/search, add-to-cart, and Lighthouse home-page audits were executed on the branded demo stores. Checkout, app-dependent flows, and template-level Lighthouse runs remain unmeasured. See
docs/05-validation-report.md.
8. Known limitations
- Subscription management is app-owned. The theme supports native selling plans but does not manage billing, skip/pause, or cancellations.
- The demo photography is licensed from Shopify Burst. The SVG illustrations remain available as offline fallbacks in
demo/<theme>/images/. - The
theme_infodocumentation and support URLs point todeivisoft.eu. Publish the documentation and support pages before submission. - The theme ships one preset. Additional presets require a
/listingsfolder and separate demo stores for the Shopify Theme Store. - Shopify Theme Store acceptance is not guaranteed. Review the requirements and test on a development store before submitting.
9. Support and license
See LICENSE.md for the commercial license terms. See the repository root THIRD_PARTY_NOTICES.md for third-party components. This theme does not bundle third-party JavaScript libraries or font files.
For support, use the contact channel defined by the seller. Theme support covers theme bugs and documented configuration; it does not include custom design or code changes.
FAQ
How do I install the theme?
Install the ZIP from the Theme Store or upload it under Online Store → Themes → Add theme → Upload ZIP file. Then publish or preview the theme.
Does the theme require apps?
No. The core experience uses native Shopify features. App blocks are available for optional integrations such as reviews, subscriptions, or wholesale pricing.
How do I get support?
Use the support form. Include your store URL, theme name, and a description of the issue. We reply within two business days.
How do updates work?
Theme Store purchases include updates. Download the latest version from the Theme Store or your Shopify admin and apply it to a duplicate of your theme before publishing.