⚙️ Part 4

Functional description — critical points

This section documents the internal workings of the six key mechanics of MakerStocks: what happens under the hood when you execute a run, receive a delivery, or when a sale is recorded on BigCommerce or Shopify.

⏱ Reading ~12 min
·
6 documented mechanics
·
For admins & integrators
Critical point 4.1

Production run lifecycle

A run is the atomic unit of production in MakerStocks. It represents the execution of a defined number of batches of a given recipe. Understanding its lifecycle is essential to managing production correctly.

The four statuses
Planned
In queue, stock not deducted
In progress
Started by an operator
Completed
Stock deducted, COGS calculated
Cancelled
Irreversible, no restoration
📋
Planned → queued with no stock deduction
When a run is scheduled (from desktop or mobile), it is recorded but stock is not touched yet. If stock is insufficient at the time of scheduling, MakerStocks flags it but still lets the run join the queue — a forecast alert is generated. A scheduled run can be cancelled with no impact on stock.
⚙️
Planned → In progress: started by the operator
An operator (from mobile, Manufacturing tab) or an admin (from desktop) taps "Start". The status switches to EN_COURS. At this point, MakerStocks checks stock availability again. The run is visible in real time on desktop.
In progress → Completed: deduction, stock credit, COGS
On completion, three atomic actions are triggered simultaneously: (1) raw materials are deducted from stock using the FIFO method, lot by lot, with traceability recorded; (2) finished goods stock is credited with the number of units produced; (3) the run's actual COGS is calculated from the unit costs of the lots consumed. These three operations can only be reversed through a later manual adjustment.
Lot traceability — Pro+
⚠️
Run completed with insufficient stock
If stock for one or more materials is insufficient at the time of execution, MakerStocks flags it in the run's detail (the "Shortages" tab) but still lets the run complete. Stock drops to zero for the affected materials — it never goes negative. An out-of-stock alert is generated.
Alerte de rupture
🚫
Cancellation — irreversible, no automatic restoration
A run with status PLANIFIE or EN_COURS can be cancelled. Cancellation is final. If the run was EN_COURS and materials had already been physically consumed, stock will not be automatically restored — a manual correction via stock adjustment is required.
Irreversible
From desktop
Schedule, launch directly, view the detail, export the traceability CSV, cancel.
From mobile
Schedule, start a scheduled run, complete a run in progress. No access to financial detail.
CSV traceability export
Available after completion: material, lot, quantity consumed, expiry date, supplier, cost. Accounting-compatible format.
Launch without scheduling
Possible from desktop only. The run goes directly from "new" to TERMINE if stock is sufficient, with no intermediate step.

Critical point 4.2

Raw material stock management — lots, FIFO and movements

Raw material stock is managed lot by lot. Each stock entry creates a distinct lot with its own unit cost, lot number and expiry date. Consumption follows the FIFO rule (first in, first out).

Illustrated FIFO operation
Example — Wheat flour · 3 lots in stock · Production run consuming 8 kg
Before run
LOT-A · 12/03/2025
DLC 31/08/2025 · 1,20 €/kg
3 kg
LOT-B · 28/03/2025
DLC 28/02/2026 · 1,15 €/kg
7 kg
LOT-C · 10/04/2025
DLC 30/06/2026 · 1,18 €/kg
10 kg
After run
(8 kg deducted)
LOT-A · depleted
3 kg fully consumed
0 kg
LOT-B · partial
5 kg consumed out of 7
2 kg
LOT-C · intact
Untouched
10 kg
COGS materials = (3 kg × €1.20) + (5 kg × €1.15) = €3.60 + €5.75 = €9.35
📥
Stock entry — creating a lot
Every stock entry (manual, supplier receipt, or import) creates a new timestamped lot with: quantity, unit cost at the time of entry (snapshot), optional lot number, optional expiry date. If the material is configured with "expiry date required," an expiration date is required on every entry.
Stock adjustment — no lot created
An adjustment (+ or −) directly modifies the selected lot or the oldest lot (FIFO). The adjustment requires a mandatory reason (physical inventory, loss, breakage, correction…). The movement is logged in the history with type AJUSTEMENT.
⚠️
Lot write-off — targeted removal
From a material's lots view, it's possible to "write off" a specific lot (loss, breakage, quality control) by entering a quantity and a reason. The write-off targets precisely that lot, independent of FIFO order. This operation is irreversible.
Irreversible
🔁
Inter-warehouse transfer
Available from desktop only (Business plan). A lot can be transferred from a source warehouse to a destination warehouse. The lot keeps its number, expiry date, and original unit cost. The source warehouse's stock decreases, the destination's increases.
Business
📊
Stock valuation
The total stock value of a material is calculated in real time: the sum of (remaining quantity × unit cost) for each active lot. This value is visible in the "Stock value" column of the materials table and used in the financial report.
⚠️
A material's unit cost ≠ a lot's cost The "unit cost" field on a raw material's record is the default reference cost. Each lot has its own unit cost, recorded at the time of stock entry (snapshot). It's the lot's cost — not the reference cost — that is used in the COGS calculation during a run.

