Settings & Admin
Settings is the control centre for your EMS deployment. It controls system configuration, user management, and data administration. Access is restricted to users with the admin role — non-admin users will not see Settings in their sidebar.
The Settings module is organised into nine tabs, each covering a distinct area of configuration. Changes made in Settings take effect immediately unless otherwise noted. This guide walks through every tab in order, explains what each setting does, and provides guidance on when and why you would change it.
Company settings
The Company tab stores your organisation's identity information. This data appears on every outward-facing document EMS generates — PDF reports, bills of lading, invoices, and export manifests.
The configurable fields are:
- Company name — your registered business name. This prints in the header of every PDF export and on the BOL (bill of lading).
- Address — your warehouse or head-office address. Appears in document headers and is used as the return address on shipping labels.
- Logo — upload your company logo (PNG or JPG, recommended 400x100px). The logo appears in the top-left corner of PDF exports alongside the company name. If no logo is uploaded, EMS uses a text-only header.
- Phone — your main business phone number. Printed on BOLs and invoices for carrier and consignee contact.
- Email — your primary business email. Appears in document footers and in the portal's contact-us section.
Fill out the Company tab during initial setup and update it whenever your business details change. Keep the logo file under 500KB — larger files slow down PDF generation since the image is embedded in every exported document.
User management
The Users tab is where you create, edit, and manage the accounts that people use to log into EMS. Every person who accesses the system — whether they are an admin, a warehouse operator, or a consignee using the portal — needs their own user account.
EMS supports six roles, each granting access to a different set of modules. The roles are:
- admin — full access to every module, every setting, and every data management function. Admins can create and delete users, change system configuration, export and import data, and access the audit log. This is the superuser role.
- shipping-docs — access to the Shipments module, Receiving, and document management (BOLs, NOAs, packing lists). This role is designed for the team that handles inbound logistics — the people who manage air waybills, coordinate pickups, and process customs paperwork.
- inventory — access to the Products module, Storage, and inventory operations (inventory checks, skid moves, zone management). This role is for warehouse floor staff who manage where product lives and how much is on hand.
- production — access to Production Orders, the Production workspace, stamp runs, and batch ID management. This role is for the stamping-line team who schedule and execute production orders.
- outbound — access to Outbound Orders, dispatch scheduling, and logistics tracking. This role is for the team that picks, stages, and ships completed orders to consignees.
- customer — portal access only, scoped to a single consignee. Customer-role users can view their own shipments, inventory, production orders, and outbound status through the Customer Portal. They cannot see data belonging to other consignees and cannot access any admin or operational module.
Adding a user
From the Users tab, click + Add User. Fill in the following fields:
- Username — a unique identifier for login. Cannot contain spaces. Once created, the username cannot be changed.
- Password — the initial password. EMS does not enforce complexity rules by default, but we strongly recommend using passwords of at least 12 characters with a mix of letters, numbers, and symbols.
- Role — select one of the six roles listed above. A user can have exactly one role. If someone needs access to both shipping and production, you have two options: assign them the admin role (if appropriate) or create two accounts (not recommended — use admin instead).
- Email (optional) — the user's email address. Currently used for display purposes in reports and audit logs. Future versions may use this for password reset and notifications.
Click Save. The user can now log in immediately with their username and password.
Resetting a password
From the Users tab, find the user in the list and click Reset Password. Enter the new password and confirm. The user's existing sessions are not terminated — they will need to use the new password on their next login. There is no self-service password reset; an admin must perform this action.
Deactivating a user
EMS uses soft-delete for user accounts. When you click Deactivate on a user, their account is disabled — they can no longer log in — but their data is preserved. Their name continues to appear in audit logs, report "Prepared by" fields, and historical records. This is important for compliance: you need to be able to trace who performed an action even after that person has left the organisation.
Deactivated users appear greyed out in the user list with a "Deactivated" badge. You can reactivate them at any time by clicking Reactivate.
User roles explained
The table below shows which modules and operations each role can access. Use this as a reference when deciding which role to assign to a new user.
| Module / Operation | admin | shipping-docs | inventory | production | outbound | customer |
|---|---|---|---|---|---|---|
| Dashboard | Full | View | View | View | View | Portal only |
| Shipments | Full | Full | — | — | — | View own |
| Receiving | Full | Full | — | — | — | — |
| Products | Full | — | Full | View | — | View own |
| Storage | Full | — | Full | — | — | — |
| Production Orders | Full | — | — | Full | — | View own |
| Production (workspace) | Full | — | — | Full | — | — |
| Outbound | Full | — | — | — | Full | View own |
| Reports | Full | Shipping reports | Inventory reports | Production reports | Outbound reports | — |
| Settings | Full | — | — | — | — | — |
| Audit Log | Full | — | — | — | — | — |
Full means the user can view, create, edit, and delete records in that module. View means read-only access. View own means the user can see only records belonging to their assigned consignee. A dash means no access — the module does not appear in the user's sidebar at all.
Assign the most restrictive role that still lets the person do their job. A warehouse floor worker who only moves skids needs the inventory role, not admin. You can always upgrade a role later, but granting broad access from day one increases the risk of accidental data changes and complicates your audit trail.
Module settings
The Modules tab lets you enable or disable entire modules system-wide. When a module is disabled, it disappears from the sidebar for all users — regardless of their role. The module's data is preserved; disabling a module hides it, it does not delete anything.
This is useful for phased rollouts. If you are onboarding a new warehouse and want the team to start with Shipments and Receiving before introducing Production, you can disable the Production module until the team is comfortable with the basics. When you are ready, enable it and the module appears in the sidebar immediately — no restart or redeployment needed.
The toggleable modules are:
- Shipments
- Receiving
- Products
- Storage
- Production Orders
- Production (workspace)
- Outbound
- Invoicing
- Reports
- Customer Portal
The Dashboard, Settings, and Audit Log cannot be disabled — they are always available to users with appropriate roles.
Shipping & receiving settings
The Shipping tab configures how the Shipments and Receiving modules behave. These settings control automated workflows and data-entry requirements for inbound logistics.
- Auto-status-progression — when enabled, shipments automatically advance through their status lifecycle based on events. For example, when a receiving session is started for a shipment, its status automatically moves from Arrived to Receiving. When all boxes are scanned, it moves to Inventoried. When disabled, operators must manually update statuses via a dropdown, which gives more control but requires more clicks.
- Default pickup lead time — the number of business days between a shipment's arrival notification and its scheduled pickup. Defaults to 2 days. This value pre-populates the pickup date field when creating a new shipment, saving operators from entering it manually on every record. Adjust it based on your typical customs clearance turnaround.
- NOA required — when toggled on, every shipment must have a Notice of Arrival (NOA) document attached before it can move past the Arrived status. This enforces document completeness for regulated imports. When toggled off, the NOA field is optional.
- Damage photo required — when toggled on, operators must upload at least one photo when recording damage during receiving. The photo is attached to the box record and is visible in the shipment's history. This setting is recommended for high-value goods where damage claims need photographic evidence.
Most warehouses should leave auto-status-progression enabled. It reduces manual clicks, ensures statuses stay in sync with actual operations, and prevents shipments from getting stuck in an intermediate status because someone forgot to update a dropdown. Disable it only if your workflow requires manual review gates between status transitions.
Storage zone configuration
The Storage tab configures your warehouse's physical zone layout. This is the same configuration described in the Storage & Zones guide, accessed from a central location in Settings.
For each zone (A, B, C, D, F, H), you configure:
- Zone name — the display label. Change "A" to "Dry Rack 1" or "Cold Storage" to match your warehouse signage.
- Rows — the number of rows in the zone (numbered sequentially: 01, 02, 03, ...).
- Columns — the number of columns per row (lettered sequentially: A, B, C, ...).
- Levels — the number of vertical shelves per column. Set to 1 for floor storage zones with no racking.
- Max skid capacity — the maximum number of skids the zone can hold. This drives the capacity colour thresholds (green under 70%, yellow 70-90%, red over 90%).
- Colour-code thresholds — you can customise the percentage breakpoints for the green/yellow/red capacity indicators. The defaults (70% and 90%) work for most warehouses, but if your operations run tighter you might set them to 60% and 80%.
When you save a zone configuration change, it takes effect across the entire system right away. However, existing skids are not relocated. If you reduce the number of rows in a zone and there are skids in the removed rows, those skids will show a "location not found" warning. Always verify that a zone section is empty before shrinking its dimensions. Adding rows, columns, or levels is safe and does not affect existing skids.
Production settings
The Production tab configures how the production scheduling and execution modules behave.
- Daily capacity limit — the maximum number of units that can be scheduled for production on any single day. Defaults to 60,000 units. This cap appears on the production calendar; days that exceed the cap show a warning border. Set this to match your stamping line's realistic daily throughput so the calendar gives honest capacity visibility.
- Weekend scheduling — when toggled on, Saturday and Sunday appear as schedulable days on the production calendar. When toggled off (the default), only weekdays are available. Enable this if your warehouse runs weekend stamping shifts.
- Auto-split behaviour — controls what happens when a production order exceeds the daily capacity limit. When enabled, EMS offers to automatically split the PO across consecutive days (see Auto-overflow handling). When disabled, POs that exceed the cap still show a warning but are not split — the operator must manually adjust the schedule.
- Verification requirement — controls whether the four-eyes verification step is mandatory after a production run completes. When enabled (the default and the recommended setting), a second user must verify and sign off before the PO can move to Completed. When disabled, the stamper can self-complete — this is faster but removes the audit safeguard. Disabling verification is not recommended for CRA-regulated operations.
Invoicing settings
The Invoicing tab configures how EMS calculates fees, taxes, and duties for consignee billing. It is split into three sub-sections: fee presets, tax rates, and duty rates.
Fee presets
Fee presets are named templates that define a specific charge you apply to consignees. Each preset has a name, a fee type, and a rate. When creating an invoice, you select from your presets rather than entering numbers manually — this ensures consistency and reduces billing errors.
The two fee types are:
- Per-unit — a rate charged for every unit handled. Example: "Standard handling" at $0.02 per unit. If a shipment contains 10,000 units, the fee is $200.00.
- Fixed — a flat fee charged regardless of volume. Example: "Expedited processing" at $50.00 flat. The fee is $50.00 whether the shipment is 100 units or 10,000 units.
You can create as many presets as you need. Common examples:
- Standard handling — per-unit fee of $0.02
- Expedited handling — flat fee of $50.00
- Cold storage surcharge — per-unit fee of $0.005
- Re-palletization — flat fee of $75.00
- Customs brokerage — flat fee of $125.00
To add a preset, click + Add Fee Preset, fill in the name, type, and rate, and click Save. Presets can be edited or deleted at any time. Deleting a preset does not affect invoices that have already been generated with it — the historical fee line is preserved.
Tax rates
The Tax Rates section stores GST and HST rates by Canadian province. EMS uses these rates when generating invoices to calculate the tax portion of each line item.
The tax rate applied to a consignee's invoice is determined by their primary address on file. If a consignee's address is in Ontario, the Ontario HST rate is used. If their address is in Alberta, the Alberta GST rate is used. This automatic lookup ensures the correct tax rate is always applied without manual selection.
EMS ships with current Canadian tax rates pre-loaded, but you should verify them during setup and update them whenever rates change. Provincial rate changes typically take effect on January 1 or April 1 — add a calendar reminder to review this setting at those dates.
Duty rates
The Duty Rates section stores excise duty rates as defined by the CRA. Excise duty on spirits in Canada is calculated per unit of absolute ethyl alcohol, and the rate is tiered based on volume thresholds.
EMS stores duty rates per 2mL increment (the standard unit for excise calculation on small-format products) and supports tiered breakpoints. The tier structure looks like this:
- Tier 1 — first 50,000 units: $0.124 per 2mL
- Tier 2 — 50,001 to 150,000 units: $0.062 per 2mL
- Tier 3 — above 150,000 units: $0.031 per 2mL
When generating an invoice or Import Costs report, EMS applies the correct tier based on the consignee's cumulative annual volume. The tiers reset at the start of each fiscal year.
The CRA adjusts excise duty rates periodically — typically in the annual federal budget. When new rates are published, update the Duty Rates section immediately. EMS applies rates from this table at the time of invoice generation, so any delay in updating means invoices generated during the gap will use outdated rates and will need to be reissued.
Data management
The Data Management tab provides tools for backing up, restoring, and resetting your EMS data. These are powerful operations that affect the entire system — treat them with care.
- Export Backup — downloads a complete JSON export of all system data: shipments, receiving records, products, storage assignments, production orders, outbound records, invoices, stamp inventories, consignees, users, and settings. The file is timestamped and can be stored offsite as a disaster-recovery backup. The export does not include uploaded files (photos, documents) — only structured data.
- Import / Restore — upload a previously exported JSON backup to restore the system to that state. This is a full overwrite: all current data is replaced with the data from the backup file. EMS asks you to confirm before proceeding and shows the backup's timestamp so you know exactly what state you are restoring to.
- Selective Reset — clear specific data collections without affecting others. For example, you can reset all outbound records while preserving shipments and inventory. Each collection has its own checkbox. This is useful during testing or when decommissioning a specific part of the system. Selective reset is irreversible for the cleared collections.
- Full Reset — restores the entire system to factory defaults. All data is deleted. All user accounts except the initial admin are removed. All settings return to defaults. This requires a double confirmation: first a dialog asking "Are you sure?", then a second dialog requiring you to type the word "RESET" to proceed.
There is no undo for a Full Reset. Once confirmed, all data is permanently deleted. If you have any doubt, export a backup first. Full Reset is intended for end-of-life decommissioning or for development environments that need a clean slate. It should never be used on a production system without explicit management approval and a verified backup in hand.
Audit log
The Audit Log tab provides a paginated, searchable record of every significant action performed in the system. It is the definitive answer to "who did what, and when?" — the kind of question that comes up during CRA audits, discrepancy investigations, and operational reviews.
Each log entry records:
- Timestamp — the exact date and time of the action, recorded from the server clock (not the user's local time).
- User — the username of the person who performed the action.
- Action type — a categorised label for the action, such as "Shipment Created", "Production Verified", "User Deactivated", "Storage Move", or "Settings Updated".
- Details — a human-readable summary of what changed. For example: "Created shipment SHP-2026-0087 for consignee Norwood Beverages" or "Moved skid SKD-0042-03 from A-03-B-2 to H-01-A".
The log is searchable and filterable:
- Search — free-text search across the details field. Type a shipment number, a username, or a keyword to find matching entries.
- User filter — dropdown to show only actions performed by a specific user.
- Action type filter — dropdown to show only a specific category of action (for example, all production-related actions).
- Date range filter — limit the log to a specific time window.
The audit log can be exported to CSV for offline analysis or long-term archival. The export includes all fields and respects any active filters — so you can export just "all production.verify actions in Q1 2026" if that is what the auditor needs.
The audit log is append-only. No user — not even an admin — can edit or delete log entries. This immutability is by design: the audit log's value depends on its trustworthiness. If entries could be altered, the log would be useless for compliance. The only way to clear the audit log is a Full Reset, which clears everything.
Best practices
- Create individual user accounts — never share the admin login. Every person who touches EMS should have their own username and password. Shared accounts make the audit log meaningless because you cannot tell who actually performed an action. If your initial admin account is "admin", create a named account for yourself and use "admin" only as a break-glass emergency login.
- Set up roles early so operators see only their modules. During onboarding, assign roles before giving people their login credentials. A warehouse floor worker who logs in and sees ten unfamiliar modules will feel overwhelmed. A worker who logs in and sees only Storage and Inventory sees a focused, purpose-built workspace. Roles are not just security — they are usability.
- Export backups weekly. Set a recurring reminder to export a data backup every week. Store the backup file outside of EMS — on a network drive, a cloud storage bucket, or an external hard drive. If something goes wrong (accidental deletion, data corruption, hardware failure), a recent backup is the difference between a minor inconvenience and a catastrophe.
- Review the audit log monthly for unusual patterns. At the end of each month, spend ten minutes scrolling through the audit log. Look for unexpected patterns: logins at unusual hours, a burst of deletions, settings changes you do not remember approving, or actions by users who should not have been in a particular module. Early detection of anomalies prevents small issues from becoming large ones.
- Keep duty rates current. When the federal budget announces new excise duty rates, update the Duty Rates section in Settings on the day the new rates take effect — not the day after, not next week. Invoices generated with stale rates need to be reissued, which creates work for you and confusion for your consignees. Put a calendar reminder on the CRA rate-change effective dates.
- Use module toggles for phased onboarding. If you are training a new warehouse team, disable modules they have not been trained on yet. This prevents operators from accidentally navigating into unfamiliar areas and making unintended changes. Enable modules one at a time as training progresses.
