ERPNext inventory and warehouse management

A plan for configuring the ERPNext Stock module for real warehouse operations, covering warehouse trees, putaway, pick lists, serial and batch tracking and opening stock, with the decisions and effort that shape the work.

On this page

ERPNext inventory and warehouse management: what the Stock module needs from your team

Bring warehouse setup in-house when your team already owns ERPNext configuration, has someone who can own item master data and stock units of measure, and can absorb a few weeks of rework in the first live month. Bring in a partner when the warehouse model is complex (multiple sites, consignment stock, serial or batch tracked goods, or production feeding stock) or when the people who will run receipts and transfers have no time to learn the Stock module before go-live. The Stock module covers the warehouse tree, item and warehouse master data, putaway rules, stock entries, delivery and receipt documents, pick lists, serial and batch tracking, Stock Reconciliation for opening balances and periodic counts, and the stock settings that control negative stock and valuation. Every one of those choices affects accounting, so finance and operations need to agree on them together.

This work targets ERPNext v15 and v16, the two supported major versions listed on the Frappe support versions page. Behavior differs between them in areas that matter here. Serial and batch tracking uses the Serial and Batch Bundle from version 15, and negative stock is blocked for serial or batch items from that version even when Allow Negative Stock is enabled. Confirm the exact version you will run, and check the release notes for any stock changes before you fix the design. Warehouse configuration is normally completed after the chart of accounts and item groups exist, and before any test receipts or opening stock are posted. Plan opening stock and the first physical count as the last build step before go-live, with a dry run that compares book stock to a counted sample.

What the ERPNext Stock module does for warehouse operations

The Stock module gives ERPNext a warehouse structure, receiving rules, picking logic, traceability and count-based corrections. Each capability depends on the others, so the warehouse tree, item master and tracking settings should be designed together before any stock moves into the system.

Nested warehouse trees

ERPNext lets a warehouse sit inside another warehouse, so a sub-warehouse can represent a shelf inside a physical location. Before building the tree, decide how deep it needs to go. Every level you add becomes something staff must select on receipts, transfers and counts, and something reports must roll up correctly. Check how your existing location codes map to the tree, and confirm which levels hold stock directly and which only group child warehouses.

Putaway rules by capacity

A Putaway Rule is defined per item and warehouse within a company. It takes warehouse capacity and priority into account and auto-assigns items to warehouses on Purchase Receipts and on Material Receipt or Material Transfer Stock Entries. Use rules where receiving staff would otherwise choose a location by habit. Confirm how capacity is measured for your items and test the priority order with a full warehouse, because the rule outcome depends on it.

First-in-first-out picking

Pick Lists choose the warehouse where an item is available on a first-in-first-out basis. Batched items follow a different selection logic, so picking results for batch-controlled stock will not match a plain FIFO expectation. Before go-live, walk through a sample order for a batched item and for a non-batched item, and confirm that the pick list suggests what your floor team would pick.

Serial and batch bundles

Version 15 introduced the Serial and Batch Bundle, which links serial and batch numbers to stock transactions. From version 15, negative stock is not allowed for serial or batch items, even when Allow Negative Stock is enabled. Plan how serial and batch numbers are captured at receipt and issue, and decide who is responsible for correcting a bundle when a scan is wrong, since a missing number will block the transaction.

Opening stock and periodic counts

Stock Reconciliation posts opening stock when you start using ERPNext and reconciles book stock against a physical count afterwards. The same document type serves both jobs, so keep opening balance postings separate from routine count adjustments in your records. Agree who approves a reconciliation, how counts are scheduled, and how variances are investigated before the adjustment is posted.

Which warehouse structure and tracking options fit your stock

This table compares the warehouse, putaway, tracking, negative stock and opening stock decisions that shape the Stock module. Read each row as a choice you make once, and check the constraint column before you load item masters, because several of these settings are hard to unwind after transactions post.

