Enterprise Manufacturing

Lush: Custom Memo Cost Engine for ERPNext

How we built a bespoke Frappe app that gives Lush Cosmetics dual-cost visibility — budget-rate costing running in parallel with ERPNext's live FIFO valuation.

About the Project

Lush is a global handmade cosmetics manufacturer headquartered in Poole, Dorset. We previously helped Lush deploy ERPNext across 5 countries — covering production planning, finance, and inventory management.

This project focused on a specific challenge: building a custom Frappe app (lush_memo_cost) that adds a parallel "memo cost" (budget/planning cost) system alongside ERPNext's live FIFO valuation — giving finance teams the dual-cost visibility they needed for budgeting, pricing, and margin analysis.

Scope

19

Days

Cost

Fixed-Price

Engagement

Reports

6

Custom

Tech

Frappe v15

Custom App

The Challenge

FIFO ≠ Budget Cost

ERPNext's live FIFO valuation fluctuates with every purchase — unsuitable for budgeting, pricing, and margin analysis where stable, planned costs are essential.

Multi-Level BOM Complexity

Lush products have deep BOM hierarchies — finished goods, sub-assemblies, and raw materials. Budget costs must roll up accurately through every level.

Dual-Cost Reporting Gap

Finance needed to compare actual (FIFO) vs planned (memo) costs side-by-side across purchasing, stock, and sales — with no native ERPNext support for this.

The Solution

We built a standalone Frappe app that extends ERPNext with a complete memo cost system — from individual item costs through multi-level BOM roll-ups to dual-cost management reports.

Memo Cost Field

Custom field on Item and BOM DocTypes via Frappe's non-destructive Custom Fields — fully upgrade-safe with zero core changes.

Global Recalculation

Level-wise background engine that calculates memo costs from leaf BOMs upward, batched in 7,000-record chunks with Redis-cached dependency maps.

BOM Version Cascading

When a raw material BOM is upgraded, every parent BOM is automatically versioned and updated — cascading through the full hierarchy.

Currency Exchange Rate Memo

Dedicated DocType for storing budget FX rates, decoupled from ERPNext's live exchange rates — so budget costs remain stable regardless of currency fluctuations.

6 Management Reports

Purchase Order Analysis, Purchase Receipt Analysis, Stock Analysis, and Sales Margin Reports (Lvl 1-3) — all showing FIFO vs Memo costs side-by-side with variance columns.

Individual BOM Cost Update

Pressing "Update Cost" on any BOM recalculates both the standard ERPNext cost and the memo cost for that BOM version — keeping both cost systems in sync.

The Results

19 Days

Scoped and delivered

6 Reports

Dual-cost management reporting

Zero

Core changes required

Upgrade-Safe

Compatible with ERPNext updates

Need a Custom ERPNext Module?

We build bespoke Frappe apps that extend ERPNext without modifying core code — upgrade-safe, production-ready, and delivered fast.

Get a Free Consultation