-
Notifications
You must be signed in to change notification settings - Fork 0
Catalogs
Catalogs hold the products and services you sell — they feed the line-item
pickers in estimates, quotes, and invoices. The full guide (including the API
and validation rules) is
docs/CUSTOM_CATALOGS.md;
design rationale is
ADR-015.
Every catalog has a type (product_class) that decides which fields its
items carry. Every item, regardless of type, has the spine fields: SKU,
name, description, cost, retail price.
| Type | Fields | Notes |
|---|---|---|
| Parts | spine + category | |
| Doors | spine + full install spec (size, R-value, panel style, …) | unions with the manufacturer door feed |
| Custom… | spine + your own fields | no code, no migration |
Catalogs → + New Catalog → type: Custom… — name the catalog and define up to 50 fields (Text, Long text, Number, Currency, Yes/No, Dropdown, Date; each optionally required). The catalog immediately renders a form and table built from your fields, so a business in any trade (HVAC, electrical, plumbing, …) can model its own products.
Under the hood this is schema-as-data: the field definitions live in
custom_catalogs.field_schema (JSON) and item values in
custom_catalog_items.attributes — no SQL table per type.
Item pricing is pluggable per catalog: the margin engine (customer pricing class → margin tiers, cost tiers, volume discounts, adder rules) or simpler strategies (manual / markup / keystone). Rates and tiers are managed under Accounting → Pricing and the Labor Matrix.
Installable catalog bundles: a pack ships a catalog type + items as data, so a distributor or community can share ready-made catalogs. Plugins can also create and upsert catalogs through the plugin→catalog API (see Authoring Plugins).
- Multiple catalogs per instance, each with active/inactive items; the estimate picker shows one tab per catalog.
- CSV import and AI import (describe items → auto-populate).
- The built-in door catalog search unions the manufacturer feed with your custom door catalogs, so estimates see one list.
- Sales & Estimating — where catalog items get quoted.
- Inventory & Purchasing — stock levels and ordering for the parts you sell.