Skip to content

Suggest Product Substitutions

As a Host, I want to receive suggestions for ingredient substitutions when I’m missing a product, So that I can still make a drink with what I have available.

  • Given I want to make a recipe that calls for “Aperol”
  • And I don’t have Aperol in my inventory
  • When I view the recipe
  • Then the system suggests alternative products I do have:
    • Campari (similar bitter orange flavor, more intense)
    • Other amaro-style liqueurs
  • And each suggestion includes:
    • Product name
    • Similarity explanation
    • Recommended quantity adjustment (if any)
    • Flavor impact description
  • And I can mark a substitution as “tried and approved” for future reference

IMPLEMENTED (December 2025)

Implementation:

  • Product substitution suggestions are implemented via productSubstitutions.ts
  • Suggestions based on ingredient mapping, flavor profiles, price, and availability
  • Displayed on product detail screen when product is low/out of stock

Files:

  • shaker/utils/productSubstitutions.ts - Substitution logic
  • shaker/components/SubstitutionSuggestions.tsx - Display component
  • shaker/app/(tabs)/inventory/products/[id].tsx - Product detail with substitutions

Features:

  • Intelligent matching algorithm (ingredient + flavor + price + availability)
  • Match scoring (0-100%) with color coding
  • Priority-based display (critical/high/normal)
  • Navigate to substitute products

Note: This covers product-level substitutions. Recipe-level ingredient substitutions during recipe making may need additional implementation.

See: Substitution Suggestions Implementation for complete details.

Low - Advanced feature for flexibility

  • Recipe, RecipeIngredient, Ingredient, Product, IngredientProfile