Location Management


Location Resource Overview

Locations are managed from the Locations resource in the app panel.

The resource is company-tenant scoped. All created and updated locations are forced onto the currently selected company tenant.

Current list columns

  • Name
  • Shopify ID
  • Status
  • Created At

Current record actions

  • Edit
  • Delete
  • Force Delete
  • Restore

Who can manage locations

The main Locations resource is effectively managed by CompanyAdmin users:

  • any signed-in company user can pass the broad viewAny and view policy checks
  • only CompanyAdmin can create locations
  • only CompanyAdmin can update locations
  • only CompanyAdmin can delete, restore, or force delete locations

Creating a Location

The create form currently includes these sections:

Location Details

  • Name
  • Phone
  • Locale
  • External ID
  • Note
  • Is Active

Buyer Experience Configuration

  • Checkout to Draft
  • Payment Terms
  • Editable Shipping Address

Checkout to Draft is always enforced as enabled in the current implementation.

Tax Information

  • Tax Registration ID

Shipping Address

  • Address Line 1
  • Address Line 2
  • City
  • ZIP or Postal Code
  • Recipient
  • First Name
  • Last Name
  • Phone
  • Zone Code
  • Country

Billing Address

  • Billing same as shipping toggle
  • Full billing address fields when not using the shipping address

Editing a Location

Location updates are supported, but the current edit form is narrower than the create form.

Fields shown on edit

  • Name
  • Phone
  • Locale
  • External ID
  • Note

In the current build, the buyer experience, tax, shipping, and billing sections are shown during creation, but not on the standard edit screen.

Location Users

Each location has a Location Users relation manager.

What it does

  • lists users already attached to the location
  • allows attaching an existing user
  • allows detaching a user

Important behavior

  • users are attached from existing company users
  • this screen does not create new user accounts
  • location attachment is synced through Shopify-specific attach and detach actions

The attach action uses the user's existing role value. There is no separate location-only role field in the relation manager UI.

Who can manage location users

According to LocationPolicy, the Location Users relation manager is writable for:

  • CompanyAdmin on any location in the current company
  • OrdererAdmin only when they are already attached to that same location

Other roles can still reach the location record if they have access, but the relation manager is read-only for them.

Location Budgets

Each location also has a Budgets relation manager.

This is where yearly and optional monthly budgets are created and maintained for that location.

For details, see Location Budget Management.

Policy-Based Permissions

Taken together, the current location-related policies describe this split:

  • CompanyAdmin: full location management and full location-user management
  • OrdererAdmin: can manage users only for locations they are attached to
  • BudgetAdmin: does not manage location records themselves
  • Orderer and Requester: no location-management write access

Shopify Behavior

The current location workflows are not local-only forms.

On create

The create page uses a dedicated action to create the location and keep Shopify-related data aligned.

On update

The edit page uses a dedicated action to update the location and related Shopify state.

On force delete

The force-delete action triggers a Shopify delete action before removing the local record.

Because of that, if a location operation fails, it is often tied to Shopify-side validation or sync behavior rather than the Filament form alone.