Solavel Docs

Opening Stock

Last updated

Opening stock records the quantities and costs you already hold when you start using SolaStock, or when you open a new warehouse. Posting an entry writes "in" movements to the stock ledger at the cost you enter, which becomes the starting value of your inventory. When SolaStock is connected to SolaCount, the posting is also sent to your accounts.

Use it once per warehouse at go-live (or for a batch of newly found legacy stock). For day-to-day corrections use Adjustments; for receipts from suppliers use Purchasing.

Where to find it

  • Sidebar: Operations → Opening Stock. URL /inventory/opening-stock.
  • New entry: New entry (top-right) — /inventory/opening-stock/new.
  • An entry: click its number — /inventory/opening-stock/{id}; edit a draft at /inventory/opening-stock/{id}/edit.
  • Shortcut: the opening stock fields on the New item form (see Items).
Action Permission Default roles
View entries View stock balances All SolaStock roles (scoped: assigned warehouses only)
Create, import, edit drafts, post, reverse Create / post / reverse opening stock Owner, SolaStock Administrator, organization Managers/Members. Not Inventory Manager, Warehouse Manager, Warehouse Operator, Inventory Viewer.

Without the permission, New entry is greyed out and the Bulk import panel is hidden.

Screen tour — the list

  • Header: Opening stock and New entry (right).
  • Line under it: "Posting and reversal use the canonical stock ledger. Posted entries cannot be edited."
  • Bulk import panel (if you can create): Warehouse, Posting → Post after import, Import CSV, and the column help (Required columns / Optional columns).
  • Table, newest first (up to 50 entries):
Column Meaning
Number Entry number (OS-000001…). Opens the entry.
Date Opening date.
Warehouse Warehouse name.
Status Draft, Posted or Reversed.
Value Total value of the lines.

Empty: No opening-stock entries — "Create an entry to set the starting quantities."

Statuses and lifecycle

Status Meaning What you can do
Draft Saved; no stock yet. Edit, Post.
Posted Stock added; locked. View, Reverse.
Reversed Opposite movements added; the original stays in the ledger. View only.

Draft → Posted → Reversed. There is no delete. Opening a posted entry for editing shows "Posted documents are read-only." and returns you to the entry.

Create an entry

  1. Operations → Opening Stock → New entry. The page is titled New opening stock.

  2. Header fields:

    Field Required Rules / defaults Notes
    Document number No "Generated automatically if left blank." On a new entry SolaStock always assigns the next OS- number. You can change it later when editing the draft (max 50 characters).
    Opening date No Defaults to today. The date of the movements in the ledger.
    Warehouse Yes Must be one you are assigned to. Choose it before bins.
    Notes No e.g. "Stock take 30 Sep 2026".
  3. Under Lines, one line per item (+ Add line for more, × to remove):

    Column Required Rules Notes
    Item Yes Active inventory items only. Shown as SKU · name.
    Bin No Bins of the chosen warehouse. Bin (optional)…
    Quantity Yes Greater than 0, up to 4 decimals. For serial items it equals the serial count ("Quantity equals the serial-number count").
    Unit No Any unit. Enter quantity in another unit (e.g. cartons); SolaStock converts to the base unit using Settings conversions and divides the cost accordingly. Shows Each serial number for serial items.
    Lot / Serial number / Expiry For tracked items Lot items: lot code ("A lot code is required for lot-tracked items.") and optional expiry date. Serial items: scan or type each serial and press Enter; duplicates are skipped (":count duplicate serials skipped."). A badge such as Lot tracked shows what is needed. — for untracked items.
    Unit cost No 0 or more, 4 decimals. Blank = 0. Cost per unit of the chosen unit.

    Total value under the lines updates as you type.

  4. Click a button at the bottom:

    • Save draft — "Draft saved." ("Draft updated." when editing). No stock change.
    • Save & post — confirm Post opening stock? — "Posting writes stock movements to the inventory ledger and locks this document. It cannot be edited afterwards." → Post. You see "Opening stock posted."
    • Cancel — leave without saving.

