The product editor
Routes: /org/inventory/products/:id (products.edit) · /org/inventory/products/new (products.create)
1. What the editor is
One long scrolling form — the largest component in the module — holding everything about a product except its stock movements. It is reached from a card's → on the catalogue.
The same component serves create and edit. Which one you get depends on the route, and the two routes are gated by different permissions.
products.view grants the catalogue list only. Opening a product requires products.edit, and
creating one requires products.create. A reviewer role cannot inspect a product's fields at all.
2. The header
| Control | Does | Permission |
|---|---|---|
| EN / HI / BN | Switches which language the text fields edit | — |
| Delete | Soft-deletes the product | products.delete |
| Deep Translate | Fills the other languages from the current one | products.edit |
| Cancel | Discards and returns to the catalogue | — |
| Save Changes | Persists everything on the page | products.edit |
The editor submits the whole product — identity, variations and BOM together. A variation you removed from the form is deleted on save.
If you loaded the page from a partial source, or an integration wrote a variation while you had the form open, saving will remove what you cannot see. Reload before editing a product that other systems touch.
3. The sections, in order
Identity
Name and description, per language. The language tabs at the top decide which one you are editing; Deep Translate populates the others.
Classification
| Field | Source of its options |
|---|---|
| Category | The category tree |
| Tags | Free text; existing tags are suggested |
| Tax category | Finance, not Inventory. The list comes from the org's tax regimes |
| Tax mode override | Per-product override of inclusive/exclusive pricing |
If the list is empty or missing the rate you want, the fix is in Finance's tax configuration, not on this page.
Visibility
| Switch | Effect |
|---|---|
| Publishable | Drives the STORE badge. Off ⇒ the storefront never lists it |
| Pre-order | Drives the PRE-ORDER badge. Pre-order lines are exempt from stock movement |
| Internal only | Hides it from customer-facing surfaces entirely |
Media
The hero asset is the card image and the storefront's main image. Additional document assets ride along for spec sheets and similar.
For images across many products at once, use Storefront's bulk image upload (Allow Bulk product Image Upload) — it is a different module.
Variations
The sellable rows. See Variations and SKUs.
Bill of materials
The recipe, per variation. See Bill of materials.
Advanced metadata
Arbitrary key/value blocks, with an AI button that proposes them. Nothing in the module reads these; they exist for integrations and the external API.
4. Creating a product
The order that avoids backtracking:
- Name and description
- Category and tax category
- Visibility switches
- Hero image
- At least one variation — a product with none has nothing to sell
- BOM, if you manufacture it
5. The admin contract
| Must be true | Or else |
|---|---|
| A unit exists | Variations cannot be saved |
| A tax category exists in Finance | The product reads as untaxed |
| Attributes exist | Variations cannot carry option values |
| Raw materials exist | The BOM cannot be built |
6. Downstream
| Change | Effect |
|---|---|
| Publishable off | Product vanishes from the storefront immediately |
| Price change | New orders use it; historic orders keep their captured price |
| Delete a variation | Removed on save — see the warning in §2 |
| Change the BOM | Applies to future production orders; existing DRAFT orders keep the ingredients they were created with |
7. Troubleshooting
| Symptom | Cause |
|---|---|
| The card's → does nothing | The role lacks products.edit |
| Save fails | A variation is missing a unit, or a required field is empty in the active language |
| A variation disappeared after save | It was not in the form when you saved — the save is a full reconcile |
| Tax dropdown is empty | No tax categories configured in Finance |
| Translations are blank | Use Deep Translate, or fill each language tab by hand |