Manage production workflows for creating finished jewelry products from component parts.
What Is an Assembly?
An Assembly is a recipe for creating a finished product from components. For example, an engagement ring might require a ring setting, a loose diamond, and gold.
Creating an Assembly
- Name — Assembly name (e.g., Classic Solitaire Ring Assembly)
- Description — Detailed description
- Finished Product — The finished product this creates
- Estimated Time (Minutes) — Expected duration
- Difficulty Level — Easy, Medium, Hard, Expert
- Instructions — Step-by-step instructions (JSON array)
- Status / State — Managed via Spatie ModelStates
Assembly Recipes
Each assembly has Recipe entries defining required components:
- Component — The component product
- Quantity Required — How many units needed
Operations
Check Feasibility
canAssemble() checks if all components have sufficient stock.
View Required Components
getRequiredComponents() returns component details, required vs. available quantities, and sufficiency status.
Calculate Cost
getTotalComponentCost() sums component cost times quantity for total material cost.
Workflow
- Design the assembly with instructions and recipes
- Check stock with canAssemble()
- Review cost with getTotalComponentCost()
- Start assembly (transition state to In Progress)
- Consume components (reduce stock)
- Complete (finished product added to inventory)
Best Practices
- Accurate recipes with precise quantities
- Track all materials including small findings
- Set stock alerts for popular components
- Document instructions for quality consistency
- Review assembly costs vs. selling prices regularly