---
title: Enable Shopify-managed installations for your app
description: Learn about how to install an app on a Shopify store.
source_url:
  html: https://shopify.dev/docs/apps/build/authentication-authorization/app-installation/index
  md: https://shopify.dev/docs/apps/build/authentication-authorization/app-installation/index.md
---

# Enable Shopify-managed installations for your app

Shopify managed installation is an installation method where Shopify installs an app and updates its access scopes without making any calls to the app. This provides the following advantages for the developer and user:

* **Improved performance**: No browser redirects during installation or updates.

* **Less complexity**: Apps rendered in the Shopify admin can use [token exchange](https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/token-exchange) to acquire access tokens, and will no longer need to implement [authorization code grant](https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/authorization-code-grant) for installation or access scope changes.

* **Improved user experience**: Faster installations and updates, and no screen flickering.

  To enable Shopify managed installation, you need to share the scopes that your app requires in a configuration file that you push to Shopify.

  This guide describes how to enable Shopify managed installation for your app.

  If you don't use this method, then your app will use [authorization code grant](https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/authorization-code-grant), and call your app to determine the required access scopes before proceeding.

***

## Step 1: Configure your app using Shopify CLI

You can configure your app locally using a TOML file with Shopify CLI. Learn how to [manage your app's configuration using Shopify CLI](https://shopify.dev/docs/apps/build/cli-for-apps/manage-app-config-files).

***

## Step 2: Deploy your configuration to Shopify

In your app's TOML file, the access scopes are defined in the `scopes` field as shown below:

## shopify.app.config-name.toml

```toml
name = "Example App"
client_id = "a61950a2cbd5f32876b0b55587ec7a27"
application_url = "https://www.app.example.com/"
embedded = true


[access_scopes]
scopes = "read_orders"


# other fields omitted for brevity
```

You can update the `scopes` field to include the access scopes that your app requires. For example, if your app requires access to the `read_orders` and `write_customers` access scope, you can update the `scopes` field as shown below:

## shopify.app.config-name.toml

```toml
name = "Example App"
client_id = "a61950a2cbd5f32876b0b55587ec7a27"
application_url = "https://www.app.example.com/"
embedded = true


[access_scopes]
scopes = "read_orders,write_customers"


# other fields omitted for brevity
```

Then you can deploy your app's access scopes to Shopify:

## Terminal

```terminal
shopify app deploy
```

***

## Step 3: Shopify now manages installing your app and access scope changes

After you deploy your app configuration with your updated scopes, Shopify handles installation and scope updates whenever you deploy changes to your configuration.

***

## Step 4: Acquire access tokens to make authenticated requests to Shopify APIs

Apps rendered in the Shopify admin using [Shopify managed install](https://shopify.dev/docs/apps/build/authentication-authorization/app-installation) should acquire access tokens through [token exchange](https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/token-exchange).

Standalone apps should use the [authorization code grant flow](https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/authorization-code-grant).

***

## Manage access scopes

Learn how to request more or less permissions from the merchant store from [manage access scopes](https://shopify.dev/docs/apps/build/authentication-authorization/app-installation/manage-access-scopes).

***