Back-office screens
The back office (/manage) offers seven screens around stock and supplier orders. They all
read the same data (stock, its movement journal and supplier orders), but they do not all
write. When they do, every movement follows the platform's
write paths: stock and its journal line are recorded
together, and a product without stock tracking gets no movement (the one exception: editing
a simple product's stock from the Stocks grid first switches its tracking on). This page
tells you which screen to open for which need, and what each button does.
Which screen to open
flowchart TD
Q0{"What do you want to do?"}
Q0 --> A["Fix a stock figure"]
Q0 --> B["Understand a stock figure"]
Q0 --> C["Drive replenishment"]
A --> A1{"How big?"}
A1 -->|"A few products"| S1["Vendor stocks<br/>inline editing"]
A1 -->|"Full count"| S2["Counts"]
B --> B1{"Which angle?"}
B1 -->|"Line-by-line journal"| S3["Stock movements"]
B1 -->|"Timeline + indicators"| S4["Stock ledger"]
C --> C1{"What exactly?"}
C1 -->|"What will run out?"| S5["My stock"]
C1 -->|"Review supplier emails"| S6["Email review queue"]
C1 -->|"Suspicious stock figures"| S7["Stock gaps"]
To check that everything is fine: the Inventory health dashboard (read-only) and the "Cron 5" chip on the Stock ledger screen.
At a glance
| Screen | Route | Shows | Changes | Key permission |
|---|---|---|---|---|
| Vendor stocks | /manage/ecommerce/vendors/stocks |
product × vendor grid, valuation | inline stock, bulk import, snapshots | vendors:read + stock:write |
| Stock ledger | /manage/ecommerce/inventory/stock-ledger |
indicators, product timeline, divergences | manual movements, reconciliation, confirmations | stock:read / stock:write, vendors:write |
| My stock | /manage/ecommerce/inventory/mon-stock |
30-day "will run out" projection, stock to check | supplier drafts and one-off orders, stock entry | stock:read, vendors:write, stock:write |
| Counts | /manage/ecommerce/inventory/counts |
counting sessions | adjustments at finalization | stock:read / stock:write |
| Stock movements | /manage/ecommerce/inventory/stock-actions |
the full movement journal | deletion with or without stock effect | stock:read / stock:write |
| Supplier orders | /manage/ecommerce/vendors/orders |
calendar, statistics, email queue, stock gaps | send, defer, cancel, stock correction and validation | vendors:*, stock:write |
| Inventory health | /manage/inventory/health |
alerts and indicators | nothing (read-only) | inventory:read |
Vendor stocks: /manage/ecommerce/vendors/stocks
The working grid: every product with its default vendor, current stock, on-order and draft quantities. This is the spot-correction screen.
The screen also shows the stock valuation: total value at purchase price of the products in stock (stock above 0), with the number of those missing a purchase price (and therefore not valued).
| Action | Permission | Effect |
|---|---|---|
| Edit a stock figure in the grid | stock:write |
Manual increase or decrease movement depending on the difference with the journal's stock, optional reason; the entered stock is also marked as validated |
| Bulk CSV/XLSX import | inventory:write |
One movement per changed product, applied as a single batch |
| Inventory snapshot | stock:write |
Freezes a dated valuation (products and value), no stock movement |
| Delete a snapshot | stock:write |
Removes the snapshot, no effect on stock |
You enter the actual stock, not a difference. A value equal to the current stock writes nothing. The edit is refused on a generic or composite product; on a simple product that had no stock tracking, it switches tracking on.
The import file (first sheet for an XLSX) has one row per product with these columns:
| Column | Accepted names | Content |
|---|---|---|
| Product | productId (or id, product_id), otherwise reference (or sku, ref) |
product ID, or its reference |
| New stock | newStock (or stock) |
whole number, zero or more |
reference,newStock
CAFE-250,42
THE-VERT-100,0
A preview shows, row by row, the matched product and the planned change before anything is applied. The reason is entered once in the import dialog and applies to the whole file ("Import fichier" by default).
Snapshots keep a dated valuation history, with a name and an optional note, a per-vendor breakdown and a CSV export, useful for month-end accounting. When the grid is filtered on a vendor, the snapshot only covers that vendor's products.
Inline editing is built for fast, repeated corrections: the value must be a whole number, zero or more; Enter saves, Escape cancels.
Stock ledger: /manage/ecommerce/inventory/stock-ledger
The most complete screen: the ledger made readable. Four areas:
- Indicators: physical stock (with the backorder quantity when signed stock is negative), reserved, available, pending outflows (undelivered orders) and virtual stock.
- Overview table: one product per row, with filters kept in the URL (category, vendor, critical products, health, divergences only, products without stock tracking included or excluded, sorting, date range, today to +14 days by default).
- Product timeline: a product's inflows and outflows, line by line, with details of customer orders and supplier orders.
- "Cron 5" chip: shows whether automatic validation is running, based on the age of its last run (green up to 5 h, amber up to 12 h, red beyond that or when no run is recorded) and, as secondary information, when it last sealed something on the reception side (⇣) and the delivery side (⇡). See Daily timeline.
The "Assumed receptions" panel lists supplier receptions that automatic validation
sealed (last 30 days by default, adjustable), with a button to cancel those that did not
actually arrive (see A typical week). Viewing the panel
requires vendors:read.
| Action | Permission | What happens |
|---|---|---|
| Manual movement | stock:write |
Records an increase or a decrease (positive quantity, required reason, optional date) and its journal line; refused on a product without stock tracking |
| Reconciliation | stock:read (preview), stock:write (apply) |
Lists products whose displayed stock diverges from the journal; each fix adds an inventory adjustment that brings the journal onto the displayed stock |
| Delete a movement from the timeline | stock:write |
Removes the movement and reverses its effect on stock |
| Confirm a supplier reception | vendors:write |
Records the reception: the movement is applied to stock |
| Confirm a customer delivery | orders:write |
Records the delivery: the stock decrement is applied |
| Cancel an assumed reception | vendors:write |
Removes the stock, restores the projections and reopens the order; the next pass will not seal it again |
Reconciliation is for repairing a divergence, not for editing stock. A preview always shows before anything is applied, and you can fix only a selection. A backordered product (displayed stock 0, negative signed stock) is not a divergence and does not appear in the preview. If divergences keep coming back, report it to support.
My stock: /manage/ecommerce/inventory/mon-stock
The day-to-day view: what will run out, and what is on the way? It has two tabs.
Replenishment (default) is a rolling 30-day projection, as product cards, with:
- the uncovered demand panel (customer orders with no matching supplier order), where
you can delete a supplier draft (
vendors:write); - group by vendor (
?group=true, shareable as a link), where you can also switch a vendor to made-to-order, so its products order the full demand without deducting stock, except those whose stock has been validated (vendors:write); - one-off supplier-order creation (
vendors:write), also driven by the URL:?newOrder=1opens a blank order,?orderVendor=<id>targets a vendor (and switches to the grouped view), and?orderSlot=yyyy-MM-ddtargets one of its slots (nonefor unscheduled orders). These orders go through the same checks as automatic ordering; - on a product card, validate the stock (
stock:write) so the ordering engine deducts it from the next orders, or withdraw that validation.
The search (?q=) is shared by both tabs, and ?all=true shows every product.
Stock control (?tab=controle) lists the figures to check or enter. You type the
quantity actually on the shelf, not a difference: it is recorded in the journal as an
inventory adjustment and the stock is marked as validated (stock:write). The entry is
refused on a product without stock tracking. From the same tab you can stop tracking stock
for a product that should not be counted (stock:write).
Someone with stock:read and vendors:write, without stock:write, can handle orders from
this screen without changing stock.
Counts: /manage/ecommerce/inventory/counts
Counting in three steps. Creating and filling a session requires stock:write, even
though nothing is written to stock before finalization.
Choose the scope by searching for products. You can add or remove products until the session is finalized. The session is a draft: nothing is written to stock.
Enter the quantity actually counted for each line. You can stop, resume, correct. Still no stock write. A line left empty will not be adjusted (it is not treated as 0).
Finalizing is the only step that writes. For each counted line, the difference is computed against the journal's signed stock, an increase or decrease movement is recorded according to its sign, and the displayed stock takes the counted value. Products without stock tracking are skipped. Finalizing is refused if no line has been counted. It also records a dated valuation snapshot.
When backorders are enabled, a product can have a signed stock of −3 and a displayed stock of 0. Counting "5" on that product records a movement of +8, not +5: signed stock holds authority. This is the expected behavior.
A session that has not been finalized can be cancelled without leaving any trace on stock. A finalized session can no longer be cancelled or edited.
Stock movements: /manage/ecommerce/inventory/stock-actions
The journal. Each row is a movement: type (increase, decrease, adjustment), origin
(manual, order, supplier reception, inventory…), status (pending, applied, cancelled),
before, difference and after quantities, author, reason. Filters and per-row details with
stock:read.
The journal only allows deletion, and this is the tricky part:
- Single delete (
stock:write): the dialog asks whether stock should be reversed (the movement is physically undone) or whether only the journal line is removed (stock stays as is). That choice is the confirmation. - Bulk delete (
stock:write, up to 200 rows): the same choice applies to the whole selection. Rows are processed one by one, in order, so two deletions on the same product never collide; a failed row does not stop the others.
Deleting with stock effect physically undoes the movement. Deleting without stock effect deliberately breaks the link between the journal and stock: keep it for rows already known to be wrong (import duplicates, for example), otherwise the consistency checks will flag the divergence.
Supplier orders: /manage/ecommerce/vendors/orders
The replenishment hub. Tabs: orders, history, per-site
view, per-vendor view and a calendar of slots. In the orders and history tabs you can
drag a product line from one slot to another (vendors:write); only orders that are still
drafts can be rescheduled. Statistics summarize activity at the top of the page.
Email review queue: /manage/ecommerce/vendors/orders/email-review
Guarantees that what you review is what gets sent (see email preparation on the
daily timeline). The queue lists prepared emails, with
filters (vendor, dates, today only, deferred, modified, group by vendor). Each row shows the
effective values and flags an order whose lines changed since preparation. Actions require
vendors:write.
| Action | Effect |
|---|---|
| Send | Rebuilds the email from the current lines; refuses to send if they or the send slot changed since preparation (re-prepare, then send again) |
| Re-prepare | Regenerates the preview and its fingerprint |
| Edit the subject or recipients | Saves your changes, used as-is when sending |
| Defer / undo defer | Moves the send date; undoing puts the email back in the queue without losing your edits |
| Cancel the order | Cancels the order and records where the cancellation came from; a cancelled order is never emailed, and the freed customer demand is rescheduled on a later slot |
Stock gaps (« Écarts de stock »): /manage/ecommerce/vendors/orders/phantom-stock
For spotting stock figures that call for a recount: negative stock (more went out than
came in) and abnormally high stock, typically fictional stock inherited from the online
shop (see PrestaShop synchronization). The screen
shows suspects only by default, with a search (?q=) and a switch to show all products
(?suspects=false). For each
product it shows stock, weekly consumption and coverage; the used column shows the stock
the ordering engine will actually use: the stock as it is, never below zero.
Viewing requires products:read.
Two actions (stock:write):
- fix the figure: records the counted quantity and its journal line, marks the stock as validated and protects it from being overwritten by a stock sync from the online shop; refused on a product without stock tracking;
- mark as trusted or not: without touching the figure, confirms that the stock is real; a product marked as trusted is no longer flagged as a suspect.
Work through this screen before letting stock drive ordering more: every unresolved suspect turns into an order of the wrong size.
Inventory health: /manage/inventory/health
A read-only dashboard (inventory:read): stock alerts and aggregated indicators. It is
the visual companion to the safety nets and to the
"Cron 5" chip on the Stock ledger screen.
Permissions
Each action is protected by a permission, assigned per role:
| Permission | Unlocks |
|---|---|
stock:read |
journal, Stock ledger, overviews, My stock, list of counts, reconciliation preview |
stock:write |
inline editing, manual movements, reconciliation, count sessions, journal deletions, snapshots, stock entry and trust on My stock, Stock gaps actions |
vendors:read / vendors:write |
Vendor stocks grid, supplier orders, email review queue, supplier-reception confirmation and cancellation, supplier drafts and one-off orders on My stock |
orders:write |
confirming a customer delivery |
inventory:read |
Inventory health |
inventory:write |
bulk stock import |
products:read |
viewing the Stock gaps screen |
A view-only profile works with stock:read and vendors:read. Keep stock:write for
people who understand the difference between deleting a journal line with and without
stock effect.
See also
- Overview: the whole model on one page
- The stock ledger: the journal that holds authority
- Write paths: what every stock-changing button honors
- Supplier orders: ordering, slots, email preparation
- Daily timeline: the day's scheduled tasks
- Safety nets: consistency checks
- Configuration: backorders, maximum coverage and other settings