Technical configuration, lifecycle and troubleshooting

Troubleshoot a missing Delivery Note menu or invoice buttons

Restore visibility by checking activation, options, permissions and page scoping in order. The guide then takes you through the correct route, the checks to complete before making changes, the workflow in order, and the evidence to review afterwards.

Audience: Administrators and support staffPermission: AdministratorModule v1.0.0
Jump to steps
Where to goAdmin Area → Setup → Modules and Setup → Staff → Roles

What you’ll accomplish

Restore visibility by checking activation, options, permissions and page scoping in order. This guide follows the supplied Delivery Note module’s live hooks, controller actions, model rules, views and stored side effects.

Follow these steps

  1. Verify the module is installed and active.
  2. Check `delivery_note_enabled` is `1`.
  3. Check the staff role has Delivery Note View and, where needed, Create.
  4. For invoice actions, verify `delivery_note_invoice_ui_enabled` is `1`.
  5. Go to the exact admin invoice editor route.
  6. Check module CSS/JavaScript loads without browser errors.
  7. Check the invoice metadata request for an access-denied or schema error.

Fields and options to review

  • Activation state
  • Enabled option
  • View/Create capabilities
  • Invoice UI option
  • Invoice ID/context
  • Asset URLs and metadata endpoint

Rules the system enforces

  • The sidebar menu is added only when enabled and then remains subject to role capability visibility.
  • Invoice buttons are injected by JavaScript only on recognised invoice pages.
  • Customer invoice buttons use separate ownership/hash checks.
  • Do not edit the global header or core invoice templates for a module-scoped visibility problem.

How to confirm it worked

  • The correct role sees the intended menu/action on supported pages only.

Safety checks and troubleshooting

  • Keep the repair inside Delivery Note code/options and the CRM’s normal permission configuration.
Stay within the supported flowDo not force database values, expose secure tokens, bypass permission checks, replace a stored signature or invent a status or interface that the supplied code does not implement.