Skip to main content

Integrating with Shopify

Talon.One supports integrating with Shopify using a dedicated app.

Shopify integration features

The Talon.One Shopify app enables real-time data synchronization between Shopify and Talon.One.

By creating a bidirectional data flow, the integration enables store owners to do the following:

  • Sync product data and customer profiles with Talon.One, for example, to create personalized coupons or award loyalty points.
  • Send customer session data, including the customer's shopping cart.
  • Receive customer data from Talon.One, for example, the number of loyalty points awarded.
  • Receive strikethrough pricing updates from Talon.One.
  • Receive discount effects in Shopify and apply them to the shopping cart.

Understanding the data flow

Data flow overview

From Shopify to Talon.One

Product data

When you connect the app to a cart item catalog in Talon.One, it performs an initial product sync.

The app calls the Sync cart item catalog endpoint to add all products in Shopify to a cart item catalog in Talon.One.

note

When synchronizing stock keeping units (SKUs) between Shopify and Talon.One, the following applies:

  • The sku field in Talon.One is populated with the variant ID from Shopify.
  • The SKUs in Shopify are stored in a separate sku_shopify field in Talon.One.

This is because SKUs can be empty or duplicate in Shopify, but must be unique in Talon.One.

The app does not delete any data, but replaces existing products with the same variant ID.

Then, whenever a product is created, updated, or deleted in Shopify, the app calls the same endpoint to update the cart item catalog.

If any of the product data operations trigger strikethrough pricing updates, Talon.One returns the effects of these updates to Shopify.

Customer profile data

When a customer profile is created or updated in Shopify, the app calls the Update customer profile endpoint to send customer data to Talon.One.

Also, when a customer completes their order, the profile of that customer is created or updated.

The app only sends the following customer data:

  • The customer ID, which is stored as the customer integration ID in Talon.One.
  • The tags associated with the customer, which are stored as a custom attribute named tags in Talon.One.

Customer session data

When a customer adds items to their shopping cart, the app calls the Update customer session endpoint to create or update a session in Talon.One. The state of the session is open, and the session ID is equal to the cart ID in Shopify. When a customer updates their cart, the app calls the same endpoint to update the session with the new cart data.

The response from the endpoint may contain discount effects that will be applied at checkout.

When a customer completes their order, the session is updated, and its state changes to closed.

When a return is initiated, the session state changes to cancelled (for fully returned orders) or partially returned (for partially returned orders).

From Talon.One to Shopify

Customer data

For theme-based stores, an app embed is used to fetch customer data.

Whenever a signed-in customer is accessing a page of your store, for example, a product page, the app embed calls the List customer data endpoint to fetch data of that customer from Talon.One.

note

To reduce data load, the app embed fetches data only once every 10 seconds.

The app embed always fetches all available customer data, including customer profile, referral, coupon, loyalty, giveaway, and achievement information. For example, the data may contain a coupon generated for the customer, and their total number of awarded loyalty points.

The data is stored in a customer metafield in Shopify. To reference it in your template, use the following Liquid code:

{{ customer.metafields.talon_one.data }}

You can also access the metafield data via JavaScript:

const customerData = window.TalonOne.customerProfile;

For more information, see our tutorial.

Strikethrough pricing updates

Whenever the app receives a strikethrough pricing notification from Talon.One, it stores the pricing effects of the notification (changedItems.effects, see schema) in a product variant metafield in Shopify. For example, the pricing effect can be a $10 discount on all shoes in your store.

To reference the metafield in your template, use the following Liquid code:

{{ product.selected_or_first_available_variant.metafields.talon_one.effects }}

For more information, see our tutorial.

Discount effects

important

Discount effects require network access for Shopify Functions, which is available with Shopify for enterprise.

When customer session data is created or updated, Talon.One may return discount effects. These effects can include discounts on the order total, individual items, or shipping costs.

The app receives these effects and applies them at checkout in Shopify. For more information, see our applying discounts tutorial.

Setting up the integration

1

Prerequisites

  • You are an Administrator user in Shopify.

  • You have created an Integration API key for use with Shopify.

  • You have created the following custom attributes in Talon.One:

    EntityAPI NameType
    Cart Itembody_htmlString
    Cart ItemcategoryString
    Cart Itemcreated_atString
    Cart ItemhandleString
    Cart Itemhas_variants_that_requires_componentsBoolean
    Cart ItempositionNumber
    Cart Itemproduct_idNumber
    Cart Itemproduct_typeString
    Cart Itempublished_scopeString
    Cart Itemsku_shopifyString
    Cart ItemstatusString
    Cart ItemtagsString
    Cart ItemtitleString
    Cart Itemupdated_atString
    Cart ItemvendorString
    Customer ProfiletagsString
    Customer ProfileidNumber
2

Install the app

  1. Find the app in the Shopify App Store.
  2. Click Install.
  3. In your Shopify admin, to authorize the use of the app, click Install.

After the app is installed, you can view and use it from the Apps page in your Shopify admin.

3

Configure the app

  1. In Shopify, open Apps > Talon.One.
  2. On the Talon.One page, configure the following parameters:
    • API Key: Paste the Integration API key you created.
    • Deployment URL: Type the base URL of your Talon.One deployment, for example, mycompany.europe-west1.talon.one.
    • Catalog ID: Leave this at 0. You'll set the ID when syncing your product inventory.
  3. To test the connection with the values provided, click Connect.
  4. If the test is successful, click Save.
4

Enable the app embed

note

This step is only required for theme-based stores.

Enabling the Talon.One customer data app embed allows you to retrieve customer data from Talon.One for use in Shopify. For more information, see our tutorial.

  1. Ensure the Talon.One Shopify app is installed.
  2. In Shopify, open Online Store > Themes.
  3. Find the theme that you want to edit and click Customize.
  4. On the leftmost menu, click App embeds.
  5. Next to the Talon.One customer data app embed, click the toggle button.
  6. Click Save.
5

Next steps

You have now completed the basic setup of the Talon.One Shopify app.

To use the app effectively, additional configuration steps are required, based on your specific use cases.

Read the following tutorials to learn how to set up the app for your needs: