Shopify (beta)
Shopify is a cloud-based e-commerce platform that lets businesses of all sizes build and manage online stores, handle payments, and sell across multiple channels. Didomi has a native application available in the Shopify App Store that enables your organization to quickly deploy the Didomi CMP on a Shopify store. In this article, we will cover:
Prerequisites
Before continuing please ensure that your organization has satisfied the following prerequisites:
Shopify account
Didomi account
Published Didomi consent notice
Shopify consent categories
In the table below, find additional information regarding Shopify's Customer Privacy API and the consent categories that it supports. During the configuration of the Didomi app for Shopify, your organization will map purposes in your consent notice to these Shopify consent categories.
Didomi automatically maps IAB purposes to Shopify consent categories by default. Click here for more information.
Analytics
Cookies to understand how customers interact with the site.
Marketing
Cookies to provide ads and marketing communications based on customer interests.
Preferences
Cookies that remember customer preferences, such as country or language, to personalize visits to the website.
Sale of Data
Indicates whether the store can share a visitorʼs data with third-parties (recommended for US specific purposes only).
Note: In addition to the above Shopify consent categories, your organization can also map essential/required consent notice purposes to an Always Required category.
Install Didomi application on Shopify store
Log into your organization's Shopify account with your credentials.

From the admin portal of a Shopify store, click + Add on the left-hand panel underneath the Apps header.

Click the Shopify App Store link.

Use the provided search field to search for Didomi Cookie Consent and select it from the results. Click Install on the page and follow any subsequent instructions.

The Didomi CMP application will be available under the Apps header in the left-hand panel.

Connect Didomi account to Shopify
Navigate to the Didomi CMP app installed on your Shopify store and click Connect to Didomi on the subsequent page.

If not yet logged into your Didomi account, follow the prompts to log into your organization's Didomi account.

Once your user account has been authenticated, use the provided drop-down menu to select the organization you wish to connect to your Shopify store. Click Connect this organization when finished.

Configure Shopify consent notice settings
With your organization's Didomi account connected to Shopify, you can now select and configure a Didomi consent notice to launch on your Shopify store. To start, navigate to the Choose Theme tab and use the provided drop-down menu to select a theme with an Active status.
A Shopify theme is a customizable website template that defines the layout, design, and functionality of an online store. Click here for more information.

The Didomi consent notice will only display when it is configured for a theme that has an Active status.
After a theme is selected, navigate to the left-hand panel and select Settings underneath the Didomi app section.

On the subsequent Settings page, the Select a notice panel will list all published Didomi consent notices for your organization. Use the provided search field to locate your desired consent notice and select it by clicking the radio button to the left of the notice name.

With a consent notice selected, navigate to the Purpose mapping panel. For each purpose included in the consent notice, select a Shopify consent category that should be mapped to the purpose.
Multiple consent notice purposes can be mapped to the same Shopify consent category and the end-user's decision on purposes will determine whether the Shopify consent category is set to true|yes or false|no in the Shopify Customer Privacy API.
Note: In order for a Shopify consent category to be true|yes all purposes in your consent notice mapped to the Shopify consent category must be accepted by the end-user. If one or more consent notice purposes is rejected/declined by the end-user then the Shopify consent category to which they are mapped will be set to false|no.

All consent notice purposes will need to be mapped to a Shopify consent category. However, not all Shopify consent categories need to be included in the mapping. Click Save when finished.
If a consent notice purpose is not mapped then the consent notice will not display in your Shopify store. Click here for more information.
This condition does not impact the display of a checkout banner.

The selected consent notice will be displayed on your Shopify store in the region(s) you have configured in the Didomi console for the consent notice.
Test Shopify integration
Navigate to your organization's Shopify store and confirm the following tests:
Consent notice not displayed in excluded regions
From the end-user's experience of your Shopify store, verify that the consent notice does not appear in region(s) that have been excluded in the Didomi consent notice configuration.
When a region is excluded (and therefore the consent notice is not displayed), your organization can open the browser's developer tools and use the following method calls to verify the expected output for the Didomi API and Shopify Customer Privacy API, respectively.
Use the Didomi.getCurrentUserStatus() method call to return the current end-user's consent status for Didomi.
Since consent is not required and a consent notice was not displayed, the method call should return an object where consent for all purposes and all vendors are set to true.

Use the Shopify.customerPrivacy.currentVisitorConsent() method call to return the current end-user's consent status for Shopify.
Since consent is not required and a consent notice was not displayed, the method call should return an object where consent for each Shopify consent category is set to yes.
Note: If a Shopify consent category was not used in the map between consent notice purposes and Shopify consent categories then that Shopify consent category will return an empty string.

Didomi consent signals
For regions where consent collection is necessary (and therefore the region is included and a consent notice is displayed), your organization will want to check that the end-user's consent decisions are captured correctly in the Didomi API.
Navigate to your Shopify store as an end-user and confirm that your selected Didomi consent notice is displayed on the page.

Make consent choices via the consent notice and submit the response.
Open the browser's developer tools and use the Didomi.getCurrentUserStatus() method call to return the current end-user's consent status for Didomi. Ensure that your selections are reflected in the settings in the purposes object.

Shopify consent categories
For regions where consent collection is necessary (and therefore the region is included and a consent notice is displayed), your organization will want to check that the end-user's consent decisions are mapped and captured correctly in the Shopify Customer Privacy API.
Navigate to your Shopify store as an end-user and confirm that your selected Didomi consent notice is displayed on the page.

Make consent choices via the consent notice and submit the response.
Open the browser's developer tools and use the Shopify.customerPrivacy.currentVisitorConsent() method call to return the current end-user's consent status for the Shopify Customer Privacy API. Ensure that your selections are reflected in the Shopify consent categories as configured in the mapping performed between Didomi consent purposes and Shopify consent categories.
Note: In order for a Shopify consent category to be yes all purposes in your consent notice mapped to the Shopify consent category must be accepted by the end-user. If one or more consent notice purposes is rejected/declined by the end-user then the Shopify consent category to which they are mapped will be set to no.
Additionally, if a Shopify consent category was not used in the map between consent notice purposes and Shopify consent categories then that Shopify consent category will return as an empty string.

Resources
See the following articles for more information on configuring your Didomi integration with Shopify:
Last updated