Permissions
Who can do what. The plugin registers granular permissions under Users -> Groups -> {group} -> Permissions -> Shipments. Admins always have everything.
For the full handle list, see the permissions reference. This page is for setting up roles.
The permissions
Viewing
View shipments, required to see the plugin at all (past the nav item). Without it, a user can’t open the Shipments index, the Attention page, or any shipment edit page. Grant to anyone who needs to see fulfillment data.
Editing
Edit shipments, create shipments from the order-tab staging form, and edit tracking, carrier, service, and notes on existing ones. Also covers creating shipments through the rebuild console command and the REST API update endpoint.
Transitioning
Transition shipment statuses, change fulfillment or shipping status. Split from Edit because status changes drive emails, integration pushes, and history. If your CS team should add tracking numbers but not change fulfillment, keep this permission away from them.
Deleting
Delete shipments, soft-delete. The line items return to the unallocated pool. Restorable from Craft’s trash.
Pushing
Push shipments to integrations, use the Push to {integration} button in the sidebar of the shipment edit page. Queues a push job for that shipment against the chosen integration.
Managing integrations
Manage integrations, manage integrations and their status mappings. The “integration engineer” role, separate from everyday ops.
Managing emails
Manage notification emails, manage notification emails and wire their transition triggers.
Managing settings
Manage plugin settings, edit the General settings page and the Shipment field layout.
Recommended role presets
Customer service agent (read-only). Looks up shipment status. Doesn’t modify.
- View shipments
Warehouse operator. Day-to-day picker / packer. Reads incoming orders, adds tracking, moves to fulfilled, pushes to the 3PL.
- View shipments
- Edit shipments
- Transition shipment statuses
- Push shipments to integrations
Fulfillment lead. Warehouse operator plus cleanup and customer comms.
- All warehouse-operator permissions
- Delete shipments
- Manage notification emails
Integration engineer. Wires up and monitors integrations.
- View shipments
- Manage integrations
Store admin (non-Craft-admin). Everything day-to-day.
- All of the above
Craft admin. Everything. No permission checks.
Nesting
Edit, Transition, Delete, and Push all nest under View. You can’t grant any of them without also granting View. Craft’s permission editor shows this in the UI.
Manage integrations, Manage emails, and Manage settings are independent. You can give someone email-management access without giving them view access to shipments.
How denial looks
- Reading a page they can’t access (for example the index): Craft returns its standard 403 page.
- Trying a sidebar push without the permission: the button is hidden; the controller also rejects the POST with a 403 if invoked directly.
- Changing status without the permission from the CP edit page: the save returns 403 and the change doesn’t happen.
- REST API call without the permission: 403 JSON response.
Auditing who did what
Every status change records the user who made it (empty for background jobs and webhook ingestors). Open the shipment’s Status history tab to see the user, the source integration, and the raw code the integration sent for each change.
For other actions (creating, deleting, editing tracking / carrier / notes), Craft’s built-in element change log covers it. Open the shipment edit page and click the Drafts / revision history icon in the top bar.