Skip to content
LCreatedByLewis

Portion for Shopify · Documentation

Launch Your Meal Prep Store.

Portion is built for meal prep kitchens, ready-meal brands and food subscriptions. Customers build a box of meals, see the calories and macros of everything they pick, and check out as a one-off order or a subscription.

Contents
  1. Getting started
  2. Setting up meals
  3. The box builder
  4. Subscriptions
  5. Meal product page
  6. Weekly menu & collections
  7. Sections
  8. Theme settings
  9. Cart & checkout
  10. Troubleshooting
  11. Support

Start here

Getting started

  1. In your Shopify admin, go to Online Store → Themes and add Portion from the Theme Store.
  2. Click Customize to open the theme editor. Everything in this guide is done there or in your product settings, with no code.
  3. Work through this guide in order: your meal products first, then the box builder page, then the home page.
  4. When you're happy, click Publish on the Themes page.

The quickest setup

Create a collection of your meals, add the nutrition metafields to each meal, then create a page using the build-a-box template. That gets a working box builder live in under an hour.

Step 1

Setting up your meals

Each meal is a normal Shopify product. Portion reads its nutrition, ingredients and allergens from product metafields, so the same numbers show on meal cards, the product page and in the box builder.

Create the metafield definitions

Go to Settings → Custom data → Products and click Add definition for each row below. Use the namespace custom unless you change it in theme settings.

NameNamespace and keyTypeShows
Caloriescustom.caloriesIntegerkcal on cards, product page and box totals
Proteincustom.proteinIntegerGrams of protein
Carbscustom.carbsIntegerGrams of carbohydrate
Fatcustom.fatIntegerGrams of fat
Portion weightcustom.portion_weightIntegerPortion size in grams on the product page
Ingredientscustom.ingredientsMulti-line textIngredients tab
Allergenscustom.allergensMulti-line textAllergens tab
Heating instructionscustom.heating_instructionsMulti-line textHeating instructions tab

Then open each meal in Products, scroll to Metafields and fill them in. Leave any you don't use empty and Portion hides them.

Dietary tags

Add product tags such as High protein, Vegan, Gluten free or Low carb. These power the filter chips in the weekly menu and box builder, and can show as a label on the meal photo. The tag text must match the filter names in the section settings exactly.

Sizes and variants

A meal can have variants, such as Regular and Large. The product page shows a size picker and the price updates as customers switch. In the box builder, each card adds the first available variant.

Allergen information is your responsibility

Portion displays whatever you enter. Make sure your allergen information is accurate and meets your local food labelling rules.

Step 2

The box builder

The box builder lets customers pick meals for each delivery day, see a running total and their average daily macros, add extras, then review and check out in one step.

Create the page

  1. Go to Online Store → Pages → Add page and call it something like "Build your box".
  2. Under Theme template, choose build-a-box and save. You don't need any page content.
  3. In the theme editor, choose Pages → build-a-box from the top dropdown and click the Box builder section.
  4. Choose your Meals collection, then add the page to your main menu in Content → Menus.

How customers build

Flexible

Customers pick any number of meals between your Minimum meals and Maximum meals. Best for most kitchens.

Plans

Customers first choose a box size, such as 5, 10 or 15 meals. Add a Plan block for each size, with a title, bullet points, an optional badge, and a highlight for your most popular plan.

Delivery days

Enter your delivery days separated by commas, for example Sunday, Wednesday. Customers get a tab for each day and choose meals for each one, and the day is saved on each cart line. Leave it empty for a single delivery.

Cut-off and countdown

Set your Cut-off day and Cut-off hour, and add a message such as "Order by Friday 5pm for Sunday delivery". Show countdown displays the real time left until that cut-off. Only turn it on if your cut-off is accurate: Shopify doesn't allow fake urgency.

Extras step

Add an Extras step block to offer breakfasts, snacks or drinks after the meals step, and choose a collection for it. You can add more than one.

Macros panel

Show "A day from this box" divides the box's calories and macros by Days a box covers, so customers can see what a typical day looks like. Set the number of days to match how you sell, for example 5 for a working week.

Other options

  • Start with one of each meal fills the box with one of every meal, for small menus.
  • Go straight to checkout skips the cart after the review step.
  • Delivery note shows under the total, for example your delivery charge.
  • Show dietary filters and Filter tags control the filter chips.

Step 3 (optional)

Subscriptions

