Shopify integration
- Last updated on May 13, 2025 at 12:22 PM
In order to connect to your shopify store you will need to create a new custom app on the store and provide it specific permissions.
Step by step
We will need to create a connector app on the Shopify side, an app whose purpose is to allow 3rd party applications (like the Dixa widget) to access the store information via API access.
Configuration on the Shopify side
Go to your store's apps section
Click on the Develop apps for your store button
And then choose to create an app
Give it a meaningful name
and on the next screen we will need to configure the admin access that this app will have
From all the possible permissions we will need to select the following:
- Customers
- write_customers
- read_customers
- Merchant-managed fulfilment orders
- read_
merchant_ managed_ fulfillment_ orders
- read_
- Orders
- write_orders
- read_orders
- Discounts
- write_discounts
Once we hit save, it should look like this:
Now that we've configured the app's admin API permissions we will need to install the app on our store and retrieve our admin access token.
Do this by clicking Install app
And confirm
Once we install the app the Admin API access token will be visible and we will be able to grab the token
Important: be sure to copy and store this token securely as we won't be able to retrieve it later.
If you forget to store it and need it later on, you will have to repeat the process and create a new app to generate a new token.
Add a Shopify widget to Dixa
Once you have API access token we can proceed with the widget configuration on the Dixa side. Start by visiting Dixa go to Settings --> Integrations --> Conversation cards. Create a new integration widget by clicking on Shopify.
Configuration the integration
On the Create widget page you must fill in the following:
- Widget name
- API Access token
- API host name
The Widget name is used to identify the integration in the conversation interface. An example would be Shopify.
The second required field is the API Key you created in the previous step.
The third required field is your instance of Shopify's API URL. It will be this-is-a-da-demo-store.myshopify.com
You have the following toggle options:
Enable the "refund order" button - using this button will fully refund the order.
Enable the "cancel order" button - you can cancel an on-going order with this button. After clicking the cancel button, a pop-up will prompt you for more details on the cancellation.
Enable the "edit shipping address" button - makes it possible for agents to edit the shipping address in Shopify from the Dixa interface.
Displays short orders overview - shows an overview of total placed orders and the total amount of money spent.
Displays the email marketing consent status of the customer - shows if the contact has accepted to receive marketing material sent through Shopify.
Displays the segment memberships of the customer - show the configured Shopify segments, and if the contact is a member of a Shopify segment, a coloured logo will be displayed on the right of the segment name.
Once you are done with the configurations, ensure that Show the widget in the conversations sidebar is toggled on.
After the configuration is done, when opening up a conversation, we will use Shopify to look up the contact and pull their data based on their email address, below is an example:
FAQ
Multiple stores
It's not uncommon to have multiple Shopify instances to cover different geographical markets. How should you handle that?
Because Dixa can handle multiple versions of the same integration, we recommend you create a Shopify widget for each market and leave all Shopify instances open when opening a conversation with a customer. When an agent opens or closes a widget, the state is saved in the browser and will be remembered for future conversations. A Shopify widget that doesn't find a result will only show a string with "We cannot find the customer in Shopify," it won't take up much space.