Changelog

Follow up on the latest improvements and updates.

RSS

When preparing events to send to apps like Mechanic, Shopify uses resource representations from specific versions of their REST Admin API.
Effective immediately, Shopify events in Mechanic now use resource representations from version 2024-04 of the REST Admin API.
Breaking changes
Shopify has not noted any breaking changes to REST resource representations in this version.
However, this release does introduce important deprecations:
Read more
Mechanic's Events screen has new capabilities:
  • Sorting by time: newest to oldest, oldest to newest
  • Filtering by date: after a certain time, before a certain time
  • Filtering by error types: event errors, task errors, action errors
  • Filtering by event topic: exact matches, prefix matches
  • Filtering by task: task ID, errors associated with that specific task ID, actions generated by that specific task ID
  • Filtering by keyword search: event IDs, Shopify global IDs, webhook request IDs, excerpted event data
  • Cmd/Ctrl/Shift-click support for opening event results in new tabs or windows
  • Keyboard shortcut (M) for loading more events
All view parameters are reflected in the browser's address bar, allowing for easy bookmarking and sharing of event query results.
I'm excited to give this to y'all. :) Happy Friday from New Zealand! -Isaac
When preparing events to send to apps like Mechanic, Shopify uses resource representations from specific versions of their REST Admin API.
Effective immediately, Shopify events in Mechanic now use resource representations from version 2024-01 of the REST Admin API.
Breaking changes
Shopify has removed the following deprecated properties on the Order and Customer resources:
  • accepts_marketing
  • accepts_marketing_updated_at
  • marketing_opt_in_level
Shopify recommends using the email_marketing_consent property instead.
Read more
Mechanic is now on Liquid 5.4! This unlocks new Liquid features for Mechanic:
  • Inline comments:
    {% # comment %}
  • The
    liquid
    tag:
    {% liquid ... %}
  • New filters: base64_encode, base64_decode, base64_url_safe_encode, and base64_url_safe_decode, remove_last, replace_last
Note: We've deprecated some Mechanic Liquid filters (base64, decode_base64, base64url, and decode_base64url), in places where Liquid now has its own native functionality.
Mechanic's Liquid filter reference has been overhauled, better enumerating what's unique to Mechanic Liquid and what we've imported from Shopify Liquid.
Lastly, here's a screenshot, because inline comments! AT LAST
image
Read more
During task preview, Liquid lookups referencing the shop cache will now return nil/null.
For context: historically, task previews have been able to read real values from the Mechanic cache. This new cache policy is consistent with how Mechanic treats the Shopify Admin API: during task preview, the Shopify Admin API is inaccessible. By preventing task previews from accessing stateful/ephemeral data, we aim to encourage consistency and reliability in task previews themselves.
This change only impacts task previews. There are no other changes to Mechanic cache functionality.
Read more
When preparing events to send to apps like Mechanic, Shopify uses resource representations from specific versions of their REST Admin API.
Effective immediately, Shopify events in Mechanic now use resource representations from version 2023-10 of the REST Admin API.
No documented breaking changes are relevant.
Read more
Dark mode for code editor 🌙
We're thrilled to introduce a Dark Mode for our code editor! Now you can code comfortably, no matter your theme preference.
Two ways to toggle
:
1. Use the new eye icon located above the code editor for quick access.
2. Or go to
Settings > Users
to set your default theme.
Both methods will set your theme preference persistently.
image
Word-based suggestions for code editor 🤖
We've enhanced the code editor with word-based suggestions to make your coding experience even more efficient.
  • Context-Aware
    : The editor will automatically suggest words like variable names that you've already used in your code.
  • Efficiency
    : Reduce repetitive typing and minimize typos with this new feature.
Shopify API deprecation summaries now include specific GraphQL details, identifying individual deprecated fields, and surfacing Shopify's own annotations for them.
image
For tasks using soon-to-be-dropped Shopify API versions, deprecation alerts are displayed at the top of the store's Mechanic task list, along with the relevant timeframe for resolution.
image
Read more
Mechanic can now receive events from Appstle Subscriptions. You can enable the integration in Appstle Subscriptions:
image
After enabling the integration in the Appstle Subscriptions app, your events will be sent to Mechanic, and any tasks that subscribe to these event topics will receive the events:
Event topics
  • appstle_subscriptions/subscriptions/create
    - Occurs when a subscription is created.
  • appstle_subscriptions/subscriptions/activate
    - Occurs when a subscription is activated.
  • appstle_subscriptions/subscriptions/cancel
    - Occurs when a subscription is cancelled.
  • appstle_subscriptions/subscriptions/next_order_date_change
    - Occurs when the next order data of a subscription is changed.
  • appstle_subscriptions/subscriptions/pause
    - Occurs when a subscription is paused.
  • appstle_subscriptions/subscriptions/update
    - Occurs when a subscription is updated.
  • appstle_subscriptions/billings/create
    - Occurs when billing for a subscription is created.
  • appstle_subscriptions/billings/failure
    - Occurs when billing for a subscription fails.
  • appstle_subscriptions/billings/interval_change
    - Occurs when billing for a subscription changes.
Shopify regularly releases new webhook topics, and this routine doesn't normally warrant a Mechanic changelog entry. But, these specific topics signal something meaningfully new.
  1. Shopify's names for these topics are
    customer.tags_added
    and
    customer.tags_removed
    . Note that those terms are separated by dots, not slashes. Historically, Shopify has only ever named topics using slashes. (Over here in Mechanic, we're rolling with slashes anyway, for internal consistency:
    shopify/customer/tags_added
    , and
    shopify/customer/tags_removed
    .)
  2. These webhook payloads don't contain the entire Customer object's REST representation, which is a break from tradition with
    customers/create
    et al. Instead, they contain information styled à la GraphQL, instead of REST.
Screenshot 2023-07-05 at 3
Mechanic tasks have typically needed to work hard to determine the delta of a resource's attributes over time. This is the first time that Shopify has released a webhook
defining
the substance of a change*, which relieves task-writers of some specific headaches.
* Yes,
orders/edited
exists, but even then, its payload is the static content of an OrderEdit, not the delta of an Order.
Read more
Load More