SolaStock Settings hold the organization-wide rules and reference data the rest of the app relies on: costing and picking policy, tax codes, units of measure, categories, brands, unit conversions, warehouse reorder rules, adjustment reasons, currency rates and custom roles, plus a read-only summary of the SolaCount connection.
Owners and SolaStock Administrators use it during setup and occasionally afterwards. A new organization should visit it first: every item needs a unit and a category.
Where to find it
| Sidebar | Admin → Settings |
| URL | /inventory/settings |
| Who sees the menu | Manage inventory settings: the owner, a SolaStock Administrator, or a custom role with it. Others don't see the item; a direct link shows Access denied. |
| Also needed | View inventory settings to load the page (see Load errors). |
There is no document-numbering panel in SolaStock Settings: document numbers (GRN, SO, transfers…) are assigned automatically.
Screen tour
One long page of panels, top to bottom:
| # | Panel | What it is for |
|---|---|---|
| 1 | Inventory Policy | Costing, picking, negative stock, tolerance, expiry warning, consumption approval |
| 1b | Landed costs (small card right under Inventory Policy) | Turn landed costs off or on for the organization |
| 2 | Tax administration | Tax codes and defaults for purchase and sales documents |
| 3 | Warehouse user scope | Older ID-based warehouse assignment (use Team access instead) |
| 4 | Master Data | Categories, units, brands, unit conversions |
| 5 | Reorder Planning | Per-warehouse reorder rules and a safety-stock calculator |
| 6 | Adjustment Reasons | Reason codes for stock adjustments |
| 7 | Currency Rates | Exchange rates to your base currency |
| 8 | Custom Roles | Your own permission sets and their assignment |
| 9 | SolaCount Integration | Read-only connection summary |
Each panel saves on its own button; a successful save shows a green notice, a failure shows the server's message or "The operation could not be completed." A sample data badge next to the title means no organization is selected.
1. Inventory Policy
| Field | Options / rules | Default | Effect |
|---|---|---|---|
| Default costing method | Weighted average, FIFO, Standard | Weighted average | Pre-selected on new items. |
| Picking policy | Manual, FIFO, FEFO | Manual | How lots are suggested on outbound lines: you choose; oldest received first; first-expiring first. Items that track expiry always get FEFO suggestions, even under Manual. Suggestions never force a choice. |
| Negative stock — Allow when policy permits it | Checkbox | Off | Unticked blocks any movement that would take stock below zero. |
| Value reconciliation tolerance | Number ≥ 0, 4 decimals | 0.0100 | Allowed rounding difference when reconciling value. |
| Expiry warning days | 0–3650 | 30 | Default window for the Expiry Risk, Dead Stock and Fast Moving reports. |
Below the table is one checkbox, Require approval for internal consumption (off by default). When ticked, every Internal Consumption issue and return must be Approved by someone holding Approve consumption documents before it can be posted ("Approve this document before posting."). It is saved with the other policy fields.
Click Save policy (shows Saving…). Success: "Settings saved." Failure: "Could not save settings." or a field error. "Expiry warning settings require the pending tenant migration." means your workspace needs an update — contact support.
1b. Landed costs card
A short card titled Landed costs under Inventory Policy. It shows one status line: "Landed costs are on: they are included in your plan.", "Landed costs are turned off for this organization." or "Landed costs are not included in your plan." If your plan includes them and your workspace supports the option, the checkbox Turn off landed costs for this organization lets you switch them off or on again ("Landed cost setting saved."). Where the update is not yet applied you see "This option becomes available after the next SolaStock update." The note below it explains: "Turning landed costs off or on hides or shows the menu and new documents only. If landed costs were already recorded, the menu stays so their history remains readable. It posts nothing, and posted landed costs and stock values stay as they are." See Landed Costs.
2. Tax administration
"Organization-scoped tax treatments used by purchase and sales documents."
Add a tax code
-
Fill the add row:
Field Required Rules Code Yes Upper-cased automatically, max 50, unique. Name Yes Max 100. Rate No (blank = 0) 0–100, up to 4 decimals. Treatment Yes Standard, Zero, Exempt. Active — Ticked by default. New codes are usable for both Purchase and Sales. -
Click Add tax. The row appears in the table but is not saved yet. A code already in the table: "Tax codes must be unique."
-
Click Save tax settings. "Tax settings saved."
Edit, deactivate or remove
In the table (Code, Name, Rate, Treatment, Active, Use) edit name, rate, treatment, tick/untick Active, and tick Purchase and/or Sales under Use. Remove deletes the row. Then Save tax settings.
- A code used on purchase or sales order lines cannot be removed: "Tax code VAT5 is used by historical documents and cannot be removed; deactivate it instead."
- Codes are compared case-insensitively.
Defaults
Default purchase tax lists active Purchase codes; Default sales tax active Sales codes; or No default. A default must point to an active code of the right use: "The purchase default must reference an active purchase tax." Saved with Save tax settings.
UAE example: VAT5 — VAT 5% — 5 — Standard; ZR — Zero-rated — 0 — Zero; EX — Exempt — 0 — Exempt.
When connected to SolaCount, each code is matched to a SolaCount tax in the connection setup.
3. Warehouse user scope
"Assign an operational user to one or more warehouses. Owners remain unrestricted." The older form: type a Central user ID (e.g. 91), tick Allowed warehouses (code · name), click Save warehouse scope ("Warehouse scope saved."). The table lists User and Warehouse as numbers.
Use Team access instead: it shows names and does the same thing. When you arrive from a Portal member-management link, the user field is pre-filled (read-only, labelled with the member's name) and the tables show only that member.
Errors: "Every assigned warehouse must belong to the active organization."; "Warehouse assignment migration is pending." (contact support); a 403 if you try to assign warehouses outside your own scope or manage an owner/administrator.
4. Master Data
The header summarises "Units: n · Categories: n · Brands: n". Four cards, then tables.
Categories (card Category hierarchy)
- Name (required, max 191) and Parent (Top level or any category).
- Optional Consumption expense account - the SolaCount expense account to use by default for items of this category when they are issued on Internal Consumption. It is a searchable picker: type part of the code or name in Search account code or name and choose the account, shown as
code · name; Resolve automatically leaves it empty. Only active, postable expense accounts of the connected SolaCount organization are listed. The picker is greyed out unless you hold Override internal-consumption expense account, and it is saved only for a connected organization. - Add category → "Category saved."
Table: Category, Parent, Level, Status, and Edit. In edit mode change the name, parent, Consumption expense account (the same account picker) and Active, then Save ("Category updated.") or Cancel.
- "A category cannot be its own parent."
- "A category cannot be moved under one of its children."
- Inactive categories stay on existing items; there is no delete.
Units of measure (card Unit of measure)
- Name (required, max 100), e.g. Piece.
- Code (optional, max 50, upper-case). Blank = first 8 letters of the name upper-cased (Kilogram →
KILOGRAM). - Add unit → "Unit saved".
A code already in use is refused with a field message. Units have no list or edit on this page (only the count); they appear on the item form, where + Create next to Unit also adds one.
Brands (card Brand)
Name → Add brand → "Brand saved." Table Brand, Status, Edit → change name/Active → Save ("Brand updated.").
Unit conversions (card Unit conversion)
| Field | Rules |
|---|---|
| From unit | Required (code · name). |
| To unit | Required, different from From ("From and to units must be different."). |
| Factor | Required, > 0, up to 8 decimals. 1 From = Factor × To. |
Save conversion → "Unit conversion saved." Saving the same From/To pair again updates the factor (that is how you edit). Table: From, To, Factor, Item (Global for conversions made here; item-specific ones show the SKU). Example: CTN → PCS, 12.
5. Reorder Planning
A warehouse rule overrides the item's own reorder levels in that warehouse (used by Low Stock and replenishment).
| Field | Rules |
|---|---|
| Item | Required; inventory items (first 500 by SKU). |
| Warehouse | Required. |
| Reorder point, Reorder quantity, Minimum stock, Maximum stock, Safety stock | Optional, ≥ 0, 4 decimals. Blank = not set. |
| Demand lookback | 7–365 days, default 30 (calculator only). |
| Lead time days | 1–365, default 14 (calculator only). |
| Service factor | 0–3, default 1.65 (≈95% service level). |
Calculate safety stock
- Choose Item and Warehouse (else "Select an item and warehouse first.").
- Click Calculate safety stock → "Safety stock calculated." A blue banner: "Demand 300 over 30 days · average 10/day · lead-time demand 140 · available 60."
- The calculator fills Safety stock = service factor × daily-demand standard deviation × √lead time; Reorder point = lead-time demand + safety stock; Reorder quantity = reorder point − available (not below 0). Demand = outbound movements of the item from that warehouse.
Save
Click Save reorder rule → "Warehouse reorder rule saved." Saving the same item + warehouse again replaces the rule (blank fields are cleared). Table (latest 250): Item, Warehouse, Point, Qty, Min / Max, Safety. No delete on this page.
6. Adjustment Reasons
| Field | Rules |
|---|---|
| Code | Required, max 50. Normalised to lower case; spaces and symbols become _ (Damaged Goods → damaged_goods). Must contain a letter or number ("Reason code must contain at least one letter or number."). |
| Label | Optional, max 100. Blank = the code with the first letter capitalised. |
Save reason → "Adjustment reason code saved." Saving an existing code again replaces its label (that is how you rename one). Table: Code, Label, Status. Reasons appear on Adjustments and in the Adjustment Report.
7. Currency Rates
| Field | Rules |
|---|---|
| Currency | 3 letters, upper-case (e.g. USD). |
| Rate to base | > 0, up to 8 decimals: how many base-currency units one unit is worth. |
| Effective date | Required, defaults to today. |
Save rate → "Currency rate saved." Same currency + date updates the rate. Table (latest 250): Currency, Rate to base, Effective. For an AED organization, USD = 3.6725. Used by Inventory Valuation → Currency.
8. Custom Roles
A custom role is your own SolaStock permission set. Assigned to a member, it replaces the permissions of the SolaStock role they were invited with (inside SolaStock only). It never limits the owner or a SolaStock Administrator.
Create a role
- Optional Role preset: Inventory Manager, Warehouse Manager, Warehouse Operator, Inventory Viewer — fills name and ticks its permissions.
- Role name (required, max 120) and Role key (optional, unique, e.g.
warehouse_supervisor; blank = derived from the name). - Tick permissions; each card shows its key and description (e.g.
inventory.export_reports— Export inventory reports). - Save role (disabled until one permission is ticked) → "Custom role saved."
You cannot include a permission you don't hold yourself (the save is refused with an access error).
Roles table: Role, Role key, Permissions (count), Assignments, Status. Roles cannot be edited or deactivated on this page; create a new role and reassign members.
Permission list
| Group | Permissions |
|---|---|
| Catalog | View items; Create / edit / deactivate items; View warehouses, zones, bins; Create / edit warehouses, zones, bins; Manage zones and bins in assigned warehouses |
| Stock | View the inventory dashboard; View stock balances; View the stock ledger; Create / post / reverse opening stock; Create / post / reverse stock adjustments; Transfer stock between assigned warehouses |
| Purchasing | Create and edit purchase orders; Approve and cancel purchase orders; Receive approved purchase orders without changing valuation |
| Sales | View sales orders & fulfillment; manage sales orders, reservations, picking, packing, shipments, returns |
| Internal consumption | View internal consumption; Create consumption issues; Approve consumption documents; Post consumption issues; Return unused consumption; Override internal-consumption expense account |
| Traceability | View lots, serials, expiry & traceability; lot status; serial status; recall cases; Ship quarantined / recalled lots (override); Ship expired lots (override) |
| Reports & admin | View / Export inventory reports; View / Manage inventory settings |
| SolaCount | View integration status & events; Prepare connection decisions; Manage and approve a connection; Manage mappings & settings; Review accounting-role decisions; Retry / ignore events; Export events |
Assign or remove
Recommended: Team access. On this page: enter the Central user ID, choose Role (active roles), Assign role → "Role assigned." A member has at most one custom role; assigning another replaces it. In the assignments table (User ID, Role) click Remove → Remove role assignment — "This user will lose permissions granted by this role assignment. Other memberships remain unchanged." → "Role assignment removed."
9. SolaCount Integration (summary)
Read-only: Status (Connected / Not connected), Delivery (Configured / Awaiting credentials), Inventory asset, COGS, GRNI / accrual accounts (or — (unmapped)), a Planned events line and a delivery note. The account roles on the connection page now also include Default internal-consumption expense account (the last fallback for Internal Consumption) and, once chosen, the Landed cost clearing account. Manage the connection in Admin → SolaCount (SolaCount).
Load errors
| Message | Cause | Fix |
|---|---|---|
| Settings could not be loaded — "You do not have permission to view inventory settings." | Custom role has Manage but not View inventory settings. | Add View to the role. |
| Settings could not be loaded + other text | Temporary problem. | Retry. |
Permissions
| Role | Open Settings | Notes |
|---|---|---|
| Owner, SolaStock Administrator | Yes | Everything. |
| Organization Manager / Member, scoped roles, viewers | No | |
| Custom role with Manage + View inventory settings | Yes | Can only grant permissions it holds; warehouse assignments limited to its own warehouses. |
Worked examples
Example 1: add a reason and a rate (quick)
Omar Haddad adds Code Expired Stock, Label blank → saved as expired_stock / Expired_stock; he re-saves with label Expired stock to tidy it. Then Currency USD, Rate to base 3.6725, today → "Currency rate saved."
Example 2: set up a new organization (full scenario)
Al Noor Trading LLC, base currency AED:
- Inventory Policy: Weighted average, FEFO, negative stock off, tolerance 0.0100, expiry warning 60 → "Settings saved."
- Tax: add
VAT5(5, Standard),ZR(0, Zero); defaultsVAT5for purchase and sales → Save tax settings. - Master Data: units Piece
PCS, CartonCTN, KilogramKG; categories Electronics → Mobile Phones, Accessories (parent Electronics; Level 1); brand Apple; conversionCTN→PCS× 12. - Reorder Planning:
CHG-USB-Cin Dubai Main; Calculate safety stock shows Demand 300 over 30 days · average 10/day · lead-time demand 140 · available 60; fields fill with Safety 15.3, Point 155.3, Qty 95.3; Omar rounds Qty to 100 and saves. - Adjustment Reasons:
damage/ Damaged stock;found/ Found in count. - Custom Roles: preset Warehouse Manager, adds
inventory.export_reports, name Warehouse Supervisor → saved; assigns it to Sara Khan from Team access.
Result: items can be created, receipts use VAT 5%, picking suggests the earliest-expiring lot, Low Stock flags CHG-USB-C below 155.3 in Dubai Main.
How it connects
Items (units, categories, brands, costing), purchasing and sales (tax codes), adjustments (reasons), reports (reorder rules, rates, expiry window), traceability (picking policy), Team access (custom roles, warehouses), SolaCount (tax and account matching).
Tips & common problems
| Problem | Cause | Fix |
|---|---|---|
| Added a tax but it's gone after reload | Add tax doesn't save. | Click Save tax settings. |
| Can't remove a tax code | Used on orders. | Untick Active. |
| Unit code rejected | Already used. | Choose another code. |
| Need to change a conversion factor | — | Save the same From/To again. |
| Item missing from Reorder Planning | Only the first 500 inventory items are listed. | Set the levels on the item instead. |
| Custom role save refused | It includes a permission you don't hold. | Untick it or ask the owner. |