Skip to content

Admin UI Extensions

The admin panel is the standard Medusa Admin UI, heavily customized via a Vite plugin in medusa-config.ts. Default Medusa menu items are hidden and replaced with custom sections.

RoutePagePurpose
00-sales-headerSection headerHidden divider
01-quotationsQuotationsCreate, edit, convert to orders
02-aplt-ordersOrdersOrder management with status tracking
03-invoicesInvoicesGenerate from orders, track payments
04-customersCustomersB2B customer database
05-credit-notesCredit NotesIssue credit notes
06-paymentsPaymentsPayment tracking
07-reportsReportsSales reporting dashboard
08-subscriptionsSubscriptionsRecurring billing management
09-crmCRMLead management
RoutePagePurpose
10-stijl-headerSection headerHidden divider
11-cmsCMSContent page management
12-brand-wizardBrand WizardConfigure brand colors, logos
13-cms-modulesCMS ModulesManage content modules
14-page-managerPage ManagerLayout editor
15-menu-managerMenu ManagerNavigation configuration
RoutePagePurpose
20-advanced-headerSection headerHidden divider
21-connectorsConnectorsSupplier data sync management
22-access-requestsAccess RequestsApprove/reject store access
23-aplt-productsProductsAPLT product catalog
24-category-managerCategoriesProduct categorization
25-technique-pricingTechnique PricingPrint technique pricing
26-translationsTranslationsMulti-language content
RoutePagePurpose
30-parametersParametersSystem parameters, payment terms
settings/dev-projectsDev ProjectsDevelopment project management

The Vite plugin in medusa-config.ts:

  • Injects Magic e-VERSE branding into the admin HTML
  • Hides default Medusa menu items (Orders, Products, etc.)
  • Reorganizes sidebar with custom section headers
  • Replaces Medusa logo with Magic e-VERSE logo
  • Injects the Wayne support widget
  • Blocks Command Palette (Ctrl+K) to prevent confusion
  • Adds custom CSS for section styling

Admin routes are defined in:

backend/src/admin/routes/
├── 00-sales-header/
├── 01-quotations/
├── 02-aplt-orders/
│ └── page.tsx
├── ...
└── settings/
└── dev-projects/
└── page.tsx

Each route follows the Medusa Admin SDK pattern with RouteConfig exports:

import { defineRouteConfig } from "@medusajs/admin-sdk"
export const config = defineRouteConfig({
label: "Quotations",
icon: DocumentTextSolid,
})