> ## Documentation Index
> Fetch the complete documentation index at: https://docs.unleash-commerce.eu/llms.txt
> Use this file to discover all available pages before exploring further.

# Actions Reference

> List of available actions in the Unleash Commerce Admin package

## Available Actions

The admin package includes actions for administrative operations.

| Action                             | Contract                                   | Namespace                             | Purpose                         |
| ---------------------------------- | ------------------------------------------ | ------------------------------------- | ------------------------------- |
| SendAdminAccountInvitationAction   | SendAdminAccountInvitationActionContract   | `Esign\UnleashCommerce\Admin\Actions` | Send invitation to admin users  |
| AcceptAdminAccountInvitationAction | AcceptAdminAccountInvitationActionContract | `Esign\UnleashCommerce\Admin\Actions` | Accept admin account invitation |

## Core Actions in Admin

The admin panel also has access to all [core actions](../core/reference/actions.mdx) for managing the business logic of the shop.

## Using Admin Actions

Inject actions into your admin controllers:

```php theme={null}
use Esign\UnleashCommerce\Admin\Contracts\Actions\SendAdminAccountInvitationAction;

public function inviteAdmin(SendAdminAccountInvitationAction $sendInvitation)
{
    $sendInvitation->execute($adminUser);
    
    return response()->json(['message' => 'Invitation sent']);
}
```

## Custom Admin Actions

Create custom admin actions by implementing the action contract:

```php theme={null}
namespace App\Actions;

use Esign\UnleashCommerce\Admin\Contracts\Actions\SendAdminAccountInvitationAction as SendAdminAccountInvitationActionContract;

class CustomSendAdminAccountInvitationAction implements SendAdminAccountInvitationActionContract
{
    public function execute($adminUser): void
    {
        // Your custom implementation
    }
}
```

Register in a service provider:

```php theme={null}
use Esign\UnleashCommerce\Admin\Contracts\Actions\SendAdminAccountInvitationAction as SendAdminAccountInvitationActionContract;

public function register()
{
    $this->app->bind(
        SendAdminAccountInvitationActionContract::class,
        CustomSendAdminAccountInvitationAction::class
    );
}
```
