# Shopify (/docs/shopify)



The Shopify integration publishes EarlySEO articles directly to a selected **Shopify blog** in your store.

Setup takes a few minutes and does not require code. Once connected, EarlySEO can:

* Publish generated articles to your Shopify blog
* Save posts as drafts or publish them immediately
* Send the article title, body, author, tags, summary, and featured image
* Update previously published EarlySEO articles instead of creating duplicates

Use this guide when you want to connect Shopify with your own Shopify app credentials: **API key** and **API secret key**.

Prerequisites [#prerequisites]

* Admin access to the Shopify store
* Access to the [Shopify Dev Dashboard](https://dev.shopify.com/dashboard)
* An EarlySEO account

Setup [#setup]

Step 1: Create a Shopify app [#step-1-create-a-shopify-app]

Create a Shopify app so EarlySEO can request permission to publish blog posts.

1. Open the [Shopify Dev Dashboard](https://dev.shopify.com/dashboard)
2. Click **Create app**
3. Name the app, for example `EarlySEO Publishing`
4. Open the app settings
5. Make sure the app is configured for Admin API access

In the **Access** or **Scopes** section, enable:

| Scope           | Why EarlySEO needs it                                  |
| --------------- | ------------------------------------------------------ |
| `write_content` | Create and update Shopify blog posts                   |
| `read_content`  | Load blogs and validate the selected blog during setup |

If Shopify lets you paste scopes as text, use:

```txt
write_content,read_content
```

If you are configuring a Shopify app TOML file, use:

```toml
scopes = "write_content,read_content"
```

Add this allowed redirection URL to the app:

```txt
https://app.earlyseo.com/api/shopify/callback
```

This redirect URL is required. Shopify only completes OAuth for URLs that are allowlisted in the app, and EarlySEO needs this callback to securely finish the connection after you approve the install.

Save or release the app after changing settings.

Step 2: Install the app to your store [#step-2-install-the-app-to-your-store]

Install the app on the Shopify store you want EarlySEO to publish to.

1. In the Shopify Dev Dashboard, open your app
2. Click **Install app**
3. Select the Shopify store you want to connect
4. In Shopify admin, review the permissions and click **Install** or **Authorize**

If you change app scopes later, reinstall or reauthorize the app before reconnecting it in EarlySEO.

Step 3: Connect Shopify in EarlySEO [#step-3-connect-shopify-in-earlyseo]

Copy your app credentials from the Shopify Dev Dashboard, then connect them in EarlySEO.

1. In Shopify Dev Dashboard, open your app
2. Go to **Settings** or **Credentials**
3. Copy the app **API key** and **API secret key**
4. Go to **Integrations** in your EarlySEO dashboard
5. Click **Add Integration** and select **Shopify**
6. Enter your **Shop Domain**
   * Use your `.myshopify.com` domain, for example `your-store.myshopify.com`
   * Do not use your custom storefront domain
7. Paste your Shopify app **API Key**
8. Paste your Shopify app **API Secret Key**
9. Click **Verify & Install**
10. Approve the Shopify authorization screen
11. After Shopify redirects you back to EarlySEO, choose the blog to publish into
12. Enter the author name
13. Choose whether posts should publish immediately or stay as drafts
14. Click **Connect Shopify**

Your Shopify store is now connected to EarlySEO.

Fields [#fields]

| Field              | Description                                                              |
| ------------------ | ------------------------------------------------------------------------ |
| **Shop Domain**    | Your Shopify `.myshopify.com` domain, such as `your-store.myshopify.com` |
| **API Key**        | The API key from your Shopify app credentials                            |
| **API Secret Key** | The API secret key from the same Shopify app                             |
| **Blog**           | The Shopify blog EarlySEO should publish articles into                   |
| **Author Name**    | The author name shown on Shopify blog posts                              |
| **Publish Status** | **Active** publishes immediately. **Draft** saves posts for review.      |

Verify setup [#verify-setup]

After connecting Shopify:

1. Generate or open an article in EarlySEO
2. Publish it to Shopify
3. Open **Shopify admin > Online Store > Blog Posts**
4. Confirm the article appears in the selected blog
5. Check that the title, article body, tags, and featured image are present

Publishing behavior [#publishing-behavior]

| Setting    | Result in Shopify                   |
| ---------- | ----------------------------------- |
| **Active** | The blog post goes live immediately |
| **Draft**  | The blog post is saved as a draft   |

When an EarlySEO article has already been published to Shopify, future publishes update the existing Shopify article instead of creating a duplicate.

How it works [#how-it-works]

EarlySEO uses your Shopify app credentials only during the connection step:

1. You enter the app API key and API secret key in EarlySEO.
2. Shopify verifies the credentials during authorization.
3. EarlySEO receives secure publishing permission for that store.
4. Future publishing uses that saved permission to create and update blog posts.

EarlySEO does not need you to add code to your Shopify theme.

Troubleshooting [#troubleshooting]

**Verify & Install fails**

* Confirm the shop domain is your `.myshopify.com` domain
* Confirm the API key and API secret key are from the same Shopify app
* Confirm the app has this callback URL: `https://app.earlyseo.com/api/shopify/callback`
* Confirm the app was saved or released after changing settings

**Authorization succeeds, but EarlySEO cannot connect the blog**

* Confirm the Shopify app has `write_content`
* Confirm the Shopify app has `read_content`
* Reinstall or reauthorize the app after changing scopes
* Confirm the selected blog still exists in Shopify

**No blogs appear after install**

* Create a blog in Shopify under **Online Store > Blog Posts**
* Confirm the app has content permissions
* Reinstall or reauthorize the app after changing scopes

**Article publishes without the expected image or tags**

* Confirm the EarlySEO article has tags and a featured image before publishing
* Republish the article after updating article metadata
* If the article was published before image support was enabled, republishing updates the existing Shopify post

**Posts appear in the wrong blog**

* Delete the Shopify integration in EarlySEO
* Reconnect Shopify and select the correct blog