DecisionOption and when it fitsWhat it constrains
Warehouse structureFlat list of warehouses fits a few sites with no internal locations to track. A nested tree fits when stock sits on shelves or bins inside one physical site and pickers need to know where it is.A nested tree gives more location detail but adds parent groups, more Stock Entry targets and more places where the wrong warehouse can be picked.
Putaway rulesNot needed when receipts land in one default warehouse and staff move stock by hand. Needed when receipts should be routed by item, capacity and priority to a chosen warehouse.Rules are defined per item and warehouse within a company, so each new item or warehouse needs its rules maintained; they apply to Purchase Receipts and Material Receipt or Material Transfer Stock Entries.
Untracked itemsFits bulk or interchangeable goods where quantity alone is enough and no lot or unit identity matters for returns, recalls or warranty.Stock is tracked only by quantity per warehouse, so a recall or warranty check cannot trace individual units or lots.
Batch tracked itemsFits goods where lots matter for expiry, quality holds or recalls, but units within a lot are interchangeable.Every receipt and issue needs a batch reference, and Pick Lists choose batches by different logic than for untracked items, so picking rules must be agreed with the warehouse team.
Serial tracked itemsFits high-value or warranty-bound units where each unit needs its own history from receipt to delivery.Each unit is a separate record, and from version 15 negative stock is not allowed for serial items even if Allow Negative Stock is enabled, so issues must follow receipts exactly.
Negative stock for non-serial itemsAllow it only when goods physically leave before the system receives the receipt and you accept temporary wrong valuation. Keep it off where stock counts must always match shelves.Allow Negative Stock does not apply to serial or batch items from version 15, so teams that rely on it for those items will find issues blocked; confirm this in your version before go-live.
Opening stock loadUse Stock Reconciliation for the first load of counted quantities and valuation, after item, warehouse and tracking settings are final.Serial and batch numbers must exist before a reconciliation that covers tracked items, so reloading opening stock after tracking changes means reworking those records.

How the warehouse setup sequence runs from design to first count

The sequence turns a physical site into a warehouse tree, item tracking rules and putaway and pick behavior, then proves the opening stock against a physical count before live transactions start. Each step produces a artifact that the next step depends on.

  1. Map physical locations and storage shelves

    Walk each site with operations and the warehouse supervisors and record every storage location, from building and zone down to bin or shelf, along with what each one holds and who is accountable for it. Capacity limits, restricted areas and goods-in and goods-out points go on the same map. The output is a signed-off warehouse map that operations has approved, and it becomes the single reference for the warehouse tree. Ask the implementation partner to confirm which levels the Stock module needs, because every level you add becomes a warehouse record to maintain.

  2. Define the warehouse tree in ERPNext

    Create the warehouse records in ERPNext as a tree, with each physical site as a parent and sub-warehouses for shelves or bins where stock is tracked separately. Assign each warehouse to its company and keep naming consistent so reports and pick lists stay readable. Check that transit and rejected-goods warehouses exist before any receipt is posted. The output is a warehouse tree that matches the signed-off map, reviewed line by line by the person who owns stock.

  3. Set item tracking attributes

    Decide for each item group whether items are tracked by serial number, by batch, or by neither, and set those attributes on the item masters before any stock moves. Serial and batch tracking changes how receipts, deliveries and stock entries are recorded, so changing it later means reviewing existing transactions. From version 15, negative stock is not allowed for serial or batch items even when Allow Negative Stock is enabled, so the team should also agree on how receiving discrepancies are handled. The output is an item list with tracking decisions signed off by operations and finance.

  4. Configure putaway rules by capacity and priority

    Create Putaway Rules for the items and warehouses where incoming stock should be placed automatically, setting the capacity and priority each rule respects. Putaway rules apply on Purchase Receipts and on Material Receipt or Material Transfer Stock Entries, so test each of those document types with the receiving staff rather than assuming the defaults fit. Confirm which rules conflict and which warehouse wins when a rule cannot be satisfied. The output is a tested putaway rule set, with examples from real receiving scenarios run through a staging copy of the site.

  5. Configure pick list behavior

    Set how Pick Lists choose stock. ERPNext picks from the warehouse where an item is available on a first-in-first-out basis, and it uses different selection logic for batched items, so the team should walk through a batched item and a non-batched item to confirm the picks match how the floor actually works. Agree on who creates pick lists and who confirms them before dispatch. The output is a set of tested pick scenarios, approved by warehouse operations, that show which stock each pick list selects.

  6. Load opening stock through Stock Reconciliation

    Prepare the opening stock file from the physical inventory list and post it through Stock Reconciliation, which ERPNext uses both for opening stock and for reconciling book stock against a physical count. Post opening stock in controlled batches so each posting can be checked, and record serial and batch numbers at this step for tracked items. Finance should confirm that the valuation of the posted stock matches the agreed opening balance. The output is a reconciled opening stock register, with each warehouse's quantities and values tied to the source list.

  7. Validate with a physical count

    Run a full physical count of a sample of warehouses, or the whole site where the stock value is material, after opening stock is posted. Compare the counted quantities with system quantities and record each difference with its cause before posting any correction through Stock Reconciliation. Repeat counts until the variances are explained and accepted by the stock owner and finance. The output is a count sign-off that shows the system matches the shelves, which is the gate for going live.

  8. Go live with controlled cutover

    Switch receiving, putaway, picking and dispatch to ERPNext on a date agreed with operations, with the warehouse tree, tracking rules, putaway rules and pick behavior frozen at the point of cutover. Keep a short list of who may change master data during the first weeks so the tested configuration does not drift. Schedule a follow-up count to confirm the first live movements. The output is a go-live record signed by the warehouse owner, with the follow-up count date and owners named.

