Covered in this article
Related pages
Latest Changelog
Version 1.6.6 ()
Shopify component

Shopify component

A component to work with the Shopify API.

How works. API version

Component was tested on 2021-04 API version. You can find more information about API versioning at Shopify here.

Shopify API documentation.

Requirements

Credentials

Credentials

  • ShopName - name of your shop, for an example example.myshopify.com
  • API Key
  • Password
  • Type - authorization type, used only for trigger Webhook subscription. It is supported the following authorization types:
    • No Auth - use this method to work with any open REST API
    • Basic Auth - use it to provide login credentials like username/password
    • API Key Auth - use it to provide API Key to access the resource
    • HMAC verification shared secret - use it to verify via a shared secret. Header x-eio-signature should be specified.

Please Note:

  • The component calls a list products endpoint under the hood to verify credentials. To succeed you need to grant at least Read permissions to the app in Apps -> App development -> * your Private app name * -> ADMIN API PERMISSIONS -> Products set to ‘Read access’ (or ‘Read and write’): image
  • due to current platform limitations it is needed to keep ‘Type’ field with ‘No auth’ value for correct component behaviour
    • Shopify Webhook HMAC Secret - this field is used and required only for trigger Webhook subscription, because when Shopify sends data via Webhooks, it signs the request with an HMAC header. For finding the secret, you need to navigate to the Settings select tab Notifications go to Webhooks and copy the secret.
  • Here is how to generate creds

Environment variables

Name Mandatory Description Values
SHOPIFY_API_VERSION false Determines API version of Shopify to use Default: 2019-10, for Make Raw Request: 2021-04

Metafield Notes

Metafields for an object can be written when upserting/creating an object that supports metafields. When polling for objects, looking up an object or searching for objects, there is a checkbox that can be selected that will fetch the corresponding metafields for objects. Selecting this checkbox will cause more API calls to be consumed. (An additional API call per object read.)

When reading metafields data will be returned in this format. When writing metafield data, the following format is also expected for the metafields object.

{
  "metafieldNamespaceOne": {
    "metafieldKeyOne": "Metafield Value for metafieldNamespaceOne.metafieldKeyOne",
    "metafieldKeyTwo": "Metafield Value for metafieldNamespaceOne.metafieldKeyTwo"
  },
  "metafieldNamespaceTwo": {
    "metafieldKeyThree": "Metafield Value for metafieldNamespaceTwo.metafieldKeyThree"
  }
}

Shopify metafields support the following three types:

  • integer metafields will be created whenever the value provided for a metafield is a JSON number that is an integer. When reading Shopify integer metafields, they will result in JSON numbers.
  • string metafields will be created whenever the value provided for a metafield is a JSON string or a JSON number that is not an integer. When reading any Shopify string metafields, they will result in JSON strings regardless of whether or not they could be parsed as numbers.
  • json_string metafields will be created whenever the value provided for a metafield is a JSON object, array or boolean. The incoming value will be converted to a JSON string and stored. When reading Shopify metafields, they will be converted back to their JSON forms.

Setting a metafield the value of JSON null will result in that metafield being deleted.

Not setting a value for a metafield will result in that metafield being unchanged.

Technical Notes

The technical notes page gives some technical details about Shopify component like changelog and completeness matrix.

Triggers

Shopify component has the following triggers:

  1. Polling Trigger - Polls Shopify API for new and updated objects.
  2. Webhook subscription trigger - Creates webhook subscriptions on the Shopify side and receives events to the flow.

Actions

Shopify component has the following actions:

  1. Lookup Object action - Finds object by id.
  2. Lookup Objects action - Retrieves object by ID.
  3. Create Object action - Action to create new object instance. Only for object that can’t be updated.
  4. Upsert Object action - Upsert Object action is useful if it isn’t known if there is already an object in the system. Action determines if the data needs to be matched to an existing object or added to a new one. Only for objects that can be created and updated.
  5. Delete Object action - Delete Object By Unique Criteria
  6. Make Raw Request - Allows you to manually construct individual requests to be sent to the API.

We keep the list of deprecated actions on a separate page. Please read this article for more details.

Shopify API documentation

How to generate creds

Click here to learn more about the elastic.io iPaaS