All three are required
Storefront locking needs every one of these. Missing any means nothing happens.
| Requirement | Check |
|---|---|
| Theme app embed enabled | Dashboard reads “App embed is active” |
| Product metafield set | The product carries the rule metafield with a type and value |
| Allow bulk limit on | In a rule, and the rule is enabled |
Work through all three rather than re-checking one. The usual gap is the metafield — merchants configure the rule in the app and reasonably assume that is the whole job.
The theme has to be saved
Enabling the embed in an unsaved editor session does not count. Save the theme, then use Refresh status on the dashboard.
Some themes need pointing
Themes render quantity inputs differently. If all three requirements are met and one theme still ignores the lock, that is a theme-compatibility issue rather than a configuration one — the same selector settings used for cart-page messages are the place to start.
Verify the fix
- Product with the metafield → picker refuses invalid numbers.
- Product without it → picker behaves normally.
- Force an invalid quantity anyway → checkout still blocks.
Point 3 matters. The storefront lock is browser-side and bypassable; if checkout does not also block, you have no real enforcement.