How opening stock and item data get into ERPNext

Item masters, warehouse trees and opening balances usually enter ERPNext through the Data Import tool, which reads CSV or Excel files built from downloadable templates. Child table rows, such as item units of measure or reorder levels on an item, are supported, so one file can carry a parent record and its details. The documentation advises importing only a few thousand records at a time, so a large catalog should be split into batches, loaded in dependency order (warehouses and item groups before items, items before balances), and checked after each batch. Plan the batch size and the order in a test copy of the site first, and time the run so it fits the cutover window.

Opening quantities are not imported as plain stock levels. The team posts them through Stock Reconciliation, which is the same document used later for periodic physical counts, so the opening entry sets book stock per item and warehouse at a valuation rate. Before cutover, check every serialized and batched item. Serial and Batch Bundles must carry the exact serial or batch numbers, expiry dates where relevant, and quantities that match the count, because from version 15 ERPNext does not allow negative stock for these items even if Allow Negative Stock is enabled. A bundle that is missing a number will block later issues, so reconcile serial and batch lists against the physical count before posting.

Confirm what your legacy system can export before the mapping work starts. Ask whether item codes are unique and stable, whether units of measure and conversion factors are held per item, whether warehouse and bin locations are recorded at shelf level or only at site level, and whether serial and batch numbers are exported with their quantities and dates. Ask also for the valuation method and the rate each opening quantity should carry, since those figures determine the reconciliation difference. Request a sample export from each source table and map every column to an ERPNext field before anyone builds the import templates. Data gaps found at this stage are cheaper to fix than gaps found after the first live issue.

What drives warehouse setup effort and how to keep it down

This table lists the main factors that change how much work a warehouse setup takes in ERPNext, with a way to reduce each one. Read it as a checklist for scoping: the higher a driver's count or complexity, the more configuration, data preparation and count cycles your team or a partner should plan for before go-live.

DriverWhy it changes effortHow to keep it down
Number of warehouses and tree depthEach warehouse needs its own account mapping, stock balances and transfer routes, and deep trees multiply the places where stock can be posted to the wrong shelf.Freeze the warehouse map before configuration, model only the levels that drive picking or counting, and use sub-warehouses for shelves only where pick accuracy depends on them.
Item countEvery item needs stock settings, units, valuation and warehouse defaults checked, so effort grows with the number of active items rather than with transaction volume.Retire inactive items and duplicates before import, and load only items with stock or open orders in the first pass.
Share of serial or batch tracked itemsSerial and batch items need a Serial and Batch Bundle on every stock movement, and from version 15 negative stock is blocked for these items even when Allow Negative Stock is enabled.Limit tracking to items where recall, warranty or expiry rules require it, and agree the numbering convention for batches and serials before opening stock is loaded.
Number of receiving and transfer routes needing putaway rulesEach item and warehouse combination that should auto-assign on receipts needs its own Putaway Rule, and capacity and priority settings must be tested for each route.Start with the high-volume receiving routes, document the rest as manual putaway, and add rules in a second release once receiving staff have run real receipts.
Pick list logic for batched itemsBatched items follow different warehouse selection logic in Pick Lists than standard items, so batch-based picking needs its own test cases.Decide early whether batch expiry or first-in-first-out order governs picking, and test one batched item end to end before extending the setup to the full catalog.
Quality of legacy stock dataInconsistent item codes, missing units, wrong warehouse names and unreconciled balances in the source files add cleaning and rework before any opening stock can be posted.Clean item master and warehouse names in the source system, agree a single template for the Data Import tool, and import in small batches, since the documentation advises a few thousand records at a time.
Number of count cycles before go-liveEach Stock Reconciliation used for opening stock or a physical count needs a review of variances by item and warehouse, and repeated counts extend the schedule.Plan one full count to set opening stock, then short cycle counts on high-value or fast-moving items. Ask the implementer how many count cycles are included in the agreed scope.

