Products & inventory

Everything you sell lives in Inventory. A product in Distribu is a single SKU with a name, price, stock level, unit of measure, optional category and image, and an active/inactive flag. The same catalog powers three things:

  1. Your dashboard — what your staff sees in /dashboard/inventory.
  2. Your storefront — what customers browse at /store/{your-slug}/catalog.
  3. The REST API and webhooks — what external systems (ERPs, Shopify, etc.) read and write via /api/v1/products.

All three are the same data. There's no separate "storefront catalog" to sync — toggling a product inactive hides it from customers immediately; bumping a price in the dashboard changes it on the next storefront page load.

What's in this section

  • Adding products — the add/edit form, required and optional fields, and plan limits.
  • Product images — accepted formats, size limits, and where images are stored.
  • Stock tracking — how stock decrements on orders, low-stock alerts, and bulk adjustments.
  • CSV import — bulk-create or update your entire catalog from a spreadsheet.

Related topics

Anatomy of a product

FieldTypeNotes
namestring, requiredShown in the dashboard, storefront, and on invoices. Max 200 chars.
skustring, optionalYour internal product code. Max 100 chars. Required for CSV import so we can match rows.
descriptionstring, optionalLong-form product copy shown on the storefront product page. Max 2000 chars.
categorystring, optionalUsed to group products on the storefront and in category breakdown reports. Free-form — pick any label.
unitstring, requiredUnit of measure. Defaults to each. One of: each, case, pallet, box, bag, roll, sheet, lb, oz, kg, L, mL.
pricedecimal, requiredUp to 2 decimal places. Must be ≥ 0.
stockinteger, requiredWhole number ≥ 0. Decrements automatically when orders are placed.
imageUrlURL, optionalPublic URL of the product image. Uploaded via the form — see Product images.
isActiveboolean, defaults to trueInactive products are hidden from the storefront but stay in your dashboard.

Products are scoped to your company. Two different distributors can both have a product with SKU WIDGET-001 — they're separate rows, never visible to each other.


Next: Adding products.