Adding products

There are three ways to get a product into Distribu:

  1. Manually via the Add product form (this page).
  2. CSV import for bulk loads — see CSV import.
  3. REST APIPOST /api/v1/products — see Products endpoints.

All three hit the same validation, write to the same catalog, and respect the same plan limits.

Add a product from the dashboard

From the sidebar, click Inventory, then + Add product in the top-right. You'll land on a form at /dashboard/inventory/new.

Required fields

FieldRules
Product name1–200 characters
UnitPick from the dropdown (defaults to each)
PriceNumber ≥ 0, up to 2 decimal places
Stock qtyWhole number ≥ 0

Optional fields

  • SKU — your internal code. Up to 100 chars. Strongly recommended because CSV imports match rows by SKU.
  • Category — free-form label (e.g. PPE, Widgets, Consumables). Up to 100 chars. Used to group products on your storefront and in the dashboard's category breakdown charts.
  • Description — up to 2000 chars. Shown on the storefront product page.
  • Image — see Product images.

Available units

The unit dropdown offers: each, case, pallet, box, bag, roll, sheet, lb, oz, kg, L, mL. This list covers most B2B cases; if you need something else, let us know — we can add it. The API and CSV import accept any string in the unit field, but the dashboard dropdown is fixed.

What happens when you submit

  1. Distribu validates every field against the same rules the API uses.
  2. If you uploaded an image, it's uploaded and a public URL is saved to the product.
  3. A ProductCreated entry is written to the audit log with the actor and a snapshot of the product data.
  4. You're redirected back to Inventory where the new product appears.

Editing a product

Click a product's name in the Inventory list. The same form opens in edit mode at /dashboard/inventory/{id}/edit.

Edits save on Save changes. The audit log captures both the before and after values so you can see exactly what changed when.

Replacing an image? The old image is deleted as soon as the new one is saved — no orphan files. Use the Remove image link to clear the image without uploading a new one.

Activate / deactivate

Inactive products are hidden from the storefront catalog and the storefront search index, but stay fully editable in your dashboard. Orders already placed for an inactive product remain intact — deactivating doesn't rewrite history.

Toggle status three ways:

  • From the Inventory list, using the Active / Inactive pill next to each product.
  • From the edit form.
  • In bulk — select multiple rows and use the bulk action bar at the bottom of the screen to activate or deactivate everything at once.

Plan limits

Every plan caps the number of active products via maxProducts. When you try to add one past the cap, the form returns:

"You've reached your plan's product limit (N). Upgrade to add more products."

Deactivating a product doesn't free up room — the count includes everything in your catalog. To make space without upgrading, delete products you no longer sell.

CSV import and API POST /api/v1/products enforce the same cap. A bulk import that would push you over returns an error and writes nothing.

Deletion

Deleting a product from the Inventory list removes it permanently. Orders that included the product keep their line items intact — historical totals and quantities are preserved. This is safe to do any time, and every delete writes a row to the audit log.

Tip. If you might bring the product back, just deactivate it. You can re-activate with one click later.

Bulk actions

Select multiple rows in the Inventory list (via the checkboxes) and a bulk action bar appears at the bottom of the screen:

  • Activate / Deactivate
  • Category — set or clear the category across every selected row
  • Price — adjust by a fixed amount, by a percentage, or set all to a specific value
  • Stock — set or add/subtract a delta across every selected row
  • Delete

Bulk operations are transactional — if any one update fails, the whole batch rolls back — and are capped at 1000 rows per invocation.


Next: Product images.