How the deployment target affects Stock module configuration

Frappe Cloud is the hosted option, and the warehouse tree, Putaway Rules, Pick Lists, serial and batch settings and Stock Reconciliation are all configured through the normal ERPNext desk, so the setup steps match the other targets. The constraint that matters for stock is code. Server Scripts used for custom stock rules, such as blocking a transfer or auto-routing a receipt beyond what Putaway Rules can express, do not run on Frappe Cloud public shared benches. Confirm which bench type the site uses before designing around server logic.

  • Shared versus dedicated bench: Ask whether the site sits on a public shared bench or a bench where server-side scripting can be enabled.
  • Version support: Confirm the ERPNext major version is on Frappe's supported versions list and that the support plan matches it.
  • Custom logic path: If a stock rule needs Python, plan it as a custom app on the bench instead of a Server Script.
  • Data import limits: Plan opening stock loads in batches, since the Data Import documentation advises a few thousand records at a time.

Before the design is signed off, confirm in writing which stock rules need server code and whether the chosen Frappe Cloud plan supports them.

How the Stock module connects to accounting, buying, selling and identity

Stock in ERPNext is not a standalone ledger. Receipts, deliveries, production and counts all post into accounting, so warehouse design choices show up in valuation and reports. The cards below cover the connections to check before go-live, from what each one syncs to who can post what.

Buying receipts and selling deliveries

Purchase Receipts increase stock in the receiving warehouse, and Delivery Notes reduce it, so the warehouse you pick on each document decides where the balance sits. Check whether your sales process creates Delivery Notes directly from Sales Invoices, because that changes when stock leaves the warehouse. Confirm which warehouse each supplier and customer default maps to, and test a partial receipt against a purchase order before you rely on the flow. Serial and batch items need their numbers entered at receipt time.

Stock valuation in the general ledger

Every stock movement creates accounting entries against stock-in-hand and stock-received-not-billed accounts, so valuation in the balance sheet follows the warehouse postings. Decide the valuation method and the warehouse-to-account mapping before opening stock is posted, since changing either later means reposting. Ask your finance team which accounts receive the entries and reconcile them to the stock ledger at each period close. Test a receipt, an invoice and a return end to end.

Manufacturing and subcontracting consumption

Work Orders consume raw materials from source warehouses and produce finished goods into target warehouses, and subcontracting issues materials to a supplier warehouse before a receipt returns the finished item. Each of these creates stock entries that must balance against the bill of materials. Confirm which warehouses hold work-in-progress and supplier-held material, and whether scrap is tracked separately. Test one production run and one subcontracted order before go-live.

Barcode and handheld scanning

Scanning at receipt, pick and count reduces keying errors, but it depends on how items are coded and whether the scanner fills the same fields as the desktop forms. Confirm that each item has a barcode or code your scanners can read, and that serial or batch numbers scan into the Serial and Batch Bundle. Test scanners on the warehouse floor with real labels, including damaged or wrinkled ones. Ask the hardware vendor which input mode it uses before buying devices.

Legacy data import pipelines

Opening item lists, bins and bin quantities usually arrive from a spreadsheet or an older system. The Data Import tool loads records from CSV or Excel files using templates, and the documentation advises importing only a few thousand records at a time. Load master data first, then opening stock through Stock Reconciliation, and reconcile totals against the legacy system after each batch. Keep the source extract and the import log so you can explain differences later.

