Native Inventory
RxScale native inventory separates product identity from physical stock and channel availability. Products are shared within a pharmacy group, while stock belongs to a warehouse in a specific pharmacy.Native inventory is part of the Pharmacy Suite subscription. It is opt-in and does not change how
your shop availability or order fulfilment works until you enable it.
Products
A pharmacy group product represents the article your pharmacy dispenses. It can store identifiers such as PZN, product name, dosage form, and unit, plus flags for prescription-only, cannabis, cold-chain, batch-required, and narcotic products.Warehouses
Each pharmacy has at least one warehouse, usually the dispensary. Additional back-stock or cold-chain warehouses can be added when needed. Physical stock always belongs to a warehouse; a pharmacy’s stock is the sum of its warehouses.Goods Receipt
Goods receipt brings stock into a warehouse. RxScale records the target warehouse, product, batch number, expiry date, quantity, an optional supplier reference, an optional purchase price, and the user who received the goods.Products marked as requiring a batch must be received with a batch number and expiry date. When
only a month and year are printed on the pack, RxScale stores the expiry as the last day of that
month, so the same charge always resolves to a single batch.
Stock History
Every receipt creates an inventory movement. Movements are append-only, so stock changes can be audited later and never silently overwritten.Availability Buffers
Physical stock is not always the same as online availability. For each product, a pharmacy can set an availability policy that holds back a safety buffer, so the shop only exposes stock above that buffer. The online sellable quantity is calculated as on-hand stock, minus quantities already reserved by open orders, minus the safety buffer, and never goes below zero. For example, if a pharmacy has 20 packs on hand and sets a safety buffer of 5, RxScale exposes at most 15 packs. You can also set an optional maximum sellable quantity to cap exposure further, or mark a product as unavailable to hold it back entirely.Safety buffers are product-specific. A pharmacy can use a higher buffer for shortage-prone products
and no buffer for normal stock. Buffers can also be overridden for a specific sales channel
(organisation or shop) when one channel needs different limits than the default.
Reservations
When an order line has a confirmed product mapping, RxScale can reserve eligible batches before handover. A reservation holds stock for that order but does not reduce on-hand stock — actual depletion happens later, at pick or ship confirmation. Reservations follow first-expiry-first-out (FEFO): RxScale picks the nearest-expiry eligible batches first and skips any expired, blocked, or recalled batch. Cold-chain products are reserved only from cold-chain warehouses. When one batch cannot cover the full quantity, the reservation is split across batches automatically. The quantity reserved is derived from the order line — the ordered amount multiplied by the mapping’s quantity per unit — so it always matches what the patient actually ordered. If a line cannot be fully reserved, it is flagged:out_of_stock when there is not enough sellable stock, or
batch_blocked_or_expired when stock exists only in batches that are expired, blocked, or recalled.
If a reserved order is cancelled, its reservation is released and the held stock is returned
automatically — cancelling never leaves stock stranded. Re-running a reservation on the same line
first releases the previous hold, so a line is never reserved twice.
Dispensing
Dispensing converts a held reservation into an actual stock depletion at pick or ship confirmation. RxScale decreases both the on-hand and the reserved quantity of the affected batches, writes an append-only depletion movement, and creates an attributable dispensing record. The record stores the licensed pharmacy responsible for handover, the user who confirmed the dispensing, the timestamp, the batch and quantity dispensed, and the signature method used (paper, aes, or qes). When a
qualified electronic signature is used, the record also references the underlying signing request.
The quantity dispensed is taken from the line’s own reservation, never from the request — RxScale
depletes exactly what the line still holds. Before depleting, RxScale re-checks every affected batch:
if a batch became blocked, recalled, or expired between reservation and dispensing, the dispensing is
refused and the stock stays reserved. This prevents compromised or cold-chain-excursion stock from
ever being handed over.
Dispensing can be split across shipments. Each shipment records its own dispensing record and depletes
only the batches it ships, and the order line is only marked as dispensed once its full quantity has
been handed over. Dispensing records, like all inventory movements, are append-only: a correction is
recorded as a new compensating entry, never an in-place edit.