Server keys
Most of Locksmith's keys work via Liquid code that we automatically bake into your shop's theme. This method is very efficient, because all the magic happens on Shopify's servers, using Shopify data – very, very minimal overhead.
There's another category of keys, though, that we call server keys: these are special, because they usually require the user's web browser to make a background request to Locksmith's servers.
Server keys include passcodes, secret links, IP address, location (country/city/etc), Mailchimp, Klaviyo, and any other condition that involves a loading screen with a spinner.
Server keys do have an additional requirement if manual mode is in play. For more on that, see Manual mode / Interactions with server keys.
Legacy limitations
Older versions of Locksmith have some limitations when server keys are in play. The limitations here do not affect up-to-date Locksmith accounts. If you're on v6 or above, you can ignore the rest of this article. :)
Remember, you can always change your Locksmith version!
Locksmith v5 and below
- For some themes, Locksmith may be unable to auto-reveal individual pages, products, collections, links, or search results when they appear in a list and are protected by a lock having a server key. This is because, in the context of those lists, Shopify may not permit Locksmith to detect whether or not the visitor qualifies for access. (Developers: this either happens when theme sections are in play, or when the resource in the list is protected with a lock other than the one(s) used for the current url's primary resource.)
To work around this, modify your key to also require that the customer be signed in. This allows Locksmith to flag the customer's record as approved for access, giving it the information it needs to grant the customer access within the restricted context of those lists.
Locksmith v5
- In this version, server keys are completely incompatible with manual mode.
Locksmith v4
- This version uses an iframe, layered over your shop's content, to display content protected by server keys. There are some pretty significant limitations here, so we created a dedicated guide: read more here.