Shopify Automation

José Santos
José Santos
November 16 · 8 min read
3 people pushing squares on a plane 1 person racing ahead pushing a circle instead

SHOPIFY AUTOMATION

Shopify automation is a big deal when it comes to having a store that's efficient and autonomous and I dare to say it's essential for stores with a high volume of sales.

Automating tasks will allow you to shift your focus from the small, tenuous and repetitive tasks to where it matters. It unlocks a whole new world of possibilities and nowadays there are tools that allow even a store owner with little to no programming knowledge to automate some simple tasks. Although when you do fully understand the abilities of automation you will eventually need the intervention of developers to implement all of your new ideas.

Examples of automation usages:

  • When a new order is shipped, get its tracking status and email the client on every shipment update;
  • When an item is back in stock, notify a list of customers;
  • Hide out-of-stock products and notify the staff;
  • The client can choose a list of products and a custom discount is generated depending on the quantity, price and product type;

First, I'll start by quickly introducing some core concepts on how to get and send information to Shopify:

Shopify Application Programming Interface (API)–
Shopify has different APIs that enable you to create, read, update and delete operations (CRUD) on your store. You first need to create a private app with the needed permissions and then you get the credentials/tokens for the API. Currently Shopify offers the following APIs:

  • Shopify Storefront API – Basic GET operations;
  • Shopify Representational State Transfer (REST) Admin API – A REST API is characterized by how it is stateless and how it separates the concerns of client and server. It implements all the necessary methods to perform CRUD operations via four basic HTTP verbs, respectively: POST (create), GET (read), PUT (update), DELETE (delete).
  • Shopify GraphQL Admin API – GraphQL  fully featured API for CRUD operations. GraphQL is a query language for APIs and a runtime for fulfilling the queries with existing data. The client can ask for the exact information needed and GraphQL will provide the exact payload, giving the client full control on the data.
  • Shopify Webhooks – These are some native Shopify “triggers” that trigger on a certain condition and send an HTTP request to a url of your choice, defined in Shopify Settings. Shopify has a whole list of those so, for example, you can enable a webhook that triggers when a new order is created and this will send an HTTP request to http://example.com/api/newOrder.


Automation Tools

We now need a tool to communicate with the Shopify API. That tool can be triggered by a Shopify Webhook for example. It can range from a basic Shopify app to a fully developed Node.js app running on its own server. So Shopify automation is really available to anyone, it just depends on the complexity of the tasks you want to implement.

Of course there are a lot of apps on the Shopify app store that allow for automation in specific areas - e.g. in email marketing or order processing. To keep things simple for now I'll focus on Shopify Apps that are dedicated to general automation without focussing on a specific area and Javascript Backend Apps and their Pros & Cons. Let's discuss these in further detail, ordered by complexity:

Shopify Flow

https://help.shopify.com/en/manual/shopify-plus/flow

Flow is an automation tool available to Advanced Shopify and Shopify Plus customers that enables them to use some pre-existing templates or even to create their own workflow so they can automate some Shopify behaviors. This is the easiest solution to work with but also the most limited, meaning any user can try to automate tasks but they won't be able to do more than some simple automations.

Pros:

  • Quick setup and beginner friendly, can be approached by users who don't know how to code;
  • Intuitive block approach similar to a flowchart, based on: Triggers, Conditions and Actions;
  • Quick and easy to work with for simple tasks;
  • Low to mid-low level complexity tasks which means that it takes a shorter time to program using Flow than a regular backend solution like Node.Js;
  • Pre-existing templates that allow certain tasks' automation;
  • Automation between different Shopify apps;
  • Allows HTTP requests meaning simple API integrations are possible;

Cons:

  • Only available to Advanced Shopify and Shopify Plus customers (high monthly fee);
  • Not viable for more complex tasks due to the fact existing triggers, conditions and actions are limited. For example, it's not possible to create a product, although it is possible to publish or hide one;
  • Asynchronous tasks can be a problem;

Mechanic

https://learn.mechanic.dev/

