> ## Documentation Index
> Fetch the complete documentation index at: https://docs.erp.arukz.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ARUKZ ERP plugins and how they fit together

> Every feature in ARUKZ ERP comes from a plugin: Aureus ERP plugins under plugins/webkul, ARUKZ modules under plugins/arukz, and how they depend on each other.

Everything a user can do in ARUKZ ERP comes from a plugin. The 28 plugins under `plugins/webkul/` are the Aureus ERP base: sales, purchases, inventory, accounts, manufacturing, HR and the core services. The 21 under `plugins/arukz/` are ARUKZ's own modules, from GST returns and TDS to quality, job work and AI. Each plugin brings its own tables, screens and permissions, and is switched on per company by ARUKZ staff.

## Core plugins (always loaded)

| Plugin | Provides |
| - | - |
| `support` | Companies, currencies, countries, units of measure, number sequences, `CompanyScope` and `BelongsToCompany` |
| `security` | Users, roles, teams, invitations, `OwnershipScope`, the API sign-in |
| `partners` | The `partners_partners` table: every customer, vendor, contact and address |
| `plugin-manager` | The `plugins` table and the `<name>:install` and `<name>:uninstall` commands |
| `chatter` | The notes and messages log at the bottom of records |
| `fields` | Custom fields admins add without code |
| `table-views` | Saved filters and views on lists |
| `analytics` | Analytic accounts and records (timesheets are stored here) |
| `full-calendar` | The calendar used by Time Off and Projects |

## Business plugins from Aureus ERP

| Plugin | Purpose |
| - | - |
| `products` | Catalogue, variants, categories, price lists, packaging |
| `accounts` | The accounting engine: chart of accounts, journals, taxes, account moves, payments, reconciliation |
| `invoices`, `accounting`, `payments` | Screens on top of `accounts`: invoices, credit notes and bills; journal entries and reports; payments |
| `sales` | Quotations, sales orders, deliveries and invoices from the order, sales teams |
| `purchases` | Requisitions, RFQs, purchase orders, receipts and vendor bills |
| `inventories` | Warehouses, locations, stock moves, receipts and deliveries, lots and serials, routes |
| `barcode` | The barcode scanning app for warehouse operations |
| `manufacturing` | Bills of materials, manufacturing orders, work centres, work orders |
| `maintenance` | Equipment and maintenance requests |
| `projects`, `timesheets` | Projects, tasks, stages, milestones, and time logged on tasks |
| `employees`, `recruitments`, `time-off` | Employees and departments, applicants, leave |
| `contacts` | The contacts screen over `partners` |
| `website`, `blogs` | Website pages and blog, and the customer portal sign-in |

## ARUKZ plugins

| Plugin | Purpose |
| - | - |
| `gst-returns` | GSTR-1 and GSTR-3B figures, HSN summaries, GSTR-2B matching, the LUT register and a ledger tie-out from posted documents |
| `einvoice` | Records e-invoice IRNs and e-way bills generated on the government portals, locks invoices that have an IRN, tracks time limits |
| `tds` | The TDS register on vendor bills, monthly challans and quarterly return data |
| `msme` | Payables to micro and small enterprises: due dates, interest and the income-tax flag |
| `stock-ledger` | Posts stock movements to the books per company from a cut-over date (off by default), and reconciles stock accounts |
| `accounting-controls` | Lock dates and year close |
| `banking` | Bank statement import, column mapping and reconciliation |
| `approvals` | Approval levels by amount for purchase orders, with maker-checker |
| `opening-data` | Opening stock and balances from CSV, and Tally masters import with a per-group reconciliation |
| `quality` | Inspections, rejections, 8D CAPA reports, quality parameters, gauge calibration |
| `subcontracting` | Job work: orders, challans and receipts on both sides, and ITC-04 files |
| `procurement` | Purchase requisitions, RFQ bidding, vendor contracts and scorecards |
| `payroll` | Salary structures, payroll runs, PF and ESI shares, salary slips |
| `assets` | Fixed assets, depreciation schedules, asset maintenance, tool and die wear |
| `fleet` | Vehicles, drivers, fuel and service logs |
| `documents` | Controlled documents, categories and engineering change orders |
| `compliance` | Audits, risk register and statutory obligations with due dates |
| `helpdesk` | Support tickets with SLA policies and knowledge-base articles |
| `crm` | Leads, opportunities, campaigns and activities |
| `bi` | KPIs and report definitions maintained by hand (nothing is calculated automatically yet) |
| `ai` | Ask AI, reading purchase bills and rule-based insights, and the MCP server; nothing posts by itself |

## Modules per company

A new company starts with the core six: `sales`, `purchases`, `inventories`, `invoices`, `accounting` and `gst-returns` (`App\Services\Modules\ModuleCatalog::CORE`). ARUKZ platform staff switch the rest on for each company from **SaaS Platform → Tenants → Modules**. A module that is off is hidden from the menu, search and API, and its addresses answer `403`; its data is kept. See [Modules](https://docs.erp.arukz.com/admin/modules.md).

## Dependencies

A plugin declares the plugins it needs with `->hasDependencies([...])` in its service provider, and `<name>:install` installs them first.

```mermaid theme={"theme":{"light":"github-light","dark":"github-dark"}}
graph LR
    products --> accounts
    accounts --> invoices
    accounts --> accounting
    accounts --> payments
    invoices --> purchases
    invoices --> sales
    payments --> sales
    products --> inventories
    inventories --> barcode
    products --> manufacturing
    inventories --> manufacturing
    employees --> recruitments
    employees --> timeoff[time-off]
    projects --> timesheets
    website --> blogs
    employees -. "foreign key, not declared" .-> payroll
    products -. "foreign key, not declared" .-> quality
    products -. "foreign key, not declared" .-> subcontracting
```

Read an arrow as "is needed by". The dotted arrows are real foreign keys that some ARUKZ plugins do not declare yet, so installing, for example, `payroll` before `employees` on a fresh database fails. A full install (`erp:install`) puts them in the right order; declare dependencies in any new plugin.

## Where a plugin's screens appear

Each plugin's `*Plugin::register()` tells Filament which folders to scan:

```php theme={"theme":{"light":"github-light","dark":"github-dark"}}
$panel->discoverClusters(in: __DIR__.'/Filament/Clusters', for: 'Arukz\\Compliance\\Filament\\Clusters');
```

`discoverClusters()` already finds every resource inside the cluster folders. Do not also call `discoverResources()` on the same folder: every menu item would appear twice.

To add a module of your own, follow [Build a custom plugin](https://docs.erp.arukz.com/developers/custom-plugin.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.