Skip to content

[FR] PO Serial Number Pre-loading and Verification Workflow #11367

@greatmerlin

Description

@greatmerlin

Please verify that this feature request has NOT been suggested before.

  • I checked and didn't find a similar feature request

Problem statement

Currently, receiving serialized items in InvenTree is a post-receipt manual task. For high-value hardware (switches, routers), we receive a manifest of serial numbers from the supplier once the order is "Placed" but before it physically arrives.
There is currently no way to:

  • Pre-load these expected serials into a PO.
  • Verify the physical items against this manifest during the "Receive Line Items" process.
  • Automatically create individual serialized Stock Items based on a successful scan/match.

Suggested solution

I propose a "Verification Mode" for Purchase Order receipts:

  • Data Entry (The "Pre-load"): Once a PO is in the Placed status, add a capability to "Add Expected Serials" to a Line Item. This could be a simple text area (one per line) or a CSV upload.

  • The Receipt UI: In the "Receive Line Items" dialog, if expected serials exist, trigger a Verification Mode.

    • The user scans a serial number via a barcode scanner.
    • The system checks the scanned value against the "Expected" list.

Success State: If the serial matches, the item is marked as "Verified" and prepared for stock creation.

Failure States:

  • Mismatch: If a scanned serial is not in the list, the UI alerts the user. Options: Accept anyway (overrule), Flag as incorrect, or Skip.

  • Duplicate Scan: Ignore if the same serial is scanned twice, as long as it is one time scanned, it shouldnt matter if I scan the same item more times. There is no chance if receiving two items with the same serial number.

  • Missing Items: If the box is closed but 1 of 10 serials wasn't scanned, that specific serial remains in a "Pending/Not Received" state on the PO.

Proposed Implementation Details

  • Model Changes: Add an ExpectedSerial model (or similar) linked to PurchaseOrderLineItem.
  • UI: A "Scan to Verify" button in the PO receipt wizard.
  • Stock Creation: Upon finishing the receipt, InvenTree should automatically generate the individual StockItem entries using the verified serial numbers, rather than creating one bulk entry of "10 items" that needs manual serialization later.

Use Case
In IT infrastructure (Networking), receiving the wrong serial number is a major inventory and warranty issue. This workflow ensures that the data in InvenTree 100% matches the physical hardware the moment it hits the shelf, preventing "ghost" inventory or incorrect warranty tracking.

Example

  • Order: 10x Cisco C9200L switches.
  • Manifest: Supplier emails a list of 10 serials. I paste these into the PO Line Item.
  • Arrival: Warehouse staff opens the box, scans each switch.
  • Result: 9 turn green (Match). 1 turns red (Wrong serial sent by supplier). The 9 correct ones are added to stock; the 1 wrong one is flagged for Return/RMA.

Describe alternatives you've considered

Manual Post-Receipt Serialization:
Currently, we receive 10 units as a "bulk" stock item and then manually edit each one to add a serial number. This is highly prone to human error and doesn't allow us to verify the supplier's manifest at the moment of receipt. If a serial is wrong, the inventory is already "accepted" in the system, making the return/RMA process messy.

Virtual "In-Box" Location:
Creating a temporary storage location to hold unverified items. This adds unnecessary administrative steps and doesn't solve the core problem of comparing scanned barcodes against a pre-defined list of expected serial numbers.

External Spreadsheets:
Comparing physical scans against an Excel sheet and then importing the "clean" data into InvenTree. This defeats the purpose of using an ERP/Inventory system as a "Single Source of Truth."

Examples of other systems

I know only snipe-IT which has a similar function. While primarily for Asset Management, Snipe-IT allows for bulk auditing where scanning a barcode confirms the physical presence of a specific pre-existing record.

With a little research I found out that Odoo uses a similar Serial Number system, however I havent tested that personally.

Do you want to develop this?

  • I want to develop this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementThis is an suggested enhancement or new featurepluginPlugin ecosystemwontfixNo work will be done against this issue or PR

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions