saleor-customers

Manage Saleor customers and staff — customer accounts, registration, addresses, staff users, permission groups, and authentication. Use when working with user management.

17 stars

Best use case

saleor-customers is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Manage Saleor customers and staff — customer accounts, registration, addresses, staff users, permission groups, and authentication. Use when working with user management.

Teams using saleor-customers should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/saleor-customers/SKILL.md --create-dirs "https://raw.githubusercontent.com/OrcaQubits/agentic-commerce-skills-plugins/main/dist/antigravity/saleor-commerce/.agent/skills/saleor-customers/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/saleor-customers/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How saleor-customers Compares

Feature / Agentsaleor-customersStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Manage Saleor customers and staff — customer accounts, registration, addresses, staff users, permission groups, and authentication. Use when working with user management.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Saleor Customer and Staff Management

## Before writing code

**Fetch live docs**:
1. Web-search `site:docs.saleor.io customers accounts registration` for customer account model and registration flow
2. Web-search `site:docs.saleor.io staff users permissions groups` for staff management and permission system
3. Web-search `site:docs.saleor.io authentication JWT tokens` for authentication flow and token handling
4. Fetch `https://docs.saleor.io/docs/developer/users` and review User model, addresses, and account operations
5. Web-search `site:docs.saleor.io permission groups MANAGE_PRODUCTS MANAGE_ORDERS` for the full list of available permissions

## Customer Model

Saleor uses a single `User` entity for both customers and staff. The `isStaff` flag distinguishes between them.

| Field | Description |
|-------|-------------|
| `id` | Unique user identifier |
| `email` | Email address (unique, used for login) |
| `firstName` | Customer first name |
| `lastName` | Customer last name |
| `isActive` | Whether the account is enabled |
| `isStaff` | Whether the user has dashboard access |
| `dateJoined` | Account creation timestamp |
| `lastLogin` | Most recent login timestamp |
| `metadata` | Public key-value metadata |
| `privateMetadata` | Staff-only key-value metadata |
| `languageCode` | Preferred language |
| `defaultShippingAddress` | Default shipping address |
| `defaultBillingAddress` | Default billing address |

## Customer Registration and Login

### Registration Flow

| Step | Mutation | Description |
|------|----------|-------------|
| 1. Register | `accountRegister` | Create account with email and password |
| 2. Confirm email | `confirmAccount` | Verify email with token from confirmation email |
| 3. Active account | -- | Account is active after confirmation |

### Registration Input

| Field | Required | Description |
|-------|----------|-------------|
| `email` | Yes | Customer email address |
| `password` | Yes | Account password |
| `firstName` | No | First name |
| `lastName` | No | Last name |
| `redirectUrl` | Yes | URL for email confirmation link |
| `channel` | Yes | Channel slug for channel-specific registration |
| `languageCode` | No | Preferred language for communications |
| `metadata` | No | Initial metadata key-value pairs |

### Login Flow

| Step | Mutation | Description |
|------|----------|-------------|
| 1. Obtain tokens | `tokenCreate` | Provide email + password; returns JWT access and refresh tokens |
| 2. Use access token | -- | Include in `Authorization: Bearer <token>` header |
| 3. Refresh token | `tokenRefresh` | Exchange refresh token for new access token |
| 4. Verify token | `tokenVerify` | Check if a token is still valid |

## JWT Authentication Flow

| Token Type | Lifetime | Purpose |
|------------|----------|---------|
| Access token | Short-lived (configurable, default ~5 min) | Authenticate API requests |
| Refresh token | Long-lived (configurable) | Obtain new access tokens |
| CSRF token | Per-session | Protect against cross-site request forgery |

### Token Mutations

| Operation | Mutation | Notes |
|-----------|----------|-------|
| Login | `tokenCreate` | Returns `token`, `refreshToken`, `csrfToken` |
| Refresh | `tokenRefresh` | Requires `refreshToken`; returns new `token` |
| Verify | `tokenVerify` | Returns `isValid` and decoded payload |
| Deactivate all | `tokensDeactivateAll` | Invalidate all tokens for the user |

> **Fetch live docs** for token expiration configuration and any changes to the JWT authentication model.

## Customer Addresses

Each customer can store multiple addresses with defaults for shipping and billing:

| Field | Description |
|-------|-------------|
| `firstName` | Address first name |
| `lastName` | Address last name |
| `companyName` | Optional company name |
| `streetAddress1` | Primary street address |
| `streetAddress2` | Additional address line |
| `city` | City name |
| `postalCode` | Postal or ZIP code |
| `country` | ISO 3166-1 alpha-2 country code |
| `countryArea` | State or province |
| `phone` | Phone number |
| `isDefaultShippingAddress` | Default for shipping |
| `isDefaultBillingAddress` | Default for billing |

### Address Mutations

| Operation | Mutation | Notes |
|-----------|----------|-------|
| Create address | `accountAddressCreate` | Customer self-service |
| Update address | `accountAddressUpdate` | Customer self-service |
| Delete address | `accountAddressDelete` | Customer self-service |
| Set default | `accountSetDefaultAddress` | Set shipping or billing default |
| Admin create | `addressCreate` | Staff creating address for a customer |
| Admin update | `addressUpdate` | Staff updating customer address |
| Admin delete | `addressDelete` | Staff deleting customer address |

## Staff Users vs Customers

| Aspect | Customer | Staff |
|--------|----------|-------|
| `isStaff` | `false` | `true` |
| Dashboard access | No | Yes |
| API scope | Storefront queries, own account | Admin queries, assigned permissions |
| Creation | `accountRegister` or `customerCreate` | `staffCreate` |
| Permissions | None (implicit storefront access) | Assigned via permission groups |

### Staff Management Mutations

| Operation | Mutation | Notes |
|-----------|----------|-------|
| Create staff | `staffCreate` | Set email, permissions, groups |
| Update staff | `staffUpdate` | Modify details and permissions |
| Delete staff | `staffDelete` | Remove staff user |

## Permission Groups

Permission groups bundle permissions and assign them to staff users:

| Operation | Mutation |
|-----------|----------|
| Create group | `permissionGroupCreate` |
| Update group | `permissionGroupUpdate` |
| Delete group | `permissionGroupDelete` |

### Key Permissions

| Permission | Grants Access To |
|------------|-----------------|
| `MANAGE_PRODUCTS` | Products, categories, collections, product types |
| `MANAGE_ORDERS` | Orders, fulfillments, draft orders |
| `MANAGE_USERS` | Customer accounts and staff users |
| `MANAGE_STAFF` | Staff accounts and permission groups |
| `MANAGE_DISCOUNTS` | Vouchers and promotions |
| `MANAGE_SHIPPING` | Shipping zones and methods |
| `MANAGE_CHANNELS` | Channel configuration |
| `MANAGE_CHECKOUTS` | Checkout operations |
| `MANAGE_APPS` | App installation and configuration |
| `MANAGE_SETTINGS` | Site-wide settings |
| `MANAGE_TRANSLATIONS` | Content translations |
| `HANDLE_PAYMENTS` | Payment processing and transactions |
| `MANAGE_GIFT_CARD` | Gift card creation and management |
| `MANAGE_PAGE_TYPES_AND_ATTRIBUTES` | Page types and attributes |

> **Fetch live docs** for the complete `PermissionEnum` -- additional permissions may exist for plugins and newer features.

## Account Management Mutations

| Operation | Mutation | Actor |
|-----------|----------|-------|
| Request password reset | `requestPasswordReset` | Customer |
| Set new password | `setPassword` | Customer (with token) |
| Change password | `passwordChange` | Customer (authenticated) |
| Request email change | `requestEmailChange` | Customer |
| Confirm email change | `confirmEmailChange` | Customer (with token) |
| Update account | `accountUpdate` | Customer (own profile) |
| Delete account | `accountDelete` | Customer (with token) |
| Admin create customer | `customerCreate` | Staff |
| Admin update customer | `customerUpdate` | Staff |
| Admin delete customer | `customerDelete` | Staff |
| Admin bulk delete | `customerBulkDelete` | Staff |

