Playbook · Sticky add to cart not working

Shopify sticky add to cart / mobile buy bar not working or not showing — theme section, JS, app conflict.

Written for a Shopify DTC owner whose sticky add to cart bar or mobile buy bar never appears after scroll, is CSS-hidden on phone, or the sticky Add to cart / Buy now control does nothing on click — usually the theme sticky ATC / mobile buy-bar section disabled or dropped after a theme edit, product form JS unbound, a sticky ATC app fighting the native bar, or CSS / z-index under chat widgets. DIY-first: prove missing vs dead click, restore the theme section, re-bind product form JS, isolate app and CSS conflicts. Distinct from size chart / fit guide popup not opening, wishlist / save for later button not working, product variant picker / swatches not updating, cart drawer / AJAX cart not updating, and Shop Pay / accelerated checkout button missing. No earnings claims, no invented case studies.

Nico at Latch AI Ops · Sep 7, 2026 · ~12 minute read

Buy the 72-hour install — $997Size chart popup not openingCart drawer not updatingMerchant FAQ

01

Sticky ATC / mobile buy bar — not size chart, wishlist, variant picker, cart drawer, or Shop Pay.

Several products can look like “the product-page buy control is broken.” They do not share a settings panel. This page is only when the sticky add to cart bar or mobile buy bar is missing after scroll, CSS-hidden, or the sticky Add to cart / Buy now control does nothing on click. A dead Size chart / Fit guide modal is size chart popup not opening. A dead heart / wishlist control is wishlist button not working. A stuck product variant picker or swatches UI is variant picker / swatches not updating. A stale cart drawer after a successful add is cart drawer / AJAX cart not updating. A missing Shop Pay / accelerated checkout button is Shop Pay not showing. This page is only: sticky ATC / mobile buy bar on the product page.

Seven ordinary reasons the sticky bar stays gone or dead: theme sticky ATC / mobile buy-bar section disabled or dropped after a theme publish, product form / sticky bar JS unbound after a section reorder, sticky ATC app embed fighting the native bar, CSS display:none / visibility:hidden or z-index under chat widgets, mobile safe-area / viewport units clipping the bar, sold-out / unavailable variant leaving the sticky CTA disabled with no visible reason, or you are debugging size chart / wishlist / variant picker / cart drawer / Shop Pay instead. Walk them in that order. You already pay for the theme or sticky ATC app. You do not need another seat to make a sticky buy bar that already exists show and add to cart.

02

Prove the sticky bar is missing or the sticky click never added to cart.

Pick a published, in-stock product. Open the live product page in an incognito window on a phone-width viewport and on desktop. Scroll past the main Add to cart. Screenshot whether a sticky / fixed / mobile buy bar mounts; whether price / variant label update when you change options; and whether tapping Add to cart in the bar fires Network /cart/add or /cart/add.js. Open Theme editor on the live theme → product template and note whether a Sticky add to cart / Mobile buy bar / Product sticky ATC section or app block is present and enabled. Open DevTools → Console for uncaught product-form errors when the bar should mount.

Honest proof: if the main ATC works but the sticky / mobile bar never appears or never posts to cart, stay on this page — that is theme section, sticky JS, app conflict, or CSS. If Size chart never opens a modal, leave this page for size chart popup not opening. If the heart / wishlist never toggles, use wishlist button not working. If option clicks leave price / image stuck, use variant picker / swatches not updating. If add succeeds but the drawer stays stale, use cart drawer / AJAX cart not updating. If Shop Pay / accelerated checkout is the missing control, use Shop Pay not showing. Do not mix those proofs.

03

Theme sticky add-to-cart / mobile buy-bar section disabled or dropped after a theme edit.

Many OS 2.0 themes ship a Sticky add to cart, Mobile buy buttons, or Product sticky ATC section on the product template (or a checkbox on the main product section: “Show sticky add to cart on mobile”). A theme switch, duplicate, “reset sections,” or a customizer edit that unchecks / removes that section is the most common “mobile buy bar disappeared” ticket — the main ATC still works; the sticky surface is gone.

Fix: Theme editor → product template — re-enable Sticky add to cart / Mobile buy bar / Show sticky ATC on mobile, place it where the theme docs expect (often after the main product section), Save, preview, then hard-refresh the live product URL on a phone viewport. Compare against an unmodified Dawn / theme starter if you forked heavily. Wishlist and size-chart app blocks are still different products — do not confuse a missing heart or Size chart link with a missing sticky ATC section.

04

Product form / sticky bar JS unbound after section reorder or customizer publish.

