Readers plan their week with the meal planner, then open the shopping list and get everything they need in one list. Amounts are added up across recipes and sorted by aisle, and readers tick items off as they shop.

It’s included in every Scrumptious Pro plan.

Set it up

You need the meal planner set up first.

  1. Create a page, e.g. Shopping list.
  2. Add the Shopping List block and publish the page.

The meal plan page now shows a Shopping list → button. In the block sidebar you can change the Heading (default Shopping list). If your page title already says Shopping list, clear the heading so it doesn’t appear twice.

Tip: Add the page to your menu next to the meal plan.

What readers see

  • One line per ingredient. ½ cup butter from one recipe and ¼ cup butter from another become ¾ cup butter. Under each line, For: lists the recipes it’s for.
  • Amounts match their plan. A recipe that serves 4 but is planned for 8 counts double.
  • Sorted by aisle: Fruit & vegetables, Meat & fish, Dairy & eggs, Bakery, Pantry, Herbs, spices & seasoning, Frozen, Drinks, then Other.
  • Tick items off. Ticks are remembered on that device, so readers can close the page in the shop and come back to it.
  • My items: readers add their own extras, like paper towels.
  • Copy list copies what’s left to buy, for pasting into a notes app or a text message. Print prints the list. Untick all starts over.

If the plan is empty, readers see a link to the meal plan page instead.

Good to know

  • Amounts in the same kind of unit are combined: cups, tablespoons and teaspoons together; grams and kilograms together; ounces and pounds together. Different kinds (e.g. 2 cups flour and 200 g flour) stay on separate lines.
  • Ingredients without an amount (e.g. salt to taste) are listed once.
  • Ingredients are matched by name, so butter and unsalted butter stay separate lines.
  • The list works from the reader’s meal plan, so it follows them between devices when they’re logged in.

For developers

  • Filters:
  • scrumptious_shopping_list ($list, $recipes): change the finished list.
  • scrumptious_shopping_aisles ($rules): the aisles and the words that put an ingredient in each, checked in order (word* matches any word containing it).
  • scrumptious_shopping_list_url ($url): where the meal plan’s Shopping list button goes.
  • REST: POST /scrumptious-pro/v1/shopping-list with { items: [ { id, servings } ] }.

See Developers.