Search results for shopify

84 articles found

  • Querying Shopify

    Mechanic supports three methods for fetching data from Shopify: Liquid objects GraphQL GraphQL with bulk operations This article is about fetching data. Learn about writing data with the "shopify"

  • The "shopify" action

    Anything that Shopify allows developers to do, Mechanic lets you automate. This means that you can create, update, or delete nearly anything in your Shopify account. Here are some ideas: Tagging

  • Choosing a Shopify API version

    The Shopify API supports versioning for their REST and GraphQL admin APIs. Learn more from Shopify here. By default, all Mechanic tasks use the Mechanic system version, which corresponds to Shopify's

  • Using a custom Shopify API password

    In high-volume scenarios for Shopify Plus accounts, Mechanic's performance can be improved by creating a private Shopify app, having the same permissions that you've granted to Mechanic. Because this

  • Migrating templates from Shopify to Mechanic

    You can bring your templates over from Shopify's email notifications, or from Shopify's Order Printer app, in order to generate order-related material on-demand in Mechanic. This could look like

  • Why can't I access the Shopify API during preview mode?

    If you're reading this, you may be wondering why your task doesn't seem to be able to access the Shopify API, while you work on the task script. Read on! A task is always run in response to an event.

  • How do I add or remove tags for Shopify resources?

    Merchants commonly use Mechanic for adding or removing tags from customers, orders, products, and other Shopify resources. When writing your task scripts, use a "shopify" action to add or remove tags

  • Can I replace Shopify's order emails with Mechanic?

    As of December 2018, only Shopify Plus shop-owners are able to disable Shopify's own order notification emails. You can supplement these with Mechanic emails for confirmation and/or fulfillment, but

  • Bulk operations

    Mechanic comes with several ways to query Shopify for data (read more about these), and one of these involves Shopify's "bulk operations" feature. This feature allows apps like Mechanic to send

  • How can I update existing metafields?

    Metafields may be managed using the "shopify" action, whether you use REST or GraphQL. While metafields can be uniquely referenced for a resource, using their namespace and key, any updates to them

  • Why are my tasks delayed or not running?

    In general, there are two reasons why a task might be delayed, or might not be appearing to run: Shopify† is delayed in sending notifications to Mechanic Your Mechanic account is experiencing a delay

  • The gift card object

    Note: This API is only available to Shopify Plus stores, who have configured their Mechanic account with a custom Shopify API password. How to access it Use {% for gift_card in shop.gift_cards %} to

  • Can Mechanic work with transfers and incoming inventory?

    As of 2019-03-11, Shopify does not offer third-party apps any access to their Transfers feature, which includes incoming inventory figures. If this is important to you, reach out to Shopify directly

  • All event topics

    Every task needs at least one event topic to "listen" for – when an event with a matching topic occurs, the task runs. Mechanic has many events that it can work with, giving you many options as you

  • Privacy policy

    Mechanic Privacy Policy Mechanic "the App” provides Shopify automation services "the Service" to merchants who use Shopify to power their stores. This Privacy Policy describes how personal

  • Responding to action results

    Sometimes, you'll want to do more than a single round of generating actions – you may want to check the results of an action, see if they appear the way you expect, and then perform additional

  • Can I re-send order confirmation emails with Mechanic?

    As of this writing, Shopify doesn't have a simple API for re-sending order confirmation emails. (If this is important to you, send an email to and let the folks there know that

  • An introduction to events

    Everything happens, in e-commerce. Products are listed, customers arrive, orders are placed, everything occurs, and has data to go with it. In Mechanic, we call that whole wash of things events, and

  • Concurrency

    In general, Mechanic will run as many of your events/tasks/actions simultaneously as possible. This means that multiple tasks subscribing to the same event topic are very likely to execute

  • Can I dynamically set or change order IDs?

    While Shopify does allow formatting your order IDs, and while you can change that format whenever you wish, the order ID formatting rules apply to all incoming orders. And, once set, an order ID

  • How do I send images with my emails?

    Attaching images The "email" action supports attaching anything that you can express using JSON. (The rest of this article will assume you're familiar with this action.) If you happen to have your

  • How do I find an ID for a product, collection, order, or something else?

    To find an ID for something in your Shopify account, start by opening your Shopify admin area. Then, navigate to the specific resource whose ID you're interested in. Lastly, look at in your browser's

  • The anatomy of a store-to-store sync

    Note: Creating a task for this purpose does involve writing Liquid code. Mechanic has two features that make syncing data possible: Webhooks – read more The "http" action – read more Using these two

  • Welcome! An introduction to Mechanic

    I'm glad you're here. :) I'm Isaac, and I built Mechanic. My goal here is to make automation better for everyone. We do this, here, in two parts: (1) by making it as easy and fast as possible for

  • The event object

    The event object describes an incoming event. How to access it Use {{ event }} in any task script What it contains "topic" – containing the event topic (e.g. shopify/customers/create) "data" –

  • All action types

    New to Mechanic? Learn more about actions here. Cache – Allows you to manipulate a simple key/value cache, giving your tasks a short-term memory. Echo – Useful for debugging and logging. Use it to

  • The metafields object

    This object allows you to iterate through a resource's metafields, or to access a single metafield directly by performing lookups using a namespace and then a key. How to access it To retrieve a list

  • Preview actions

    Generally speaking, tasks only run in response to events – an order being created, a "Run task" button being pressed, etc. However, Mechanic does preview runs of each task as well, for two purposes:

  • Enabling "Read all orders"

    In July 2018, Shopify introduced a new policy: apps would need to request permission for a type of access called "read_all_orders", in order to access orders older than 60 days. This change was made

  • How do I know if my future-looking task is working?

    By default, Mechanic's activity log omits events that haven't performed any work yet. This means that, even if Mechanic's queueing up work for you, you might not see it right away. To change this,

  • Add an email template

    Sending email with Mechanic, using the "email" action? Use templates to make sure your emails match your brand. Don't forget, you can also send email from your store's domain! Instructions 1.

  • Creating scheduled CSV feeds

    In this tutorial, you'll learn how to create a feed of your shop's data, and make it available on your online store, at a URL like Tip: The data you generate can be

  • How do I get a new task?

    In Mechanic, a task is a package of logic (learn more!) - it's how each piece of automation for your shop is defined. We have a constantly growing library of pre-built tasks, ready to add to your

  • Sending email from a custom address

    By default, Mechanic sends your mail from an address built from your Shopify account name. If your store is located at, for example, Mechanic will send mail from

  • Can I send data to Google Sheets?

    Yes! There are two options: One uses the IMPORTDATA function within Google Sheets to pull data from your store into your spreadsheet. The other lets you dynamically push new data to Google Sheets,

  • Mechanic's pricing policy: Pay what feels good

    (2020-03-20) A note, in light of COVID-19: This has been our official pricing policy since January 2020. It took us a while to distill what we know/feel down to this specific policy; but, this is the

  • Liquid filters

    Mechanic include all filters available in Liquid's standard library. We also add a few of our own. :) add_tag, add_tags, remove_tag, remove_tags base64, decode_base64 browser csv date e164

  • The product image object

    How to access it Use {% for image in product.images %} in tasks responding to shopify/products events, or any time you have a product object What it contains Every property from the Shopify API

  • The transaction object

    How to access it Use {% for transaction in order.transactions %} in tasks responding to shopify/orders events Use {% for transaction in refund.transactions %} in tasks responding to shopify/refunds

  • Can I use Mechanic to publish or unpublish to different sales channels?

    Shopify has approved Mechanic for publishablePublish and publishableUnpublish, these being the APIs used for adding and removing products to different sales channels. If you've got a need for this,

  • The price rule object

    How to access it Look up specific price rules by ID, using {{ shop.price_rules[12345] }} Loop through all price rules: {% for price_rule in shop.price_rules %} What it contains Every property from

  • The "action" tag

    Because the ultimate purpose of a task is to generate actions, we offer a specialized Liquid tag as a quick shorthand for composing an action's JSON definition. This article is about composing action

  • The blog object

    How to access it Use {% for blog in shop.blogs %} Look up specific blogs by their ID, using {{ shop.blogs[1234567890] }} What it contains Every property from the Shopify API An array of related

  • The order risk object

    How to access it Use {% for risk in order.risks %} in tasks responding to shopify/orders events, or in any other scenario with an order object Use {{ order.risks[12345].message }} to retrieve a

  • The fulfillment object

    How to access it Use {% for fulfillment in order.fulfillments %} in tasks responding to shopify/orders events What it contains Every property from the Shopify API The related order object: {{

  • The inventory item object

    How to access it Use {{ order.line_items[n].variant.inventory_item }} in tasks responding to shopify/orders events Use {{ product.variants[n].inventory_item }} in tasks responding to shopify/products

  • The location object

    How to access it Use {% for location in shop.locations %} in any task Use {{ }} in tasks responding to shopify/orders events Use {{ }} in tasks

  • The inventory level object

    How to access it Use {{ order.line_items[n].variant.inventory_levels[n] }} in tasks responding to shopify/orders events Use {{ product.variants[n].inventory_levels[n] }} in tasks responding to

  • The refund object

    How to access it Use {{ refund }} in tasks responding to shopify/refunds events Use {% for refund in order.refunds %} in tasks responding to shopify/orders events What it contains Every property from

  • The variant object

    How to access it Use {{ order.line_items[n].variant }} in tasks responding to shopify/orders events Use {{ product.variants[n] }} in tasks responding to shopify/products events What it contains Every