Sticky ATC bars usually mirror the main product-form / product-info custom element: they sync selected variant, price, and availability, then POST add-to-cart. A section reorder, combined listings UI, or a customizer publish that drops data- attributes / form id hooks leaves a visible sticky bar whose click does nothing — or a bar that never mounts because the observer never attaches.

Fix: confirm the sticky bar’s target form still exists on the product template. Check console for custom-element upgrade failures after variant change (variant change often re-mounts the form and orphans sticky listeners). Restore the theme’s product section JS from an unmodified copy if you deleted sticky observer code. Variant media and swatch UI bugs still belong on variant picker / swatches not updating— that is product options, not the sticky buy bar mount.

05

Sticky ATC apps, embeds, and two bars fighting the same product form.

Stores that installed a sticky add-to-cart / mobile buy-bar app on top of a theme that already ships one often leave both: two fixed bars, one covering the other, or the app’s preventDefault killing the native form submit. A theme switch that leaves the old app embed on while the new theme’s sticky section is also on is the same class of ticket.

Fix: keep one sticky ATC owner. Theme editor → App embeds — disable the sticky ATC app if you want the native bar, or disable the theme sticky section if you want the app. Remove orphan sticky liquid / sections on a development theme first. Preview then hard-refresh. Cart drawer Section API bugs after a successful add are still cart drawer / AJAX cart not updating— different surface from a missing or dead sticky buy bar.

06

CSS hide, z-index under chat widgets, and mobile viewport / safe-area fights.

Custom CSS that sets display:none, visibility:hidden, or opacity:0 on sticky ATC classes, a chat / cookie / announcement bar with a higher z-index, or missing env(safe-area-inset-bottom) /100dvh handling on iOS all look like “the mobile buy bar is gone.” Sold-out / unavailable variants that disable the sticky CTA without a visible Sold out label are the same merchant complaint with a different root.

Fix: Inspect the sticky / fixed bar node on a phone viewport — note computed display, visibility, z-index, and bottom offset. Lower chat / cookie overlays or raise the sticky bar. Add safe-area padding if the home indicator clips the CTA. Confirm the selected variant is available before calling the bar “broken.” Shop Pay / dynamic checkout button visibility is still Shop Pay not showing— accelerated checkout wallets are not the sticky ATC bar.

07

You tested size chart, wishlist, variant picker, cart drawer, or Shop Pay instead.

A dead size chart / fit guide popup is size chart popup not opening. A dead wishlist / save for later button is wishlist button not working. Stuck product variant picker / swatches is variant picker / swatches not updating. Stale cart drawer / AJAX cart after add is cart drawer / AJAX cart not updating. Missing Shop Pay / accelerated checkout is Shop Pay not showing.

The only honest test for this page: a published in-stock product’s sticky add to cart / mobile buy bar appears after scroll on phone and desktop as designed, theme sticky ATC section (or one sticky ATC app) is enabled on the live theme, product form JS binds, sticky Add to cart posts to cart, console is clean on mount and click, and chat / CSS overlays do not cover the CTA. Anything else is a different product.

08

When to stay DIY vs pay $997.

Stay DIY if you can spend one afternoon on the list above: prove missing vs dead sticky click, re-enable the theme sticky ATC / mobile buy-bar section, re-bind product form / sticky bar JS, keep one sticky ATC owner (theme or app), and fix CSS / z-index / safe-area hides. That is the whole playbook. No agency required. Short answers also live on the merchant FAQ. Related pages: size chart popup not opening, wishlist button not working, variant picker / swatches not updating, cart drawer / AJAX cart not updating, Shop Pay not showing.

Pay for help when the work is not the sticky ATC toggle — it is connecting the stack you already have so lead capture is not dying in DMs, storefront and checkout-ready exceptions land in a channel you already check, and the live store is one workflow instead of a spreadsheet plus a Slack bot you forgot. That is the Latch AI Ops install.

What $997 USD one-time buys: lead capture on the live store, ops alerts in a channel you already check, and a checkout-ready workflow. 72 hours after collaborator access, not after payment. One live Shopify store. Access plus a delivery thread. Store URL collected at checkout. Not a SaaS seat, not a theme rebuild retainer, not a conversion guarantee, not a brand or theme job.

Other shops’ public ranges, not testimonials: a checkout / ops install typically runs $500–$2,500. A full ops consulting block typically runs $2,000–$5,000. $997 is the cheap end of that work, sold as a 72-hour install of three systems — not as an earnings number or conversion-lift claim.

What it does not buy: more orders, recovered revenue, perfect sticky buy bars forever, or a case study. Latch AI Ops has not published customer proof because there are no customers yet. You are buying the install.

Checkout is on Whop. Operator is Nico. United States offer. You can revoke collaborator access after handoff. We do not take owner passwords.