Mechanic is an app that can be installed on your store through the shopify admin panel. It requires a monthly subscription (there's a free 15 day trial) and allows you to automate some low to high complexity tasks.

They provide a huge list of open source templates to work with and for users who know how to code you can even develop your own workflow using Shopify's template language .liquid.

The code however does lack in readability and organization, meaning for the more complex tasks you'll get a single page and many confusing lines of code so even if you work with the code on an integrated development environment (IDE) prepared for .liquid, you still might get a bit overwhelmed by more complex scripts.

The way Shopify webhooks work in Mechanic is by subscribing to events at the beginning of your task, so you can for example subscribe to the Mechanic event “shopify/orders/create” which will make your task run when new orders are created. This works very well for simple tasks, however it does introduce some coding complexity for when you're scripting some complicated tasks. For example, if, when an order is created, you need to run a query and wait for its result to do something with it, you will need multiple event subscriptions and your task script will become more complex and messy.

Pros:

  • Quick setup;
  • Lots of pre-existing templates that allow certain tasks' automation. The templates are open source so you can also use them to work on your own workflow;
  • Quick and easy to implement if you're working with some pre-existing templates;
  • Simple tasks or tasks with existing templates are quicker to implement comparing to a regular backend solution like Next.js;
  • Allows having multiple tasks running;
  • Allows automation of low to high complexity tasks;
  • GraphQL compatible;

Cons:

  • Monthly fee with different pricing plans;
  • To create a custom task/workflow the user needs to have some medium to high knowledge of Liquid, the template language used on Shopify;
  • Dependent on 3rd party services meaning updates can break some tasks, servers might go down, etc;
  • No IDE so it introduces all these additional cons:
    • Complex tasks will take longer to code versus a regular backend solution;
    • Scalability;
    • No working in a team environment;
    • Documentation is not great (but keep in mind they have loads of open source templates);
    • Code readability and organization;
    • Maintenance and logging;
    • No versioning at all;
    • Debugging tools are limited;
    • Tracking performance and debugging performance issues;
    • Asynchronous  tasks need event subscribers and lots of additional code that will contribute to the mess of the code you'll end up with once you're finished developing your own workflow;

Vercel Next.JS App

https://vercel.com/docs/concepts

This is not a Shopify dedicated tool or app. Next.JS is a React.JS framework used to build web applications rendered in the client's browser with Javascript. So unlike the previous solutions, this is not viable for a non-developer. A developer can create a web app that automates Shopify tasks using Shopify's APIs and webhooks or even using some libraries like “shopify-api-node”.

This way the user can have full freedom when it comes to automation.

Next.js has a particular advantage against a regular Node.js app which is serverless functions and simplified hosting/deployment. This does also mean you'll have to use other file storage provider services like Amazon S3 (AWS S3), Azure or Google Cloud for example if you need a storage solution. Being a serverless app, we can create an API endpoint as a Node.js serverless function if we need to listen to any Shopify webhook.

Pros:

  • Allows automating low to high complexity tasks;
  • Full developing environment meaning:
    • Easy to scale;
    • Work in a team;
    • Versioning;
    • Logging;
    • Performance tracking;
    • Simple deployment with GIT integration;
    • Simple deployment;
    • Serverless solution;
    • Lots of documentation;

Cons:

  • Not viable for the user with no knowledge in programming.
  • The initial investment can be bigger than a Shopify App. It tends to compensate in the long run;
  • Log tracking though Vercel can be somewhat limited;
  • Might require maintenance from time to time;
  • No storage

Node.JS app

https://nodejs.org/en/docs/

Similar to Next.js, this is a solution for developers. It requires a hosting solution but has the full potential and works seamlessly with existing Shopify npm modules like shopify-node-api that make the whole workflow a lot faster.

Pros:

  • Full potential;
  • Allows automating low to high complexity tasks;
  • Full developing environment meaning:
    • Easy to scale;
    • Work in a team;
    • Versioning;
    • Logging;
    • Performance tracking;
    • Lots of documentation;

Cons:

  • Requires hosting solutions;
  • The initial investment can be bigger than a Shopify App. It tends to compensate in the long run though;
  • Might require maintenance from time to time;

Conclusion

If you want to learn more about developing apps for Shopify and the cost associated with it, you can take a look at this blog post, where we go into detail about it.

I hope after reading this, I got you all excited and ready to automate every aspect of your store, or even of your life! Focus on the big things and look forward, the future of Ecommerce is bright!

Clap clap **lights on**

Found this helpful? Share this post with your colleagues and friends

José Santos
Written by

José Santos

Software Engineer

Subscribe to our Newsletter now!

Stay up to date with all our exciting news! We look forward to sending you useful and helpful information for all your e-commerce tech needs. Enjoy our Especial content, created 'E-specially' for you.
By filling in your email, you agree to our privacy policy.

CONTACT US

Would you like help to know more?

Let us help you!