Mechanic
πŸ“£ Shopify REST Deprecation
  • ⛩️Introduction
  • πŸ€“Hire a Mechanic developer
  • πŸ’―status.mechanic.dev
  • πŸ“£Shopify is deprecating the REST API
  • πŸ™‹"I need something custom!"
  • πŸ§‘β€πŸ’»"I need help with my custom task!"
  • πŸ€–"I need help with my AI-written task!"
  • Resources
    • ⬇️Install Mechanic
    • πŸ§‘β€πŸ’»Task library
      • Contributing
      • Requesting
    • πŸš€Slack community
    • 🀝Partner directory
    • 🧠Tutorials
      • Video walkthroughs
        • Auto-tag orders by originating staff member
        • Maintain a tag for orders processed today
        • Auto-tag orders with their tracking numbers
        • Sync inventory for shared SKUs
        • Auto-tag products when their SKU(s) change
        • Auto-publish new products
        • Email a report of customers who haven't ordered in X days
        • Upgrading a Mechanic task: Adding a time delay
        • Email the customer when tracking numbers are added to their order
        • Adding an optional time delay to your Mechanic task
        • Delete all orders
        • Send an email when a specific product is shipped
        • Send recurring reminders about unpaid orders
        • Send an email when a product's price goes below its cost
        • Auto-tag customers by sales channel
        • Creating products in bulk
      • Creating a Mechanic webhook
      • Practicing writing tasks
      • Triggering tasks from a contact form
      • Creating scheduled CSV feeds
      • Fetching data from a shared Google sheet
    • πŸ†Converting tasks from Shopify REST to GraphQL
      • Conversion: Single resource lookups
      • Conversion: Resource loops to paginated queries
      • Conversion: Connections from a resource
      • Conversion: Metafield lookups from a resource
      • Conversion: Resource lookups in task option fields
  • Core Concepts
    • Events
      • Topics
      • Parent and child events
    • Tasks
      • Subscriptions
      • Code
        • Environment variables
        • Action objects
        • Error objects
        • Log objects
      • Options
        • Custom validation
      • Previews
        • Defining preview events
        • Stub data
      • Shopify API version
      • Advanced settings
        • Documentation
        • JavaScript
        • Perform action runs in sequence
      • Import and export
      • User Form
    • Actions
      • Cache
      • Echo
      • Email
      • Event
      • Files
      • Flow
      • FTP
      • Google Drive
      • Google Sheets
      • HTTP
      • Integrations
        • Report Toaster
      • Shopify
      • File generators
        • Base64
        • PDF
        • Plaintext
        • URL
        • ZIP
    • Runs
      • Scheduling
      • Concurrency
      • Ordering
      • Retries
    • Interacting with Shopify
      • Responding to events
        • Reconciling missing events
      • Reading data
        • ⚠️Liquid objects
        • πŸ†GraphQL in Liquid
        • Bulk operations
        • The Shopify action
      • Writing data
      • Shopify admin action links
      • API rate limit
      • API versions
  • Platform
    • πŸ”†Policies
      • Data
      • Plans
      • Pricing
      • Privacy
    • Cache
      • Cache endpoints
    • Email
      • Receiving email
      • Custom email addresses
      • DMARC
      • Email templates
    • Error handling
    • Events
      • Event topics
      • Event filters
    • GraphQL
      • Basics
        • Shopify Admin API GraphiQL explorer
        • Queries
        • Mutations
        • Pagination
      • Bulk operations
    • Integrations
      • Appstle Subscriptions
      • Google Drive and Google Sheets
      • Judge.me
      • Locksmith
      • Report Toaster
      • Shopify Flow
      • Run links
    • Liquid
      • Basics
        • Syntax
        • Data types
        • Variables
        • Comments
        • Filters
        • Operators
        • Control flow
          • Condition
          • Iteration
        • Whitespace
      • Liquid console
      • Mechanic filters
        • Deprecated filters
      • Mechanic keyword literals
        • array
        • hash
        • newline
      • Mechanic objects
        • Action object
        • Cache object
        • Event object
        • Options object
        • Task object
        • ⚠️Shopify REST Admin API
          • 🚫Article object
          • 🚫Blog object
          • 🚫Collection object
          • 🚫Customer object
          • 🚫Discount code object
          • 🚫Dispute object
          • 🚫Draft order object
          • 🚫Fulfillment object
          • 🚫Fulfillment order object
          • 🚫Fulfillment event object
          • 🚫Gift card object
          • 🚫Inventory item object
          • 🚫Inventory level object
          • 🚫Line item object
          • 🚫Location object
          • 🚫Metafields
            • Metafield object
            • Metafield representation object
            • Metafield collection object
          • 🚫Order object
          • 🚫Order risk object
          • 🚫Price rule object
          • 🚫Product object
          • 🚫Product image object
          • 🚫Refund object
          • 🚫Shipping zone object
          • 🚫Shop object
          • 🚫Theme object
          • 🚫Theme asset object
          • 🚫Transaction object
          • 🚫Variant object
      • Mechanic tags
        • liquid
        • action
        • assign
        • error
        • log
      • Mechanic code snippets
    • Shopify
      • Custom authentication
      • "Read all orders"
    • Webhooks
  • Techniques
    • Preventing action loops
    • Writing a high-quality task
    • Tagging Shopify resources
    • Debouncing events
    • Responding to action results
    • Working with external APIs
      • JSON Web Signatures
      • AWS request signatures
    • Finding a resource ID
    • Migrating templates from Shopify to Mechanic
    • Securing Mechanic webhooks
    • Monitoring Mechanic
  • FAQ
    • The app isn't loading. What do I do?
    • How do I stop a large batch of runs?
    • A Shopify event is missing. Where is it?
    • Does Mechanic have an affiliate program?
    • Can non-owners install Mechanic?
    • Can I replace Shopify's order emails with Mechanic?
    • Can I manually set Shopify permissions for Mechanic?
    • Does my theme need to be updated for Mechanic?
    • Do you have a plan for development stores?
    • Why don't I see any events in my task's activity?
    • Can I read data back from my webhook submission?
    • My task added a tag, but now the tag is missing – why?
    • How do I add an unsubscribe link to my emails?
    • How do I send images with my emails?
    • Can I re-send order confirmation emails with Mechanic?
    • Why am I seeing a different price than on the app store?
    • Do you have a Partner-friendly plan?
    • Why are my tasks delayed or not running?
    • My task is failing because of a permissions problem. Why?
    • How do I preview email attachments?
    • Can I query external APIs?
    • Why can't I access the Shopify API during preview mode?
    • How do marketing preferences work with Mechanic?
    • Can I send data to Google Sheets?
    • What's possible with timeline comments?
    • I'm getting a "query param length is too long" error when using GraphQL.
    • Can my Mechanic concurrency limit be raised?
    • What IP address does Mechanic use?
    • Can Mechanic read or manage customer subscriptions?
    • Why is everything harder now?
    • Can task content be translated into multiple languages?
    • Can I add a time delay to my task?
    • Can I add another store to my existing Mechanic subscription?
    • How can I reduce memory usage of my task?
    • How do I connect PayPal to Shopify with Mechanic?
    • How do I add a Shopify access scope to my task?
    • Can I have my Mechanic data retained for more (or less) than 15 days?