## Best Practices

- Use `accountRegister` for self-service registration and `customerCreate` for staff-created accounts
- Always configure `redirectUrl` for email confirmation and password reset to point to your storefront
- Store custom customer data in `metadata` (public) or `privateMetadata` (staff-only)
- Use permission groups to organize staff access -- avoid assigning permissions directly to users
- Implement token refresh logic in your storefront to maintain sessions without re-authentication
- Validate email confirmation before allowing customers to place orders
- Use `channel` parameter in registration to send channel-specific confirmation emails
- Handle `tokensDeactivateAll` for security-sensitive operations like password changes
- Prefer `accountAddressCreate` for customer-facing flows and `addressCreate` for admin flows

Fetch the Saleor authentication and user management documentation for exact mutation inputs, permission enums, and token handling patterns before implementing.

Related Skills

shopify-customers

17
from OrcaQubits/agentic-commerce-skills-plugins

Manage Shopify customers — Customer Account API, new vs classic accounts, Multipass SSO, customer segmentation, B2B company accounts, metafields, and marketing consent. Use when working with Shopify customer data.

sf-customers

17
from OrcaQubits/agentic-commerce-skills-plugins

Manage Salesforce Commerce customers — B2C (customer objects, customer groups, segmentation, SLAS authentication, wishlists) and B2B (Account/Contact, buyer groups, buyer permissions, self-registration). Both platforms share Data Cloud for unified customer profiles and consent management.

saleor-webhooks

17
from OrcaQubits/agentic-commerce-skills-plugins

Configure Saleor webhooks — async and sync events, subscription payloads, JWS/HMAC signature verification, retry policy, and event types. Use when building webhook-driven integrations.

saleor-testing

17
from OrcaQubits/agentic-commerce-skills-plugins

Test Saleor applications — pytest setup, Django test client, GraphQL test patterns, App testing, factory_boy fixtures, and webhook testing. Use when writing tests for Saleor projects.

saleor-storefront

17
from OrcaQubits/agentic-commerce-skills-plugins

Build Next.js storefronts for Saleor — GraphQL client setup, channel routing, Tailwind CSS, server components, checkout flow, and SEO. Use when developing Saleor storefronts.

saleor-shipping

17
from OrcaQubits/agentic-commerce-skills-plugins

Configure Saleor shipping — shipping zones, methods (price/weight-based), custom shipping Apps, warehouse-based allocation, and click-and-collect. Use when setting up delivery options.

saleor-setup

17
from OrcaQubits/agentic-commerce-skills-plugins

Set up a Saleor development environment — saleor-platform Docker Compose, CLI, PostgreSQL/Redis prerequisites, manage.py commands, environment variables, project structure. Use when starting a new Saleor project.

saleor-security

17
from OrcaQubits/agentic-commerce-skills-plugins

Secure Saleor applications — JWT authentication, OIDC integration, App tokens, permission model, rate limiting, CORS, and security headers. Use when configuring Saleor security.

saleor-promotions

17
from OrcaQubits/agentic-commerce-skills-plugins

Configure Saleor promotions — catalog promotions, order promotions, vouchers, manual discounts, gift cards, and discount stacking. Use when setting up pricing rules.

saleor-payments

17
from OrcaQubits/agentic-commerce-skills-plugins

Implement Saleor payment processing — transaction-based payment flow, payment Apps, sync webhook events, Stripe/Adyen patterns, and refunds. Use when building payment integrations.

saleor-orders

17
from OrcaQubits/agentic-commerce-skills-plugins

Manage the Saleor order lifecycle — order creation, fulfillments, returns, refunds, draft orders, and order events. Use when working with Saleor orders.

saleor-graphql

17
from OrcaQubits/agentic-commerce-skills-plugins

Work with the Saleor GraphQL API — queries, mutations, subscriptions, cursor pagination, filters, error handling, GraphQL Playground, and code generation. Use when building against the Saleor API.