Common Roles and Their Policies

EnterpriseBeta

This guide suggests common roles you can create in the Medusa Admin and the policies each one typically needs. Use it as a starting point, then adjust the policies to match how your team works.

Enterprise feature: Roles and policies are part of the role-based access control (RBAC) feature, which is an enterprise feature. A developer must enable it in your Medusa configuration before the Roles and Policies settings appear.

How to Read This Guide#

Each policy is written as resource:operation, where the operation is one of read, create, update, or delete. For example:

  • product:read allows viewing products.
  • product:create allows creating products.

In the Medusa Admin, you select each policy individually. Operations are independent: granting product:update doesn't also grant product:read. So, to give a role full access to a resource, select all four of its operations.

Roles also often need read access to related resources to use a page without errors. For example, a product manager needs sales_channel:read to assign products to sales channels. These related policies are listed for each role below.

To find the exact policy keys available in your store, browse the Policies list in the dashboard.

To create any of these roles, follow the steps in the Manage Roles guide and select the listed policies.


Super Admin#

A super admin has full access to the store, including managing roles and policies.

Medusa provides a built-in Super Admin role with the *:* policy, which grants every operation on every resource. Assign this role to users who need full access.

You can also create a custom role and select all available policies. However, the role creation form only lists the policies that you hold yourself, so a custom role can't grant more access than you have.


Product Manager#

A product manager creates and maintains products, categories, inventory, and related resources.

Policies

Description

product:read, product:create, product:update, product:delete, product_variant:read, product_variant:create, product_variant:update, product_variant:delete, product_option:read, product_option:create, product_option:update, product_option:delete, product_option_value:read, product_option_value:update, product_option_value:delete

Manage products, their variants, and options, including option values.

product_category:read, product_category:create, product_category:update, product_category:delete, product_collection:read, product_collection:create, product_collection:update, product_collection:delete

Manage categories and collections.

product_tag:read, product_tag:create, product_tag:update, product_tag:delete, product_type:read, product_type:create, product_type:update, product_type:delete

Manage product tags and types.

inventory_item:read, inventory_item:create, inventory_item:update, inventory_item:delete, inventory_level:read, inventory_level:create, inventory_level:update, inventory_level:delete, reservation_item:read, reservation_item:create, reservation_item:update, reservation_item:delete

Manage inventory items, stock levels, and reservations.

sales_channel:read, shipping_profile:read, stock_location:read, region:read, price:update, file:create

Related access: assign products to sales channels and shipping profiles, view stock locations, edit variant prices per region, and upload product media.


Order Manager#

An order manager processes orders, returns, and exchanges.

Policies

Description

order:read, order:update, order_address:update

View and edit orders, including their addresses.

order_change:read, order_change:create, order_change:update, return:read, return:create, return:update, order_exchange:read, order_exchange:create, order_exchange:update, order_claim:read, order_claim:create, order_claim:update

Manage order edits, returns, exchanges, and claims.

fulfillment:read, fulfillment:create, fulfillment:update, reservation_item:create, stock_location:read

Fulfill orders, create shipments, and allocate items from stock locations.

payment:read, refund:read, capture:create, refund:create

View an order's payments and refunds, capture payments, and refund payments. Capturing and refunding also require order:update.

payment_collection:read, payment_collection:update, order_credit_line:create

Mark an order's outstanding payment as paid, and settle an order's balance with a credit line.

customer:read, customer:update, return_reason:read, refund_reason:read

View customer details, transfer an order to another customer, and view return and refund reasons.


Customer Support#

A customer support agent manages customers and views orders to help shoppers.

Policies

Description

customer:read, customer:create, customer:update, customer_address:read, customer_address:create, customer_address:update, customer_address:delete

Manage customers and their addresses.

customer_group:read, customer_group:update

Add and remove customers from customer groups.

order:read, order:update, order_address:update, return:read, return:create, return:update

View and update orders, edit order addresses, and process returns to resolve issues.

fulfillment:read, payment:read, return_reason:read, refund_reason:read

Related read access for order pages.


Marketing Manager#

A marketing manager runs promotions and campaigns.

Policies

Description

promotion:read, promotion:create, promotion:update, promotion:delete, campaign:read, campaign:create, campaign:update, campaign:delete

Manage promotions and campaigns.

price_list:read, price_list:create, price_list:update, price_list:delete

Manage price lists for sales and overrides.

product:read, customer_group:read, region:read, store:read, price:read

Related read access: select products and customer groups for rules, set prices per region, view a price list's prices, and read store currencies for campaigns.


Read-Only Analyst#

A read-only analyst views data across the store without making changes.

To create this role, select the read operation for every resource, such as product:read, order:read, and customer:read. Don't select any create, update, or delete operations.

Was this guide helpful?
Ask Bloom
For assistance in your development, use Claude Code Plugins or Docs MCP server in Cursor, VSCode, etc...FAQ
What is Medusa?
How can I create a module?
How can I create a data model?
How do I create a workflow?
How can I extend a data model in the Product Module?
Recipes
How do I build a marketplace with Medusa?
How do I build digital products with Medusa?
How do I build subscription-based purchases with Medusa?
What other recipes are available in the Medusa documentation?
Chat is cleared on refresh
Line break
⇧↵