OSOSS Help Center
العربيةOpen Dashboard

Stock Transactions

Stock Transactions is the movement ledger of your inventory - every quantity that came in, went out or was adjusted, with the reason attached. If a balance looks wrong, this is the page that tells you why.

Menu path: Inventories > Stock Transactions

Screenshot from the live OSOSS Dashboard

What a transaction records

Each document carries a generated number, a branch, an Operation and a set of lines. The operation is the reason for the movement, and it is the field that makes the ledger readable:

OperationEffect
InIncreases the balance - goods arriving outside a purchase flow
OutDecreases the balance - waste, samples, internal consumption
AdjustSets the balance to a stated figure, posting the difference

Per line you can record the unit cost, the expiry date, a reference number and a shipment number, and the list shows available quantity, items count, status and who created it. Expiry dates are the detail people skip and then need: without them you cannot run first-expiry-first-out, and stock that quietly ages becomes a write-off nobody predicted.

The Account field decides where the value of the movement posts. An "out" for spoilage and an "out" for a marketing giveaway are the same to your shelf and very different to your accounts - the account is what separates them.

Record a movement

  1. Choose the Operation first; it determines what the quantities mean.
  2. Choose the branch, and the account the value posts to.
  3. Add the lines with quantities, unit cost where the movement has a value, and expiry dates where the goods are perishable.
  4. Add a reference number - the supplier note, the incident report, the internal request. A movement without a reference is a movement nobody can audit later.
  5. Save, then check the resulting balance on Inventories.
Note: Sales, purchases, transfers and counts all write to this ledger automatically. Create a manual transaction only for movements no other document covers - breakage, staff consumption, samples - so the ledger stays a real narrative rather than a workaround.
Tip: When a balance disputes with the shelf, filter this page by product and read the movements in date order. The wrong entry is almost always visible as an operation that does not match a business event.

Full reference

Every option and control on this page, at a glance.

Filters (30)

Form fields (12)

Account ID, Barcode, Branch ID, Cost, Items, Name, Note, Operation, Product ID, Quantity, SKU, Title

Standard list tools

Every list page in OSOSS shares these controls:

Related pages

What you can do on this page

Every action on this page, step by step. What you see depends on your role, so a control your account is not set up for simply does not appear.

Add a record

  1. Click Add above the table - some pages label it New or show a + icon.
  2. Complete the form. Required fields carry a red asterisk and the form will not submit until they are filled.
  3. Click Save. Validation runs on submit; any field that fails shows its message directly beneath itself, and the form scrolls to the first problem.
  4. You land back on the list with the new record in place.

Fields on this form: Account ID, Barcode, Branch ID, Cost, Items, Name, Note, Operation, Product ID, Quantity, SKU, Title

Searchable dropdowns (customer, product, account, branch...) read live data - start typing to filter rather than scrolling. Most also let you create the missing record inline so you don't lose the form you are in.

Edit a record

  1. Open the row's actions menu at the end of the row and choose Edit, or open the record and use Edit there.
  2. The form loads with current values. Change only what you need.
  3. Click Save.
Documents that are already posted to accounting, paid, or fulfilled lock the fields that would change history. That is deliberate - issue a refund, a credit note, or an adjustment instead of rewriting the original.

Open and read a record

  1. Click the row, or choose View in the row's actions menu.
  2. The detail page shows the record's own fields, its related documents, and the actions that apply to it in its current state.
  3. Use the breadcrumb or your browser's back button to return - your filters, sort, and page position are preserved.

Delete a record

  1. Open the row's actions menu and choose Delete.
  2. Confirm in the dialog. There is no undo from the interface.
  3. If the record is referenced elsewhere - used on a document, tied to a transaction - the delete is refused and the reason shown.
When a record is refused, or when it may come back into use later, deactivate it instead of deleting. It disappears from selection lists while every document that already used it keeps reading correctly.

Export the list

  1. Filter and choose your columns first - the export mirrors exactly what is on screen, not the whole table.
  2. Click Export All.
  3. The file downloads as a spreadsheet: one row per record, your visible columns in your order.

Import records

  1. Click Import.
  2. Download the template if one is offered - its headers are exactly what the importer expects.
  3. Fill the template, upload it, then map each of your columns to an OSOSS field.
  4. Read the validation result: every failing row is listed with its reason. Fix the source and re-upload, or import only the passing rows.
  5. Confirm. Nothing is written to your account before this step.

Print or save as PDF

  1. Choose Print in the row's actions menu, or open the record and use Print there.
  2. Pick the template or format if you are prompted.
  3. Your browser's print dialog opens - print it, or choose Save as PDF as the destination.