Skip to main content

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.

Figure 1 — The editor header, persistent while you scroll.
There is no read-only product page

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​

ControlDoesPermission
EN / HI / BNSwitches which language the text fields edit—
DeleteSoft-deletes the productproducts.delete
Deep TranslateFills the other languages from the current oneproducts.edit
CancelDiscards and returns to the catalogue—
Save ChangesPersists everything on the pageproducts.edit
Save is all-or-nothing, and a save is a full reconcile

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​

Figure 2 — Category and tax.
FieldSource of its options
CategoryThe category tree
TagsFree text; existing tags are suggested
Tax categoryFinance, not Inventory. The list comes from the org's tax regimes
Tax mode overridePer-product override of inclusive/exclusive pricing
The tax category is chosen here and defined elsewhere

If the list is empty or missing the rate you want, the fix is in Finance's tax configuration, not on this page.

Visibility​

Figure 3 — Three switches that decide whether the storefront ever shows this product.
SwitchEffect
PublishableDrives the STORE badge. Off ⇒ the storefront never lists it
Pre-orderDrives the PRE-ORDER badge. Pre-order lines are exempt from stock movement
Internal onlyHides it from customer-facing surfaces entirely

Media​

Figure 4 — Hero image and document assets.

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​

Figure 5 — The create form.

The order that avoids backtracking:

  1. Name and description
  2. Category and tax category
  3. Visibility switches
  4. Hero image
  5. At least one variation — a product with none has nothing to sell
  6. BOM, if you manufacture it

5. The admin contract​

Must be trueOr else
A unit existsVariations cannot be saved
A tax category exists in FinanceThe product reads as untaxed
Attributes existVariations cannot carry option values
Raw materials existThe BOM cannot be built

6. Downstream​

ChangeEffect
Publishable offProduct vanishes from the storefront immediately
Price changeNew orders use it; historic orders keep their captured price
Delete a variationRemoved on save — see the warning in §2
Change the BOMApplies to future production orders; existing DRAFT orders keep the ingredients they were created with

7. Troubleshooting​

SymptomCause
The card's → does nothingThe role lacks products.edit
Save failsA variation is missing a unit, or a required field is empty in the active language
A variation disappeared after saveIt was not in the form when you saved — the save is a full reconcile
Tax dropdown is emptyNo tax categories configured in Finance
Translations are blankUse Deep Translate, or fill each language tab by hand