LDAP and Social Login Key sign-in

Warehouse staff often share a few terminals or use mobile devices, so sign-in and role mapping need planning. ERPNext can map LDAP groups to ERPNext roles at each login, and Social Login Key supports OAuth and OpenID Connect providers. Decide which role can post Stock Entries and Stock Reconciliations, then confirm that a picker cannot see purchase valuation. Test a deprovisioned account and a role change before go-live.

Questions buyers ask before they hire help with warehouse setup

What does a warehouse setup in ERPNext cost, and what drives the quote?

The quote follows from a written scope, so the cost is set by how many warehouses, items and tracking rules the work covers. The main drivers are the number of physical sites and the depth of the warehouse tree, whether putaway rules and pick lists are configured for each site, how many items need serial or batch tracking, how much opening stock must be loaded, and whether any custom logic or integrations with a warehouse device or carrier are required. Hosting is a separate cost. ERPNext itself is free to self-host, and the ERPNext pricing page lists Frappe Cloud plans if you choose a managed host. Ask any partner for a quote that separates one-time configuration, data loading, testing and training from recurring support.

How long does it take to set up warehouses and stock in ERPNext?

Duration depends on the same drivers as cost: the number of sites, the complexity of the warehouse layout, the number of items with special tracking, and how clean the opening stock data is. A single warehouse with a simple item list usually moves faster than a multi-site operation with shelf-level locations and batch-controlled goods. Data quality is often the longest step, because item codes, units of measure and counted quantities must be checked before they are posted. Ask for a timeline in the written scope that lists the phases, the dependencies on your team, and the go-live checks. Do not accept a duration that has no list of assumptions behind it.

What does our warehouse team need to provide during the project?

The warehouse team is needed for decisions and for checking the results, not only for data. They should confirm the physical layout, how stock is stored and moved, which items are picked by batch or serial number, and what a correct pick looks like on the floor. They also need to count stock for the opening balance and to test receipts, transfers, pick lists and deliveries with real or representative documents. Expect named people who can answer questions within a few working days and who will run the trial counts. Agree on these roles before the scope is signed, because a project that waits for floor staff stalls quickly.

Can a small team configure ERPNext warehouses without outside help?

A small team with one warehouse and a short item list can often configure the basics from the ERPNext documentation, provided one person owns the Stock module and tests the workflows end to end. Outside help becomes more valuable when the layout has several sites, when putaway rules need to respect capacity and priority, when serial and batch tracking must be enforced, or when the opening stock must reconcile to the general ledger. Many teams use a mixed model: they configure the standard parts themselves and bring in a partner for the rules, data migration and acceptance tests. Decide which parts you will own after go-live, since those are the parts your staff must maintain.

When should serial and batch tracking be turned on for an item?

Turn on serial or batch tracking for items where a single unit or lot must be traced, such as regulated goods, warranty items, items with expiry dates, or goods that must be recalled by lot. Since version 15, ERPNext links serial and batch numbers to stock transactions through the Serial and Batch Bundle, and it does not allow negative stock for serial or batch items even if Allow Negative Stock is enabled. That means every receipt and issue needs a valid number before it posts. Tracking adds scanning and data entry work on the floor, so enable it only for items where traceability or warranty claims justify that effort. Changing tracking on items that already hold stock is harder, so decide before opening stock is loaded.

How do we keep stock counts accurate after go-live?

Accuracy comes from a routine, not a single count. Use Stock Reconciliation to post the opening balance and later to correct book stock against a physical count, and schedule periodic counts by warehouse or by item class, with the highest-value and fastest-moving items counted most often. Review variances before posting, find the cause of each one, and record who approved the adjustment. Keep putaway rules and pick lists under change control, because a wrong location rule creates errors that look like missing stock. Ask any partner to include a count procedure, variance review and a training session for the warehouse team in the written scope, and to name who will own the routine after handover.

What the team should own after the warehouse setup is delivered