With no usable lines: "Add at least one line." Other failures: "Save failed." or the server's message.

If the connection drops during save or post you see Status not confirmed — "We could not confirm whether the change completed. Check the current status before submitting again." Click Check current status to open the entry (or the list) and check whether it was saved or posted before trying again.

Edit a draft

  1. Open the draft and click Edit (top-right). The page is titled Edit opening stock.
  2. Change header and lines. Lot codes, expiry dates and serial numbers are not reloaded into the form — re-enter them for tracked items before saving.
  3. Save draft or Save & post.

The entry page

  • Header: number, status badge, Edit (drafts only).
  • Summary: Opening date, Warehouse, Total value, Notes.
  • Tabs:
Tab Shows
Lines Item, Bin (internal bin number), Quantity (with the entered quantity and unit in brackets when another unit was used), Unit cost, Total. Serial items have one line per serial.
Ledger result The movements created: Date, Item, Warehouse, Direction, Quantity, Unit cost, Total, Running quantity. Before posting: "No ledger entries yet. They appear here after posting."
Audit Audit timeline — "Posting and reversal events are recorded in the inventory audit log." (See Stock Ledger → Activity audit.)
  • Bottom actions: Post (drafts) or Reverse (posted). Greyed out without permission.

Post a draft

  1. Open the draft and click Post.
  2. Confirm Post opening stock? → Post.
  3. "Opening stock posted." The status becomes Posted and Ledger result shows the "In" lines.

Posting is refused when:

Message Cause
"You are not assigned to this warehouse." Warehouse outside your scope.
"Item … is serial-tracked; a serial is required." / "… is lot-tracked; a lot is required." Missing serials or lot code.
"Item SKU is a service or non-inventory item; it cannot have stock movements." Wrong item type on a line.
"Selected bin does not belong to the movement warehouse." Bin from another warehouse.
required_account_mappings_missing: inventory_asset, opening_offset SolaCount is connected but the Inventory asset and Opening offset accounts aren't mapped. Map them in Admin → SolaCount.

Reverse a posted entry

  1. Open the posted entry and click Reverse.
  2. The dialog Reverse opening stock? says "Reversing appends opposite ledger entries from the original source. The original entries remain unchanged." Enter a Reason (required, at least 3 characters, up to 500: Explain why this source document is being reversed).
  3. Click Reverse. You see "Opening stock reversed." The status becomes Reversed; "Out" lines dated today are added.

The reversal is its own document, numbered REV-OS-…, with its own ledger rows. The original rows stay unchanged, and the Ledger result tab of the opening stock entry now lists both the original movements and the reversal's opposite movements. When SolaStock is connected, an Opening stock reversed event follows the original Opening stock posted event, and SolaCount posts the exact inverse of the original journal once.

The reversal is refused, for every costing method (FIFO and weighted average alike), when the opened stock has been touched since:

  • "Cannot reverse this opening stock because stock it added has since been consumed downstream. Reverse the downstream source first." - something left the same item, warehouse, lot and bin after the opening stock was posted (sold, transferred, adjusted out, consumed internally).
  • "Cannot reverse this opening stock because the stock it added is no longer fully available." - less than the opened quantity is on hand now.

Reverse the later documents first, or correct the stock with an adjustment. Check Current Stock before reversing. If you are connected and the opening stock reversal is not covered by the reviewed connection, or its accounts are not mapped, the reversal is refused too (see SolaCount). An opening entry that was posted while you were not connected can still be reversed locally; nothing is sent to SolaCount for it, because SolaCount never received the original.

Bulk import from CSV

  1. On the list, in Bulk import, choose the Warehouse. Import CSV stays disabled until you do ("Choose a warehouse before importing.").
  2. Decide Post after import. Leave it unticked to review a draft first (recommended).
  3. Click Import CSV (shows Importing…) and pick a .csv file up to 10 MB.
  4. Success: "Imported :count rows." (draft) or "Imported :count rows and posted the opening stock." The new entry is dated today with notes "Bulk opening-stock import".
