Hard vs. Soft Ingredient Rules: What’s the Difference for Order Blocking?

If you're using Order-Taking, Diet Management, and Recipe Management together, you can take advantage of smart ingredient-based restrictions that help personalize and safeguard each consumer’s meal selection.

Here’s how it works — and what each restriction type means.

🚫 Hard Restrictions

These are strict blocks. If a recipe contains a hard-restricted ingredient, it will be automatically blocked from being ordered.

Hard restrictions are triggered when:

  • An ingredient is banned for a specific diet
  • A consumer has the ingredient listed in their "Restrictions" column

Example: A patient on a low-potassium diet won't be able to order recipes with bananas if "banana" is flagged as a restricted ingredient.


⚠️ Warnings

Warnings act as soft alerts based on diet rules—but they don’t block anything.

If a recipe contains an ingredient that’s flagged (but not banned) for a diet, the consumer will see a warning icon. They can still order the item.


Example: A vegetarian diet might flag eggs with a warning, but not block them outright.


🌱 Soft Restrictions (Aversions)

Soft restrictions reflect individual aversions or dislikes, entered on a per-consumer basis in the "Aversions" column.

  • Recipes with matching ingredients are marked with a warning icon
  • The consumer can still order the item, but it’s clearly flagged

To speed things up, use the comment shortcut feature, which will pre-fill the comment with the following text:

without /name of aversion/

This auto-selects the dish and adds the ingredient as a kitchen comment and on the order ticket—perfect for garnishes or minor ingredients.


Example: Selecting Bolognese Pasta with the comment without basil

→ Basil is flagged and automatically added as a prep note.


✅ Match Must Be Exact

To ensure restrictions apply correctly:

  • The ingredient name must exactly match the one used in your recipes

We recommend using consistent ingredient naming across all recipes and restriction settings to avoid mismatches.


Example: "Tomato" ≠ "Cherry Tomato"