# Connect your Shopify store to RUIT

Connect Shopify to RUIT: create the app in the Dev Dashboard, paste in the eight scopes, install it on your store and copy its two keys across.

_Updated: 2026-09-17 · Source: https://ruit.es/en/docs/sell-on-shopify/_

In this tutorial you connect your Shopify store to RUIT. There are two parts: first you create an
app inside your own store, then you paste its two keys into RUIT. It takes **five minutes** and you
do it **once only**.

**You need** to be the store owner, or to have the app-development permission if you are a member
of the team. Any store will do, development stores included. At no point does RUIT ask you for your
Shopify password: you define the permissions yourself and you can withdraw them whenever you like.

> **Warning:** Since 2026, new apps **are only created in the Dev Dashboard**. If you go to Settings, Apps and
> sales channels, there is no form any more: just a card that sends you there. Apps you created
> earlier in the admin panel still work, and their keys are on their credentials tab.

## 1. Open the Dev Dashboard

Go to [dev.shopify.com](https://dev.shopify.com) with the same account you manage your store with.
You will see your organization's list of apps and, top right, `Create app`.

_Screenshot: The list of apps in the Shopify Dev Dashboard, with the search-by-name box and the create-app button at the top right_

The list of apps. If this is your first time it will be empty and you will see a terminal command:
ignore it, it is for people who write apps. The button you want is `Create app`.

## 2. Create the app and give it a name

Press `Create app`, type a name you will recognize and confirm. The name is just for you.

_Screenshot: The create-an-app screen in the Dev Dashboard, with the name field and the create button_

Any name will do. In the figures in this guide it is called RUIT.

## 3. Paste in the eight scopes

Shopify leaves you on the version screen. Find the `API access` section and, in the `Scopes`
field, paste this list exactly as it is:

```
read_products,write_products,read_inventory,write_inventory,read_locations,read_orders,read_publications,write_publications
```

There is also a button for ticking them one by one in a very long list, but pasting the list is
quicker and you will not miss any. Leave every other field as it comes.

_Screenshot: The `Scopes` field in the Dev Dashboard with the eight permissions pasted in as a comma-separated list_

The eight permissions pasted in one go. Below the field there is a picker with checkboxes that does
the same thing, one at a time.

| Scope                                     | Required?     | What for                                                        |
| ----------------------------------------- | ------------- | ---------------------------------------------------------------- |
| `read_products` and `write_products`      | Yes           | Importing, publishing and editing products                        |
| `read_inventory` and `write_inventory`    | Yes           | Keeping the stock in sync                                         |
| `read_locations`                          | Yes           | Knowing which warehouse to write that stock to                    |
| `read_orders`                             | Yes           | Hearing about sales at the time. Without it the connection is refused |
| `read_publications` and `write_publications` | Strongly recommended | So the product shows in your store and not only in the admin panel |

> **Warning:** The first six are checked when you connect, so if one is missing you find out on the spot. **The
> two publication ones are not checked**, and that is the trap: the connection goes through, the
> product is created, and it does not appear in your store because nobody published it to the sales
> channel. Add them now and save yourself the trip.

## 4. `Release` the version

Press `Release`, top right, and confirm in the window that opens. The name and message it asks
for are optional.

_Screenshot: The window confirming the release of a new version of the app, with the optional name and message fields_

This is the step people forget most. **Without releasing the version, the keys in step 6 do not
exist yet.**

## 5. Install the app in your store

Go back to the app's overview and press `Install app`. Pick your store and confirm on the
permissions screen.

_Screenshot: The app's overview in the Dev Dashboard, with the active version and the install-the-app button_

The overview, with the version already released and the install button.

_Screenshot: The installation screen inside the store's admin panel, with the permissions the app is asking for and the cancel and install buttons_

Shopify warns you that the app has not passed its review. That is normal for a private app created
in your own organization: nobody but you can install it, and the permissions are the ones you have
just defined.

> **Note:** Without this step the keys exist but authorize nothing, and RUIT refuses the connection saying the
> app is not installed in the store.

## 6. Copy the `Client ID` and the `Client Secret`

In the app's settings, in the credentials section, you have both values. The secret stays hidden
until you press the eye icon.

> **Warning:** RUIT wants the **`Client ID` plus `Client Secret`** pair, and nothing else. Do not copy the Dev
> Dashboard's automation key, nor, on an older app, the access token beginning with `shpat_`. With
> those two keys RUIT issues its own tokens, which expire daily and renew themselves, so we never
> store a permanent key to your store.

## 7. Connect the store in RUIT

Go to **Settings → Accounts**, press **Connect Account** and pick **Shopify**. It asks you for
three things:

| Field             | What to paste                                    |
| ----------------- | ------------------------------------------------ |
| Store URL         | The domain ending in `.myshopify.com`             |
| `Client ID`         | The one from step 6                               |
| `Client Secret`     | The one from step 6                               |

The address is the domain ending in `.myshopify.com`, not the domain you sell under publicly. RUIT
is forgiving about copy and paste: it also accepts the address of the admin panel.

_Video not recorded yet: Connecting a Shopify store_

## What you have achieved

Your Shopify store is connected to RUIT with keys that are yours and that you can revoke whenever
you like. From here you can import the products you already have, publish the ones in your
inventory, and RUIT hears about every sale as it happens.

**Next step:** [importing from a marketplace](https://ruit.es/docs/importar-desde-un-marketplace/) to bring in
what you already sell in that store.

## If something is off

- **The connection fails saying permissions are missing.** The error names which ones. Go back to
  step 3, paste the whole list into a **new version** of the app and release it; permissions travel
  with the version, so editing them without releasing changes nothing.
- **The product is created but does not show in the store.** You are missing the two publication
  permissions. They are the ones that are not checked when you connect.
- **The connection fails saying the app is not installed.** You skipped step 5, or you installed
  the app in another store.
- **You had an app from before 2026.** It still works. Its keys are on its credentials tab inside
  the store's admin panel, not in the Dev Dashboard.
- **A product runs out of stock.** RUIT archives the product in Shopify rather than deleting it, so
  the history and the product's address are kept.

- [Selling on WooCommerce with RUIT](https://ruit.es/docs/vender-en-woocommerce/)
- [Selling on PrestaShop with RUIT](https://ruit.es/docs/vender-en-prestashop/)