Column Required Notes
sku (Item SKU) Yes Matches an existing item.
name (Item name) Yes for new SKUs If the column is present it must not be blank.
quantity (Quantity) Yes Positive.
unit_cost (Unit cost) Yes Cost per base unit.
lot_code (Lot code) Lot items
expiry_date (Expiry date) Optional YYYY-MM-DD.
bin_id (Bin ID) Optional Internal bin number in the chosen warehouse.
category_id, base_unit_id New SKUs Internal IDs of an active category and unit.
notes Optional Line note.

A SKU that doesn't exist is created as a new active inventory item (weighted average, purchase price = unit cost), but only with a valid category_id and base_unit_id: "Each new inventory item needs a valid category_id and base_unit_id. Row n." New items count toward your plan's item limit. Serial-tracked items cannot be imported this way (no serial column) — enter them on a manual entry.

Row errors stop the import and name the row (the header is row 1): "Each import row needs sku and name. Row n.", "Each import row needs a positive quantity. Row n." An empty file: "Import file did not contain any item rows." Items created from rows before the failing row are kept, so fix the file and import again — those SKUs now match.

Example file:

sku,name,quantity,unit_cost,lot_code,expiry_date
CHG-USB-C,USB-C Charger 30W,300,24.5000,,
SNS-VITC,Vitamin C 1000mg,120,18.7500,LOT-2609,2027-09-30
CASE-IP15,iPhone 15 Clear Case,500,6.2000,,

Permissions

Action Owner / Admin Org Manager / Member Scoped roles, Viewer, Accountant
View list and entries All Assigned warehouses Assigned warehouses
Create, edit, import Yes Yes (assigned) No
Post, reverse Yes Yes (assigned) No

Worked examples

Example 1 — One warehouse, manual (quick)

Omar Haddad opens New entry, warehouse Jebel Ali, line USB-C Charger 30W 200 PCS at 24.5000. Total value 4,900.00. Save & post → Post → "Opening stock posted." Entry OS-000004, Current Stock shows 200 in Jebel Ali.

Example 2 — Go-live import and accounting (full)

Al Noor Trading LLC goes live on 1 October 2026 with SolaCount connected.

  1. Omar imports the CSV above into Dubai Main, Post after import unticked: "Imported 3 rows." The draft OS-000005 shows Total value 7,350 + 2,250 + 3,100 = AED 12,700.
  2. He opens it, clicks Edit, sets Opening date 30-09-2026, adds bin A-01 to the charger line, re-enters lot LOT-2609 / expiry 2027-09-30 for Vitamin C, and adds a line iPhone 15 Pro 256 GB with 25 scanned serials at 3,850 (quantity 25, AED 96,250). Total value AED 108,950.
  3. Save & post → confirm. Ledger result shows four kinds of "In" lines dated 2026-09-30 (one per serial for the iPhones).
  4. SolaCount receives the opening-stock event: Inventory asset debited AED 108,950, Opening offset (equity) credited AED 108,950.
  5. Two days later he notices the case cost should be 5.9000. Cases have been sold already, so instead of reversing he posts an adjustment for the value difference.

How it connects

Tips & common problems

Problem Cause Fix
Item missing from the line picker. Service, non-inventory or inactive. Check the item.
My document number was replaced by OS-…. New entries always get a generated number. Edit the draft to change it.
Lot codes vanished when I edited the draft. The edit form doesn't reload lot/serial data. Re-enter them before saving.
"You are not assigned to this warehouse." Warehouse outside your scope. Choose another or ask an administrator.
Wrong cost after posting. — Reverse if nothing used the stock; otherwise an adjustment.
Import failed halfway. A row error. Fix the row named in the message and re-import.

Post opening stock before purchase receipts and sales so FIFO layers and averages start from the right cost.

Related