# Shopify Product Catalog

Connect your Shopify product catalog to impact.com to automatically keep your product listings up-to-date.

{% hint style="success" %}
**Using a legacy Shopify account?** If your Shopify account does not show the **Build apps in Dev Dashboard** option, see [Connect your Shopify product catalog using a legacy Admin API access token](/integration-guides/for-brands/plugin-integrations/e-commerce/integrate-with-shopify/shopify-product-catalog/connect-your-shopify-product-catalog-using-a-legacy-admin-api-access-token.md).
{% endhint %}

## How it works

* You'll need your Shopify catalog URL and a few specific credentials from your Shopify site. You'll generate these credentials by setting up a custom app, a straightforward process that requires zero coding or technical expertise, before entering them into impact.com.
* In your impact.com account, you'll create a product catalog asset and enter the credentials.
* Once the catalog is created, impact.com will attempt to connect to your Shopify store and begin importing product listings into your impact.com account.

{% stepper %}
{% step %}

### Sign in to your Shopify Store Owner’s account

1. Sign in using the primary Store Owner’s account, not a third-party developer's account.
2. Check that your site is publicly available:
   * From the left navigation menu, select **Online Store** → **Preferences** → **Password protection**, and confirm that *Restrict access to visitors with a password* is ![](/files/2t5Z86O6Zq5FIwJNttNP) **\[Toggled off]**.
     {% endstep %}

{% step %}

### Create a Custom App

Next, create a custom app in your Shopify store. The purpose of this app is to generate secure credentials that you can plug into impact.com to access the catalogs in your store.

1. From the left navigation menu, select ![](/files/Vu0EE6mJxa1eXOHs2rv9) **\[Settings]** → **Apps**.
2. Select **Develop apps**.
   * If you don’t see an option to develop apps at the top of your screen, ask your store administrator to [grant you the relevant permission](https://help.shopify.com/en/manual/apps/app-types/custom-apps#:~:text=To%20give%20a%20staff%20member%20access%20to%20create%2C%20edit%2C%20or%20delete%20custom%20apps%2C%20assign%20your%20staff%20the%20App%20development%20%3E%20Develop%20permission).
3. From the *App development* screen, select **Build apps in Dev Dashboard**.

   * You will be redirected to your dev dashboard.

   <div data-with-frame="true"><figure><img src="/files/5kCWaM1V7CQVHXH3ZYE7" alt="" width="560"><figcaption></figcaption></figure></div>
4. In the left navigation panel, ensure you’ve selected **Apps**.
5. In the top-right, select **Create app**.
6. Name your app, then select **Create**.
7. Configure your app:
   1. Below *URLs*, set the **App URL** to any site, e.g., your site or impact.com and uncheck  ![](/files/8DMcuLkASFJGK8oQLVDB) **\[Checked box] Embed app in Shopify admin**.
   2. Below *Access*, paste the following scopes in the text box, i.e., what the app should give impact.com access to:<br>

      ```
      read_inventory,read_product_listings,read_products
      ```

<div data-with-frame="true"><figure><img src="/files/stY2R55kbMtf8bVAUST7" alt="" width="547"><figcaption></figcaption></figure></div>

8. Select **Release**:
   1. Optionally, enter a **Version name** like `1.0` and enter a **Version message**.
   2. Select **Release**.

<div data-with-frame="true"><figure><img src="/files/9ZyyMNaxW3xquwVSDBVA" alt="" width="563"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}

### Install the app on your Shopify store

1. On the *dev dashboard*, from the left navigation bar, ensure **Apps** is still selected.
2. On the *Apps* screen, select your app.
3. Select **Install app**.
4. On the next screen, select the store name on which to install the app.
5. On the next screen, select **Install**.

   * You’ll be redirected to the app URL you’ve entered during the app configuration.

   <div data-with-frame="true"><figure><img src="/files/L5BKyviHVW3oZvqsnh2T" alt="" width="464"><figcaption></figcaption></figure></div>

   <br>
6. On your *dev dashboard*, below *Installs*, confirm if your app installation was successful.

<div data-with-frame="true"><figure><img src="/files/n61mi2R5ZMntdaNyiHyM" alt="" width="563"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}

### Get your app’s credentials

1. On your *dev dashboard*, select your app and from the left navigation menu, select **Settings**.
2. Copy your *Client ID* and *Secret*.
   * You’ll use these credentials later when creating the catalog.

<div data-with-frame="true"><figure><img src="/files/HfuW08kjT2xxBSomcWzG" alt="" width="563"><figcaption></figcaption></figure></div>

{% hint style="warning" %}
**Important:** You must create a catalog within 24 hours of copying these credentials, or you'll have to repeat the process.
{% endhint %}
{% endstep %}

{% step %}

### Gather your Shopify catalog URL

You'll need certain information from your Shopify store. Follow these steps to get your product catalog's URL.

Head to your Shopify store landing page and get the base URL:

1. Navigate back to your Shopify admin account.
2. If you manage multiple stores, select the relevant store.
3. At the bottom of your left navigation bar, select **Settings**.
4. From the *Settings* menu, select **Domains**.
5. On the *Domains* screen, get your base `myshopify.com` URL.
   * **Example:** `https:mystorename.myshopify.com`

<div data-with-frame="true"><figure><img src="/files/EhxJHtmmO0kuD8NFvB9j" alt="" width="561"><figcaption></figcaption></figure></div>
{% endstep %}

{% step %}

### Create a catalog asset on impact.com