Critical point 4.3

Supplier procurement cycle

Supplier purchase orders let you trace the complete cycle of a materials order: from creation at the desk to physical receipt in the workshop. This module is available starting with the Pro plan.

The five statuses of a purchase order
Draft
Created, not sent
Sent
Sent to supplier
Part. received
Partial reception
Received
All lines received
Cancelled
From Draft or Sent
📝
Creating the order (Draft) — desktop only
The admin creates a purchase order by selecting a supplier, adding lines (material, quantity, unit price), and entering an expected delivery date. An order in Draft status can be freely edited and deleted.
Pro+
📤
Sending to the supplier — switching to Sent status
By clicking "Mark as sent," the order switches to ENVOYE. It can no longer be edited. It becomes visible in the "Supply orders" tab on mobile, so operators can receive it on delivery. It's marked late if the expected delivery date has passed.
📦
Receiving — stock updated line by line
From mobile (or desktop), the operator enters for each line: the quantity actually received, the supplier's lot number (optional), the expiry date (required if the material demands it), and the destination warehouse. The quantity is credited to stock immediately upon confirmation. If not all lines are fully received, the order switches to PARTIELLEMENT_RECU.
Lot traceability — Pro+
🔄
Successive partial receipts
An order can be received in multiple deliveries. On each partial receipt, stock is credited with the quantity entered. Receiving progress is shown as a percentage per line. The order switches to RECU only when every line has reached its ordered quantity.
💡
Over-receiving is possible It's possible to receive more than the ordered quantity on a line (surplus delivery). MakerStocks flags it visually but allows it. Stock is credited with the quantity actually entered.

Critical point 4.4

Alert system — types and triggers

The Alerts dashboard is MakerStockss' home page. It shows in real time the situations that need attention, grouped by urgency level. Alerts refresh automatically every 30 seconds.

🔴
Low stock — raw material
The total stock of a raw material has dropped below the alert threshold configured on the material's record.
Trigger: total stock < alert threshold
🟡
Forecast alert — run at risk
A scheduled run won't be able to run for lack of sufficient stock by the time it's due. Shown in the "Forecast" banner.
Trigger: insufficient stock for a scheduled run
🔵
Low stock — finished product
The total stock of a finished product has dropped below the alert threshold configured on the product's record.
Trigger: product stock < alert threshold
Product stockout / Cancellation
Total stockout (stock = 0) or cancellation of a purchase order impacting an expected supply delivery.
Trigger: stock = 0 or order cancellation
🔔
Acknowledging an alert
Any alert can be acknowledged manually from desktop (the "Acknowledge" button). An acknowledged alert is archived and disappears from active alerts. It remains visible in the last 30 days' history. An acknowledged alert can reappear if the condition that triggered it is still unresolved (for example, stock is still low).
📊
Alert banner at the top of mobile
The mobile interface shows a persistent red banner at the top of every screen when there's at least one unacknowledged low-stock alert. This banner is visible from every tab, not just the dashboard. It disappears as soon as all urgent alerts are resolved or acknowledged.
🔄
Automatic refresh — 30 seconds
The Alerts dashboard refreshes automatically every 30 seconds without reloading the page. The mobile dashboard refreshes every 60 seconds. A "Refresh" button allows an immediate manual refresh from desktop.

