A line item builder is a specialised dynamic form component for capturing repeating, calculated rows — invoices, quotes, purchase orders, expense claims, anything with multiple priced or measured items. It handles the math (subtotals, taxes, totals) and the UX (add/remove rows, reorder) so you don't reinvent the wheel.
What Makes It Different
You could implement an invoice form with a generic dynamic add field, but line item builders are purpose-built:
- Per-row calculations: Line total computed as qty × unit price, automatically updated.
- Tax handling: Per-line tax rate, with tax-inclusive or tax-exclusive logic.
- Discounts: Per-line, plus optional cart-level discount.
- Multi-currency: Each line in its own currency, totals normalised.
- Product picker: Autocomplete from a Products datastore, autofilling price and description.
- Reorderable: Drag to reorder for presentation.
Where to Use Them
- Invoices: Line items, taxes, discounts, totals.
- Quotes: Optional items, discounts, presentation order.
- Purchase orders: SKU, supplier price, quantity, delivery date.
- Expense claims: Date, description, receipt, amount, currency.
- Service orders: Service code, technician, hours, rate.
Worked Examples
- Multi-currency invoice: Line 1 in USD, Line 2 in EUR; totals normalised to GBP for display.
- Quote with optional items: Each line has “Required / Optional” flag; total computed differently per scenario.
- Service order: Service code dropdown autofills rate; technician picker filtered to qualified technicians.
- Expense claim: Each line is a receipt — amount + currency + photo upload — totals converted to home currency at the day's rate.