Portion works with any subscription app that uses Shopify selling plans, including Shopify Subscriptions, Appstle, Recharge and Seal. Once your meals have a selling plan, a One-off / Subscribe and save choice appears automatically in the box builder and on product pages, with subscription prices on every card.

  1. Install your subscription app and create a plan, such as "Weekly, 10% off".
  2. Add every meal, and any extras you want included, to that plan in the app.
  3. That's it: the choice appears. If your meals have more than one plan, use the settings below to choose which one the box builder uses.
SettingUse it when
Subscription plan IDYou want one exact plan for every meal. Paste the plan's ID, which your subscription app shows in its plan settings.
Subscription plan name containsYour plans share a word, such as Weekly, and you don't have the ID.
NeitherEach meal uses its first plan.

On the product page, the Purchase options block shows the same choice. Turn on Subscribe by default to pre-select it.

Meal pages

The meal product page

The product page is built from blocks you can reorder or remove in the theme editor (Products → Default product).

BlockWhat it does
Back linkA link back to your box builder, for example "Back to build your box".
Dietary tagsShows matching product tags as labels.
Title, Description, TextThe meal name, a short or full description, and any extra text.
PricePrice with sale badge and tax note.
MacrosCalories, protein, carbs and fat per meal, with portion weight. Can highlight protein.
Variant pickerButtons or a dropdown for sizes.
Purchase optionsOne-off or subscribe, when the meal has a selling plan.
Buy buttonsQuantity, add to basket and the Buy it now button. Supports gift card recipients.
Build a box linkA prompt to build a full box instead of buying one meal.
Collapsible tabIngredients, allergens, heating instructions (from metafields), a page, or your own text.
Pickup availability, Share, Custom Liquid, AppsLocal pickup, share links, your own code, and app blocks such as reviews.

Building pages

Sections

Add these to any page from the theme editor. Most have a colour scheme setting: default, surface, primary or accent.

Meal prep

Hero, Weekly menu, Box builder, Featured product, Featured collection, Product recommendations.

Story & trust

Image with text, Multicolumn (great for "how it works"), Testimonials, Logo list, Collapsible content for FAQs.

Content

Rich text, Image banner, Video, Collection list, Blog posts, Newsletter, Contact form, Custom Liquid.

The header and footer are section groups. The footer has brand, menu and newsletter blocks. The header supports a sticky option, dropdown menus, country and language selectors, and an announcement bar.

Your brand

Theme settings

Open Theme settings (the cog icon) in the editor.

GroupSettings
LogoLogo image, logo width and favicon.
TypographyHeading font, body font and heading size.
LayoutPage width, page margin, card corner radius and input corner radius.
ColoursBackground, surface, text, primary (buttons and accents) and accent colours, each with a matching text colour.
MealsThe metafield namespace for nutrition. Change it if your meal data already uses a different namespace.
CartCart drawer or cart page.
SearchTurn search suggestions on or off.
Social mediaLinks shown in the footer.

Ordering

Cart & checkout

Meals from the box builder arrive in the cart grouped by delivery day, with the day saved as a line item property you'll see on every order. Customers can change quantities in the cart drawer or on the cart page. Delivery charges, local delivery and pickup are set in Settings → Shipping and delivery.

Help

Troubleshooting

Macros aren't showing

Check the metafield definitions use the exact keys above, with the custom namespace (or the one set in theme settings), and that the type is Integer.

The Subscribe and save option doesn't appear

The meals must be added to a selling plan in your subscription app, and the app must be enabled. If you've set a Subscription plan ID, check it matches a plan the meals belong to.

Filter chips don't filter anything

The filter names in the section settings must match your product tags exactly, including capitals and spaces.

The box builder is empty

Choose a collection in the section's Meals collection setting, and make sure its products are active and available on the Online Store.

The countdown shows the wrong time

The countdown uses your store's time zone (Settings → General) and the cut-off day and hour in the section settings.

I want to change the theme's code

Custom code changes aren't covered by support. Duplicate your theme first (Online Store → Themes → … → Duplicate) so you can always go back, or get a quote and I'll make the change for you.

Get in touch

Support

Portion is made and supported by Lewis at CreatedByLewis, who builds meal prep stores on Shopify for a living.

Send a support request

Use the support form. Add your store address and a screenshot, and you'll get an email confirming it arrived. I reply within two working days (UK time).

Support covers setting up the theme's features, questions about its settings and fixing theme bugs. It doesn't cover custom design changes or third-party apps.

Got something to sell?

Let’s build the site that takes the order.

A free call, in person or on video. Nothing to pay, and no deposit until you’re sure.