The in-house team should own a handover package that records every warehouse decision in a form they can read and change. That package covers the warehouse tree and its naming rules, the putaway rules and pick settings, the item tracking settings for serial and batch items, the opening stock Stock Reconciliation record, the count procedure and cadence, and the list of user roles allowed to post stock. Each item should state what was decided, why, and which records depend on it, so that a future change is a planned edit rather than guesswork.

The most important rule for the handover is that the warehouse map can change, but history cannot be rewritten. A sub-warehouse renamed or moved under a different parent changes how future stock is reported, yet the Serial and Batch Bundles and the stock ledger entries already posted keep pointing at the original records. The partner should document the naming convention, the reason for each parent-child relationship, and a checklist to run before any warehouse is renamed, merged or disabled. Confirm with the vendor documentation how each Stock Entry type behaves after such a change in your ERPNext version before your team relies on it.

Your team should also confirm who can act on each control. Ask the partner to list the roles that can create Stock Entry and Stock Reconciliation documents, the roles that can approve them, and the roles that can edit item tracking settings, which affect future transactions. Ask for a dated count schedule with the named owner for each warehouse, and a record of the first count after go-live. Treat the handover as complete only when your team has run one putaway, one pick, one serial or batch receipt and one count without assistance from the partner.

How DeployOpen scopes and delivers ERPNext warehouse setup

The sequence moves from a written scope to a warehouse structure that matches how stock actually moves, with each stage closed by evidence the client can check. Fixed-scope delivery is the default where the inputs allow it, so the client knows what is included before any build starts.

  1. Agree the written scope first

    DeployOpen maps your receiving, storage, picking, shipping and count routines with your warehouse leads and finance contact before any configuration. The written scope names the companies, warehouses, item groups, serial and batch items, putaway and pick rules, data sources and the cutover date you intend to use. Work does not start until you have signed off that document. Output: an agreed scope with a list of deliverables and the open questions that could change them.

  2. Design the warehouse tree and rules

    DeployOpen models the warehouse hierarchy, including any sub-warehouses for shelves or bins where you need location-level stock, and decides which locations hold saleable, damaged or quarantined stock. Putaway Rules are designed per item and warehouse with capacity and priority, and pick logic is checked against your FIFO or batch requirements. Your team reviews the design against a sample of real movements. Output: an approved warehouse map and rule table.

  3. Configure serial and batch tracking

    DeployOpen sets item master flags for serial and batch control, confirms the numbering approach, and tests Serial and Batch Bundle behavior on receipts, transfers, deliveries and returns. Because negative stock is not allowed for serial or batch items from version 15, the test cases include overdrawn scenarios so your team sees the blocking behavior before go-live. Output: a test log showing each tracked item type moving through the full cycle.

  4. Load opening stock and reconcile

    Opening balances are loaded through Stock Reconciliation, using a file that DeployOpen prepares from your counted quantities, valuation rates and warehouse assignments. Each batch of records is loaded in controlled chunks, and the stock ledger, stock balance and general ledger are compared against the source totals. Any variance is traced to a line before the next chunk is loaded. Output: a reconciliation pack showing opening quantities and values tie to the source count.

  5. Validate cutover with a physical count

    Before go-live, a physical count is run in selected warehouses and compared with system stock by item, location and serial or batch. DeployOpen records each difference, agrees the adjustment with your inventory controller, and posts corrections through Stock Reconciliation with a documented reason. Pick lists and putaway suggestions are tried against live-like orders during the same window. Output: a signed count variance report and a cutover checklist with open items closed or accepted.

  6. Hand over runbooks and documentation

    DeployOpen delivers the warehouse configuration record, rule tables, item tracking settings, count procedure, and the steps your staff follow for receipts, transfers, picks and periodic counts. Administrators are walked through how to change rules without breaking existing stock. Your team confirms it can run a count and a reconciliation unaided. Output: a handover pack and a sign-off from the named operations owner.

  7. Agree support and upgrade terms

    Support and version upgrades can be arranged as a retainer after handover, which covers agreed fixes, release reviews and regression checks against your warehouse rules. DeployOpen does not publish a price list, so the cost of any retainer follows from the written scope and the support level you choose. Ask for the exclusions, response expectations and what is billed separately when you request the quote. Output: a signed support schedule, or a documented decision to run without one.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.