Skip to content

Commerce Foundations is our pre-built Craft Commerce store. See what it includes

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.

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.

Think we might be a fit?

Start a conversation
See if we’re a fit