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.
Acceptance Criteria
Section titled “Acceptance Criteria”- 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
Implementation Status
Section titled “Implementation Status”✅ IMPLEMENTED (December 2025)
Implementation Details
Section titled “Implementation Details”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 logicshaker/components/SubstitutionSuggestions.tsx- Display componentshaker/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.
Priority
Section titled “Priority”Low - Advanced feature for flexibility
Related Entities
Section titled “Related Entities”- Recipe, RecipeIngredient, Ingredient, Product, IngredientProfile