Product
Your stock follows your orders — from confirmation to the parcel that comes back
In Nawras, a product's stock is not a number: it is eight bins. A unit moves from Available to Allocated when the order is confirmed, to In transit when the parcel leaves, to Delivered when the customer keeps it — and it comes back to Quarantine if they refuse it, until it has been inspected and either put back on sale or written off. None of these movements are typed in by hand: they follow the order's lifecycle, and the total only changes when goods actually enter or leave your warehouse.
One stock, eight bins — and you always know where your units are
Six bins where a unit can still move, two it never comes back from. These are the same eight numbers shown on every product, with no vocabulary to learn.
Available
What you can sell right now. It is the only bin that decides a shortage, and the only one the AI agent looks at before promising an item to a customer.
Allocated
Reserved for a confirmed order that has not shipped yet. The unit is still with you, but it has a name on it: selling it again would be promising it twice.
In transit
The parcel has left. The unit is no longer in your warehouse and not yet with the customer — it is with the carrier, and it stays counted there.
RTO
The customer did not take the parcel. The unit is on its way back to you, and it is not available for that reason alone: nobody has opened it yet.
Quarantine
Received at the warehouse, not yet judged. This is the bin that stops a broken item from going back on sale because somebody was in a hurry.
Delivered
With the customer, and counted there. It is not a final exit: this is the bin a unit leaves the day the customer sends it back.
And two bins with no way back, whose only job is to keep what you lost from vanishing:
Write-offs
Breakage, theft, shrinkage. The unit leaves sellable stock without evaporating: it stays counted there, with its reason.
Supplier return
The item goes back where it came from. It leaves your stock, and the line that says so stays.
The sum of all eight only changes on two gestures: a supplier reception, or an adjustment you signed. Everything else is a move — what leaves one bin enters another, unit for unit.
Stock moves when goods move, never when a status changes
Six steps in an order's life, six moves. Each in a direction known in advance, and each exactly once.
The order is confirmed
Available → Allocated
The reservation happens at confirmation, not when the order lands. An order that just arrived from your shop freezes nothing until somebody has said yes.
The parcel ships
Allocated → In transit
Stock leaves your warehouse the moment the label leaves, not the moment you think of it.
The customer is delivered
In transit → Delivered
And if they only accept part of the parcel, only the delivered part moves to Delivered. The rest follows the refusal path, item by item.
The parcel comes back
In transit → RTO
A refusal, an address nobody can find, three attempts with no answer: the unit travels back to you and waits to be opened.
The order is cancelled before shipping
Allocated → Available
The unit becomes sellable again within the second. This is the move no spreadsheet makes on its own, and the most expensive one to forget.
The return is received at the warehouse
RTO or Delivered → Quarantine
This is the gesture that moves stock. Not opening the return, not approving it, not the carrier's pickup.
Requesting a return, approving it, waiting for the pickup: none of it touches your counters. As long as the parcel is not in your hands, the unit stays counted where it truly is. A counter that moves on an intention is a counter you have to correct when the intention falls through — and nobody ever remembers to correct it.
A shortage only forbids what you decide it forbids — product by product
The same account can sell on backorder for one item and refuse outright for another. The setting lives on the product, and it governs selling and confirming alike: one switch, never two contradictory opinions.
Backorder allowed
Default
The AI agent keeps offering the item, the order confirms, and the Available bin goes below zero. You are not blocked — you are told.
Selling blocked
Your call, per product
The AI agent stops offering the item, and confirmation is refused, naming the product, the quantity asked for and the quantity left. A single locked product short is enough to refuse the whole order: a half-honoured order is a dispute, not a sale.
Overconfirmed
The state that follows
The state of a product whose Available has gone negative. It is not an error to hide: it is the number of units you owe customers who have already said yes.
You set two thresholds per product — the one that triggers “low stock”, the one that triggers “critical stock”. They exist to warn you: they block no sale.
Five alerts exist — low stock, critical stock, out of stock, overconfirmed, and back to normal. They fire on a CHANGE of state, not on every sale: a product that stays low for three days gives you one notification, not three hundred. And they are written at the same instant as the movement that caused them — either both, or neither.
A returned item does not go back on sale because somebody was in a hurry
Four steps, each with its own deadline. A unit leaves quarantine on a signed decision, never out of fatigue.
Same day
Reception
The parcel is in your hands. The units move to Quarantine and a ticket opens per item — one ticket, one product, its quantity and the order it came from.
7 days
Inspection
You record the condition of the item and of its packaging, with a reason and, if you want, photos. Item pristine AND packaging pristine: it goes back on sale automatically — that is the most common case, and forcing a manual decision on it would protect nothing.
3 days
Decision
Three outcomes: back on sale, written off, or returned to the supplier. Refurbishing is not a fourth — it is a step, five days long, at the end of which the item leaves through one of the three.
1 day
Exit
Stock moves first, the ticket closes second. In that order: a closed ticket on stock that never moved is a lie nobody will ever check.
A missed deadline is not silent. The ticket keeps a record of every breach, and you are told once per breach — not once a night until you turn your notifications off.
Every movement leaves a line, and that line says who, when and why
This is not a screen history. It is the source your counters are recomputed from, every night.
One line per movement
The movement type, the quantity, the bin it left and the bin it entered, the author and their role, the reason, and the order involved when there is one.
A reason code, not a free note
Warehouse damage, shrinkage, stocktake correction, supplier reception: the reason is picked from a closed list. A free note gets read once; a closed list gets counted at the end of the month.
Replayed, never applied twice
Every movement carries the identity of the event that produced it. If that event comes round again — a retry, a dropped connection, a double click — the movement is recognised and ignored.
A manual adjustment is signed
The note is mandatory, the state of the bins before and after is recorded, and the gesture shows up in the log exactly like a delivery. Nobody corrects stock anonymously.
A physical stocktake is the exception to the delta rule: you send the number you COUNTED, and the difference is computed at the exact instant it is written. Computing it on screen would mean correcting a stock figure read minutes earlier — and silently erasing everything that moved in between.
Every night, your counters are recomputed from the log
At midnight, Casablanca time — the quiet hour of a COD day, when no confirmation is in flight.
Replay, then compare
For every product, the sum of all its movements is recomputed and set against the eight counters on screen. Zero difference is the expected result: this reconciliation is a safety net, not a routine repair.
Correct it, and let the correction show
A difference is corrected automatically, and the correction goes through the log like any other movement — dated, attributed, and reversible.
One drift record per product, per day
It keeps the counters as they were, the result of the replay, the gap bin by bin, and the suspected cause. That is what lets you understand a week later, when nobody remembers anything.
One alert, graded
You are told about any difference. Past 10% of the product's stock, the alert turns critical: that is no longer a rounding error, it is an incident.
A correction is never counted again on the next pass: it is written to be read by a human, and excluded from the replay. Counting it twice would freeze the gap forever — the reconciliation would start defending the very error it just corrected.
Three things Nawras refuses you, and that is what keeps your counters honest
A stock counter almost never breaks by being written wrong. It breaks when the identity of the thing it counts is changed underneath it.
The item code cannot change after creation
It is the only identifier stock knows. Changing it on a product that has already sold would orphan every line of history pointing at the old code: movements with no product, a product with no past, and two totals that no longer meet. You can change everything else about a product — its name, its price, its photos, its whole record — but not this.
A committed product cannot be deactivated or deleted
As long as units sit in Allocated, In transit, RTO or Quarantine, the product refuses to disappear, and it tells you which ones are holding it. Parcels on the road whose item no longer exists are returns nobody will know where to put.
Stock is written through one door only
No screen touches a counter directly. Every movement goes through the same passage — the one that checks, logs, alerts, and recognises an event it has already handled. That is what keeps an accurate stock accurate while three people work at once.
And a variant is not a line inside a product: every size and every colour has its own item code and its own eight bins. A shortage on black 42 does not stop white 43 from selling.
The questions people ask before trusting a tool with their stock
I don't want to track stock on all my products.
Then don't give them an item code. An order line with no item code consumes nothing, blocks nothing and triggers no alert: it simply goes through. Tracking is a decision made product by product, not a mode you switch on for the whole account — so you can track the ten references that tie up your cash and leave the rest alone.
My products come in sizes and colours. How is stock counted?
Every variant is a full item in its own right: its own code, its own stock, its own alert thresholds, and its own price if you want one. The parent product is a model, not a shared pot — it holds no units. In practice, black 42 can be out of stock while white 43 keeps selling, and the AI agent knows it before answering the customer.
What happens if I sell more than I have?
By default the sale goes through and the product turns overconfirmed: Available goes negative, and you get an alert telling you how many units you owe. If you would rather that be impossible, lock the product — confirmation is then refused, naming the item and the missing quantity. One detail you will not read anywhere else: two confirmations fired in the same second can both go through, because the check reads stock just before writing. That is a deliberate trade-off, and it is exactly why the overconfirmed state exists — it makes the debt visible instead of pretending it never happened.
How do I run a physical stocktake?
You count, then you type the number you found — not the difference. Nawras computes the gap at the very moment it writes it, adds a line to the log with the “stocktake” reason and your note, and updates the product's state. It is the only way not to overwrite an order confirmed while you were in the warehouse with a clipboard.
The stock on screen does not match what I count in my warehouse.
Start with last night's drift record. If it is empty, your counters agree with your history: the difference is physical — an item that left undeclared, breakage nobody entered, a parcel sent outside the system. No software can see that. It can, however, tell you it is not the cause, which is already half the work. Then a stocktake puts the counter straight, and the line that says so stays in the log.
Ready to take back control?
Create your workspace in 2 minutes and see the impact in the first week.
Zero dirhams. Zero commitment. Cancel in one click.
