Weight-Based Purchase Receipt in ERPNext

Has anyone ever implemented a system like this? Here I have documented the requirements, and I am planning to work on this. Any inputs or suggestions based on the documentation would be appreciated.

System Requirements & Workflow for Weight-Based Goods Receiving in ERPNext


Objective

To streamline the inward goods receipt process by:

  • Automatically recording actual weights via connected digital weighing scales

  • Generating item- and bag-level labels with QR codes after Purchase Receipt submission

  • Ensuring traceability and error detection through conversion factor audits

  • Flagging deviations when actual weight differs significantly from system-expected weight

  • Facilitating manual verification through periodic spot audit tables


Workflow Summary

1. Purchase Receipt Creation

  • Operator creates a new Purchase Receipt in ERPNext.

  • Selects Supplier and Pulls Items from a linked Purchase Order.

  • Enters Supplier Invoice Number.

  • Modifies received quantities if they differ from PO.

2. Number of Bags Entry (Hybrid Approach)

  • For each line item, operator enters the Number of Bags received. (Manual field)

  • Optionally, the system can suggest a number based on quantity and UOM (e.g. 1 bag = 20 Nos).

  • This field is editable, allowing for variations in packing.

3. Item Receiving & Weighing (Per Bag)

  • Each bag is weighed individually using a USB-connected digital scale (e.g., CAS PR-C).

  • Operator initiates the weighing process:

    • System auto-generates that number of rows in the Bag Details table.

    • Operator selects a row and clicks “Weigh Bag” to fetch live weight.

    • System calculates quantity from weight using UOM conversion.

4. Deviation Alert

  • System calculates:

Deviation % = |(Actual Weight - Expected Weight)| / Expected Weight × 100

  • If deviation > 2%, a warning alert is shown:

“Deviation exceeds allowed limit. Please verify the weight or quantity.”

5. Spot Audit Table (Manual QA Check)

  • For selected items or receipts (as configured later), operator must perform a spot audit.

  • Manually count actual units in a few bags and log results in a child table:

    • Bag No

    • Expected Quantity

    • Actual Counted Quantity

    • Deviation %

    • Remarks

6. Purchase Receipt Submission & Label Generation

  • Labels can only be printed after submission of the Purchase Receipt.

  • One label is generated per bag with QR code containing key details.


Functional Requirements

Purchase Receipt Custom Fields

  • Number of Bags (Integer) — entered manually per item line

  • Expected Weight (kg) — calculated from quantity and UOM

  • Actual Weight (kg) — fetched from scale or entered manually

  • Deviation (%) — auto-calculated

  • Deviation Alert — display field

Bag Details Child Table

Field Description
Bag No Auto-incremented identifier
Weight (kg) Fetched from scale
Quantity Auto-calculated from weight
Label Printed Yes/No
QR Code Optional, generated post-submission

Spot Audit Child Table

Field Description
Bag No Audited bag number
Expected Quantity From system calculation
Actual Counted Qty Manual count
Deviation % Auto-calculated
Remarks Optional notes

Deviation Alert Logic

  • Triggered during the weighing phase.

  • If actual weight deviates from system-expected weight by more than 2%, a red alert is displayed.

  • Optionally, submission can be blocked or flagged for supervisor override.


Label Format (Per Bag)

Fields to include:

  • Item Name

  • Quantity

  • Weight

  • Bag No

  • Supplier Name

  • Purchase Receipt Number

  • QR Code


To Be Decided

Parameter Decision Status
Spot Audit Frequency To be configured later
Deviation Threshold Default 2%, may be item-specific
Label Print Format To be finalized
QR Code Data Format Standardized JSON