Troubleshooting
Why a drawer might not appear, and the other things that surprise people.
My drawer is not showing
Work down this list in order. The first four cover almost every case.
1. Is the app embed on in your published theme? Online Store → Themes → Customize → App embeds → Promo Drawer. It has to be enabled on the theme that is published, not on a duplicate you have been editing. The app’s Overview page shows the current state.
2. Is the drawer itself enabled? Each drawer has its own switch, separate from the app’s.
3. Does it have at least one enabled card? A drawer with no enabled cards does not render at all — not as an empty panel, and not as a button with nothing behind it. If you switched every card off to tidy up, that is why.
4. Does its targeting include the page you are looking at? A drawer targeted at product pages will not appear on your home page. Check page type, any URL rules, and the device you are testing on — the mobile split is a viewport 749px or narrower, so a narrow desktop window counts as mobile.
5. Is it inside its schedule? Scheduled dates use your store’s time zone, not yours if you are traveling, and not the shopper’s.
6. Is another drawer winning? Only one drawer shows per page view. If several match, the one highest in your Drawers list is the one that appears. Reorder the list to change that.
If you are looking at the page source
There are two different “not showing” states, and telling them apart says where to look:
- No
<promo-drawer>element at all, and no script or stylesheet from the app. No drawer passed the page and URL filters, so nothing was sent to the page. Check targeting. - The element is present but empty — it exists in the DOM with no shadow content. Candidates reached the browser and none passed the device or schedule check. Check those two.
The second state is normal and correct: your pages are cached, and a cached page cannot know the viewport it will be shown at.
My image is not showing
Images have to be hosted by Shopify. If you picked or uploaded the image inside the app, it is Shopify-hosted and fine.
If a card renders without its image, the URL is on some other host and was declined. Upload the file to your Shopify Files and pick it again.
My product card disappeared
Product and collection cards read live from your catalog as the page is built. If the product was deleted, unpublished from the Online Store channel, or is otherwise unavailable, the card is skipped rather than shown broken.
Renaming a product’s handle is safe — the card follows it.
The compare-at price is not showing
It only appears when it is a genuine markdown — a compare-at price higher than the current price. The app will not display a saving that is not real, so a compare-at price equal to or below the selling price is simply not shown.
My countdown is showing the wrong time
Countdown end times, and drawer schedules, are in your store’s time zone. If your store is set to New York and you are working from Berlin, a countdown ending “Friday 9am” ends at 9am in New York. Check Settings → General in your Shopify admin for the store’s time zone.
The count itself runs in the shopper’s browser, so it stays correct even on a page served from cache.
The drawer is on top of my chat widget
Or behind it. Both are fixed to the same corner of the page, so one has to give.
Design → Placement has position and layering. Move the drawer’s button to a different corner, or raise or lower its layering until the two coexist. Both controls are on every plan, including free — a collision with another app is not something you should have to pay to fix.
It looks different on my storefront than in the preview
The drawer inherits your store’s font, which the preview cannot fully reproduce. Wording that fits on one line in the preview may wrap on your storefront, and spacing shifts slightly with the typeface.
Everything else — layout, colors, spacing, behavior — is identical, because the preview runs the same renderer your storefront does.
Nothing here fixed it
Email contact@promodrawer.com with your store’s .myshopify.com URL and the page you are
looking at. That is enough to reproduce most things.