Next, create an asset in your impact.com account that automatically pulls in the latest version of your product catalog.

1. [Sign in to your impact.com account](https://app.impact.com/login.user), then in the left navigation menu, select ![](https://res.cloudinary.com/product-enablement/image/upload/v1768905009/Accessibility%20Icons/engage-v2.svg) **\[Engage] → Content → Products →** [**Product Catalogs**](https://app.impact.com/secure/advertiser/engage/ads/productcatalogs/manage-ads-product-catalog-flow.ihtml).
2. On the *Product Catalogs* screen, select **Create Product Catalog Asset → Retail**.

<div data-with-frame="true"><figure><img src="/files/SeGTAXkh9WmE2xkSyM7j" alt="" width="563"><figcaption></figcaption></figure></div>

3. Next to *Upload Method*, select **Integrated Shopping Cart Import**, then in the dropdown, select **Shopify**.
4. Enter your Shopify store details:
   * **Base URL** — Enter your Shopify product catalog URL, including the protocol, e.g., [`https://my-example-store.myshopify.com`](https://my-example-store.myshopify.com/).
   * **Client ID** - Enter the Shopify *Client ID* you located above, e.g., `1234abc567890def12345abc67890def`.
   * **Client Secret** - Enter the Shopify *Client Secret* you located above, e.g., `AbCdEfGhIjKlMnOpQrStUvWxYz1234567890FAKE`.

<details>

<summary><strong>Collection ID</strong> [Optional] — expand to see instructions Specify a Collection ID to filter your catalog by the products that are part of a Shopify collection.</summary>

* To retrieve a **Collection ID**, navigate to your Shopify Admin portal, select **Products → Collections → Create collection**.

<div data-with-frame="true"><figure><img src="/files/0JfnjZeXclgQpyagv7KI" alt=""><figcaption></figcaption></figure></div>

* Once the collection has been saved, the Collection ID can be found in the URL of the page.

<div data-with-frame="true"><figure><img src="/files/2QLfp6WIC70I2GsYMpqB" alt=""><figcaption></figcaption></figure></div>

* You may specify more than one collection by entering a comma-separated list of Collection IDs (for example “14512, 15567, 12244”) into the field.
* If this field is left blank then the entire Shopify catalog will be retrieved.

</details>

5. Optionally, to filter out product variants from the catalog, ![](/files/2t5Z86O6Zq5FIwJNttNP) **\[Toggle off] Include Product Variants**.
6. Fill out the rest of the details for your product catalog, then select **Save**.

{% hint style="success" %}
**Note:** If you don't see the *Client ID* and *Client Secret* fields, your account may have a legacy setup that uses an [Access Token](/integration-guides/for-brands/plugin-integrations/e-commerce/integrate-with-shopify/shopify-product-catalog/connect-your-shopify-product-catalog-using-a-legacy-admin-api-access-token.md#install-the-app-on-your-shopify-store) instead.
{% endhint %}
{% endstep %}
{% endstepper %}

## Understand how Shopify fields map to impact.com

Once your Shopify catalog is connected, impact.com automatically maps your Shopify product information to the corresponding fields in your impact.com catalog asset.

| Shopify field        | impact.com field             | Required/Recommended |
| -------------------- | ---------------------------- | -------------------- |
| `Title`              | Name                         | Required             |
| `ID`                 | Catalog Item ID              | Required             |
| `Base URL`           | *Part of the generated link* | Required             |
| `Price`              | Current Price                | Recommended          |
| `Compare at Price`   | Original Price               | Recommended          |
| `Body HTML`          | Description                  | Recommended          |
| `Inventory Quantity` | Stock Availability           | Recommended          |
| `Vendor`             | Manufacturer                 | Recommended          |
| `Product Type`       | Category                     | Recommended          |
| `Images`             | Image URL                    | Recommended          |
| `Barcode`            | GTIN                         | Recommended          |

## Troubleshooting

<details>

<summary>My products show as out of stock.</summary>

When importing your product catalog via Shopify, products may upload successfully but their availability status may appear as *Out Of Stock*. While partners can still find these products, any marked as *Out Of Stock* won’t appear in your Storefront.

<div data-with-frame="true"><figure><img src="/files/KBGUnXuzofHKk4kb3xgC" alt="" width="563"><figcaption></figcaption></figure></div>

This issue occurs because impact.com marks any product with an `inventory_quantity` less than 0 as *Out Of Stock*.

For smaller catalogs, you can manually adjust the `inventory_quantity` for each product in Shopify:

1. Log in to Shopify.
2. Select a product that is currently showing as *Out Of Stock* on impact.com.
3. Navigate to the *Inventory* section and select ![](/files/8DMcuLkASFJGK8oQLVDB) **\[Unchecked box] Track quantity** to enable inventory tracking
4. In the *Available* column, select the **\[Drop-down menu]**. Enter a positive value to *Adjust by* and then select Save.
5. Optionally, select ![](/files/FdvT4C3ocg3u5J4W27p4) **\[Checked box] Track quantity** to disable this option afterwards.

If you'd rather bulk edit your inventory values, view Shopify's article on [Bulk Editing Inventory](https://help.shopify.com/en/manual/products/inventory/managing-inventory-quantities/bulk-editing-inventory).

<div data-with-frame="true"><figure><img src="/files/bHq7QbGG5gFggolqRLhT" alt="" width="563"><figcaption></figcaption></figure></div>

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://integrations.impact.com/integration-guides/for-brands/plugin-integrations/e-commerce/integrate-with-shopify/shopify-product-catalog.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