Powered by GitBook

Important Updates

  • πŸ“£ Shopify REST Deprecation
On this page
  • What is Locksmith?
  • Locksmith --> Mechanic Integration

Was this helpful?

Edit on GitHub
Export as PDF
  1. Platform
  2. Integrations

Locksmith

Access control, for anything in your online store :)

PreviousJudge.meNextReport Toaster

Last updated 1 year ago

Was this helpful?

What is ?

As a tool, Locksmith's power comes from a super-versatile yet super-simple idea: locks to protect your content, and keys to let different people in. Locksmith is made by Lightward (us) the same makers as Mechanic. Give a try today!

Once you've locked something, use keys to grant access if the customer…

  • has a certain tag

  • is signed in

  • gives a certain passcode

  • arrives via a secret link

  • is not signed in

  • does not have a certain tag

  • gives one of many passcodes

  • subscribes to your Mailchimp list or newsletter

  • subscribes to your Klaviyo list or newsletter

  • has one of many email addresses

  • the customer's email contains something specific

  • has purchased a specific product

  • has placed at least x orders

  • has a certain product in their cart

  • has a certain variant in their cart

  • has at least $x in their cart

  • has a certain IP address

  • is visiting from a certain country

  • is visiting before a certain date and time

  • is visiting after a certain date and time

Or, grant access using any custom condition by using a little Liquid code.

Locksmith --> Mechanic Integration

locksmith/sessions/ping
  "event": {
    "keys": [
      {
        "_id": 74,
        "options": {
          "inverse": false,
          "force_open": null
        },
        "conditions": [
          {
            "_id": 100,
            "type": "passcode",
            "options": {
              "passcode": "hello",
              "passcode_uses_left": null,
              "input_prompt": null,
              "input_masked": false,
              "customer_remember": true,
              "customer_autotag": null
            }
          }
        ],
        "lock": {
          "_id": 86,
          "_title": "Short Sleeve T-Shirt",
          "_has_resource": true,
          "_resource_path": "products/short-sleeve-t-shirt",
          "_resource_url": "https://example.myshopify.com/products/short-sleeve-t-shirt",
          "_resource_admin_url": "https://example.myshopify.com/admin/products/756455899231",
          "_resource_type_for_humans": "product",
          "_resource_description": "A product, with the handle \"short-sleeve-t-shirt\"",
          "_updated_at": "2018-06-21T20:52:42.111Z",
          "_notices": [
            {
              "status": "info",
              "title": "This product will still appear in search results and collection lists.",
              "description": "To change this, update the lock settings."
            }
          ],
          "resource_id": 756455899231,
          "resource_type": "product",
          "resource_options": {},
          "enabled": true,
          "options": {
            "hide_links_to_resource": false,
            "hide_resource": false,
            "manual": false
          }
        }
      }
    ],
    "params": {
      "passcode(100)": "hello",
      "passcode": "hello"
    },
    "customer": {
      "id": 2056359493,
      "email": "test@example.com",
      "accepts_marketing": false,
      "created_at": "2015-12-07T00:50:51-05:00",
      "updated_at": "2018-06-21T18:08:21-04:00",
      "first_name": "Isaac",
      "last_name": "Bowen",
      "orders_count": 41,
      "state": "enabled",
      "total_spent": "119.99",
      "note": "",
      "verified_email": true,
      "phone": null,
      "tags": "bar, foobar, Wholesaler"
    },
    "cart_token": "b96b8309b1d4002bd5336644c79d3e80"
  }
}

Webhooks can be enabled by visiting your Locksmith Settings page, and clicking "Enable Mechanic events" under the Extensions heading:

Every time access is granted to a resource on a store using , an event is sent to Mechanic with the following payload for the locksmith/sessions/ping event topic

Please email if you need help enabling webhooks to be sent to Mechanic.

Locksmith
Locksmith
Locksmith
team@uselocksmith.com
Locksmith > Settings > Extensions > Mechanic