Critical point 4.5

COGS calculation — method and components

COGS (Cost of Goods Sold) is calculated automatically for every completed run. Its precision depends on the plan you're on: the Starter plan covers raw materials only, the Pro plan adds labor and overhead, and the Business plan enables the full P&L report.

Formula by plan
COGS — Starter (raw materials only)
COGS = Σ ( qty_lot × unit_cost_lot ) per FIFO lot consumed
Full COGS — Pro+ (materials + labor + variable costs)
COGS = Σ ( qty_lot × unit_cost_lot ) FIFO raw materials + ( hourly_rate × nb_operators × recipe_duration ) labor cost per batch + variable_cost_batch energy, packaging (entered on the recipe)
COGS + allocated fixed costs — Business (P&L report)
Full cost / unit = COGS Pro / units_produced + Σ ( monthly_fixed_cost / monthly_target_volume ) rent, depreciation…
💡
Recommended selling price — calcul automatique (Pro+)
From the full COGS, MakerStocks can calculate a suggested selling price. This calculation factors in the target margin defined on the recipe. The recommended price is visible on the recipe's record and on the product's record. It is not automatically synced to BigCommerce or Shopify — it's advisory only.
Pro+
📤
XLSX accounting export (Pro+)
Available from Management → Reports. Exports for the selected period: stock movements, FIFO valuation, detailed COGS per run and per product, cost summary. Structured format, compatible with common accounting software. Full-cost method, FIFO valuation, legal disclosure included.
Pro+
📊
P&L report per product (Business)
Generates a complete document: executive summary (revenue, COGS, gross margin), cost breakdown per product, fixed cost structure, break-even point calculation, and a 12-month revenue/margin projection. Requires at minimum one completed run, an hourly rate, and configured fixed costs.
Business

Critical point 4.6

BigCommerce and Shopify synchronization

The relationship between MakerStocks and your BigCommerce or Shopify store is the heart of the system. It isn't bidirectional for all data — it's important to understand what flows in which direction, and what stays independent.

BigCommerce / Shopify
Product catalog (name, SKU, price)
Customer orders
Store stock (managed by the platform)
Merchant identity (auth)
to MS
from MS
MakerStocks
Internal stock (managed by MS)
Recipes & COGS linked to SKUs
Raw materials consumed
Lot & expiry traceability
🔄
Product catalog synchronization (store → MS)
MakerStocks imports the product catalog from your BigCommerce or Shopify store: name, SKU, product ID, variant ID, selling price. This sync can be triggered manually from the Products & stock page. Products created in your store after installation must be synced to appear in MakerStocks.
Automatic deduction on sale (store → MS)
When a sale is recorded on BigCommerce or Shopify for a product linked to a primary recipe in MakerStocks, raw material deduction is triggered automatically. MakerStocks calculates the number of batches consumed (quantity sold × batches per unit), then deducts materials using FIFO. This mechanism only works if the recipe is marked "primary" on the product.
🧮
Two independent stocks — store stock ≠ MS stock
MakerStocks maintains its own finished goods stock, independent of your BigCommerce or Shopify stock. Store stock is the stock available for sale, visible on the storefront. MS stock is the physical stock in the workshop, coming from production runs. These two stocks are not synced automatically — this is an intentional separation that lets you manage reserves, held-back lots, or delayed listing.
Important
🔗
Batches per sold unit ratio — key to the link
When linking a recipe to a product, the admin enters the "batches per unit sold" ratio. Example: if 1 batch produces 12 candles, and a candle is sold individually, the ratio is 1/12 = 0.0833 batch per unit. This ratio is used to calculate materials consumption on every sale. A misconfigured ratio causes an incorrect deduction.
Configure carefully
🚨
The batches/unit ratio is critical An error in this ratio causes an incorrect stock deduction on every sale. Check it carefully when linking and after any batch size change in a recipe. It can be edited at any time on the product's record, "Linked recipes" tab.
📖
End of documentation You've now gone through all four parts of the MakerStocks documentation. For any specific question or use case not covered here, contact support from your BigCommerce or Shopify store's admin (Business plan: priority support).