# Integrate with Shopify

[**impact.com Affiliate Marketing**](https://apps.shopify.com/impact-1) on Shopify integrates impact.com's conversion tracking and reporting with your Shopify store, allowing you to manage your programs efficiently. The app is a no-code plugin, meaning you can integrate and end-to-end test without web development expertise.

## Check before integrating

impact.com will complete several integration steps on your behalf. Check with your implementation engineer to ensure that the following configuration steps have been completed: *Event Type*, *Gateway Tracking*, *General Tracking*.

Confirm the following about your Shopify store & impact.com account:

* **Hosted on Shopify:** Your store landing page is hosted on Shopify, not externally. [Custom shopping experiences](https://help.shopify.com/en/manual/custom-storefronts) aren’t supported at this time.
* **Cookie banner required:** You have the [Customer Privacy](https://shopify.dev/docs/api/customer-privacy) cookie banner enabled, as required by Shopify. EMEA-based storefronts require customers to opt in for tracking consent.
* **SKUs assigned by default:** All products in your Shopify store are automatically [assigned a SKU](https://help.shopify.com/en/manual/products/details/sku) (stock keeping unit). Learn how to [edit products in Shopify.](https://help.shopify.com/en/manual/products/add-update-products#edit-a-product)
* **Recurring subscriptions not tracked:** You're currently only tracking online sales and first-time subscription purchases. To track recurring subscriptions, refer to [Shopify & Recharge](https://integrations.impact.com/impact-brand/docs/integrate-with-shopify-recharge) or [Shopify & Bold](https://integrations.impact.com/impact-brand/docs/integrate-with-shopify-bold-commerce).

{% stepper %}
{% step %}

### Install the impact.com app on your Shopify store

1. While [logged in](https://www.shopify.com/login) to Shopify, open the [***impact.com Affiliate Marketing***](https://apps.shopify.com/impact-1) app in the Shopify App Store and select **Install**.

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

2. Shopify will prompt you to install *Impact: Partnership Cloud*. Review the details on the screen, and select **Install App**.

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

3. Once installed, find the app in your list of Shopify apps. To begin, select **Set up your integration**.

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

4. Select a tab to view the next set-up steps for your impact.com program.

{% tabs %}
{% tab title="Account Settings" %}
Under the *Account Settings* tab, input your impact.com account settings.

See the [Settings reference](#settings-reference) below for instructions on where to find the details needed.

<figure><img src="/files/hEyTThB1zj1WWnztTSQF" alt="" width="563"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Affiliate Settings" %}
If you're using Performance, then input your impact.com Performance details in the *Affiliate Settings* tab.

See the [Settings reference](#settings-reference) below for instructions on where to find the details needed.

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

{% tab title="Creator Settings" %}
If you're using Creator to compensate your creators on a CPA model, then input your impact.com Creator details in the *Creator Settings* tab.

See the [Settings reference](#settings-reference) below for instructions on where to find the details needed.

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

{% hint style="warning" %}
**Important:** If you want to configure Product Gifting for your creator campaign, you must enter the *Product Gift Tracker* ID and take additional steps. Refer to [Configure Shopify Product Gifting](https://integrations.impact.com/impact-brand/docs/integrate-shopify-product-gifting) for further instructions.
{% endhint %}
{% endtab %}

{% tab title="Advocate Settings" %}
If you're using Advocate, then input your impact.com Advocate details in the *Advocate Settings* tab.

* **Program ID:** Enter your Program ID value. To find this, select your brand name in the upper-left corner of your impact.com account. It appears under your program name.
* **Sale and Subscriptions Tracker:** Input the Event Type ID for your **Online Sale** event. To find your Event Type ID:
  * From the top navigation bar, select ![](/files/qPLiENtq33ewHc3tmEP4) **\[User profile] → Settings**.
  * Under *Tracking*, select [**Event Types**](https://app.impact.com/secure/advertiser/tracking-settings/actiontracker/view-actiontracker-flow.ihtml).
  * Your Event Type ID is in parentheses next to the event name. eg. Online Sale (xxxxxx)
* **Recurring Subscriptions Tracker:** Leave this field blank.
* Save your changes when you're done.

A new Shopify page will be set up for you based on your selections. If you want to edit this page after setup, please reach out to our [support team](mailto:saasquatch-support@impact.com) for assistance.

<div data-with-frame="true"><figure><img src="/files/7pvcvsVmpXgdJ2XCyzFJ" alt="" width="563"><figcaption></figcaption></figure></div>
{% endtab %}
{% endtabs %}

5. Select **Save**. You'll see a confirmation screen for the enabled integration, along with your impact.com account info.
   {% endstep %}

{% step %}

### Update your Shopify settings

To learn more about why this step is necessary, see [Shopify Plugin Consent Management Explained](https://help.impact.com/brand/what-would-you-like-to-learn-about/technical-integration-guides/shopify-plugin-consent-management-explained).

1. Log in to your Shopify account.
2. From the left menu bar, select **Online Store → Themes**.
3. Select Edit theme on your current theme.
4. In the theme editor's left menu bar, select **App embeds**.
   * Depending on your theme version, this may say App sections instead.
5. Locate the *impact.com* plugin you just installed, and:

   * ![](/files/nF7DY0rLLPpjNDQb5LMS) **\[Toggle On] Tracking Management**.
   * ![](/files/nF7DY0rLLPpjNDQb5LMS) **\[Toggle On] UTT**.

   <div data-with-frame="true"><figure><img src="/files/5ZDb9edxuv4xYxIV6BZL" alt="" width="524"><figcaption></figcaption></figure></div>

#### Settings reference

| Setting                                  | Description                                                                                                                                                                                                                                                                                                                                                                                                                |
| ---------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Impact Account SID and Auth Token \*** | To enable this integration, verify that you have enabled [Conversion API Scopes](https://integrations.impact.com/integration-guides/for-brands/plugin-integrations/e-commerce/spaces/wMLlMoFBtKJa8ptd3zaw/pages/ttnRX5LlF952voxlvtfY#id-3.-api-scopes) within your settings, specifically the *Create conversion* endpoint. This step is required for your conversions to pass through the Shopify/impact.com integration. |
| **Sale and Subscriptions Tracker \***    | In the impact.com platform, navigate to ![](/files/qPLiENtq33ewHc3tmEP4) **\[User profile] → Settings →** [**Event Types**](https://app.impact.com/secure/advertiser/tracking-settings/actiontracker/view-actiontracker-flow.ihtml). Copy the number in parenthesis next to the name of the *Online Sale* event type.                                                                                                      |
| **Product Gift Tracker**                 | In the impact.com platform, navigate to ![](/files/qPLiENtq33ewHc3tmEP4) **\[User profile] → Settings →** [**Event Types**](https://app.impact.com/secure/advertiser/tracking-settings/actiontracker/view-actiontracker-flow.ihtml). Copy the number in parenthesis next to the name of the *Product Gift* event type.                                                                                                     |
| **Recurring Subscriptions Tracker**      | Leave this field blank.                                                                                                                                                                                                                                                                                                                                                                                                    |

Alternatively, refer to your *Program Elements* document for your specific account information.
{% endstep %}
{% endstepper %}

### End-to-End Testing

Once the impact.com app is fully installed, you can begin end-to-end testing to ensure everything is working properly. Learn how to proceed with [End-to-End Testing](/integration-guides/end-to-end-tests.md).

{% hint style="success" %}
**Note:** This integration does not overwrite any existing or new notes you apply to customers in Shopify. Any customer notes you had will remain untouched, and new notes can be created manually.
{% endhint %}

## Troubleshooting

***

<details>

<summary>My test conversion isn't appearing in impact.com</summary>

If your test conversion isn't appearing, check the following:

* You've waited at least 30 minutes since the test conversion occurred in your Shopify store. Conversion reporting can take up to 2–4 hours during peak times — consider checking back later in a few hours.
* Your Event Type ID in Shopify exactly matches the Event Type ID in impact.com.
* Use the [OrderId (OID) Lookup](https://help.impact.com/en/support/solutions/articles/155000000121) tool to search for the Shopify Order ID of the test order.

If the conversion still hasn't appeared after several hours, there may be something wrong with integration. Reverse the order in Shopify, verify that you've followed the installation instructions & end-to-end testing instructions closely, then try again.

</details>

<details>

<summary><em>irclickid</em> doesn't always appear on my Shopify order page</summary>

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

The absence of `irclickid` under the *Additional Details* section on a Shopify order doesn't necessarily mean there's a problem with your tracking setup.

In some cases, `irclickid` appears, showing that the order came from an impact.com click. However, it doesn't always appear even when the order is properly tracked. This can happen because of the way the customer reached your store or settings that affect tracking.

</details>

## Modifications & Reversals

***

Once integrated, you can modify & reverse items and/or entire orders in Shopify and impact.com will update actions accordingly.

{% hint style="warning" %}
**Important:** Modifications and reversals you make in impact.com will not be sent to Shopify — we recommend always modifying or reversing items & orders in Shopify first, then confirm it was modified/reversed in impact.com's platform.
{% endhint %}

A few things to keep in mind:

* A **SKU** represents an item within an order. For example, if an order has 1 item with the SKU 1ABC23 priced at 10.00, the line item SKU amount would be 10.00.
* A **line item SKU** is a SKU with a quantity larger than 1 in an order (e.g., the order has multiples of the same item). For example, if an order has 2 items, both with the SKU 1ABC23 priced at 10.00 each, the line item SKU amount would be 20.00. **impact.com will always show the line item SKU amount**.
* When applying order-level reversals, the amount reversed from the order is distributed and weighted across all items within an order. In some cases, reversing certain amounts at the order-level could completely reverse an item if the item's price is less than the weighted amount that's applied to it.
* When applying item-level reversals after an order level discount has already been applied, the remaining amount for the item will be weighted / deducted across the remaining items.

### Item-level reversals

When modifying a SKU in Shopify, impact.com will receive the updated `Quantity` and `Amount` and apply it to the item.

#### Example

1. Shopify reports an order to impact.com with two different SKUs that both have the same price:

| ITEM      | PRICE     |
| --------- | --------- |
| 1ABC23    | 10.00     |
| 9XYZ87    | 10.00     |
| **TOTAL** | **20.00** |

2. In Shopify, a 5.00 reversal is applied to this order, which is distributed across all SKUs in the order. It will now show in impact.com as:

| ITEM      | PRICE     |
| --------- | --------- |
| 1ABC23    | 07.50     |
| 9XYZ87    | 07.50     |
| **TOTAL** | **15.00** |

> The 5.00 is split evenly across the price of the two items in the order.

3. Let's reverse an individual line item: SKU `1ABC23` is fully reversed, which at its original price of 10.00, means that 10.00 is reduced from the order.

| ITEM      | PRICE     |
| --------- | --------- |
| 1ABC23    | 00.00     |
| 9XYZ87    | 05.00     |
| **TOTAL** | **05.00** |

> Since the item was already reduced at the order level, the remaining 2.50 that can't be removed from `1ABC23` (since it was already reduced) is applied evenly to the rest of the items in the order.

4. One final step: reverse `9XYZ87`, meaning 10.00 is reduced from the order. Since it's the only item left and has been reduced down to 5.00, reversing this will refund the entire order in Shopify and reverse the action in impact.com.

### Order-level reversals

#### Example

1. Shopify reports an order to impact.com with two different SKUs that both have the same price:

| ITEM      | PRICE     |
| --------- | --------- |
| 1ABC23    | 10.00     |
| 9XYZ87    | 10.00     |
| **TOTAL** | **20.00** |

2. In Shopify, a 5.00 reversal is applied to this order, which is distributed across all SKUs in the order. It will now show in impact.com as:

| ITEM      | PRICE     |
| --------- | --------- |
| 1ABC23    | 07.50     |
| 9XYZ87    | 07.50     |
| **TOTAL** | **15.00** |

The 5.00 is split evenly across the price of the two items in the order.

3. Going another step further, the order has a 15.00 reversal applied to it in Shopify. The order is fully refunded in Shopify and reversed in impact.com:

| ITEM      | PRICE     |
| --------- | --------- |
| 1ABC23    | 00.00     |
| 9XYZ87    | 00.00     |
| **TOTAL** | **00.00** |

## Supported parameters

***

The table below lists all of the supported parameters of the integration — in other words, data that impact.com captures from Shopify.

| Parameter       | Example                                                                          | Description                                                                                                             |
| --------------- | -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| CampaignId      | 8882                                                                             | Also known as a *Program ID*, this is the ID number for your impact.com program/campaign.                               |
| ActionTrackerId | 16027                                                                            | Also known as the *Event Type ID*, this is the ID number for your impact.com event type.                                |
| EventDate       | 2020-06-18T14:33:49                                                              | Tracks the date that the action occurred.                                                                               |
| ClickId         | 2uz3sQWFlxyJRcqwUx0Mo34VUkiyyO0tIzeG3U0                                          | This is the Click Id associated with the action.                                                                        |
| OrderId         | 2516623458378                                                                    | This is the **Impact OID** associated with the action (not the Shopify Order ID).                                       |
| CustomerId      | 3222174466122                                                                    | If you're tracking and passing customer info, this is an ID number to reference the customer associated with the order. |
| CustomerEmail   | 38b85baa75385758d44d3dbfd97921c32e0d09a9                                         | If you're tracking and passing customer info, this is the SHA1 hash of the customer's email.                            |
| CustomerStatus  | EXISTING or NEW                                                                  | If you're tracking and passing customer info, this is the status of the customer associated with the order.             |
| CurrencyCode    | USD                                                                              | This is the currency code for the currency recorded in the action.                                                      |
| IpAddress       | 1.1.1.1                                                                          | The IP address associated with the action.                                                                              |
| UserAgent       | Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0 | The user agent string associated with the action.                                                                       |

> For item-level data, the `{i}` value is replaced with an integer (e.g., 1), and increased for each item that's reported to Impact. For example, If an order had two items, it'd report `ItemSku1`, `ItemQuantity1`, `ItemCategory1`, `ItemSubtotal1`, then `ItemSku2`, `ItemQuantity2`, etc.

| Parameter         | Example     | Description                                                                                           |
| ----------------- | ----------- | ----------------------------------------------------------------------------------------------------- |
| ItemSku`{i}`      | KS944RUR    | The Shopify SKU number for an item in the action.                                                     |
| ItemQuantity`{i}` | 1           | The quantity amount for the first item in the action.                                                 |
| ItemCategory`{i}` | Electronics | The name of the Shopify Collection that the item is organized under.                                  |
| ItemSubtotal`{i}` | 60.00       | The subtotal amount of the item before taxes, shipping, and any other costs are added onto the total. |

### Track subcategory orders

While the Shopify plugin does not currently support passing a "subcategory" parameter directly at the order level, you can still utilize subcategories by leveraging your **Shopify Product Catalog** and setting up payout groups for subcategories.

Because the subcategory data is synced from your catalog rather than the order itself, you must use a specific field mapping when setting up your payout groups.

#### Set up subcategory-based payouts

To use subcategory data for your payout logic, follow these steps:

1. **Verify your Shopify catalog sync:** Ensure your Shopify Product Catalog is [active and synced](https://help.impact.com/brand/what-would-you-like-to-learn-about/platform-features/product-catalogs/add-product-catalogs-as-a-brand#integrated-shopping-cart-import) with your impact.com account. This allows the platform to automatically associate every ordered item with its corresponding catalog details.
2. **Access Payout Groups:** Within your contract configuration, set to your [subcategory payout group](https://help.impact.com/brand/what-would-you-like-to-learn-about/platform-features/contracts-and-template-terms/template-terms/set-payout-rules-using-payout-groups). When creating a new rule, select the following field to trigger your subcategory logic:
   * `Item catalog subcategory`
3. **Enter Subcategory Values:** Input the subcategory names exactly as they are defined in your Shopify admin (e.g., "Accessories" or "Home Decor").
4. **Verify via Reporting:** To confirm the data is flowing correctly, reference the [Advanced Action Listing Report](https://help.impact.com/brand/what-would-you-like-to-learn-about/platform-features/multi-program-reports/performance-reports-for-brands/advanced-action-listing-report). This report displays the specific subcategory data associated with each action, allowing you to audit your payout groups and ensure items are being categorized as expected.


---

# Agent Instructions: 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.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.
