Erpnext Impl Controllers

🌐Community
by openaec-foundation · vlatest · Repository

This skill automates ERPNext implementation and controller management, streamlining setup and ensuring consistent configurations for faster deployments.

Install on your platform

We auto-selected Claude Code based on this skill’s supported platforms.

1

Run in terminal (recommended)

terminal
claude mcp add erpnext-impl-controllers npx -- -y @trustedskills/erpnext-impl-controllers
2

Or manually add to ~/.claude/settings.json

~/.claude/settings.json
{
  "mcpServers": {
    "erpnext-impl-controllers": {
      "command": "npx",
      "args": [
        "-y",
        "@trustedskills/erpnext-impl-controllers"
      ]
    }
  }
}

Requires Claude Code (claude CLI). Run claude --version to verify your install.

About This Skill

What it does

This skill assists in determining how to implement server-side DocType logic within ERPNext, specifically guiding users on whether to use a Controller or a Server Script. It provides decision points and examples for implementing custom logic like importing external libraries (requests, pandas, numpy), handling complex transactions, extending DocTypes, or performing validations. The skill emphasizes the distinction between Controllers (for full Python power in custom apps) and Server Scripts (for quick, no-code solutions).

When to use it

  • When needing to import external libraries like requests, pandas, or numpy into ERPNext logic.
  • For implementing complex multi-document transactions that require rollback functionality.
  • To extend or override standard ERPNext DocTypes using the override_doctype_class in hooks.py.
  • When needing to perform validations or calculations before saving a document.
  • If you need to trigger actions after a document is saved (e.g., sending emails, linking documents).

Key capabilities

  • Provides guidance on choosing between Controllers and Server Scripts for ERPNext DocType logic.
  • Offers a decision tree to help determine the appropriate hook (validate, on_update, before_submit, etc.) based on desired functionality.
  • Explains the critical difference in behavior when modifying self within validate (changes are saved) versus on_update (changes are not saved and require using frappe.db.set_value).
  • Covers common implementation patterns, including validation with error handling.

Example prompts

  • "How do I import the 'requests' library into an ERPNext DocType?"
  • "Should I use a Controller or Server Script to validate data before saving?"
  • "What’s the difference between the validate and on_update hooks in ERPNext?"

Tips & gotchas

  • Critical: Changes made to self within the on_update hook are not saved. Use frappe.db.set_value instead.
  • This skill focuses on helping you decide how to implement logic, not providing the syntax itself; refer to erpnext-syntax-controllers for that.
  • Refer to the complete decision tree at references/decision-tree.md for a comprehensive overview of all available hooks.

Tags

🛡️

TrustedSkills Verification

Unlike other registries that point to live repositories, TrustedSkills pins every skill to a verified commit hash. This protects you from malicious updates — what you install today is exactly what was reviewed and verified.

Security Audits

Gen Agent Trust HubPass
SocketPass
SnykPass

Details

Version
vlatest
License
Author
openaec-foundation
Installs
33

🌐 Community

Passed automated security scans.