description |
---|
I'm glad you're here. :) –Isaac |
Mechanic is a Shopify development and automation platform.
- Search the task library for an off-the-shelf solution
- Learn about "going custom" for a task that fits you perfectly
- Ask in our community Slack workspace if you need something else
{% hint style="info" %} Find Mechanic on the Shopify App Store: apps.shopify.com/mechanic {% endhint %}
Mechanic is a Shopify development and automation platform, which comes with a rich library of pre-written automation tasks – and our users write their own custom tasks every day. Let's find out if Mechanic might work for you.
- Are you working on something Shopify-related?
- Mechanic is only available for Shopify.
- Is what you're looking for already available from Mechanic's task library?
- We have hundreds of common scenarios already handled with pre-written, open-source, modifiable, off-the-shelf tasks.
- As far as your problem concerns Shopify data, is what you want to do supported by the Shopify Admin API?
- Mechanic's toolkit goes beyond Shopify's APIs, but a Mechanic task can only interact with Shopify data in ways that Shopify supports.
- Are you open to going custom?
- Whether you need a developer or already have that covered, the path to creating a custom Mechanic task is well-established.
That list wasn't exactly a formal flowchart, but we hope it's helpful as you're evaluating Mechanic for your purposes. At its best, Mechanic is a platform and toolkit that you go to, and return to, when you hit the limits of the Shopify admin. And it's a community that collectively has learned how to solve many, many kinds of problems. (Join our community Slack workspace!)
{% hint style="info" %} Got a question you need answered now? Join our Slack workspace. 💬 {% endhint %}
A developer writes tasks – Mechanic's term for a piece of automation. These tasks can respond to many different events, like a Shopify webhook, a manual trigger, a regular interval (e.g. hourly, daily), or an incoming email. Tasks use subscriptions to signal their interest in specific event types.
When a task receives an incoming event, it can choose to generate an action – an operation that has an effect.
- The Shopify action makes changes to a Shopify store, like tagging, publishing, creating or deleting resources. It provides direct and complete access to Shopify's admin API, with support for both REST and GraphQL.
- The Email action is for sending email. It supports custom templates, and attachments.
- The FTP action is for uploading files to an FTP or SFTP server. These files may be generated by the task, or can be fetched from external locations.
- The HTTP action performs any request, to any HTTP endpoint. This facilitates integration with third-party APIs.
- The Files action generates a variety of file formats, including PDF, CSV, ZIP, and anything retrieved from a public URL. Files generated this way receive a temporary URL of their own, and can be fed into other tasks for further processing.
For a complete list of supported actions, see Actions.
Mechanic makes heavy use of Liquid – a template language created by Shopify. Its primary use is in task code. In the same way that a Liquid theme receives browser requests and renders HTML, a Mechanic task receives events, and renders actions (by defining them with JSON).
In Mechanic, our Liquid implementation includes additional support for constructing arrays and hashes, and includes many useful filters, making data processing more efficient.
Mechanic performs work using queues of runs, with no limit on how large each queue can become. If there is a sudden surge of incoming events for a Shopify store, the store's dedicated Mechanic queue could become delayed. This is an important difference between Mechanic and many other systems: in a high-traffic period, Mechanic will never refuse incoming events for a store; instead, it will process each one as soon as possible, by putting them into a run queue. The rate at which Mechanic processes work varies, depending on concurrency and the Shopify API rate limit.