Solavel Solavel Docs

Inventory

docs/solavel-finance/inventory.md

Who can use this: Owner, Manager, Accountant. URL / Route: /finance/inventory/*. Top routes: finance.inventory.items.*, finance.inventory.categories.*, finance.inventory.units.*, finance.inventory.reconciliation, finance.inventory.opening-remediation. Plan / feature gate: feature:tracker.manage_items (default: enabled). The org-level toggle inventory_enabled (default: enabled) controls whether stock tracking and stocked items are available; turning it off downgrades the section to "Services only". Permissions: inventory.items.view / inventory.items.manage, inventory.categories.view / manage, inventory.units.view / manage.

Purpose

Inventory keeps track of physical goods you stock and sell. It records the on-hand quantity for every stocked item, posts the cost of goods sold when an item leaves stock, and surfaces low-stock alerts when an item drops below its reorder point.

Inventory is not a separate Inventory product — it is the stock-tracking layer on top of Products & Services inside Solabooks.

Step by step

Inventory home

There is no dedicated /finance/inventory landing page; the natural entry point is the items list at /finance/inventory/items.

The wider area provides:

  • Items (finance.inventory.items.*) — the catalog. See Products & Services.
  • Categories (finance.inventory.categories.*) — group items for reports.
  • Units (finance.inventory.units.*) — measurement units (each, kg, hour, etc.).
  • Reconciliation (/finance/inventory/reconciliation, finance.inventory.reconciliation) — review stock vs ledger balances.
  • Opening remediation (/finance/inventory/opening-remediation, finance.inventory.opening-remediation) — fix opening-stock journals when migration data was incomplete.

Categories and units

  • Categories: open /finance/inventory/categories, create with a name, optional parent. Used for the Purchases by Category and COGS by Category reports.
  • Units: open /finance/inventory/units, create with a label (e.g. "kg", "hour"), optionally with a numeric conversion factor.

Both sections require inventory.categories.manage / inventory.units.manage to edit.

Stock movements

Stock changes through normal transactions:

  • Bills with a stocked item line increase on-hand and post to the Inventory account.
  • Invoices / sales receipts with a stocked item line decrease on-hand and post COGS.
  • Inventory adjustments (separate from this page; managed by the Spatie admin role) record manual increases or decreases (write-offs, stock takes).

There is no separate "Stock Movement" UI here; movements are visible on each item's Transactions tab and on the General Ledger report filtered to the Inventory account.

Reorder points

Feature flag: inventory.reorder_point (default: off). When on, every stocked item gets a Reorder point field. When stock dips below that point, the item appears on the dashboard's "Low stock" widget.

If inventory.reorder_point.email_notifications is also on, Solabooks emails the org Owner once a day with a list of items below their reorder point.

Reconciliation

Open /finance/inventory/reconciliation. Solabooks compares the per-item stock value (quantity × cost) to the balance of the Inventory account. Differences are flagged. Use the report to find missing journal entries or mis-mapped items.

Opening remediation

Open /finance/inventory/opening-remediation. If your historical data was imported with partial stock numbers, this page lets you submit an approval request to write the correcting journal. POSTing approves the correction (finance.inventory.opening-remediation.approvals.store).

How the journal looks

Inventory itself doesn't post — it's a count and a valuation. The journals come from the documents that move stock.

Buying 10 units at JOD 10 each on a bill (no tax):

Account Debit Credit
Inventory 100.00
AP — Supplier control 100.00

On-hand quantity rises by 10; the Inventory account rises by JOD 100.

Selling 3 of those units on an invoice for JOD 50 each, 17% VAT (cost per unit: JOD 10):

Account Debit Credit
AR — Customer control 175.50
Revenue — Sales 150.00
VAT Output 25.50
COGS 30.00
Inventory 30.00

On-hand quantity drops by 3; Inventory drops by JOD 30; COGS rises by JOD 30.

Manual stock write-off (admin-only inventory adjustment, e.g. damage of 2 units at JOD 10 cost):

Account Debit Credit
Inventory write-off (expense) 20.00
Inventory 20.00

FIFO vs weighted-average affects only the cost per unit used in the COGS line — the structure of the journal is identical. With FIFO, the specific oldest layer's cost is consumed. With weighted-average, the running average is used and updated after every purchase.

Common mistakes

  • "Sold an item but COGS didn't post." The item is probably non-stocked (Service or Non-stocked product). Only Stocked items hit COGS / Inventory. Switch the item type in Products & Services — but note you cannot change type once it has transaction history.
  • "On-hand quantity went negative." By default Solabooks allows back-dated entry into negative stock. The reconciliation page flags it as a warning. Receive stock first (post the supplier bill) to bring it back to non-negative.
  • Reorder-point alerts not showing. Either inventory.reorder_point is off, or you don't have the dashboard widget enabled. Toggle in Settings.
  • Opening-stock mismatch. Migration data with partial stock causes the Inventory account and the per-item valuation to diverge. Use the Opening remediation page (/finance/inventory/opening-remediation) to write the correcting journal.
  • Cost suddenly changed. With weighted-average costing, every new purchase moves the running cost up or down. To trace which purchase changed it, open the item's Transactions tab and look at the per-line costs.

Tips

  • Add landed costs before selling the stock if you want the freight / duty in COGS — once a unit is sold, you can't retroactively lift its layer.
  • Use the COGS Detail report under Reports to break down COGS by item / period.
  • The reconciliation page at /finance/inventory/reconciliation is the fastest way to catch valuation drift.

Behaviour and rules

  • Stocked items only. Service items don't appear in stock reports.
  • Costing method. The organization picks one method on setup — FIFO or weighted-average. Changing it later requires admin help.
  • Inventory account. Every stocked item points at one Inventory ledger account; multiple items can share the account.
  • COGS account. Every stocked item also points at a COGS account; that's where the cost lands when the item is invoiced or sold via a sales receipt.
  • Negative stock: by default Solabooks allows negative on-hand to support back-dated entry, but the Reconciliation page flags it as a warning.
  • Tenant scope. Stock counts are per organization; switching organizations swaps the entire stock ledger.

When inventory_enabled is off

If the organization toggles inventory_enabled off in Settings:

  • The Stocked and Non-stocked item types disappear from the new-item form.
  • Existing stocked items remain visible but cannot be added to invoices/bills.
  • Reconciliation and Opening remediation pages remain accessible for historical clean-up.

Permissions / restrictions

  • View items, categories, units: inventory.items.view / inventory.categories.view / inventory.units.view.
  • Manage items, categories, units: inventory.items.manage / inventory.categories.manage / inventory.units.manage.
  • Approve opening-stock corrections: inventory.items.edit.
  • All of the above also require the org-level feature flag.

Related

Source: docs/solavel-finance/inventory.md ← All documentation